Testing in software development is changing incredibly quickly. Test effort varies across projects, teams, and organizations, each having its unique identity in delivering a quality product.
With all these changes, I believe that certain core testing practices never change. Although they may have their own customized implementations across varied groups, these practices continue to drive successful test efforts. Here are a few that I see continuing to stand the test of time.
A Robust QA Strategy
With the growing popularity of agile, there’s been a debate lately about whether a documented QA strategy is important. The question herein is really about whether it needs to be documented, not if it needs to exist. Test professionals understand the importance of a test strategy as a guiding force for the test team.
To assess your test strategy, try this experiment: Take someone from outside your product group and have him or her ask every tester (and a few others) what it is testers “do” here, what they do not do, and how that contributes to the mission. If the answers are similar and make sense, you’ve got a test strategy. If not, you probably have work to do.
Reviewing Test Artifacts
Specific artifacts, such as the QA strategy, threat model, core test scenarios, and quality report, are important for the product team to review together. The onus of arranging these reviews is on the tester, but the entire product team needs to understand the importance of joining in for these reviews. Often, only product code is seen as a tangible output that needs to be reviewed, but test artifacts are equally important. Such reviews help testers deliver, as well as empower others on the product team to own quality in their own scope of operations.
While product team members understand the importance of defect triages, teams continue to have triages taken up individually by developers or without tester involvement. It is important to have a triage effort with representation from across the product team, especially from the testers. These representatives should be changed periodically so that everyone gets a chance to participate.
A tester’s perspective is very important in a triage in order to decide which defect is selected to fix and which is not. In an effort to implement an effective triage, it is important to keep it results-oriented; the duration and frequency of a triage is very important. Once team members inculcate this practice, triages for live issues will also automatically become effective, focused, and centered on end-users.
Embracing Users in the Testing Effort
One practice I see as broadly valuable is getting the users involved in the test effort. This is important for interacting with end-users and having them engaged in enhancing product quality, as well as for getting testers to think like end-users. This could be in the form of beta testing, externally sourced crowd testers, field studies, or impromptu bug bashes.
This practice does not always need to be inculcated relevant to the product under test. For instance, we recently hosted a corporate bug hunt challenge that was a big hit in bringing together like-minded testers. We plan to continue hosting such events across the country to increasingly connect testers and end-users in an attempt to push quality upstream. Activities such as these also encourage the tester to think outside the box and get better at exploratory testing techniques.