Agile Testing

Linh Doan Thi Thuy
TrueMoney Engineering
5 min readDec 5, 2019

What is Agile testing?

Agile Testing is a software testing practice that follows the principles of agile software development. Agile Testing involves all members of the project team, with special expertise contributed by testers. Testing is not a separate phase and is interwoven with all the development phases such as requirements, design and coding and test case generation. Testing takes place simultaneously through the Development Life Cycle.

Furthermore, with testers participating in the entire Development Lifecycle in conjunction with cross-functional team members, the contribution of testers towards building the software as per the customer requirements, with better design and code would become possible.

Agile Testing covers all the levels of testing and all types of testing.

Principles of Agile Testing

The principles of Agile testing are −

Testing moves the project forward − Continuous testing is the only way to ensure continuous progress. Agile Testing provides feedback on an ongoing basis and the final product meets the business demands.

Testing is not a phase − Agile team tests alongside the development team to ensure that the features implemented during a given iteration are actually done. Testing is not kept for a later phase.

Everyone tests − In agile testing, the entire team including analysts, developers, and testers test the application. After every iteration, even the customer performs the User Acceptance Testing.

· Shortening Feedback Loops − In Agile Testing, the business team get to know the product development for each and every iteration. They are involved in every iteration. Continuous feedback shortens the feedback response time and thus the cost involved in fixing it is less.

Keep the Code Clean − The defects are fixed as they are raised within the same iteration. This ensures clean code at any milestone of development.

Lightweight Documentation − Instead of comprehensive test documentation, Agile testers −

o Use reusable checklists to suggest tests.

o Focus on the essence of the test rather than the incidental details.

o Use lightweight documentation styles/tools.

o Capture test ideas in charters for exploratory testing.

o Leverage documents for multiple purposes.

Leveraging one test artifact for manual and automated tests − Same test script artifact can be utilized for manual testing and as an input for automated tests. This eliminates the requirement of Manual Test Documentation and then an equivalent Automation Test Script.

“Done Done,” not just done − In Agile, a feature is said to be done not after development but after development and testing.

Test-Last vs. Test Driven − Test Cases are written along with the requirements. Hence, development can be driven by testing. This approach is called Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD). This is in contrast to testing as a last phase in Waterfall Testing.

The Agile Testing Quadrants

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

--

--