Agile testing is an iterative and incremental approach to software testing that is performed in a highly collaborative manner by self-organizing teams within a control framework. High quality and adaptive software is developed by small teams using the principles of continuous design improvement and testing based on rapid feedback and change. Agile testing is a software testing practice that follows the rules of the agile manifesto, treating software development as the customer of testing.
Principles of Agile testing
I. Supports clients changing requirement even in late development phase too.
II. Testers should be embedded in agile team.
III. Agile testing must be iterative.
IV. Testers cannot rely on having complete specification. They need to be independent and independently empowered in order to effective.
V. Deliver working software frequently, from a couple of weeks to a couple of months, with preference to the short time scale. So, QA need to test software continuously and iteratively.
VI. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. So, be close to the developers.
VII. Continuous attention to technical excellence and good design enhances agility.
VIII. The best architecture, requirements and designs emerge from self-organizing teams
IX. At regular intervals, the team reflects on how to become more effective, then tunes and adjust behaviors accordingly.
X. Define when to continue or stop testing before delivering the system to the customer. Specify which evaluation criteria is to be used (e.g. time, coverage, and quality) and how it will be used.
XI. Stipulate the real meaning of “Done”.
XII. Focus on value added activities.
XIII. Focus on sufficient and straightforward situations.
XIV. Focus on regression and exploratory testing.
XV. Be flexible to contribute in any way and be teamplayer
XVI. Focus on What and Not How to test.
Key challenges for a tester on an agile project:
Implementing complete new environment is definitely a challenge .Despite of agile being flexible and simple, tester may face some challegenes during their testing phase. Such as:
I. No traditional style business requirements or functional specification documents. We have small documents (For e.g. story cards developed from scrum board in Trello ). Any additional details about the feature are captured via collaborative meetings and discussions.
II. We will be testing as early as practical and continuously throughout the lifecycle so expect that the code won’t be complete and is probably still being written.
III. Acceptance Test cases are part of the requirements analysis process as we are developing them before the software is developed
IV. The development team has a responsibility to create automated unit tests which can be run against the code every time a build is performed.
V. With multiple code deliveries during the iteration, regression testing requirements have now significantly increased and without test automation support, ability to maintain a consistent level of regression coverage will significantly decrease