0% found this document useful (0 votes)
10 views18 pages

Agile Testing

Agile testing is an iterative and incremental approach that emphasizes constant feedback, less documentation, and continuous testing to enhance software quality. It involves various principles and quadrants that guide the testing process, including automated and manual testing strategies, while addressing challenges like last-minute modifications and limited test coverage. The agile testing life cycle consists of phases such as impact assessment, planning, and daily scrums, ultimately leading to advantages like improved product quality and reduced errors.

Uploaded by

juhi.srivastava
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views18 pages

Agile Testing

Agile testing is an iterative and incremental approach that emphasizes constant feedback, less documentation, and continuous testing to enhance software quality. It involves various principles and quadrants that guide the testing process, including automated and manual testing strategies, while addressing challenges like last-minute modifications and limited test coverage. The agile testing life cycle consists of phases such as impact assessment, planning, and daily scrums, ultimately leading to advantages like improved product quality and reduced errors.

Uploaded by

juhi.srivastava
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Agile Testing

➢ Agile testing is an iterative and incremental method, and the necessities,


which develop during the cooperation between the customer and self-
establish teams.
➢ In agile testing, the word "Agile" primarily signifies something that can be
performed quickly and immediately, but also in the area of software
development.

Principles of Agile Testing


Agile Testing includes various different principles that help us to increase the
productivity of our software.
1. Constant response
2. Less documentation
3. Continuous Testing
4. Customer Satisfaction
5. Easy and clean code
6. Involvement of the entire team
7. Test-Driven
8. Quick feedback
For our better understanding, let's see them one by one in detail:

1. Constant Response
➢ The implementation of Agile testing delivers a response or feedback on an
ongoing basis. Therefore, our product can meet the business needs.
➢ In other words, we can say that the Product and business requirements are
understood throughout the constant response.
2. Less Documentation
➢ The execution of agile testing requires less documentation as the Agile
teams or all the test engineers use a reusable specification or a checklist.
And the team emphases the test rather than the secondary information.
3. Continuous Testing
➢ The agile test engineers execute the testing endlessly as this is the only
technique to make sure that the constant improvement of the product.
4. Customer Satisfaction
➢ In any project delivery, customer satisfaction is important as the customers
are exposed to their product throughout the development process.
➢ As the development phase progresses, the customer can easily modify and
update requirements. And the tests can also be changed as per the updated
requirements.
5. Easy and clean code
➢ When the bugs or defects occurred by the agile team or the testing team are
fixed in a similar iteration, which leads us to get the easy and clean code.
6. Involvement of the entire team
➢ As we know that, the testing team is the only team who is responsible for
a testing process in the Software Development Life Cycle. But on the other
hand, in agile testing, the business analysts (BA) and the developers can
also test the application or the software.
7. Test-Driven
➢ While doing the agile testing, we need to execute the testing process during
the implementation that helps us to decrease the development time.
However, the testing is implemented after implementation or when the
software is developed in the traditional process.
8. Quick response
➢ In each iteration of agile testing, the business team is involved. Therefore,
we can get continuous feedback that helps us to reduces the time of
feedback response on development work.

Agile Testing Quadrants


➢ It has different quadrants to easily understand agile testing, which divides
the whole testing process into four parts.
➢ In addition to the four quadrants, the left two specify the test engineer
that code to write, and the right two quadrants help them understand
the code improved with the support of response to the left quadrants.
➢ These agile testing quadrants may be understood as a traditional process or
strategies to perform the end-to-end agile testing of a software application
in four different stages, as we can see in the following image:
Let us discuss them one by one to understand the process of agile testing:
1. Quadrant 1 (Automated)
2. Quadrant 2 (Automated and manual)
3. Quadrant 3 (Manual)
4. Quadrant 4 (Tools)
Quadrant 1 (Automated)
➢ In the first quadrant of Agile testing, we will see mainly emphasis on the
quality of the code. We can say internal code quality, which contains the
test cases and test components that is executed by the test engineers.
➢ And these test cases are technology-driven and used for automation testing
in order to enhance the code and support the testing team to perform their
tasks.
All through the first quadrant of agile testing, we can execute the following
testing:
o Unit Testing
o Component Testing
Quadrant 2 (Automated and manual)
➢ In the second quadrant of Agile testing, we will see mainly emphasis on
the customer requirements given to the team before and throughout the
testing procedures, which expands the business results of the newly created
software.
➢ The test case involved in this second quadrant is business-driven, usually
manual and automated functional tests, prototypes, and examples of test
scenarios performed by the testing team.
In quadrant 2, we can execute the following tests:
o Testing scenarios which may occur and workflow
o Implementing the pair testing
o Testing the user story and experiences like prototypes.
Quadrant 3 (Manual)
➢ The third quadrant of agile testing primarily emphasizes the response for
the previous two phases (Quadrant 1 and Quadrant 2).
➢ The execution of agile testing involves many iterations. And in this
quadrant, these reviews and responses of the particular iterations are
sustained that helps to strengthen the code.
➢ To test the user experience and determine business results allows the
testing team to learn as the test develops.
➢ The team, business owners, and even customers realistically use the
product. In the third quadrant, the test cases have been designed to
implement automation testing, which helps us develop certainty in the
particular product.
In quadrant 3, below types of testing can be executed:
o Usability testing
o Collaborative testing
o Exploratory testing
o User acceptance testing
o Pair testing with customers
Quadrant 4 (Tools)
➢ The last and fourth Quadrant of agile testing primarily emphasizes the
product's non-functional requirements, including compatibility,
performance, security, and constancy.
➢ In other words, we can say that the fourth Quadrant ensures that the code
fulfils all the non-functional requirements.
Like other Quadrants, various types of testing are performed in quadrant 4 to
deliver the non-functional qualities and the expected value.
o Non-functional testing such as Stress testing, performance testing,
and load testing, etc.
o Scalability testing
o Security Testing
o Data Migration Testing
o Infrastructure testing

Agile Test Plan


➢ As compared to the waterfall model, the agile test plan is created and
updated for every release. Furthermore, the agile test plan contains those
types of testing executed in a specific iteration, such as test environments,
test data requirements, test results, and infrastructure.
The agile test plans emphasize the following:
o Testing Scope: The testing scope specifies the sprint goals, test scope, and
test coverage in which the test will be implemented.
o Performance and Load Testing: Here, it specifies the different testing
methods and procedures.
o Types of testing or levels as per the feature's complexity: It defines
those types of testing or levels of testing which are going to be used. And
also specifies the data and configurations for the test and the environment
in which the test will be executed.
o Mitigation or Risks Plan: It defines the backup plan prepared to
overcome the risks or issues. And it also identifies the challenges which
might face at the time of testing of the application in the current release.
o Deliverables and Milestones: It sets the deliverables and milestones of
the tests as per the customer's perspective.
o Infrastructure Consideration: It governs the infrastructure which is
required to perform the tests.
o Resourcing: It lists out the test tasks and the occurrence of tests, which
defines how many times the tests will be executed.
o Establish the New functionalities which are being tested.

Agile Testing Strategies


Agile testing has four different approaches, which help us to enhance our product
quality.
1. Iteration 0
2. Construction iteration
3. Release End Game or Transition Phase
4. Production

1. Iteration 0
➢ The first strategy or approach of agile testing is iteration 0. In this, we
execute the preliminary setup tasks such as finding people for testing,
establishing testing tools, preparing resources or usability testing lab,
etc.
In Iteration 0, the below steps are accomplished:
o Verifying a business case for the project and boundary situations, and the
project scope.
o Summarise the important requirements and use cases that will determine
the strategic trade-offs.
o Plan the initial project and cost valuation
o Detecting the risk.
o Outline one or more candidate designs

2. Construction Iteration
➢ The next strategy of agile testing is Construction Iteration. During this
approach, the majority of the testing is performed.
➢ The construction iteration is performed as a set of iterations in order to
create an increment of the solution.
➢ In simple words, we can say that the agile team follows the listed
requirement within each iteration where they can acquire the most
significant business needs or requirements left behind from the work item
stack and then execute them.
The construction iteration process divided into the following two types of testing:
o Confirmatory Testing
o Investigative Testing
1. Confirmatory Testing
➢ To ensure that the product meets all the stakeholders' requirements, we will
execute the confirmatory testing.
Confirmatory testing can be further separated into another two types of testing,
which are as follows:
o Agile Acceptance Testing
o Developer Testing
Agile Acceptance Testing: It is a combination of functional
testing and acceptance testing. The agile acceptance testing can be executed by
the development team and stakeholders together.
Developer Testing: It is a combination of unit testing and integration testing.
And it validates both the application code as well as the database schema.

Note: We can automate both (agile acceptance testing and developer testing) to
ensures that continuous regression testing has occurred.

2. Investigative Testing
In order to test deep and identify all the issues, which are overlooked
in confirmatory testing, we will execute the investigative testing.
3. Release End Game or Transition Phase
➢ The third approach of agile testing is release. The objective of this specific
approach is to implement our system effectively in production.
The test engineer will be working on its defect stories in the end game. In the
release end game or transition stage, we have the following activities:
o Support Individuals
o Training of end-users
o Operational People
Similarly, it involves some additional activities as well:
o Back-up and Restoration
o Marketing of the product release
o User documentation
o Completion of system
The last agile methodology testing stage encompasses whole system testing and
acceptance testing. To complete our final testing phase without having any
difficulties, we should have to test the product more thoroughly in construction
iterations.

4. Production
The product will move on to the production stage as soon as the release stage is
completed.

What are the different challenges we faced during the agile testing?
Generally, while performing agile testing, a testing team may face some
challenges. Let see those challenges all together for our better understanding:
o Last-minute modification
o Tools selection
o Lack of documentation
o Repeated modifications in the code
o Limited test coverage
Last-minute Modification
➢ The most faced challenges during the agile testing are last-minute
modifications by the client, which gives significantly less time to the
testing team to design the test plan, which may affect the product quality.
And sometimes, the test engineer is often required to play a semi-developer
role.
Tools Selection
➢ The selection of tools during agile testing is essential because if we select
the wrong tool, it will waste our time as well as money.
➢ As we already knew, the Test execution cycles are highly reduced, and for
the regression testing, we will have minimal timing.
Lack of Documentation
➢ Another frequently faced challenge while executing agile testing is the lack
of documentation. The probabilities of error are more agile as
documentation is given less importance and ultimately puts more burden
on the testing team.
Repeated Modifications in the code
➢ In an agile method, requirement modification and updation are
fundamental, making it the major challenge for the Quality assurance team.
Limited Test Coverage
➢ In agile testing, new features are initiated quickly, decreasing the available
time for the testing teams to find whether the latest features are as per the
requirement and address the business suits.
➢ After seeing all the frequent challenges, the question arises how do we
overcome them? Therefore, in the below topic, we are going to discuss that:
How do we overcome Agile testing challenges?
As we understood from the definition of Agile Testing, it comprises less or no
documentation, which creates problems for the testing team to predict the
expected results and becomes the obstacle in the testing process.
And it also makes it challenging to choose the direction and path of the testing to
be performed. Hence, to overcome the agile testing challenges, we can implement
the following best options:
o We can execute the Exploratory Testing to conquer the agile testing
challenges.
o We can perform the automated unit tests to speed up the agile testing
process.
o Test-Driven Development could be a good option in order to overcome the
agile testing challenges.
o Furthermore, we can overcome these issues or challenges with the help of
the agile testing specification and make sure to perform improved and
qualitative Testing in a guided way.
o We can implement automated Regression Testing.

Agile Testing life cycle

Phase1: Impact Assessment


➢ The first phase of the Agile testing life cycle is Impact assessment. Here,
we collect the inputs and responses from users and stakeholders to execute
the impact assessment phase. This phase is also known as the feedback
phase, which supports the test engineers to set the purpose for the next life
cycle.
Phase2: Agile Testing Planning
➢ The second phase of the Agile testing life cycle is agile testing planning.
In this phase, the developers, test engineers, stakeholders, customers, and
end-users team up to plan the testing process schedules, regular meetings,
and deliverables.
Phase3: Release Readiness
➢ The next phase of the Agile testing life cycle is release readiness, where
test engineers have to review the features which have been created entirely
and test if they are ready to go live or not and which ones need to go back
to the previous development phase.
Phase4: Daily Scrums
➢ Daily scrums are the next phase of the Agile testing life cycle, which
involves the daily morning meetings to check on testing and determine the
objectives for the day.
➢ And, in order to help the test engineers to understand the status of testing,
the goals and targets of the day are set daily.
Phase5: Test Agility Review
➢ The last and final phase of the Agile life cycle is the test agility
review. The test agility phase encompasses the weekly meetings with the
stakeholders to evaluate and assess the progress against goals.
➢ In other words, we can say that the agility reviews are implemented
regularly in the development process to analyze the progress of the
development.

Advantages of Agile Testing


For the past few years, Agile software testing has been a significant part of the IT
field. Here, we are discussing some essential benefits of Agile testing:
o Agile testing gives way to get regular feedback and reviews directly from
the end-user, which helps us enhance the software product's quality and
attribute.
o The implementation of agile testing will save lots
of time and money, making the estimation of cost more transparent.
o Through daily meetings, we can determine better issues.
o Agile testing reduces documentation, or we can say it requires less
documentation to execute the agile testing.
o The most significant advantage of implementing Agile software testing is
reducing errors and enhancing software productivity.
o As we understood from the above discussion, the workload is divided into
small parts in agile software development and restricts the developer from
going off the track. And in the results, we will get more minor
inconsistencies and higher efficiency.
Disadvantage of Agile Testing
Agile testing is a creative method to test the software application, but still, we
have some disadvantages of using Agile Testing:
o The most significant disadvantage of agile testing is that if two or more
members leave a job, it will lead to project failure.
o Determination is needed while performing any testing to test the
application or the software and becomes inconsistent for the testing team.
o It makes it difficult for us to predict expected results because there are no
or fewer documentation results into explicit conditions and requirements.
o Sometimes, it leads us to introduce new bugs in the system because the bug
fixes, modifications, and releases repeatedly happen in agile testing.

5 Key Skills Every Agile Tester Should Have


➢ Agile methodology is a widely accepted approach to software
development, and it requires an iterative process that emphasizes
collaboration, flexibility, and speed. Agile testers ensure the software is
delivered on time and meets end users' requirements. However, being an
agile tester is challenging and demands specific skills to succeed in this
field. This blog will discuss the 5 essential skills that every agile tester
should possess.
1. Communication Skills
➢ Communication is one of the most critical skills for an agile tester. The
agile methodology emphasizes collaboration and teamwork, and it is
essential to communicate effectively with other team members to ensure
everyone is on the same page. The agile tester should be able to
communicate clearly and concisely, both verbally and in writing. They
should articulate their thoughts and ideas while actively listening to others.
➢ Good communication skills build trust and confidence with team members,
ensuring that the software meets end-users requirements. Furthermore, the
agile tester should communicate with stakeholders, including the product
owner, development team, and other testers. They should explain the status
of the testing process and any issues or challenges they face.
2. Technical Skills
➢ Agile testers require a good understanding of the technical aspects of
software development. They should be familiar with programming
languages, databases, and other tools used in software development. They
should write and execute test cases, understand the code, and identify
defects.
➢ Automated testing helps to reduce the time and effort required for testing,
improving the software's overall quality. Agile testers should be able to
write automated test scripts and integrate them into the continuous
integration and continuous delivery (CI/CD) pipeline. Moreover, agile
testers should know automated testing tools and frameworks.
3. Analytical Skills
➢ Agile testers should have excellent analytical skills to identify and
prioritize test cases. They should analyze the requirements and identify
critical areas of the software that require testing. They should identify
potential risks and issues and develop mitigation strategies.
➢ Analytical skills help ensure the software meets the requirements and is of
high quality. Furthermore, agile testers should analyze the test results and
identify defects. They should determine the root cause of the problem and
provide recommendations for fixing it.

4. Flexibility and Adaptability


➢ Agile methodology is all about flexibility and adaptability. The agile tester
should adapt to requirements, priorities, and timelines changes. They
should work in a dynamic environment where things can change quickly.
➢ Flexibility and adaptability help ensure the software is delivered on time
and meets end-users needs. Moreover, agile testers should work in a cross-
functional team and collaborate with other team members. They should be
open to feedback and willing to make changes to improve the testing
process.

5. Time Management Skills


➢ Time management is crucial for an agile tester. Agile testers should
manage their time effectively and prioritize their tasks to meet deadlines.
The agile methodology emphasizes delivering software in short iterations
and completing the testing process within the given timeframe.
➢ Furthermore, agile testers should work under pressure and handle multiple
tasks simultaneously. They should balance their testing activities with
other tasks, such as attending meetings and providing updates to team
members. Practical time management skills ensure that agile testers
complete the testing process on time and meet end-users’ requirements for
the software.
Agile Testing Pyramid
➢ The testing pyramid is a testing strategy that can help developers and
testers create high-quality products.
➢ It lets developers quickly identify whether their code changes have caused
any issues, thus saving them time.
➢ Also, it helps QAs to build a powerful test suite.
➢ It was introduced by Mike Cohn in his book “Succeeding with Agile.” It is
one of the popular strategies in software testing that illustrates the
distribution of different types of tests in a test suite.

Testing Pyramid
➢ Test Automation Pyramid Functions at Three Levels
➢ The test automation pyramid is usually divided into three levels, with each
level representing a different type of test as follows,
1. Unit tests
2. Integration tests
3. End-to-End tests

Unit Testing
➢ Unit testing is the base of the test pyramid. It helps test the individual
components of a large codebase.
➢ They are essential as they identify code-level issues that could cause
problems down the line.
➢ According to a recent survey, 97% of businesses consider unit testing as
extremely important in their testing strategy.
➢ It helps developers ensure that each unit of code, such as function or
method, is working as intended, thereby helping them detect bugs in the
initial stages of software development.
➢ Overall, unit testing helps improve code efficiency, thereby helping
developers build a robust product.
Who Performs Unit Tests?
➢ Software developers do unit testing. They are responsible for determining
if their code works or not.
When is Unit Testing Performed?
➢ Unit tests are typically performed during the development phase.

Best Practices for Unit Testing


1. Do not test anything that can not fail
2. Keep your tests simple
3. Ensure to use relevant test data
4. Create readable tests
5. Test one scenario per test
6. Automate your unit tests
7. Write independent tests
8. Have a proper naming convention for your test cases.
9. Make sure your unit tests are repeatable and scalable

Top 5 Tools for Unit Testing


1. NUnit: NUnit is a popular open-source unit testing framework for .NET
applications.
2. JUnit: JUnit is a popular open-source unit testing framework for Java
applications.
3. TestNG: Similar to JUnit, TestNG is also an automation testing framework
that supports Java.
4. Mocha: Mocha is a JavaScript-based testing framework that supports unit
testing. It runs on Node JS and offers multiple features like browser support,
test coverage reports, etc.
5. Unity Test Tools: It is a free testing framework to create and execute
automated tests.
Integration Testing
➢ Integration testing is usually done after unit testing. Here, the individual
components will be tested in a group after developers complete unit testing.
➢ The aim of this testing is to identify bugs after integrating different
software units.
➢ Simply put, these tests focus on how different units of code work together.
It helps ensure seamless interactions between different software
components and how well they work as a single entity.

Who Performs Integration Tests?


➢ Integration testing is usually performed by testers.
When is Integration Testing Performed?
➢ Integration testing is typically done after development is completed
but before the software is released. It is usually followed by unit
testing, which is performed during development to test individual
units in isolation. Once the individual units have been tested, they
are integrated together to form larger components, and then these
larger components are tested to ensure they work together properly.
Best Practices for Integration Testing
1. Start integration testing early
2. Automate your integration testing
3. Create a detailed test plan
4. Test in small batches
5. Include both positive and negative testing
6. Do not test the business logic of your application with integration testing
7. Understand the difference between integration testing and unit testing
8. Keep your unit and integration test suites separate
9. Perform integration testing as part of your CI/CD process

Top 5 Tools for Integration Testing


1. Testsigma
➢ Testsigma is a cloud test automation platform that allows you to
automate various tests like integration tests, GUI tests, and API tests
for mobile, web, and desktop applications in one place. It lets you
automate complex workflows using simple English. It also supports
record and play, where user interactions can be recorded as test
steps.
2. Selenium
➢ Selenium is a widely known open-source test automation platform
for automating integration testing of web applications. It supports
multiple programming languages like Java, Python, PHP, and more.
It provides a record-and-play feature that is best suited for beginners.
But for complex scenarios, testers will have to use programming
languages to create test cases. It is important to note that Selenium
only lets you automate for web browsers.
3. Ranorex
➢ Ranorex is another popular testing platform for web, desktop, and
mobile testing. It supports cross-browser testing of applications as
well. It supports record-and-replay and also supports languages like
C# or VB.NET for code-based testing.
4. Katalon
➢ Katalon is another powerful automation test platform for integration
testing. It supports a wide variety of devices and browsers for cross-
browser testing. Katalon supports record and playback for basic tests
and lets you work with Java and Groovy for complex ones.
5. TOSCA
➢ TOSCA is a great choice for continuous testing. Also, it supports
different types of testing, such as regression testing, SAP testing, and
more. TOSCA supports model-based testing.
End-to-End Tests
➢ End-to-End testing, aka E2E testing, helps test the entire functionality of
the product from start to finish.
➢ It involves testing the entire product’s flow, from the user interface to the
backend.
➢ Here, the QAs will have to test the application from an end-user perspective
using real-world scenarios. Let’s understand this with an example.
Consider that the tester has to test the login page of the application.
What will QA test in E2E testing – They will test all the user scenarios.
That is, the testers will have to perform both positive and negative testing
to test if the application can handle different data. For example, a user
might perform any of the below actions on a login form,
1. Enter a valid username and password
2. Enter a blank username and password
3. Click on login with Google/Facebook button
4. Enter an invalid username and password
5. Click on the signup button

Who Performs End-to-End Tests?


➢ End-to-End testing is performed by QA teams. This is done after functional
and system testing.
When is End-to-End Testing Performed?
➢ End-to-End testing is usually performed after integration testing.

Best Practices for End-to-End Testing


1. Automate your end-to-end tests
2. Use codeless test automation to speed up the test automation
3. Make sure you have proper test data
4. Prioritize your tests
5. Always test from an end-user perspective.
6. Design tests to be realistic that resonate with real-world scenarios.
Top 5 Tools for End to End Testing
1. Testsigma:
Testsigma is a powerful end-to-end testing platform that enables QA
to automate web, mobile, desktop, and API tests in one place. It is
an AI-driven test automation platform that lets you quickly run tests
on the cloud in less time. You can easily write test steps in plain
English using the NLPs and make your testing 5x faster.
2. Avo Assure:
It is a scriptless test automation tool that allows you to test
applications across the web, windows, mobile platforms, and more.
3. testRigor:
testRigor is another popular E2E testing framework that lets you
create robust end-to-end tests.
4. SmartBear:
SmartBear is an end-to-end testing framework that lets you build
and run tests for desktop and web apps.
5. Selenium:
WebDriver Selenium WebDriver is an open-source test automation
platform built on JavaScript. It is one of the easiest tools to test web-
based apps.

You might also like