What is Agile Testing?
Agile is the process of incremental, iterative development of a product; with shorter cycles and quick feedback loops. This is the new standard process of product development adopted by most software companies replacing the earlier waterfall model.
With Test being an essential leg of software development, it is essential that Test also adapt to the Agile style of development. Now the question arises; how does the role of a Test Engineer change with this evolving process? Earlier, in the waterfall model, test engineers came in at the last phase; in agile, the objective is to bring quality to the product while it is being developed. Let us look at how this new role of a Test Engineer is incorporated here in Celestial.
We began by defining how we should change our work culture in Test Engineering which would not only adapt to the new process but also bring quality in.
These are process changes that have been incorporated in our test team.
1. UNDERSTAND REQUIREMENTS AND GIVE INPUTS EARLY ON
We review the requirements of the product during the requirement phase where the stakeholders and developers are ironing out and fine tuning them. Our team contributes by giving constructive feedback and identifying loopholes or corner cases that other teams may have overlooked. This process is not only valuable for other stakeholders but also for the test team, as we become familiar with the product from its very inception. Early engagement also has the benefit of the Test team getting acquainted with technologies or tools that maybe required for the project in the early stages itself.
Communication is a necessity in any field. In an agile environment it gains even more importance as requirements are always at flux. Requirements may change, get added and or be omitted. One must be abreast with these changes. Hence, communication with other team members is a necessity without which there might be unprecedented risks during the test cycles. It is important that team members collaborate over some collaborative tools and are active participants in it. We, in Celestial, use Atlassian Confluence for our collaborative purpose.
3. DAILY SCRUM
We have daily scrum meetings to prioritize or re-prioritize our tasks based on the current understanding of the project. It also helps us know what each team member is working on and if the workload can be reallocated based on the needs of the project.
Documentation is a tricky part of the process. A fine line must be drawn between too much and too little. With faster paced cycles of testing, it becomes important to identify core pieces and to succinctly summarize its information for documentation.
5. AUTOMATION WITH LESS EMPHASIS ON MANUAL TESTING
- The goal should be to move away from manual and towards automation testing.
- Manual testing should be restricted to new features being developed, as they cannot be automated at the onset.
- This makes it important that all test engineers are capable of automation. In our team, every team member is allocated responsibility for automating a piece of the project during every sprint which helps in increasing the regression suite.
- A major chunk of automation is brought to a layer below the GUI layer.
- API automation becomes of utmost important. This enables early immersion of test engineers into automation.
- Running time of tests is reduced as API suites run in seconds.
- UI Tests are expansive and time consuming, not only to write but also to run. Most importantly, test engineers cannot engage in them till the very last phase when the UI is fully developed.
Agile testing, thus, has an inverted pyramid compared to the standard waterfall model, with emphasis on the middle layer.
From the above diagram, it can be observed that the emphasis moves to the middle layer, which provides the highest ROI from automation.
In summary, agile testing is an adaptive inclusion of testing to the larger entity, agile development. Early immersion into product development, smarter test engineers and efficient processes ensure that qualitative testing is emphasized over the quantitative one.