Chapter 8 Agile Testing v1.1
Chapter 8 Agile Testing v1.1
Page 1 of 23
Confidentiality Statement
This document should not be carried outside the physical and virtual boundaries of TCS and
its client work locations. Sharing this document with any person other than a TCS associate
would tantamount to violation of confidentiality agreement signed by you while joining TCS.
Notice
The information given in this course material is merely for reference. Certain third party
terminologies or matter that may be appearing in the course are used only for contextual
identification and explanation, without an intention to infringe.
Certificate in Software Testing Skill TCS Business Domain Academy
Contents
Chapter-8 Agile Testing ..................................................................................................4
8.1 Overview and Principles of Agile Testing ............................................................... 5
8.2 Agile Test Planning and Strategies ........................................................................9
8.3 Agile Testing Methods, Metrics and Benefits ....................................................... 13
Summary ........................................................................................................................22
Page 3 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Introduction
Software development day by day becomes more complex and conventional models cannot
effectively adapt to the continuous and numerous changes that occur.
Agile is an iterative development methodology, where requirements grow through
collaboration between the customer and self-organizing teams and agile process aligns
development with customer needs
A software testing follows the principle of agile software development (ASD) is called Agile
Testing.
Learning Objective
After reading this chapter, you will be able to understand:
• What is Agile Testing
• Advantages & Disadvantages of Agile Testing
• Principles of Agile Testing
• Difference between agile and traditional method
• Test Plan for Agile
• Agile Testing Strategies
• Agile Testing Methods
• Agile Metrics
• Benefits & best practice in agile testing.
Page 4 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Agile methodology was developed to responds to the changes rapidly and smoothly.
Although the iterative methodologies incline to remove the disadvantages of sequential
models, but they still are based on the traditional waterfall approach. Agile methodology is
a group of values, principles and practices that integrates iterative development, test, and
feedback into a new style of development.
An Agile means-
• Initiate action promptly
• Notice changes early
• Have feasible plan to house changes
• Flexibility to plan again, reworks and ready to change any time.
Agile testing involves testing from customer perspective as early as possible and frequently
as code becomes available and stable enough from module/unit level testing.
Table 1 Describes advantages and disadvantages of agile testing.
Table 1 Advantages and disadvantages of agile testing
Advantages Disadvantages
Page 5 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Advantages Disadvantages
Page 6 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
• Clean Code: Raised defects\bugs are fixed within the same iteration and thereby
keeping the code clean.
• Reduce Test Documentation: Instead of very lengthy documentation, agile testers
use reusable checklists, focus on the core of the test rather than the incidental details.
• Test Driven: In agile testing, testing is done while implementation where in
conventional methods, testing is performed after implementation.
Table 2 highlights the difference between agile model and traditional (waterfall) model
Page 7 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Page 8 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Page 9 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
(A) Iteration 0
During first stage or iteration 0, we perform initial setup tasks which include identifying
people for testing installation different testing tools and scheduling resources (usability
testing lab) etc. The following steps are set to accomplish in Iteration 0.
Page 10 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
• Outline the key business requirements and use cases that will drive the design trade-
offs
In construction iteration phase, agile team follows the prioritized requirement practice, with
each iteration they take the most vital requirements remaining from the work item stack and
implement them.
Construction iteration phase is classified into two parts, confirmatory testing and
investigative testing. Confirmatory testing focuses on verifying that the system fulfils the
intent of the stakeholders as defined to the team to date, and is performed by the team.
While the investigative testing detects the problem that confirmatory team have ignored or
skipped. In Investigative testing, tester determines the possible problems in the form of
defect stories. Investigative testing deals with common issues like integration testing, load/
stress testing and security testing.
Again for, confirmatory testing are two aspects one is developer testing and other is agile
acceptance testing. Both of them are automated to enable nonstop regression testing
throughout the development lifecycle.
Agile acceptance testing is a combination of traditional acceptance testing and functional
tastings, the development and stakeholders are doing it together. While developer testing is
a combination of traditional unit testing and service integration testing. Developer testing
authenticates both the application code and the database schema.
Page 11 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
The goal of “Release (End Game)” or transition phase is to deploy your system successfully
into production environment. The activities of this phase are training of end users, support
people and operational peoples.it also includes marketing of the product release, back-up &
restoration, finalization of system and user documentations.
The final testing stage contains full system testing and acceptance testing. To finish your final
testing stage without any problems, you should have to test the product more thoroughly
while it is in construction iterations stage. During this phase, testers will be working on its
defect stories.
(D) Production
The agile testing quadrant splits the whole process in four Quadrants to helps in
understanding how agile testing is performed (Figure 4)
a) Agile Quadrant I: - The main focus of this quadrant is internal code quality and this
quadrant consists of test cases which are technology driven and are implemented to
support the team. Its includes
• Unit Tests
• Component Tests
Page 12 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
b.) Agile Quadrant II: - This quadrant contains test cases that are business driven and are
implemented to support the team. Focuses of this quadrant is on the requirements. The
kind of test performed in this phase is below
c.) Agile Quadrant III– This quadrant provides feedback to quadrants one and two. The
test cases can be used as the basis to perform automation testing. In this quadrant,
several rounds of iteration reviews are carry through which builds sureness in the
product. The kind of testing done in this quadrant is
• Usability Testing
• Exploratory Testing
• Pair testing with customers
• Collaborative testing
• User acceptance testing
d) Agile Quadrant IV– This quadrant focuses on the non-functional requirements such as
performance, security, load, stability, etc. With the help of this quadrant, the application
is made to deliver the non-functional qualities and expected value.
• Scrum
• Crystal Methodologies
Page 13 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
• Extreme programing(XP)
• Feature Driven Development
• Dynamic Systems Development Method(DSDM)
• Lean software Development
Scrum
In Scrum the tasks are divided into small time slots to deliver specific features in the release
so that the software build can be delivered after every iteration. Builds are incremental in
terms of features and the final software build has all feature required by client.
Page 14 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Page 15 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
• Deliver high quality software iteratively from a couple of weeks to a couple of months
• QA needs to track the progress of testing on a daily basis with continuous feedback
Crystal Methodology
The Crystal methodology is one of the most lightweight, adaptable approaches to software
development. Crystal is actually contained of a family of agile methodologies such as Crystal
Clear, Crystal Yellow, Crystal Orange and others, whose unique characteristics are driven by
several factors such as team size, system criticality, and project priorities etc.
Page 16 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Extreme Programming
This technique is very helpful when there is continuously changing demands or requirements
from the customers or when they are not sure about the functionality of the system. It
supports frequent "releases" of the product in short development cycles, which inherently
improves the productivity of the system and also introduces a checkpoint where any
customer requirements can be easily implemented.
In Extreme Programming, rather than designing whole of the system at the start of the
project, the preliminary design work is reduced to solving the simple tasks that have already
been identified.
The developers communicate directly with customers and other developers to understand
the initial requirements. They start with a very simple task and then get feedback by testing
their software as soon as it is developed.
The system is delivered to the customers as soon as possible, and the requirements are
refined or added based on customer feedback.
When the customer does not have a strong understanding of the details of the new system.
The developers interact constantly with the customer, delivering small pieces of the
application to the customer for feedback, and taking corrective action as necessary.
When the customer has unclear understanding of the details of the new system. The
developers interact continuously with the customer, delivering small pieces of the application
to the customer for feedback, and taking corrective action as necessary.
When you can afford to create automated unit test and functional tests. In some
circumstances, you might need to change the system design so that each module can be
tested in isolation using automated unit tests.
Page 17 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
When the team size is not very large (usually 2 to 12 people). Extreme Programming is
successful in part because it requires close team interaction and working in pairs. A large
team would have difficulty in communicating efficiently at a fast pace. However, large teams
have used Extreme Programming successful.
In this business requirements are gathered in terms of stories and all stories are stored in a
place called the parking lot. Releases are based on the shorter cycles called 16 days iterations
and every iteration includes like cording, unit testing and system testing.
The original XP recipe is based on four simple values simplicity, communication, feedback,
and courage and twelve supporting practices:
• Planning Game
• Small Releases
• Customer Acceptance Tests
• Simple Design
• Pair Programming
• Test-Driven Development
• Refactoring
• Continuous Integration
• Collective Code Ownership
• Coding Standards
• Metaphor
• Sustainable Pace
TDD tries to solve above stated problems, focusing on tests and reversing the way of
development. The software development process accordingly to TDD, also known as
Red/Green/Refactor cycle, stands for the repeating running of the following steps: to write a
Page 18 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
unit test that fails before writing any functional code (Red); to write a functional code until
the unit test is approved (Green); in the end, if essential, to restructure the code, removing
redundancies and improving its structure, assuring that all unitary tests keep on being
successful.
Test-driven development(TDD) can create applications of a high quality in less time.TDD also
recommends the test automation, so the code is continually built and run as part of build’s
regular process to promising that the addiction of a new feature or the restructuring of code
does not brake already deployed features.
It contains domain walkthrough, design inspection, promote to build, code inspection and
design. FDD develops product keep following things in the aim.
• Domain object Modelling
• Development by feature
• Component / Class Ownership
• Feature Teams
Page 19 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
• Inspections
• Configuration Management
• Regular Builds
• Visibility of progress and results
Page 20 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
• Building Integrity
• Optimize the whole
8.3.3 Benefits
Below are benefits of the Agile Testing
• Re usability
• Traceability
• Requirements →Tests →Execution →Defects
• Impact analysis – If a user story changes how many tests will that affect and
what’s the estimate to implement it?
• Audit trail (for CMMI compliance)
• Metrics & Analysis
Page 21 of 23
Certificate in Software Testing Skill TCS Business Domain Academy
Summary
• Agile is an iterative development methodology, where requirements grow through
collaboration between the customer and self-organizing teams and agile process
aligns development with customer needs.
• Agile methodology was developed to responds to the changes rapidly and smoothly.
• Agile testing involves testing from customer perspective as early as possible and
frequently as code becomes available and stable enough from module/unit level
testing.
• The agile test plan contains types of testing done in that iteration like test data
requirements, infrastructure requirements, test environments and test results.
• There are various methods present in agile testing:
o Scrum
o Crystal Methodologies
o Extreme programing(XP)
o Feature Driven Development
o Dynamic Systems Development Method(DSDM)
o Lean software Development
• Benefits of the Agile Testing
o Re usability
o Traceability
o Requirements →Tests →Execution →Defects
o Impact analysis – If a user story changes how many tests will that affect and
what’s the estimate to implement it?
o Audit trail (for CMMI compliance)
o Metrics & Analysis
• The best practices in agile testing:
o Automate Unit Tests
o Test Driven Development
o Automated Regression Tests
o Exploratory Testing
Page 22 of 23