SDLC methodologies are evolving and so are QA teams. It is well established that the essence of Agile teams is close collaboration and flexibility to adapt. Yet, many agile teams still practice the waterfall principles disguised as Agile.
But adopting Agile is not simply about switching SDLC methodologies. It is as much about the mindset. Testers need to cultivate the agile state of mind that allows them to think afresh. How to break away from the traditional mindset and processes like V-model, SDLC, and waterfall etc? And what are some traits that an Agile tester must possess in terms of technical know-how and soft skills?
Think like an Agile Tester
Quality assurance over testing: In the DevOps and agile model, testing is no longer a phased activity but rather a continuous process. The Agile tester knows that the job is not simply checking off tasks like executing tests scripts, reporting bugs and signing off releases. It is only part of the bigger picture – Continuous Quality Assurance.
Primary testing skills: Knowledge of basic skills like automated testing, test driven development, acceptance test driven development and manual testing is a plus. They also need to master the art of continuous everything.
Technical judgment: Agile testers need to have the technical expertise to judge which tests need to be automated at what layer. Also to choose the right set of tools for testing. Ideally, they should be able to create various automation suites like smoke packs, full regression packs etc.
Self-motivation: Unlike other SDLC methodologies, Teamwork in Agile demands that there is self-direction to make independent decisions. Very often testers manage themselves and makes the right calls without being led and directed at all times.
Business value: Every development cycle should have customer expectation and business value of a release as its focal point. The Agile tester has his/her pulse set on this and provides useful metrics to the business.
Continuous feedback: One of the main advantages of agile development is the shrinking feedback loop. Testers thus need to be on the top of their game at any point in the sprint. Testing continuously minimizes the execution time to get quick feedback. The methods or means to provide the feedback may change. Be it pair programming, code reviews, automated integration tests, automated regression tests, exploratory testing. Or simply a combination of manual and automated testing.
Continuous learning: Testers must be thoroughly prepared and educate themselves in terms of processes and workflows. This helps them to secure buy-in and have a say in the business. An insight into best practices that govern the landscape of agile testing is also necessary.
Adaptability is one of the hallmarks of agile testing to enhance the overall quality and offer more value. Above all, each tester must be a cross-functional team member – open and flexible with a sense of ownership to the release. Interpersonal skills and attitude matter as much as technical competence.
Introduce Agility to former SDLC Methodologies
1) Include Continuous Integration tools
Regression runs can be carried out overnight or over the weekend. Compare this to manually entering and monitoring scripts during working hours and there’s no contest on regression speed and efficiency. But you will need Continuous Integration (CI) tools like Jenkins-CI to be able to manage automated regression runs.
There are a lot of other very strong reasons for introducing CI tools. As a starting point, there’s early defect detection, reduced overheads, better project visibility and reduced assumptions.
2) Automate more
There is always a little controversy in deciding the right amount of testing to automate. But common sense should prevail. If it is more time-efficient to create automation scripts once and re-use them, then that is what should be done.
But don’t stop when you have created test automation scripts. There can be many other elements outside of the core testing that can be automated. For example, think about automating the loading of the software to be tested, configuring servers and posting results.
3) Connect all the pieces
Any setup where the individual components do not talk to each other means your efficiency will be leaking away. Manual processes and even (shock horror!) copying and pasting will show you that your testing process is not at peak efficiency.
So, even if it’s tougher at the beginning, integrate the core tools in your testing portfolio. Ideally, having a QA test management tool at the centre will be crucial to gain total control on your testing process. The test management tool will talk to and share information with every other core system you use, which will increase visibility of your whole quality process and create multiple efficiencies.