15Software Testing Tools

Like all software engineering activities, software testing is a labor-intensive task that is difficult to automate because it depends on a great deal of creativity and because it is difficult to cast in a systematic process. Still, there is much scope for automated support, to help with clerical or repetitive aspects of software testing. The subject of this chapter is to review some of the tools that are available in the market and to classify them by means of some orthogonal attributes.

15.1 A CLASSIFICATION SCHEME

When we look at all the software products that purport to be testing tools, it is difficult to imagine that they bear the same name, given how different they look. To help characterize each tool, we propose a classification scheme, which is defined by a number of attributes and a set of values for each attribute. The classification scheme includes the following attributes:

  • Life cycle phase: unit testing, integration testing, system testing, acceptance testing.
  • Test data generation method: specification-based, code-based, scenario-based.
  • Testing phase/activity: test data generation, test driver design, test execution, test outcome analysis.
  • Target language, if applicable: some tools are restricted to specific languages or are geared toward programs written in a specific language.
  • Target development environment, if applicable: some tools are compatible with a limited set of development environments.

In addition to information pertaining ...

Get Software Testing: Concepts and Operations now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.