Time-Tested Practices for a Successful Test Effort

[article]
Summary:
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. However, certain core testing practices never change and continue to drive successful test efforts. Mukesh Sharma details some that he sees standing the test of time.

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.

Results-Oriented Triages

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.

Testing Research and Development Investment

Programmers are not the only ones who need to focus on research and development and learn new technologies as they code. Specifically looking at automation, there is ample room for R&D—this includes productivity tools as well as tools to support test areas such as functionality, performance, security, localization, and compatibility. Open source tools and technologies are available in abundance today, and while the benefits they offer are numerous, they do not always address all automation requirements.

Test teams are required to build their own frameworks on top of these open source solutions to leverage a custom solution that will meet their specific testing needs. This calls for a dedicated research and development effort that is focused on supporting the test team.

Transparent and Open Communication

On the product team, the testers have to communicate with the developers, program manager, business contact, marketing people, build engineers, support engineers, sales and training, and, most importantly, the end-user. Depending on the person and relationship, testers may have these interactions via email, phone, chat, in a group, one on one, etc. With so many points of contact, testers should be encouraged to have open and transparent communication. This practice will be very valuable no matter the changes a tester’s role may undergo.

Nurturing Testers and Their Efforts

Given that testers form the backbone of a test effort, it is important to nurture them and help them grow, organically and inorganically. They should be given opportunities to creatively implement all the practices mentioned above. Everyone in the IT world is busy, so it’s understandable that few people have time for activities not directly related to the project at hand. It is especially difficult to find time for training, self-growth, or recuperation between projects.

However, the test team has to make a conscious effort to accommodate these practices to nurture testers. Doing so will bear significant returns, not just in the quality of the product and the level of testing knowledge on the team, but also in the testers’ loyalty and their retention in the organization.

Conclusion

You may ask, what’s really new about these practices? Aren’t these the ones teams have known for years? You are right; awareness of these practices is not new to testers. In fact, this is not even an exhaustive set of the tried and true applications test teams use.

The important thing to notice is that most teams dismiss implementing these practices when they are under pressure to deliver. Given the time and cost constraints, these practices, despite the value they hold, tend to take a back seat when times get tough.

I’ve consolidated and presented these points to you again as a gentle reminder to implement them consistently. Promoting the exercises outlined here regularly will further your testers’ careers, promote your test effort’s objectivity, invigorate your test team, and show a difference to your organization.

User Comments

1 comment

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.