Using version control for development teams is a well-established best practice. However, most QA teams aren’t using version control, even though they can benefit from it just as much as dev teams. Implementing version control for QA tests is one of the key tenets of the Continuous Testing Manifesto because it helps teams keep their QA process organized and efficient.
The Benefits of Version Control in Continuous Testing
QA version control provides several key benefits, which are critical to successfully implementing a fast, flexible testing strategy that can keep up with your development cadence. By implementing version control for testing, teams gain three key insights:
1. Knowledge of what the expected behavior is for that code.
Your QA process works best when it’s closely aligned with the code. Version control of test cases means that you’ll always be able to roll your test suite back to the test case versions that fit the version of the code you’re working with.
2. Ability to review and accept tests using standard code-review processes.
Code review saves time, reduces bugs and helps keep the team on the same page. Those benefits translate to writing tests just as well as they do for writing code. “When you’re writing tests for four hours a day you really get in the zone and can easily get ‘QA tunnel vision,’” says Kristen Hill, QA Manager for MassageBook. “You think you’re writing a test with clear instructions, but you may have actually done it in an odd way that may be confusing. That can be avoided with a simple proofread!”
3. A historical log of test cases and how they change over time
Version control can also be a useful tool for gauging the progress of your test coverage and overall QA quality. For teams that want to strengthen their QA metrics measurement, version control creates a record of how tests have changed and evolved alongside the application.
Applying Version Control to Your QA Process
Applying the best practices for version control should be relatively straightforward if you’re already using some form of it for your development team.
Use a Trackable Test Management System
Opt for test repositories and management systems that support editing and archiving. Even if tests are executed manually, make an effort to document how they’re executed with every test run. Don’t just overwrite or delete old test cases — archive them. This allows you to easily pull up older versions of tests if you need to roll back a feature version.
Test Early & Often
QA Version control works best when it stays close to development. Shift left and test frequently, updating your tests as often as needed to stay in sync with the application’s functionality. A modular test writing system can help you keep your test suite up-to-date without investing too much time in rewriting tests constantly.
Keep Tests Short and Precise
Test cases that are focused on checking a single interaction are critical to successful version control. These granular tests allow you to pinpoint where the application or feature is breaking quickly and — in the case of outdated tests — update test flows easily.
Learn More about Version Control for QA
Ready to make version control part of your process? Access the on-demand recording of our webinar, “Version Control: Managing Tests, Results and Source Code” where Rainforest Engineering Manager Jonathan Barber discusses how to apply version control best practices to your QA process. In the webinar, learn about the basics of source code management (SCM) tools, how to use SCM to manage your test suite, and the advantages of storing tests alongside your source code.