What is Agile Testing?
Agile Testing is a software testing methodology that follows the principles of agile software development. Agile software development model is considered as an iterative development method where requirements evolve through collaboration between the self-organizing teams and customer. Agile models align the software development with customer needs.
Implications for Agile Testing
- Agile testing must be iterative
Everything in Agile software development model is iterative in nature which includes agile requirement activities, design activities and construction activities. So the testing activities must be iterative
- Agile Testers should not depend on having complete specifications
In agile methodology, the requirements are identified, explored and implemented throughput software development cycle. There is no single requirement phase which produces every requirement specification therefore the test strategies cannot depend on availability of complete specification
- Agile Testers need to be flexible
Testers need to work to best of their ability on the information provided to them at the time. They should also understand the information on which their work is based today could change tomorrow.
Principles of Agile Testing
- Testing is not a phase
Unlike Traditional software development, Testing is an integral part of development phase. Agile teams test continuously to ensure the features implemented during a given iteration are successfully done. In Agile, continuous testing is the way to achieve continuous progress.
- Everyone Tests
In Agile, the job of testing is not assigned to any specific team. Testing is the responsibility of every individual in the team. There are Testers and Developers in the Agile software development team but both perform test to ensure the features in the last iteration are successfully implemented. The testing should be completed as per the give iteration and any incomplete testing means the team has not completed the work in the sprint as it should have.
- Shorten Feedback loop.
The software development has a specific cycle in which the programmer write lines of code, something or someone executes it and provides information about the output and the behaviour. This is known as feedback loop. In traditional software development methods the software is tested only at the end of the development cycle or prior to its release. The feedback loops in traditional models can extend to months and that’s too long. In Agile model, the testing starts from the beginning of the project. Software developers conduct different levels of testing to get different types of information. Automated unit checks the behaviour of individual functions and object interactions. These tests are run often and feedback is provided in minutes.
- The code is kept clean
Due to continuous testing in all development phases, bugs don’t hang around in lines of code in Agile software development model. The Agile teams have to follow a strict internal discipline to fix bugs as they are found. In agile models, resolving bugs is the topmost priority as they need to be resolved in order to get story accepted. If there is bug from the previous story, it is included in the backlog and top priority is given to resolve it. Some experts have an opinion that the bugs should be considered as incomplete features and included in the next sprint.
Thus we can see that Agile Testing takes a different approach to testing and the agile testing methods allow developer to launch application within shorter frame of time.
NisosTech– A custom Software development company