Software testability

Testability is the degree to which a software artefact ( a software system, a software module, a request document or development ) supports the test at a given test context.

Testability is not an intrinsic property of software artifacts, and can not directly (such as the extent of software ) are measured. Instead, testability is an extrinsic property, resulting from the interaction of the software with the test objectives, test resources and test procedures used (ie the test context ) results.

The lower the testability, the higher cost of the test. In the extreme case is in poor testability impossible test of parts of the software requirements.

Background

The cost and effectiveness of a software testing depend inter alia on the following factors:

  • Software Requirements
  • Properties of software, such as scope, complexity and testability
  • Used test methods
  • Development and testing process
  • Qualification and motivation of the people involved in the test

Testability of Software

The testability of software is determined, inter alia, by the following factors:

  • Controllability: The test object may be brought to the state required for the test.
  • Observability: The test result can be observed.
  • Isolability: The test object can be tested in isolation.
  • Separation of responsibility: The test object has a well-defined responsibility.
  • Comprehensibility: The test object is self-explanatory or well documented.
  • Automation: The tests can be automated.
  • Heterogeneity: Different technologies require the simultaneous use of different testing methods and tools.

The testability of the software is improved by:

  • Test-driven development
  • Design for testability

In the testability of classes are distinguished nonmodalen, quasimodalen, unimodal and modal classes. Nonmodale classes exhibit the same behavior no matter in what state they are located and their methods are called in no matter what order. Quasimodale classes show different behavior for different states. Unimodal classes show different behavior for a different sequence of calls to its methods. Modal classes show both different behavior in different states and calling sequences. The testability of nonmodalen classes is the highest, because you have only test all methods regardless of condition and order. For the other species all sequences and states have to be tested in combination, which results in a much higher test burden.

Testability of requirements

Requirements are testable, if they meet the following criteria:

  • Consistent
  • Completely
  • Clear: The request can not be interpreted differently.
  • Formulated quantitatively: A request such as " fast response time " can not be verified.
  • Practically verifiable: The test is not only theoretically possible, but also with limited effort in practice feasible.
766490
de