Presentation is loading. Please wait.

Presentation is loading. Please wait.

Testability Software testability refers to the ease with which software can be made to demonstrate its faults through (typically execution-based) testing.

Similar presentations


Presentation on theme: "Testability Software testability refers to the ease with which software can be made to demonstrate its faults through (typically execution-based) testing."— Presentation transcript:

1 Testability Software testability refers to the ease with which software can be made to demonstrate its faults through (typically execution-based) testing.

2 Testability

3 Testability Tactics

4 Testability Tactics Control and Observe System State
Specialized interfaces: specialized testing interfaces to control or capture variable values for a component either through a test harness or through normal execution. Record/playback: capturing information crossing an interface and using it as input for further testing, by recreating the faulty state. Localize state storage: store state in a single place for start a system in an arbitrary state for a test. Abstract data sources: abstracting data access interfaces for easy substitution of test data for test purpose. Sandbox: isolating an instance of the system from real world to enable experimentation that is unconstrained by the worry about having to undo the consequences of the experiments. Executable assertions: assertions are hard-coded and placed at desired locations to indicate when and where a program is in a faulty state.

5 Testability Tactics Limit Complexity
Limit structural complexity: avoiding or resolving cyclic dependencies between components, isolating and encapsulating dependencies on the external environment, reducing dependencies between components in general. Limit non-determinism/behavioral complexity: finding all sources of non-determinism (usually in parallel/concurrent computation) and weeding them out as much as possible.


Download ppt "Testability Software testability refers to the ease with which software can be made to demonstrate its faults through (typically execution-based) testing."

Similar presentations


Ads by Google