What is Agile testing?

Tram Ho

1. What is Agile Testing?

AGILE TESTING is a test method that follows agile software development rules and principles. Unlike the Waterfall method, Agile Testing can be done right from the start of the project with a continuous combination of development and testing. Agile Testing does not follow the order (ie, it is done only after the code is completed) but it is done continuously.

2. Test Plan for Agile Testing

Unlike the Waterfall model, in the Agile model, Test Plan is written and updated continuously for each stage of the project. The Agile Test Plan includes the types of tests that are performed during that period, such as: test data requirements, infrastructure, test environment, and test results. A typical Agile Test Plan usually includes:

  • Test Scope
  • New functions are being tested
  • The level or type of testing is based on the complexity of the features
  • Load Testing and Performance Testing
  • Considering the infrastructure
  • Plan to minimize risk
  • Provide human resources and test resources
  • Products delivered and important milestones of the project

3. Strategy for Agile Testing

The test life cycle for Agile Testing goes through four stages

3.1. Iteration 0 (Repeat 0)

In the first stage or stage Iteration 0, the initial setup will be done. It consists of identifying personnel for testing, installing test tools, arranging test resources (for example, test devices, test environments, etc.). The following steps will be taken in Iteration 0:

  • Building the main logical test cases (business case) for the project
  • Establish boundary conditions and project scope
  • Outline key requirements and use cases to make sure the software is built according to design
  • Outline one or more project blueprints
  • Identify risks
  • Cost estimates and preparation of a preliminary project

3.2. Construction Iterations

The second test phase is Construction Iterations, most testing will be done in this stage. This stage is thought to be a collection of repetitions of testing to find solutions to existing problems. In Construction Iterations, the agile team obeys the priority requirements in practice: For each iteration, they take the most essential requirements first to execute.

This stage is also divided into two parts, confirmatory testing and investigative testing: Confirmatory testing focuses on verifying that the system meets the requirements of the stakeholders at a Exact time. Investigative testing discovered a problem that Confirmatory testing had missed. In Investigative testing, Testers identify potential issues in the form of reporting defects, which are related to common issues such as integration testing, load / stress testing, and security testing.

In summary, Confirmatory testing has two views for testing: for developers and agile acceptance testing. Both are automated to allow continuous regression testing throughout the life cycle. Confirmatory testing is a method of testing agile conducted on technical characteristics.

Agile acceptance testing is a combination of functional testing and acceptance testing as a group of developers and stakeholders working together. Meanwhile, developer testing is a combination of unit testing and service integration testing. Developers testing verifies both the application code and the database schema.

3.3. Release or Game Phase Transition Phase (Release End Game Or Transition Phase)

The goal of the Release version is to successfully deploy your system. The activities in this phase are to guide end-users, supporters and operators to use the system. In addition, it includes product release marketing, backup and recovery, system documentation and users.

The final testing phase includes full system testing and acceptance testing. To complete the final testing phase without any problems, the tester should test the product more closely while it is in the process of iterating construction (construction iterations).

3.4.Production (Finished product)

After the release stage, the product will move into the product environment.

The Agile Testing Quadrants

Agile testing quadrants divided the whole test process into 4 parts:

a. Agile Quadrant I

The quality of the internal code is the main focus in this section and it covers test cases that are controlled by technology and are deployed to support the test team, which include:

  1. Unit Tests
  2. Component Tests

b. Agile Quadrant II

This phase will carry out the implementation of test cases that follow the main logical flows (main function). Types of tests performed during this period are:

  1. Test the possibilities of scenarios and workflows
  2. Test user experience as a prototype
  3. Pair testing

c. Agile Quadrant III

This section gives feedback on Quadrant 1 and 2. The test cases can be used as the basis for performing automation testing, and many iteration reviews will be conducted to create trust. for product. Types of tests performed during this period are:

  1. Usability Testing
  2. Exploratory Testing
  3. Pair testing with customers
  4. Collaborative testing
  5. User acceptance testing

d. Agile Quadrant IV

This section focuses on non-functional requirements such as performance, security, stability, etc. With this test, the application is created with the expected quality and value. Types of tests performed during this period are:

  1. Non-functional tests like stress testing and performance testing
  2. Security testing involves authentication and hacking
  3. Infrastructure testing
  4. Data migration testing
  5. Scalability testing
  6. Load testing

4. The challenge of QA with agile software development

a) The possibility of error will be much higher for agile, because the document is not the most important part so it can be provided later, thereby causing problems for the QA team b) New functions are introduced quickly, reducing the time available to test teams to determine if the latest features are right for the requirements and whether it really solves business lawsuits. c) Testers are requires a role as a semi-developer d) The test execution cycle happens continuously and continuously e) Very little time to prepare the test plan f) Only a minimum time to perform regression testing g) Tester must change their role from becoming a quality tester or becoming a person who makes quality management requirements h) Changes and updates to requirements that are attributes in agile and it is also the biggest challenge for QA

5. Conclusion

Agile testing is the implementation of testing as soon as possible in the software development life cycle. It requires regular customer participation in the testing process and code as soon as possible. The code must be stable enough to perform system testing. Extensive regression testing can be performed to ensure that the errors have been corrected and tested. And most importantly, communication between teams is what makes agile testing successful !!!

Share the news now

Source : Viblo