0% found this document useful (0 votes)
30 views

Software Testing Chapter-5

The document discusses Agile testing principles and concepts including the differences between traditional and Agile testing, the Agile testing quadrants, and automated testing. The Agile testing quadrants separate testing into four areas focusing on internal code quality, business requirements, feedback, and non-functional requirements respectively. Automated testing is emphasized in Agile development for its ability to provide quick feedback and improve code quality.

Uploaded by

shyamkava01
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Software Testing Chapter-5

The document discusses Agile testing principles and concepts including the differences between traditional and Agile testing, the Agile testing quadrants, and automated testing. The Agile testing quadrants separate testing into four areas focusing on internal code quality, business requirements, feedback, and non-functional requirements respectively. Automated testing is emphasized in Agile development for its ability to provide quick feedback and improve code quality.

Uploaded by

shyamkava01
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Chapter-5

Agile Testing
Syllabus Chap:5 Agile Testing

• Agile Testing,
• Difference between Traditional and Agile testing,
• Agile principles and values
• Agile Testing Quadrants
• Automated Tests.
The Agile Manifesto

• We are uncovering better ways of developing software by


doing it and helping others do it.
Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
• The 12 principles articulated in the Agile Manifesto are:
• Satisfying customers through early and continuous delivery of
valuable work.
• Breaking big work down into smaller tasks that can be completed
quickly.
• Recognizing that the best work emerges from self-organized teams.
• Providing motivated individuals with the environment and support
they need and trusting them to get the job done.
• Creating processes that promote sustainable efforts.
• Maintaining a constant pace for completed work.
• Welcoming changing requirements, even late in a project.
• Assembling the project team and business owners on a daily basis
throughout the project.
• The 12 principles articulated in the Agile Manifesto continue...
• Having the team reflect at regular intervals on how to become more
effective, then tuning and adjusting behavior accordingly.
• Measuring progress by the amount of completed work.
• Continually seeking excellence.
• Harnessing change for a competitive advantage.
https://www.guru99.com/agile-testing-a-beginner-s-guide.html
• What is Agile Testing?
• It is a testing practice that follows the rules and principles of agile
software development.
• Unlike the Waterfall method, Agile Testing can begin at the start of
the project with continuous integration between development and
testing.
• Agile Testing methodology is not sequential (in the sense it’s
executed only after coding phase) but continuous.
• Difference between Traditional and Agile testing
Traditional Testing Agile Testing

1. Traditional testing follows a top-down approach and


1. Whereas, the process of agile testing follows an
a more predictive model, wherein testing is executed
iterative approach and an adaptive model.
step-by-step.

2. Agile testing follows a philosophy of test first,


2. Here, testing is performed once the process of
wherein defects are fixed during each sprint and then
software development is accomplished/completed.
released.

3. Team tests different modules of the software 3. Here, the team works together and collaborate in an
separately first. open workspace.

4. The requirements stated in traditional testing are 4. Has fixed, yet flexible requirements that adapt to
concrete and are not easily modified. changing business & user requirements easily.

5. If any changes or modifications are implemented, 5. Unlike traditional testing, in agile testing
they are done in the next release of the module. modifications are implemented during the next sprint
of the software testing cycle.

6. Here, unit testing is executed for each module 6. The agile team is integrated with the Scrum team,
followed by integration and system testing. which helps get more accurate results.
7. Tools are considered a luxury in traditional
7. Tools are used frequently to keep up with the pace
testing, as the focus is majorly on performing
of development and to deliver results quickly.
manual testing.

8. Risk management is quite averse. 8. Ensures efficient, effective, and timely risk
management.

9. During this types of testing, feedbacks are mainly 9. Accurate and efficient feedback is offered, which
taken from end users once the process of testing is provides a better understanding of the testing process
completed. and ensures the quality of the product.

10. The interaction among team members is scarce as 10. Most importantly, there is a continuous interaction
testing is executed in phases. among team members.

11. Requires comprehensive and extensive 11. Requires minimum documentation and reporting.
documentation and reporting.

12. Traditional testing is a time consuming process, 12. Agile testing prevents expenditure of excessive
which usually costs more efforts and money. time, efforts, as well as money.

13. Though ensures the quality of the product, it 13. Ensures rapid delivery as well as quality of the
leads to delay in product delivery. software.
• Agile Testing Quadrants
• Agile testing quadrants is consider to be a tool or a manual, designed
by the Brain Marick, which divides the whole agile testing
methodology into four basic quadrants. Agile Testing Quadrants help
the whole team to communicate and deliver a high quality product
in no time. With the help of Agile Testing Quadrants the whole
testing process can be explained in a very easy to understand
language and the whole team can effectively work on the product.
These Quadrants are:
• Quadrant 1: Technology-facing tests that support the team
• Quadrant 2: Business-facing tests that support the team
• Quadrant 3: Business-facing tests that critique the product
• Quadrant 4: Technology-facing tests that critique the product
• The agile testing quadrants separate the whole process in four Quadrants
and help to understand how agile testing is performed.
• Agile Quadrant I – The internal code quality is the main focus in this
quadrant, and it consists of test cases which are technology driven and are
implemented to support the team, it includes
• 1. Unit Tests
• 2.Component Tests
• Agile Quadrant II – It contains test cases that are business driven and are
implemented to support the team. This Quadrant focuses on the
requirements. The kind of test performed in this phase is
• 1. Testing of examples of possible scenarios and workflows
• 2. Testing of User experience such as prototypes
• 3. Pair testing
• 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, many rounds of iteration reviews are
carried out which builds confidence in the product. The kind of testing done in this quadrant is
1. Usability Testing
2. Exploratory Testing
3. Pair testing with customers
4. Collaborative testing
5. User acceptance testing
• Agile Quadrant IV – This quadrant concentrates on the non-functional requirements such as
performance, security, stability, etc. With the help of this quadrant, the application is made to deliver
the non-functional qualities and expected value.
1. Non-functional tests such as stress and performance testing
2. Security testing with respect to authentication and hacking
3. Infrastructure testing
4. Data migration testing
5. Scalability testing
6. Load testing
Quadrant 1:

• Quadrant 1 consists of all the test cases that are technology driven.
These are performed in order to support the team.
• Developers involvement is very important in this quadrant as quality
of code is the main focus here.
• Quadrant 1 is associated with Automated testing, and covers the
tests such as Unit tests, Component test, API tests and Web Services
testing.
• Instant feedback is obtained in this quadrant so that quality of code
can be improved easily.
• This quadrant helps to improve the design of the product without
affecting its functionality.
Quadrant 2:

• Quadrant 2 consists of all the test cases that are business driven and
are performed to support team as well as the customers.
• Most of the projects working starts from this quadrant.
• The main focus of this quadrant is on the business requirements.
• The tester is greatly involved with the customer to gather the
requirements in order to build test cases accordingly.
• Quadrant 2 is associated with Functional testing, story testing,
prototypes & simulations and pair testing.
• In this quadrant both manual and automated testing is involved to
work on business requirements easily.
Quadrant 3:
• Quadrant 3 consists of all the test cases that are business
driven and are performed to Critique the product.
• The main focus of this quadrant is to provide feedback to
the Quadrant 1 and Quadrant 2.
• Manual testing based on tester logical thinking, intuitions
and user requirements is done to evaluate
the application.
• Quadrant 3 is associated with Pair testing with
customers, Exploratory Testing, Usability Testing, User
Acceptance Testing, Collaborative Testing and alpha &
beta testing.
Quadrant 4:

• Quadrant 4 consists of all the test cases that are technology-driven


and are performed to critique the product
• Quadrant 4 focus mainly on the non-functional requirements such
as performance, security, stress, maintainability, stability etc.
• This quadrant is responsible to deliver the final product to the
customer.
• This quadrant is associated with performance testing, load testing,
stress testing, maintainability testing, infrastructure testing, data
migration testing, security testing, reliability testing,
recovery testing and many more.
Agile Automation Testing

• Agile Automation Testing in software development is an approach


of using test automation in agile methodologies.
• The purpose of agile automation testing is to make the software
development process more effective and efficient while maintaining
the quality and time as well as resource consumption.
• Thus, the implementation of such a process requires a lot of
coordination and collaboration between teams.
• Agile Test Automation bolsters quality assurance and quickens
application delivery.
• Some of the core practices of agile test automation can be listed as follows:
• Automation based on coverage: The scope of test automation depends on the
amount of code that has to be covered. As part of the test automation
execution system, test traceability can be easily understood through test
automation runs that are based on code-coverage.
• System level automation: In an agile workflow, dependent on team input and
user feedback, the UI is bound to experience many changes and multiple
versions. So in terms of UI maintenance, test automation tends to be very
time-consuming. In order to keep maintenance costs down and enhance
overall coverage, automation needs to be conducted at the level of systems
and services.
• Development driven by testing: Testers need to work closely with product dev
teams in cases where the testers first design automation tests and make those
tests the foundation for the source code. Implementation of such testing
therefore requires persistent collaboration between the different teams.
• Automated testing before its manual counterpart: Before automated testing
was as widespread as it is now, a round of manual testing was necessary
before implementing a round of test automation. But in today’s fast-paced
market with rigid demands, teams don’t really have the time to engage in
manual testing. They dive straight into the automated environment, but in
spite of the efficiency and thoroughness of this process, it would be a good
idea for testers to conduct one manual run-through to confirm the stability of
the application and get rid of any glitches that the program may have ignored.
• Choice of Tool: In an agile workflow, poor decisions and erroneous choices
can have detrimental effects that could take a long time to reverse. Selecting
the right tools for the job is absolutely key to ensuring successful test runs,
and testers can choose from a wide variety of commercial and open-source
solutions. Apart from the suitability of a particular tool to a particular
automation issue, testers need to take into account a number of other
potential problems, such as integration capabilities, installation requirements,
overall cost, maintenance, and compatibility with the testing environment.
• Verifying test automation code: The automation code itself needs to be tested
to ensure consistency and high quality. The code needs to be verified top to
bottom, and all issues must be eliminated before implementing a test of any
product. In an agile workflow, the pressing lack of time means that the code has
to be flawless, and has to guarantee low maintenance costs, reliability, and
robustness. In test automation, each step (tool choice, framework design, data
generation, test design, code review, execution, maintenance, etc.) is handled in
a sequential flow, which means that any automation program is conducted in a
traditional testing environment by one single tester who takes care of each step.
• Sharing code to encourage code usage across teams: Development, build, and
operations teams should ideally be kept in the loop with regard to any given
automation code. The advantages of such transparency are numerous – a
general increase in the focus on product quality, shorter test and dev cycles, and
the free sharing of knowledge to facilitate an efficient workflow. Bringing in
people from the non-testing departments brings in new perspectives and
approaches to dealing with potential issues, and so the automation code is more
likely to be reliable.

You might also like