Agile Testing has been an evolving methodology we’ve been seeing over the last 3 to 5 years. The popularity of this methodology can be accredited to several reasons such as the product development lifecycles and Go to market cycles (GTM) are shrinking in the light of ever changing business dynamics. Everyone wants to put the product out in the market as soon as possible capturing the customer share as soon as possible to gain control on the changing business dynamics. Agility, it seems is paying dividends for such short GTMs and providing a quick ROI.
In this article, I will be talking about how agile testing is different from normal traditional testing methodology. To do this, let us look at a simple definition of Agile Testing and the principles behind the Agile Testing.
The word “Agile” itself goes with the meaning “move quickly” and so the testing. In agile testing, no conventional testing practices are applicable to wait until the entire development cycle activities are completed, whereas the testing is closely intact with the development and is done in parallel as and when a piece of code is developed.
Some of the principles behind the Agile Testing [Reference: Agile Manifesto] are:
- Customer satisfaction by rapid agile scrum (sprint) process, continuous delivery of useful software
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress
- Even late changes in Testing Requirements are welcomed
- Close, daily cooperation between business people and developers
- Face-to-face conversation is the best form of communication
- Projects are built around motivated individuals, who should be trusted
- Continuous attention to technical excellence and good design
- Self-organizing teams
- Regular adaptation to changing circumstances
Let us now draw the advantages of Agile testing from this definition and principles:
- Take away #1 from definition: The word “Agile” itself goes with the meaning “move quickly”
In today’s hasty world, stakeholders and customers want quick return on their investments. They don’t want to wait for longer periods for a full featured product. As a result, nowadays new software testing paradigm is catching momentum, i.e., Scrum approach. In agile scrum (sprint) process, projects are divided into small components to be developed and then to be tested in specific time-slice called as sprint (small cycles). Each feature should get developed and tested in a specified small time-slice.
- Take away #2 from definition: In agile testing, no conventional testing practices are applicable
In the conventional development process which is based on phases, each phase goes through thorough a lengthy validation before triggering the next stage while Agile testing does not emphasize rigidly defined testing procedures, but rather focuses on testing iteratively against newly developed code until quality is achieved from an end customer's perspective. In other words, the emphasis is shifted from "Testers as Quality Police" to something more like "entire project team working toward demonstrable quality."
- Take away #3 from principles: Self-organizing teams
Cross functional Team work is at the heart of Agile Testing. There is no “my work”, “I have finished my work” and “your work”. On an Agile team, we find only “Our work”, “we have completed our Sprint”. Individuals will have helping tendency for sharing technical knowledge. Agile Members are always available to team members rather than locked away behind closed doors. Team Lead will always motivate the teams and create a supporting learning environment. Team will always be sprint-oriented and often discuss smooth run of the sprint. An Agile team’s job is to self-organize around the challenges and management’s job is to remove impediments to self-organization.
- Take away #4 from principles: Close daily interaction and cooperation between business people and developers
Good communication must exist among team members of development team, testing team, business analysts and stake holders. There must be highly collaborative interaction between client and the delivery teams. It implies more bandwidth for communication.
- Take away #5 from principles: Working software is the principal measure of progress
The fundamental measure of progress is measuring things that are finished. Software is finished when it is successfully tested and delivered. Software progress is not “70% done coding”. Software is finished when it is tested and accepted by the (key) end-user. Working software is defined as tested software that delivers value to the end-user
Agile Testing Process, when implemented correctly and adequately, has a lot of benefits to offer. Reap those benefits, to make your software a success by proactively planning for these above areas well in advance. In turn, customers will appreciate the results or updates – and can also react quickly to any potential problems. The team can deliver high value software features in a short time period, keeping everyone on top of changing business conditions.
HARISH CHAUDHARY FREE LANCE TECHNICAL WRITER is a young, motivated and dynamic Software Quality Engineer,worked for QAInfoTech Pvt.Ltd.
He is passionate for Security and Penetration Testing to safeguard Data from hackers. He is a keen orator and has won himself a position by participating in testing conference organized internally at QA InfoTech as well as presented paper on "Assuring Data Security by penetration Testing" at 11th International Software Testing Conference 2011.
He is Master of Computer Applications from Guru Gobind Singh IndraPrastha University. Harish holds Diploma in Software Engineering and is also Microsoft certified SQL 2005 professional.Now working as a Information Security Researcher.