This is a guest post by Nishi Grover Garg.
Agile testers need to constantly rethink their processes and tooling in order to move toward faster and more reliable software delivery. The key there is to embrace the continuity. Continuous delivery is necessary for agile development, and that cannot happen without having continuity in testing practices, too.
Continuous testing can be defined as a methodology focused on continuous quality and improvement. It can use a number of practices and tools to help do that.
Continuous testing encompasses the verification and validation of each piece of the software under development to ensure:
- Code quality — Are developers creating code of good quality?
- Application correctness — Are developers creating the correct features?
- Place in the pipeline — Can the application code flow through the pipeline and across environments and specified tests successfully and easily?
- A good customer experience — Are users seeing value in the delivered application?
Continuous testing is the way toward continuous delivery. Teams that struggle with continuously delivering on time or with high quality often find the solution to their problems by setting up good continuous testing practices.
Here are some tips to improve your continuous testing framework and help your DevOps succeed.
Ensure test automation is the best fit
Test automation is the process of automating a set of tasks by use of a software. Agile teams require their testers to be able to test new features every sprint while also continuously verifying older functionalities repeatedly. This overload of regression tests requires the assistance of automation, so test automation is no longer a luxury for agile teams; it’s a necessity.
Testers can find several useful tools to automate their tests, whatever technology they’re using. Finding the best-suited tool is a crucial step for ensuring their success in delivering high-quality software within the tight deadlines of agile.
Leverage automation benefits in all aspects
For continuous delivery, testers need to be able to continuously provide test results, find issues, advise on residual risks and share useful test reports. They must automate as many of these tasks as possible by using good test automation tools.
Test automation helps to achieve continuous testing by:
- Fitting in the automation of functional tests
- Creating suites that can be triggered
- Executing tests repeatedly on various platforms and environments
- Maintaining the same configuration for all relevant tests
- Providing useful run reports
- Engaging the entire team in the conversation about quality
Select the right tools
DevOps is not a single methodology or practice. It is a mindset that requires setting up a series of meaningful and contextual steps in your project pipeline to take your application from code to deployment in the shortest possible time.
The typical pipeline requires:
- A software configuration management (SCM) tool
- A build tool
- An artifactory to keep versions of your builds
- A unit test framework
- A functional test automation tool where the scripts can execute each time your code builds
- A deployment tool
- Test environments — either local or in the cloud — that you can use for test runs.
This pipeline is completely configurable and must be designed with your own project in mind.
Don’t go by the popularity of any tool, look only for open source tools, or just consider the price tags of commercial tools. Survey the market for the best contextual fit for each step of your pipeline when selecting the tools. And just as important as incorporating the right set of tools is providing the right skills to testers on their usage.
Agile teams must strive for continuous improvement of their continuous testing strategy. If they’re successful, they can reduce their release times from months or years to weeks or days (or even hours!). By adopting the correct practices and embracing the spirit of continuous learning and improvement, we can help our testers to become champions of agile.
Nishi is a corporate trainer, an agile enthusiast, and a tester at heart! With 11+ years of industry experience, she currently works with Sahi Pro as an Evangelist and Trainings Head. She is passionate about training, organizing testing community events and meetups, and has been a speaker at numerous testing events and conferences. Check out her blog where she writes about the latest topics in Agile and Testing domains.