Methods for Increasing Software Testability

by Lindström, Birgitta

Abstract (Summary)
We present a survey over current methods for improving software testability. It is a well-known fact that the cost for testing of software takes 50\% or more of the development costs. Hence, methods to improve testability, i.e. reduce the effort required for testing, have a potential to decrease the development costs. The test effort needed to reach a level of sufficient confidence for the system is dependent on the number of possible test cases, i.e., the number of possible combinations of system state and event sequences. Each such combination results in an execution order. Properties of the execution environment that affect the number of possible execution orders can therefore also affect testability. Which execution orders that are possible and not are dependent of processor scheduling and concurrency control policies. Current methods for improving testability are investigated and their properties with respect to processor scheduling and concurrency control analyzed. Especially, their impact on the number of possible test cases is discussed. The survey revealed that (i) there are few methods which explicitly address testability, and (ii) methods that concern the execution environment suggest a time-triggered design. It is previously shown that the effort to test an event-triggered real-time system is inherently higher than testing a time-triggered real-time system. Due to the dynamic nature of the event-triggered system the number of possible execution orders is high. A time-triggered design is, however, not always suitable. The survey reveals an open research area for methods concerning improvement of testability in event-triggered systems. Moreover, a survey and analysis of processor scheduling and concurrency control properties and their effect on testability is presented. Methods are classified into different categories that are shown to separate software into different levels of testability. These categories can form a basis of taxonomy for testability. Such taxonomy has a potential to be used by system designers and enable them to perform informed trade-off decisions.
Bibliographical Information:


School:Högskolan i Skövde

School Location:Sweden

Source Type:Master's Thesis



Date of Publication:01/11/2008

© 2009 All Rights Reserved.