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

Agile

Uploaded by

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

Agile

Uploaded by

Shrushti Gurav
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Agile Testing

What is Agile Testing?


Agile software testing is a methodology that helps developers test their code
continuously and rapidly. This methodology also allows testers to get
immediate feedback from customers.

Main principles of agile testing

The main principles of agile testing are:


 Early and continuous testing: Testers should start testing the software
early in the development process. They should also test the software
continuously throughout the development cycle.
 Whole team approach: In agile development, all team members are
responsible for ensuring the quality of the product. This includes
developers, testers, business analysts, and product owners.
 Frequent deliveries: Agile teams deliver working software frequently,
typically every two weeks.
 Close collaboration: There is close collaboration between all team
members in an agile project. This helps to ensure that everyone is on the
same page and that there are no surprises.
 Customer involvement: Customers involve themselves throughout the
agile development process. They provide feedback at each iteration,
which helps the team to make constant improvements.
 Working software: Agile teams focus on quality software
management during each iteration. This is more important than
documentation or other deliverables.
 Flexible approach: Agile development is a flexible approach. Teams can
change the requirements at any time during the development process.

Most important skills for agile testers


The most important skills for agile testers include:
Strong communication skills: Testers must be able to communicate effectively
with all team members. They also need to be able to understand the customer's
needs and requirements.
Strong technical skills: Testers need to have strong technical skills. They
should be able to understand the code and the technology stack.
Strong problem-solving skills: Testers need to be able to identify and solve
problems quickly. They should also be able to think creatively and come up
with new solutions as needed.
Strong team player: Testers need to be able to work well in a team
environment. They should be flexible and adaptable, and able to work well
under pressure.

Some best practices for agile testing


Some best practices for agile testing include:
Automate as much as possible. This helps speed up the testing process and
enables developers to find more defects.
Use an automated tool to track defects. This helps development teams source
and mitigate bugs quickly and efficiently.
Use continuous integration and continuous delivery. This will help to ensure
that changes happen frequently and that they are always tested before
finalization.
Communicate early and often. Agile teams need to communicate constantly to
be successful. Testers need to be able to effectively communicate with all team
members, as well as with the customer.

Features of Agile Testing


 Agile Testing suggests smart work rather than hard work, hence
facilitating the continuous delivery of products in a most efficient manner
as each team works in a collaborative manner to accomplish the task.
 Testing is done during the development cycle to ensure that the
deliverable should be in a stable state so that the tester can test major
functionality with different perspectives.
 The whole development process is divided into smaller sprints, or they
are called iterations that are delivered to the customers within the given
timeframe.
 It promotes an efficient relationship between the testers and developers to
gain the desired fruits. This also enhances the capability of individuals to
adopt the change required to embrace work processes.
 Instead of being sequential like traditional techniques, agile testing is a
continuous mechanism.
 All the bugs or issues which are recognized in one iteration are corrected
by the agile team within that iteration itself. This simplifies the task of
testing and fixing defects.
 Feedback is provided on an ongoing basis by the testing team to ensure
continuous progress.

Methods of Agile Testing


 Exploratory Testing – In exploratory testing, test design and test
execution are done simultaneously. In this, a tester does every hit and trial
to break the system by using different user behaviors. No detailed
documentation is given to the tester. They focus on the high-risk
scenarios based on their experience.
 Risk-based Testing – Under this method, testing tasks are prioritized
based on the risks. The more critical areas which are prone to greater
risks are tested and rectified first. Any glitches or failures in such areas
may lead to heavy losses or complicated problems like server crashes.
The comparatively less critical or smaller areas are kept for the last, even
if there is any error or glitch in such areas, the losses are nominal and
problems can be corrected with ease.
 FIT Tests – FIT stands for Framework Integrated Test. As the name
suggests, this method is an integration of the tasks of analysts, testers,
developers, and even customers. When this method is used, the result of
the testing comes in three colors, red, yellow or green which depicts the
levels of quality of the software.
 Behavior Driven Development (BDD) – In this method, testing is
conducted on the basis of how the system is supposed to work. The
business analysts and testers communicate to know and understand each
other’s stake prior to the development process and design the software
accordingly. Test scenarios are written in a format the Gherkin
Given/When/Then syntax. The documentation of the scenarios helps to
build tests that can be failed on the initial stage so that further they can
build the software functionality that makes those scenarios pass.

 Acceptance Test-Driven Development(ATDD) – These tests work on


the basis of customers’ point of view on how shall a software work. So
these acceptance tests exhibit the notions of the users so it ensures that
the software works according to the demand for which it was created.

Advantages of Agile Testing


 As the tasks are divided into smaller iterations, it takes less time in
delivering a final product.
 Agile testing is capable of accommodating changes that occur in every
sprint makes it more flexible and adaptive in incorporating change
requirements. So this method is known as the new-age method which is
compatible with the ever-changing technological scenario.
 This method is more efficient as the errors and defects are more closely
figured out due to the expertise of a specialized team of testers and
analysts.
 There is a large room for welcoming feedback from the end-users and
stakeholders so the chances of acceptance of the software by users are
fairly high because it is designed according to their point of view in the
first place itself.
 Documentation work is fairly less due to the usage of reusable
resources in the release of every iteration.

Disadvantages of Agile Testing


 It is certainly true that agile testing is flexible to accommodate changes
and advancements in technology but this advantage has a loophole too.
The changes are not always foreseeable, so they may not be adopted
while releasing the next iteration. In this way, sometimes it
becomes unpredictable for the users with regards to what new will come
up in the next iteration.
 Due to continuous change in requirements sometimes it becomes difficult
to assess the actual effort required to perform the specific task.
Automation can never completely substitute manual expertise so it is
essential to maintain the balance.
 Repetitive release of parts of the software incurs higher expenses.
Each iteration goes through its own development phases so the levels of
development may unnecessarily overlap each other.
 Emphasize less on documentation due to shorter sprints.

Agile Testing Quadrants


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:
Unit Testing
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:
Testing scenarios which may occur and workflow
Implementing the pair testing
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:
Usability testing
Collaborative testing
Exploratory testing
User acceptance testing
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.
Non-functional testing such as Stress testing, performance testing,
and load testing, etc.
Scalability testing
Security Testing
Data Migration Testing
Infrastructure testing

Agile Testing Strategies


Agile testing has four different approaches, which help us to enhance our
product quality.
Iteration 0
Construction iteration
Release End Game or Transition Phase
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:
 Verifying a business case for the project and boundary
situations, and the project scope.
 Summarise the important requirements and use cases that
will determine the strategic trade-offs.
 Plan the initial project and cost valuation
 Detecting the risk.
 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:
Confirmatory Testing
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:
Agile Acceptance Testing
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.
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:
 Support Individuals
 Training of end-users
 Operational People
Similarly, it involves some additional activities as well:
 Back-up and Restoration
 Marketing of the product release
 User documentation
 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.
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.

You might also like