The latest state of Agile report shows clear signs of further growth of enterprises adopting Agile. The highest reasons for the third year in a row are: accelerating product delivery at 62% and enhancing their ability to manage changing priorities at 56%, which is not a surprise as organizations respond to growing market demands and customer expectations.
By all means, agile is helping enterprises around the world succeed. For the past five years, the top three cited benefits of agile include: manage changing priorities at 87%, team productivity at 85%, and project visibility at 84%.
Since testers play a crucial role in the quality of the end product, they need to be ahead of the game and adapt to the growing methodology trends. With more organisations adopting Agile, they are looking for testers with Agile experience.
All these aforesaid reasons make it absolutely essential for testers and test managers to take Agile seriously.
As such, there isn’t a methodology called Agile testing, independent of Agile. Agile testing simply happens when software testing methods are applied in Agile environments.
An Agile tester is a tester working in abidance to the Agile manifesto core values which are: individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation and responding to change over following a plan.
Testers in Agile environments would typically be a part of a cross-functional team and would be involved in more than just testing. They may help with requirements gathering, coding and may also get some help in return from non-testers.
Test managers play a key role in in Agile organisations. The test manager’s role is to ensure the testers working in their Scrum teams have all the resources and support to succeed. Test managers serve as mentors to junior testers who may not be very familiar with Agile or with the technicalities of testing.
Unlike waterfall methodologies testing begins very early in Agile. Test managers and testers need to get involved in the release planning, and product vision meetings. Testers who play a key role in the early stages of iterations like sprint planning meetings set the stage for their success.
In addition, testing often within iterations helps balance out the workload. Test managers need to provide a smooth platform to make this happen without testers and developers stepping on each others foots during testing. Overall, this strategy is a win win for whole team, including the testers.
Agile product development cycles are typically very dynamic and require all team members to inspect and adapt everyday. Testers who think beyond the boundaries of testing responsibilities always thrive in these dynamic environments. Proactively working with product owners helps testers be ahead of the game. Pair programming with developers can give testers a boost in gaining a deeper understanding of the inner mechanics of the product being built, inturn helping them anticipate defects.
There has been a steady rise in the use of custom built automated testing frameworks since it’s early implementations in 2004 done by Jason Huggins at ThoughtWorks. Tools built by ThoughtWorks like Selenium help testers and developers build a fully customised automated testing framework. Once the framework’s key components are built, test cases can be run against it automatically using a continuous integration tool like Jenkins. Testers who can write automated test cases and frameworks improve their productivity several folds, making them highly resourceful.
As simple as it may sound, this is probably the most important trick. Often times, testers who think that non testers don’t have the same goals and visions as them, fail terribly in Agile environments. The saddest thing is that they don’t even know that they are failing since their faults are so subtle in nature. Testers who truly feel a part of the same team as developers, requirements analysts, and others are the ones who gain the trust of non testers, hence they thrive in Agile environments.
I have observed time and time again that testers who swarm on tasks in pairs complete the task much faster and the quality of testing ends up being much better. The reason for this is while one tester is running tests, the other is subtly keeping check on the details of quality. Additionally, testers who work in pairs can learn from each other’s skills and experience. Pair testing, or pair work is used by many Agile organisations and is almost considered a standard which makes it a great habit to cultivate for testers.
Test managers who encourage test driven development (TDD) indirectly empower testers because the test cases are written before the actual development begins hence giving testers more say in the product lifecycle. This approach also creates a clear roadmap for the developers to use. Testers who understand TDD speak the same language as developers and are not conflicting with the energy of the group.
- The state of Agile report has shown that Agile has accelerated product delivery, enhanced the ability to manage changing priorities for organisations that used Agile in the last year.
- There is no literal Agile testing methodology independent of Agile. Agile testing happens when software testing methods are applied within Agile frameworks.
- 6 tricks of testers to thrive in agile environments are: Test early and often, think beyond testing, go automatic with testing, be authentic and friendly with non-testers, employ pair testing, and encourage test driven development.
Agile has clearly taken over the majority of the software development market leaving no other option for testers but to learn ways to thrive in it. Testers who take Agile seriously make quick progress not only in their career but also in improving their hard and soft skills.
The key here is to not get stuck in paradigms of best practices of agile testing but instead, to dynamically seek to continuously improve your testing methods within the Agile environment and never stop!