How Agile transformed Testing
Testing – the island of bugs and production failures, where products and apps crash after a long development trip. Any plan that defers testing to the end of the project is broken.
Thankfully, this changed in the past decade, as software development embraced Agile as a mindset and consequently implemented agile development practices as a way of working. Thus, having continuous feedback loops through implementation lifecycle and spotting those issues in proactively.
Using concepts like CI (Continuous Integration) and CD (Continuous Delivery) imply that testers need to collaborate well with the programmers and contribute equally to the development & operations area.
Agile Testing has new implications for testers out there
Business mindset: Agile is customer-centric in order to deliver as much value as possible to them. Testers should embody customer (client and product beneficiaries) expectations, desires and concerns and develop their testing strategies accordingly.
Automation: testers should go beyond test creation and execution and focus on code delivery and integration too. At the same time, testers will need to grow their automation skills and become more involved in the entire software development process.
Also, the frequency of change makes the speed of regression testing incredibly important, because the code should be tested every time a change is committed. This means you need to automate your tests as much as possible—manual testing simply takes too long.
Learning: this should be one of the key activities of a tester, to continuously learn in order to keep up with the product you’re testing and the technologies you’re encountering, as well as the testing itself.
Testing is iterative: In Agile, you deliver working software frequently and its nature and activities are iterative. Thus so are the testing activities.
Embrace change and uncertainty: there isn’t a single requirements phase which produces a comprehensive requirements specification, therefore your test strategies cannot rely on having a complete specification available. Be present in planning & estimations meetings, understand the scope and having a business mindset will help you manage all this unknown and change that is encountered. Testers must be prepared to work to the best of their ability, with the information provided to them at the time, with the awareness that tomorrow may change.
Feedback: agile time frames are shorter than on a traditional project, and testing needs to provide quick feedback about project quality on a regular basis. Daily stand-up meetings, design discussion or review meetings, the user story verification status, and sprint retrospectives all require constant feedback from testers.
Communication: quality is everyone’s responsibility and testers are quality drivers, that serve as internal experts. They should be able to clearly communicate testing needs and reason their requests.
Collaborate and contribute: you’ll be working with on-site – off-site developers, designers, clients, product owners, and so forth, closer than before. You share the same purpose of delivering quality working software. Don’t be a tester just to break the work of a colleague. Be a tester to build great software with your team.
Testing is a key component of agile development.
Testing is not an end phase anymore. It’s is an essential, continuous, integrated phase of an iterative development process that measures the progress and quality of your product.
Here are some great resources that may help you grow your know-how about Agile Testing:
10 books that every tester should read