About this book
As software is very complex, we can only test a limited range of the possible states of the software in a reasonable time frame. In 1972, Dijkstra  claimed that 'program testing can be used to show the pres ence of bugs, but never their absence' to persuade us that a testing approach alone is not acceptable. This frequently quoted statement represented our knowledge about software testing at that time, and after over 25 years intensive practice, experiment and research, although software testing has been developed into a validation and ver ification technique indispensable to software engineering discipline, Dijkstra's state ment is still valid. To gain confidence in the safety of software based systems we must therefore assess both the product and the process of its development. Testing is one of the main ways of assessing the product, but it must be seen, together with process assessment, in the context of an overall safety case. This book provides guidance on how to make best use of the limited resources available for testing and to maximise the contribution that testing of the product makes to the safety case. 1.1 Context The safety assurance of software based systems is a complex task as most fail ures stem from design errors committed by humans. To provide safety assur on the integrity of the system and put ance, evidence needs to be gathered forward as an argued case (the safety case) that the system is adequately safe.
Interface Standards design development simulation software testing complexity