by Rema Sreedharakurup, Senior Quality Assurance Engineer
It seems today that no discussion about software development is done until someone brings up ‘Agile.’ And for good reason, as Agile is all about agility – an Incremental and iterative delivery model which focuses on business value, encourages flexibility and rapid adoption to change. It’s based on collaborative efforts to achieve common goals.
The agile principles & values are very short and sweet, but in the real world, Agile is not that simple. Remember, it’s a collaborative effort that requires people – Developers, Testers, all the folks involved in the product development who are trying to perform their best in this transforming phase and get things DONE… all the while trying to get accustomed to new processes that get introduced to improve delivery, and where output is expected quickly. Though, as Albert Einstein once said, “in middle of difficulty lies opportunity.” Hence for me as a Test Engineer, this transition to Agile opened up a wide array of opportunity where I could wear many hats – as a developer, as a tester, a customer advocate, a constant learner, and much more.
Here’s how I see each of these hats fitting my head, and perhaps yours, too.
Testers as developers
The testers in a typical agile project need to have a development background. The benefit with this is that it will allow a tester to more easily take the role of the programmer to develop pieces of functionality when demand arises. Again, Agile requires rapid adoption to change.
Become the customer
Testers are generally thoughtful, analytical problem solvers, and they often add a unique perspective to a team in terms of identifying potential roadblocks and dependencies early in the process. They act as a advocate to the customer, echoing customer needs while working closely with the developers. Wearing this hat, testers have the opportunity to analyze the quality of the code at the same time catch forth-coming roadblocks early in the development cycle.
The development and analytics capabilities of a tester can add value throughout the development cycle by identifying unit test scenarios, edge cases, validations, flows, errors, and exception handling gaps that the developers may have missed.
Release Code to Production
One of the best practices followed in Agile release is to have the release bundle deployed in a test environment prior to deploying in production. This activity is typically handled by the testing team and tracked by the testing team to ensure that the right version of the code is deployed. This allows the testing team to catch any environmental related issues prior to deploying in production. It also helps the testing team to identify key release related dependencies/activities that may not be mentioned in the implementation or deployment guide. The testers can then maintain such information in a checklist to ensure smooth production release.
Create Test Strategy and Test Plan as project demands
Test Strategy that describes how the system is usually tested and Test plan for each release needs to be developed by the QA team depending upon the project and the decisions made without which manging testing will be tough .
Create Automated Regression Suite
As agile cycles are comparatively short in duration, it becomes impossible to manually regression test the product release especially when new features are added after release. It is mandatory for any long-running agile project with multiple releases to have automated regression test suite, as this frees up a lot of testers’ and developers’ time to focus on other important elements — such as exploratory testing of new features. This also ensures full test coverage of all existing features.
Maintain Test Automation Backlog
Automation backlog allows for maintaining backlog of all automation test requirements identified during product release. This will contain requirements for adding new automation test scripts, and improvements to existing scripts. A classic example would be a requirement identified as part of a defect that was missed in previous release.
Agile offers testers a wonderful arena in which to prove & improve their skill set. Opportunities to interact continuously with development team and with business leaders opens new areas for learning — such as new technology challenges, improving analytical and coding skills, improving business acumen and much more.
Shifting to an agile methodology can be an arduous process, but if you embrace it and commit to working through its rough parts, it can also be a very beneficial process for all parties involved. And if, as a tester, you find yourself trying on a bunch of new hats, just remember that you’re also greatly building up your own bank of knowledge and expertise.