Chapter 6 – 6.1 – Types of test tool – Part 3/7

6.1.3 Tool support for static testing

The tools described in this section support the testing activities described in Chapter 3.

Review process support tools

The value of different types of review was discussed in Chapter 3. For a very informal review, where one person looks at another’s document and gives a few comments about it, a tool such as this might just get in the way. However, when the review process is more formal, when many people are involved, or when the people involved are in different geographical locations, then tool support becomes far more beneficial.

It is possible to keep track of all the information for a review process using spreadsheets and text documents, but a review tool which is designed for the purpose is more likely to do a better job. For example, one thing that should be monitored for each review is that the reviewers have not gone over the document too quickly, i.e., that the checking rate (number of pages checked per hour) was close to that recommended for that review cycle. A review process support tool could automatically calculate the checking rate and flag exceptions. The review process support tools can normally be tailored for the particular review process or type of review being done.

Features or characteristics of review process support tools include support for:

  • a common reference for the review process or processes to use in different situations;
  • storing and sorting review comments;
  • communicating comments to relevant people;
  • coordinating online reviews;
  • keeping track of comments, including defects found, and providing statistical information about them;
  • providing traceability between comments, documents reviewed and related documents;
  • a repository for rules, procedures and checklists to be used in reviews, as well as entry and exit criteria;
  • monitoring the review status (passed, passed with corrections, requires rereview);
  • collecting metrics and reporting on key factors.

Static analysis tools (D)

The “(D)” after this (and other types of tools) indicates that these tools are more likely to be used by developers. Static analysis by tools was discussed in Chapter 3. In this section we give a summary of what the tools do.

Static analysis tools are normally used by developers as part of the development and component testing process. The key aspect is that the code (or another artefact) is not executed or run. Of course, the tool itself is executed, but the source code we are interested in is the input data to the tool.

Static analysis tools are an extension of compiler technology – in fact some compilers do offer static analysis features. It is worth checking what is available from existing compilers or development environments before looking at purchasing a more sophisticated static analysis tool.

Static analysis can also be carried out on things other than software code, for example static analysis of requirements or static analysis of websites (for example, to assess for proper use of accessibility tags or the following of HTML standards).

Static analysis tools for code can help the developers to understand the structure of the code and can also be used to enforce coding standards. See Section 6.2.3 for special considerations when introducing static analysis tools into an organization.

Features or characteristics of static analysis tools include support to:

  • calculate metrics such as cyclomatic complexity or nesting levels (which can help to identify where more testing may be needed due to increased risk);
  • enforce coding standards;
  • analyze structures and dependencies;
  • aid in code understanding;
  • identify anomalies or defects in the code (as described in Chapter 3).

Modeling tools (D)

Modeling tools help to validate models of the system or software. For example, a tool can check consistency of data objects in a database and can find inconsistencies and defects. These may be difficult to pick up in testing – you may have tested with one data item and not realize that in another part of the database there is conflicting information related to that item. Modeling tools can also check state models or object models.

Modeling tools are typically used by developers and can help in the design of the software.

One strong advantage of both modeling tools and static analysis tools is that they can be used before dynamic tests can be run. This enables any defects that these tools can find to be identified as early as possible, when it
is easier and cheaper to fix them. There are also fewer defects left to propagate into later stages, so development can be speeded up and there is less rework. (Of course, this is difficult to show, since those defects aren’t there now!)

Note that ‘model-based testing tools’ are actually tools that generate test inputs or test cases from stored information about a particular model (e.g., a state diagram), so are classified as test design tools (see Section 6.1.4).

Features or characteristics of modeling tools include support for:

  • identifying inconsistencies and defects within the model;
  • helping to identify and prioritize areas of the model for testing;
  • predicting system response and behavior under various situations, such as level of load;
  • helping to understand system functions and identify test conditions using a modeling language such as UML.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *