Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

What is

Agile
Testing?
Table of
Contents
01. What is Agile Methodology?

02. What are the benefits of Agile over Waterfall?

03. What are the principles of Agile Software Testing?

04. Graphical Representation of Agile Software Testing?

05. How Agile Testing Saves Money?

06. What is the test plan in Agile?

07. What is the Agile Testing Life Cycle?

08. What are different types of Agile Software Testing?

09. What are the different methods of Agile Software Testing?

10. What is Agile Testing Quadrant?

11. Conclusion

12. Frequently Asked Questions

www.astaqc.com
www.astaqc.com
What is Agile
Methodology?
Agile Methodologies are based on synergetic,
adaptive and pilant principles. It has taken
the software development world by squall and
swiftly soldered its place. These layouts are
rooted in adaptive planning, premature delivery
and continuous improvement, all with an eye
toward being able to acknowledge changes
speedily and skillfully.

“88%
As an upshot, it’s
no revelation that

of respondents in
VersionOne’s 2017 State of
Agile Report ranked “ability
to adapt to change ‘’ as
the number one virtue of
welcoming agile.

www.astaqc.com 1
What are the benefits of Agile
over Waterfall?
The main welfare is the capacity to change progressively to the customers’ wants and requisites. Focus is on the
facets that are of the highest utility to the customer. A short-fixed timeline that allows for prompt evaluation from
the customer and the potential to budge deliverables into production. Agile has more recurrent check-ins and
affirmations with the business, which permits for changes to be made at a much accelerated pace.

AGILE
CONCEPTION MODEL
INITIATION
CONCEPTION

ANALYSIS INITIATION

DESIGN
VS ANALYSIS

CONSTRUCTION DESIGN

TESTING CONSTRUCTION

DEPLOYMENT TESTING

WATERFALL DEPLOYMENT

MODEL

www.astaqc.com 2
What are the principles of Agile
Software Testing?

Provide continuous feedback

Deliver value to the costumers Adding value What is Agile Tester?

Enable face to face conversation

Have courage

Keep it simple

Practice continuous improvement


Ten Principles for
Agile Testers
Respond to change

self-organize

Focus on people Applying Agile Values The Agile Testing


and principles Mind-Set
Enjoy

Graphical Representation of Agile


Software Testing?
The diagram below shows all the important principles of Agile Software Testing:

www.astaqc.com 3
How Agile Testing Saves Money?
It conserves your money by testing smarter. It saves you staff by providing ongoing unification between development
and testing. By focusing on business utility with every pursuit, a development team subsides the risk of cost
overruns and avoids exquisite activities that do not furnish value.

What is the test plan in Agile?


Contrary to the waterfall model, in an agile model, a test plan is written and renovated for every release. The
agile test plan includes types of testing done in that harping like test data requirements, infrastructure, test
environments, and test results. Classical test plans in agile includes:-

Testing Scope
Requirments Analysis
Current functionalities which are
being tested

Level or Types of testing based on


the features intricacy
Test Planning
Load and Performance Testing
Infrastructure Consideration

Test Design & Creation Reduction or Risks Plan

Resourcing

Deliverables and Landmarks

Test Execution

www.astaqc.com 4
What is the Agile
Testing Life Cycle?

When to Begin?
As part of an Agile team, before the jumpstart of any
testing activities, its salient to apprehend the release
plan and ploy user stories across the sprints in a
release. All user stories are dispensed among sprints
based on their precedence, work needs and team
volume by the product owner. Post cognizance on
the release plan and features, the first edifice block of
testing activity emerges with a test plan.

Test Plan
The foremost objective of framing the test plan before
the start of a release is to contour the scope, test
approach, entry and exit criteria for the release. The
exit benchmark becomes the acceptance criteria for
the release to be shoved to UAT and validated by the
Product Owner.

Sprint Planning
The next juncture of testing activity unfolds in sprint
planning. The team sits together to consider the efforts
involved across the lined up user stories in a sprint
and any reliances involved in terms of development or
testing. Post sprint planning, work allotment across
the sprint is devised, wherein the testers involved in the
project are entrusted with user stories in the sprint for
test case creation and execution.

Implementation and Execution


The next testing activity involved in Agile is the building
of test cases across the allocated user stories. Post
creation of user stories, peer analysis is performed. This
venture provides a two-way value wherein the other QA
gets awareness across the feature and helps to provide
inputs for finer test coverage. All test cases created in
the test management tool must be associated across
the stories. This helps to make certain a smaller cycle
and lesser bugs across the story. Please note, as a
good plan rule, all test cases should be created when
the stories are under development. Once the stories are
ready for testing, only execution across the story should
be the left out task. 5
Sprint Closure Activities
Once all the bugs linked to the stories and test cases are
retested and closed, the user stories are also closed and
are made ready for the Product Owner to be obtained.
A sprint review is executed exhibiting the deliverables
of the sprint. If any story within a sprint does not get
closed due to unresolved bugs or development work
pending, those get carried to the next sprint.

Regression
After all the sprints in a release are outrighted,
regression testing will be discharged. A regression
suite would be made from the test cases of the features
planned in the release along with the striked test cases
of the foregoing releases. The regression suite would be
checked by the Product Owner. Based on the approval,
a regression approximation would be produced before
starting regression that would contour the time required
to complete off regression.

Post regression completion a final sign-off report would


be created and shared with the stakeholders.

Release Activities
After a release closure, the build is disposed of to the
UAT environment and is made ready for a few users to
carry out user acceptance testing. After deploying the
release to UAT, a smoke is performed. Once testing is
over, the build is deployed to production and is made
ready for end users Any bugs encountered during UAT
or production release would be logged as a ticket and
provided early resolutions if possible.

www.astaqc.com 6
Getting Ready for The Next Release
After the release, the team would sit for a sprint review meeting and help understand the issues which came and
how to avoid them in the coming release. Meanwhile they will also prepare for the next release activities.

The below image highlights the testing cycle and deliverables followed in the Agile environment:

Requirement
Gathering Phase

FINAL Planning &


Evaluation
MARKET Designing Phase
Phase
RELEASE

Testing Developing
Phase Phase

www.astaqc.com 7
What are different
types of Agile
Software Testing?
Functional Testing
Functional Testing is one of the testing expertise, which
aids the team singularly in proving the quality as well
as functionality of the software. Functional testing
technique sanctions the team to check whether or not
the software is fixed and ready for its release. Let’s
highlight the advantages of Functional Testing.

Functional testing is important for checking


the ability and the functionality of a software
application before it is released to the end user.

It is carried out from the perspective of the users,


which helps the team to create test scenarios in
line with the real world use scenarios.

Allows the team to meet the requirements of the


user as well as the client.

Automation Testing
Automation Testing involves the usage of an
automation tool to execute your test cases. The
automation software can also take in data to test and
collate awaited and true results and generate detailed
test reports. Test Automation calls for a substantial
amount of money and resources. Following are the
benefits of it:-

Wider test coverage of application features.

Reliable in results.

70%
faster than the
manual testing.
www.astaqc.com 8
Regression Testing
Regression testing enhances the development of the product standard, and it confirms that any moderations that
have been done do not impact the central functions already tested and. Following are the benefits of it:
Regression testing enhances our ways of checking of bugs caused by changes to a software.

User Acceptance Testing


UAT (User Acceptance Testing) is one of the most important types of testing in the software development lifecycle.
Here the software or the application is testing from a client’s or users perspective. Following are the benefits of it:-

The quality criteria of the product is defined at the start of development/implementation.

The communication process here is increased and there is a decrease in post production bugs.

Security Testing
The aim of security testing is to recognize the threats in the system and estimate its possible susceptibilities, so the
system does not stop working. Following are the benefit:-
It helps in discovering all estimated security risks in the system and help developers in affixing these
problems through coding.

www.astaqc.com 9
What are the different methods of Agile
Software Testing?

Behavior Driven Development (BDD)


BDD uplifts the transmission between project stakeholders so all members understand each
feature before the development starts. In BDD, testers, coders,BA’s and Product Owners create
situations which eases example-based communication.

Scenarios are written in a specific format called the Gherkin Given/When/Then syntax. They have
knowledge on how a feature reacts in different scenarios with different input parameters. These
are known as executable specifications as they are made up of both specifications and inputs to
the automated tests.

Automate and
run tests
Write stories & Commit stories Write Gherkin
Develop
acceptance criteria to sprint test scenarios
Run manual
Tests

Before Spirnt During Spirnt

Advantages for testers using a BDD methodology:

Elegant documentation to ensure the process is methodical.

Welcome the theory where the developer, product owner, and tester work together
to define scenarios and tests.

Acceptance Test Driven Development (ATDD)


ATDD involves the customer, developer, and tester. The trio meetings are held to collect feedback
or inputs from these three roles, and use them to come up with acceptance tests. The customer
focuses on the issue, the developer focuses on how the issue will be resolved and the tester
looks at what could go incorrect.

The acceptance tests show a user’s perspective, and states how the system will work. They also
make certain that the system functions as calculated. Acceptance tests can often be automated.
Like in the BDD approach, acceptance tests are written first, they initially fail, and then software
functionality is built around the tests until they pass.

www.astaqc.com 10
Training and
Experimentation

Iterative Increasing
Learning and
feedback
ATDD Visibiltiy
Implementation Cycle

Following are the advantages of ATDD methodology:

Interconnect personally with customers to line up presumptions.

Involve customer-facing team members to understand the business requirements.

Exploratory Testing
In exploratory testing, the test implementation and the test blueprint phase goes hand in hand. This
type of testing focuses on connecting with the working software on a real time basis. Testers do
not write the process in which they tested the software but if a defect appears during the process
they document it for future use.
Following are the benefits:-

Helps in designing the functionality using a direction or mind map.

Helps in focusing on high risk and value areas.

Learn

Exploratory Test Case


Analyze Testing Creation

www.astaqc.com Test Case


11
Execution
Session-Based Testing
This method is similar to exploratory testing, but is more tidy, pointing to make sure the software is tested
thoroughly. It adds test authorities, which assists testers know what to test. Tests are directed during time-boxed
sessions.

Following are the benefits:

Develop a plan that states what and when to test


Run continuous testing sessions within a timeline

www.astaqc.com 12
What is Agile Testing Quadrant?
Depending upon the project requirements and scope the Agile Testing quadrants need to be selected and
executed. Relevant tools also need to be chosen to aid and perform the testing. Applying the quadrants help in
integrating the efforts of programmers, testers and customers. Knowing when and how to use the quadrants is
decided by the testing team. These quadrants can aid the whole team collaborate in a better way and yield a high
calibre software product

Automated and Manual Manual

Functional Testing Exploratory Testing


Examples: Story Types, Scenarios, Usability
Prototypes, Simulations Testing, UAT, Alpa/Beta

Q2 Q3
Q1 Q4

Unit Tests Performance and Load Testing


Component Tests Security Testing
“ility” testing

Automated Tools

Agile Quadrant I
This quadrant focuses mainly on internal code standard. The unit testing done in this quadrant acts as a first level
safety check for the product. By performing the tests in Q1, prompt inputs about the product can be received. The
deductibility is built into the code in this quadrant. Very few bugs will be found after coding is done. The kinds of
tests in this quadrant are Unit Tests which are testing the code in the local system. Component Tests including
testing architect objective and warranting that components work hand in hand.

Agile Quadrant II
This quadrant consists of test cases that are work driven and are executed to aid the team. Here developers can
code as long as the test cases give the required results. The test cases are business facing and so development is
operated keeping the business objectives in mind. There is an uplift of customer-tester-developer connectivity in
this quadrant. The kind of tests in this quadrant are Testing of examples of feasible scenarios and workflows, testing
of User Experience and Pair testing.

Agile Quadrant III


This quadrant comprises business cladding test cases that evaluates the product. The chief focus in this quadrant
is to provide valuable inputs to quadrants one and two. This quadrant aids one to learn as the test moves on. The
test cases can be used as the premise to perform automation testing. The product can be tested since practical use
of the product is kept in mind in this quadrant. The many number of repetitive reviews in this quadrant builds trust in
the product and secures the presence of prompt feedback. The demo can be given even on unfinished code to gain
understanding of the working of the product.

Exploratory testing can be coupled with the customer. The kind of tests in this quadrant are Exploratory Testing,
Usability Testing, Pair testing with customers, User Acceptance Testing and Collaborative Testing

www.astaqc.com 13
Agile Quadrant IV
This quadrant consists of technology-driven test
cases that evaluates the product. This quadrant
hub on the non-functional requirements such as
performance and security. This quadrant is key for
conveying the concluded product. The application
is made to bring the anticipated value and non-
functional standards with help of this quadrant. Kind
of tests in this quadrant are non-functional tests
such as stress and performance testing, security
testing with respect to hacking and authentication,
infrastructure testing, data migration testing,
scalability testing and load testing.

Conclusion
Agile testing involves testing as prematurely as
feasible in the software development lifecycle. It
requests great customer collusion and testing code
as soon as it is ready. This method of testing gives
quicker and fruitful results. This ensures there are less
issues and the end objective is met sooner.

www.astaqc.com 14
Frequently Asked Questions
Question: How to manage changing requirements in an Agile Testing Methodology?

Answer: Changing requirements in the middle means that all the half work done is a waste or needs some
modification. In such cases testers should be able to proceed and modify their processes according to varying
conditions, because in agile projects, change is common. When requirements change, testers should share as much
information as possible on what part of the scope or requirements has been tested and what is still pending. This
will aid the team to plan properly and make sure that nothing is missed.

Question: What should be the steps if there is a lack of information?

Answer: Product Managers, who are accountable for creating user stories, may have a glimpse about a new feature
but may not be informed about the specifics. This means they can’t write a fine set of acceptance criteria. If there is
mislaid information about needs, testers can’t build detailed test cases. Testers do not need in-depth requirements
to begin testing, they can start by coming up with high level test cases that test the basic plan of the story. Testing
can be done without the total characteristic of a feature. High level scenarios can still be created.

Question: How to do Continuous Testing?

Answer: Testing is not restricted to one part of the development process, rather it’s an ongoing activity that starts
before the development phase. This creates a major challenge because testers are expected to start building tests
for features before coding has even started, or while coding is taking place.To make life easier for testers, user
stories in the backlog should be expanded during sprint planning. Testers, developers and product owners should
jointly define the details of each story and then write effective acceptance criteria. The team should ensure that each
story has sufficient acceptance criteria and that the context of the story is universally understood before work on
development begins. This makes it possible to start creating tests early on, which can be implemented when the
code for the feature is complete.

Question: How to deal with Frequent Regression Cycles?

Answer: Developers often and regularly add features to the product. This can cause regressions in previous features.
Testers use regression tests to recognize this problem and deal with it, but manual regression testing is not possible
in an iterative agile environment. Another problem is that modern web applications behave differently when viewed
on different devices or browsers. This means a lot of complex test scenarios have to be created, which need to be
tested to make sure that the application runs correctly for all users. Agile testers depend on automation. They use
unit testing to ensure recent changes have not broken the code, and tools like Selenium and JMeter to verify there
is no regression in basic functionality. Testers can use Docker or Selenium Grid to manage and run their automated
test, in parallel on various browsers and machines.

Question: There is a lack of communication. How to deal with it?

Answer: If there is lack of communication among team members be it with developers, testers or with product
owners the agile methodology would fail drastically. To avoid such issues we have scrum meetings which are daily
stand up meetings, we also have sprint review meetings which helps in letting everybody know what went well or
what went bad and the areas of improvement. Similarly we have sprint review meetings as well.

Question: There is no Quality Measurement. How to deal with it?

Answer: Agile teams today have no single measurement of quality, which they can use to amend and plan testing
efforts. There are multiple metrics like unit test code coverage, lines of code and code complexity, but none of
them aids a good picture as to where we are with respect to quality. One measurement of quality can be no. of
issues which were found in production because this might have happened after the testing took place.

www.astaqc.com 15
ABOUT US
360° Software Testing and Quality Assurance
services for global enterprises and SMEs across
industries. ASTAQC specializes in providing
end-to-end application testing solutions, setting
up Testing Center of Excellence (CoE’s), Niche
testing, quality QA strategies at optimal cost and
delivery at the right time, every time. Flexible,
transparent and productive.

Astaqc Consulting
11923 NE Sumner St
STE 856629
97220
Portland, Oregon
United States

Email: contact@astaqc.com

Phone: +1 (866) 770-9010

© 2018-2020 Astaqc Consulting

You might also like