Agile Testing

Tram Ho

What is Agile Testing?

AGILE TESTING is to perform testing in accordance with the rules and principles of agile software development. Unlike Waterfall methodology, Agile Testing can begin at the beginning of a project with continuous integration between development and testing. The Agile Testing method is not sequential (ie it is executed only after the development phase) but continuous. In this article, we will discuss:

  • Agile test plan.
  • Agile testing strategies.
  • Quartile testing Agile.
  • QA’s challenge with Agile software development.
  • Agile Process Automation Risks.

I. Agile Test Plan

The Agile test plan includes the types of tests performed in that iteration such as test data requests, testing infrastructure, test environment, and test results. Unlike the waterfall model, in the agile model a test plan was written and updated for each release. Typical testing plans in agile include:

  1. Test scope
  2. New functions are being tested
  3. Testing Level or Types is based on feature complexity
  4. Load and performance testing
  5. Infrastructure review
  6. Mitigation or risk plan
  7. Power
  8. Transfers and milestones

II. Agile Testing Strategies

The Agile testing life span spans four stages

Iteration 0

In the first phase or 0 iteration, you perform the initial setup tasks. It includes defining who to test, installing test tools, scheduling resources (usability testing lab), etc.The following steps are set up to be achieved in Repeat 0

a) Establish the profession for the project

b) Set the boundary conditions and scope of the project

c) Outline key requirements and use cases that will drive design trade-offs

d) Outline one or more candidate architectures

e) Risk identification

f) Cost estimation and preparation of a preliminary project

Construction Iterations

The second stage of the rapid test method is Build Repeat, most testing occurs in this phase. This phase is observed as a set of iterations to build the solution increment. To do that, in each iteration, the team combines practices from XP, Scrum, Agile model and agile data, etc.

During a construction iteration, the agile team follows the practice of a priority requirement: With each iteration, they take the remaining essential requirements from the work item stack and execute them.

The elaborate repeat process is divided into two, the validation test and the investigative test. The validation test focuses on verifying that the system meets the stakeholder intentions described for the group so far and is performed by the team. During the investigation test uncovered an issue that the validation team had ignored or ignored. In Investigation testing, testers identify potential problems as error stories. Investigation testing solves general issues like integration testing, load / stress testing, and security testing.

Again, validation testing has two aspects: developer testing and rapid adoption testing. Both are automated to enable continuous regression testing throughout the life cycle. The validation test is a fast equivalent of the test to the specification.

Agile acceptance testing is a combination of traditional functional testing and traditional acceptance testing when the development team and stakeholders work together. While developer testing is a combination of traditional unit testing and traditional service integration testing. Developer Testing verifies both the application code and the database schema.

Release End Game Or Transition Phase

The goal of “Release, End Game” is to successfully put your system into production. Activities included in this phase are the training of the end user, supporters, and operators. In addition, it includes marketing of product release, backup and recovery, system completion and user documentation.

The final phase of rapid method testing consists of full system testing and acceptance testing. To complete your final testing phase without any setbacks, you must test the product more rigorously as it is in the build iteration. While the game is over, the tester will work on its error stories.

Production

After the release stage, the product will move to the production stage.

III. The Agile Testing Quadrants

The agile test quadrant separates the whole process into four quadrants and helps to understand how the quick test is performed.

Agile Quadrant I

Internal code quality is the main focus in this quadrant, and it covers the tech-driven test cases and is deployed to support the team, it includes

  1. Unit test
  2. Ingredient testing

Agile Quadrant II

It contains business-driven test cases and is deployed to support the team. This quadrant focuses on requirements. The type of testing to be done in this phase is

  1. Check out examples of possible business scenarios and processes
  2. Test user experience such as prototypes
  3. Test in pairs

Agile Quadrant III

This quadrant provides feedback for quadrants one and two. Test cases can be used as the basis for performing test automation. In this quadrant, many rounds of repeated reviews are done to build confidence in the product. The type of test done in this quadrant is

  1. Check usability
  2. Exploration test
  3. Pair the test with the customer
  4. Collaborative test
  5. Check for user acceptance

Agile Quadrant IV

This quadrant focuses on non-functional requirements such as performance, security, stability, etc.With the help of this quadrant, the application is made to deliver non-functional qualities and expected value.

  1. Non-functional testing such as stress and performance testing
  2. Security checks related to authentication and hacking
  3. Infrastructure check
  4. Data migration test
  5. Check for scalability
  6. Test the load

V. QA challenges with agile software development

a) More error probabilities in flexibility, as documentation is given less priority, ultimately putting more pressure on the QA team

b) New features are introduced quickly, reducing the time available for test teams to determine if the latest features are in line with the requirements and whether it really suits the business. are not

c) A tester is often asked to play a ported developer role

d) The test execution cycles are heavily compressed

e) Very little time to prepare test plans

f) For regression testing, they will have a minimum time

g) Change their role from the role of gatekeeper of quality to partner on Quality

h) Required changes and updates inherent in an agile approach, becoming the biggest challenge for QA

BECAUSE. Risk of Automation in Agile Process

  • Automated user interfaces provide a high level of reliability, but they are slow to implement, easy to maintain, and expensive to build. Automation may not significantly improve test productivity unless testers know how to check
  • Unreliable tests are a major concern in automated testing. Correction of failed tests and solving problems related to brittleness should be a top priority to avoid false positives.
  • If the automated tests are started manually instead of via CI (Continuous Integration) then there is a risk that they will not run as often and may cause test errors as possible.
  • The automatic test is not a substitute for the probe manual test. To obtain the expected quality of product, a combination of the test type and grade is required
  • Many automation tools available on the market provide simple features such as automating the capture and playback of manual test cases. Such a tool encourages testing through the user interface and leads to an experiment that is inherently brittle and difficult to maintain. In addition, storing test cases outside of the version control system creates unnecessary complexity
  • To save time, many times poorly planned or unplanned automation test plans result in test failure
  • The test set-up and reject process is often overlooked during test automation, while Performing a manual test, the process of setting up and rejecting a test sounds seamless.
  • Productivity metrics, such as some of the test cases created or executed every day, can be significantly misleading and can lead to a large investment in running useless tests.
  • The members of the rapid automation team must be effective consultants: accessible, collaborative and resourceful, otherwise the system will quickly fail.
  • Automation can propose and deliver test solutions that require too much ongoing maintenance for the value provided.
  • Automated testing can lack the expertise to formulate and deliver effective solutions
  • Automated testing can be so successful that they run out of important problems to deal with and thus move on to the unimportant ones.

Conclusion

Agile method in software testing involves testing as early as possible in the software development lifecycle. It requires high customer engagement and test code as soon as it’s available. The code should be stable enough for system testing. Extensive regression testing can be performed to ensure that the errors have been corrected and checked.

Resources: https://www.guru99.com/agile-testing-a-beginner-s-guide.html https://reqtest.com/testing-blog/agile-testing-principles-methods-advantages/

Share the news now

Source : Viblo