Design for Testability (DFT) in Software Testing
Design for testability (DFT) is a procedure that is used to set the development process for maximum effectiveness under either a resource-limited or reliability-driven scheme. A resource-limited process uses a testing approach to get the results that a pre-release reliability goal has been met. This process views testing as a way to delete as many rough edges from a system as time or money permits. The testability is significant either to reduce cost in a reliability-driven process. and also to increase reliability in a resource-limited process.
Software testability is a result of many factors and some of them are given below :
- The characteristics of the representation.
- The characteristics of the implementation.
- The Built-in test capabilities.
- Test support environment.
- The software process in which testing is conducted.
Now, let’s see the fishbone chart for considering testability relationships.
1. Representation :
The existence and usefulness of a representation in test development is a critical testability factor because of the following reasons:
- a. If you are testing without a representation is like experimenting with a prototype.
- b. The representation cannot decide that a test has been passed or failed without any explicit statement of the expected result.
- c. It may also force the production of a partial representation as part of the testing plan.
In representations, there are various approaches to develop object-oriented representations like object-oriented analysis (OOA) or object-oriented design (OOD).
2. Implementation :
An object-oriented program that complies with generally accepted principles of OOP poses the fewest obstacles to testing. Structural testability can be assessed by a few simple metrics. A metric may indicate testability, the scope of testing, or both. For example, with high coupling among classes, it is typically more difficult to control the class-under-test (CUT), thus reducing testability. The effect of all intrinsic testability metrics is the same:
- a. relatively high value = decreased testability.
- b. relatively low value = increased testability.
Scope metrics indicate that the number of tests is proportional to the value of the metric.
3. Built-in-Test :
It provides explicit separation of test and application functionality. The built-in test has some features that are given below:
- a. The assertions in built-n-test automate the basic checking and provide “set and forget” runtime checking of basic conditions for correct execution of the program.
- b. The Set or Reset helps in controllability.
- c. The reporters help in observability.
- d. A test suite is a collection of test cases and plan to use them and it defines the general contents of a test plan.
- e. The test tools require automation and without automation, there will be less testing, more costs will be incurred to achieve a given reliability goal.