Design for testability put into practice
Mauro Arcese
The 17th IEEE International Symposium on Software Reliability Engineering (ISSRE 2006) -- Industry Practices (ISSRE 2006)
Raleigh, North Carolina, USA, 6-10 November 2006
Abstract
Improving the reliability of software systems is increasingly important as more and more of our lives depend on the availability of such systems. Since it is very important that a piece of software designed to be fault tolerant is tested and verified accurately some kind of methods to test it should be developed. In particular "fault injection" can be used as a means for measuring the fault tolerance or robustness of a system. Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding. A fault injection system could prove to be very useful in testing the performance and behavior of the newly designed software.In this presentation we'll describe a flexible java component, developed as an add-on of the IBM Tivoli Configuration Manager product, that can be configured to generate a specified set of failures. Based on a set of configurable parameters, the generator can create different kinds of failures (such as network interruptions, database errors, unexpected power-offs, etc…) with different probability thresholds to suit the diverse requirements of application. This fault generator can be directly embedded into an application and enabled only when necessary. When it is disabled it does not interfere in any way with the normal flows of the application.The presentation will also show the benefits obtained using this system during the development and test of the IBM Tivoli Configuration Manager product.