Agile Model¬†shows an iterative and incremental approach. This approach breaks the product into small incremental units to provide iterations. Then each iteration involves steps like Planning, Requirement Analysis, Design, Coding, Unit Testing, Acceptance Testing, etc. This approach also allows continuous interaction with the customer for their feedback and corrections in the requirements at regular intervals. Agility is flexibility, it is a state of dynamic, adapted to the specific circumstances.
Agile Testing can begin at the start of the project with continuous integration between development and testing. Agile Testing is not sequential (in the sense it’s executed only after coding phase) but continuous.
An agile team works as a single team towards a common objective of achieving Quality. Agile Testing has shorter time frames called iterations (say from 1 to 4 weeks). This methodology is also called release, or delivery driven approach since it gives a better prediction on the workable products in short duration of time.
Test Plan for Agile
The agile test plan includes types of testing done in that iteration like test data requirements, infrastructure, test environments, and test results. Typical test plans¬†in agile includes,
- Testing Scope
- New functionalities which are being tested
- Level or Types of testing based on the complexity of the features
- Load and Performance Testing
- Infrastructure Consideration
- Mitigation or Risks Plan
- Deliverables and Milestone
Agile Testing Strategies
Agile testing life cycle spans through four stages, which are explained as follows.
(a) Iteration 0
The following steps are set to achieve in Iteration 0
- Establishing a business case for the project
- Establish the boundary conditions and the project scope
- Outline the key requirements and use cases that will drive the design trade-offs
- Outline one or more candidate architectures
- Identifying the risk
- Cost estimation and prepare a preliminary project
(b) Construction Iterations
The second phase of testing is Construction Iterations, most of the testing occurs during this phase. This phase is observed as a set of iterations to build an increment of the solution.¬† To do that, within each iteration, the team implements a hybrid of practices from XP, Scrum, Agile modeling, and agile data and so on.
(c)¬†Release End Game Or Transition Phase
The goal of ‚ÄúRelease, End Game‚ÄĚ is to deploy your system successfully into production.¬† The activities include in this phase are a training of end users, support people and operational people.¬† Also, it includes marketing of the product release, back-up & restoration, finalization of system and user documentation.
After the release stage, the product will move to the production stage.
The Agile Testing Quadrants
The agile testing quadrants separate the whole process in four Quadrants and help to understand how agile testing is performed.
a)¬†Agile Quadrant I‚Äď The internal code quality is the focus in this quadrant, and it consists of test cases which are technology driven and are implemented to support the team, it includes
- Unit Tests
- Component Tests
b)¬†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
- Testing of examples of possible scenarios and workflows
- Testing of User experience such as prototypes
- Pair testing
c)¬†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
- Usability Testing
- Exploratory Testing
- Pair testing with customers
- Collaborative testing
- User acceptance testing
d)¬†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.
- Non-functional tests such as stress and performance testing
- Security testing with respect to¬†authentication¬†and hacking
- Infrastructure testing
- Data migration testing
- Scalability testing
- Load testing
Advantages of Agile model:
- A realistic approach to software development.
- Promotes teamwork.
- Eliminates mismatch between requirements and test cases.
- Rapid and requires minimum amount of resources.
- Suitable for large and long-term projects.
- Good for changing requirements.
- Easy to manage.
Limitations of the Agile model:
- Not suitable for complex projects.
- Requires heavy amount of interaction with the customer which may cause a delay.
- Misguidance of requirements may cause the incorrect development of the software product.
- Increased maintainability risk.
- Handover to another team may be quite challenging.
Agile testing involves testing as early as possible in the software development lifecycle. It demands high customer involvement and testing code as soon as it becomes available. The code should be stable enough to take it to system testing. Extensive regression testing can be done to make sure that the bugs are fixed and tested.