Take the Test...

Want to review your software testing process? Here are some guidelines that I use to review a company's test process.

Stakeholder support

Before examining software testing in detail, assess your financial and managerial support. Any good review exposes shortcomings and to act on these changes will require good managerial and financial support.

One way of getting the support you need is to present a business case outlining the benefits software testing brings to your business. Software testing because its ‘good process’ is insufficient justification. An accurate and persuasive business case from a business perspective is required.

Common software testing benefits to business are:

  • Confidence in the software’s ability to behave as expected
  • Confidence in the system’s robustness
  • Risk Mitigation
  • Tangible knowledge on the systems performance
  • Overall cost reduction in the software delivery lifecycle
  • Increased customer satisfaction

Align these benefits with any company mission statement and it will re-enforce your case.

Software testing process

A software test process delivers reproducibility of results, repeatability of tests and the consistency across multiple projects. A software test process is the cornerstone for many testing teams.

Review the effectiveness of your software testing process to determine if improvements can be made.

Here are some ways in which you can review your test process;

Perform test process reviews on completed projects. Create a questionnaire on the software testing process used and ask developers, testers, managers and if possible your customers to provide some feedback and suggestions on improvements.

Review the test templates and examine how they where used. Discuss the templates with testers to discover ways to improve the templates.

If your software testing process is informal, discussions with developers, business and managers will help identify and formalise what is perhaps an informal and ad-hoc activity.

Skill and resources

Consider what resources you have available to perform your testing. Dedicated resources have the advantage for the following reasons;

they can focus full time on testing, reducing the test execution time compared to a resource who is performing both testing and business as usual activities

A dedicated resource has more experience in scoping out the test effort. They are familiar with the pit holes and understand the need for proper planning and setup.

A dedicated resource provides an independent and impartial view, taken from a user’s perspective. This often helps find critical defects before the user does.

Dedicated resources may initially seem as an additional cost but they improve the effectiveness of testing and reduce delays in testing caused by lack of resources or inefficient planning.

If testers are included in your resources, examine their skill set and determine ways to improve their knowledge of testing. For example, look at training courses or training on testing tools.

Testing Tools

Testing tools are an excellent way to facilitate reproducibility, repeatability consistency and uniformity. The catch is that to reap the benefits, they require total team participation and be kept up to date.

Automated test tools improve efficiency and reduce time though do not necessarily reduce the resource effort. This is because automated test scripts like any software requires maintenance. Testing tools need to be assessed with your testing requirements in mind, so careful thought is required before purchasing any tool like this.

Typical types of testing tools that are available are;

defect tracking tools

automation tools

performance loading tools

test script repository

An essential testing tool is the defect tracking tool. Defects are the key method of communication between developer, tester, manager and customer.

Also, a central repository that holds all defects are their status facilitates the sharing of this knowledge.

A test script repository is helpful for tracking the test effort and the results as well as centralising where test scripts are kept.

Collaboration

Testing affects developers, business, support and infrastructure and naturally testers themselves so it’s essential to examine ways to improve testing collaboration. Review how communication is performing throughout your software testing process. Effective methods of communication are daily or weekly meetings, defect reviews, documentation such as reports and emails, though not too many!

One method to improve collaboration is to get all parties involved in improving the software testing process. Their input and feedback on the software testing process will help make the process relevant to them and so increase the chance of testing success.

Test environment

Look at your test environment and review it for the following;

Security

Check how much control testing has over the test environment. Test results can be compromised if the test environment is open to all and it’s possible to make code or configuration changes without a tester’s knowledge.

· Suitability

Having your testing environment mimic as closely as possible the end user or production environment increases the confidence that the software will behave as expected.

Planning Some of the major delays in testing are caused by initial setup problems in the test environment. Good planning reduces the risk of something going wrong. Review how you plan your test environment and ensure that the test environment is ready when you’re ready to start testing.

In conclusion, a software testing process is only useful if it’s in use. If you do require changes, make sure their relevant to your business.