An experimental evaluation of the assumption of independence in multiversion programming
IEEE Transactions on Software Engineering
Comparing the Effectiveness of Software Testing Strategies
IEEE Transactions on Software Engineering
Conceptual Modeling of Coincident Failures in Multiversion Software
IEEE Transactions on Software Engineering
An Empirical Comparison of Software Fault Tolerance and Fault Elimination
IEEE Transactions on Software Engineering
An Experimental Evaluation of Software Redundancy as a Strategy for Improving Reliability
IEEE Transactions on Software Engineering
Practical software metrics for project management and process improvement
Practical software metrics for project management and process improvement
Software Process Evolution at the SEL
IEEE Software
Choosing a testing method to deliver reliability
ICSE '97 Proceedings of the 19th international conference on Software engineering
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing
IEEE Transactions on Software Engineering
Software reliability and dependability: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Modeling software design diversity: a review
ACM Computing Surveys (CSUR)
Testing from Formal Specifications, a Generic Approach
Ada Europe '01 Proceedings of the 6th Ade-Europe International Conference Leuven on Reliable Software Technologies
The (Im)maturity level of software testing
ACM SIGSOFT Software Engineering Notes
Software quality economics for defect-detection techniques using failure prediction
3-WoSQ Proceedings of the third workshop on Software quality
Modelling the quality economics of defect-detection techniques
Proceedings of the 2006 international workshop on Software quality
A model and sensitivity analysis of the quality economics of defect-detection techniques
Proceedings of the 2006 international symposium on Software testing and analysis
"Diversity as a computer defense mechanism"
NSPW '05 Proceedings of the 2005 workshop on New security paradigms
A literature survey of the quality economics of defect-detection techniques
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Using portfolio theory for better and more consistent quality
Proceedings of the 2007 international symposium on Software testing and analysis
Guess and Verify --- Back to the Future
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Software testing research and practice
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
Testing techniques in software engineering
Testing techniques in software engineering
Software quality assurance economics
Information and Software Technology
Automated verification of code automatically generated from Simulink®
Automated Software Engineering
Testing techniques selection based on ODC fault types and software metrics
Journal of Systems and Software
A learning-based method for combining testing techniques
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.01 |
The software engineering literature contains many studies of the efficacy of fault finding techniques. Few of these, however, consider what happens when several different techniques are used together. We show that the effectiveness of such multitechnique approaches depends upon quite subtle interplay between their individual efficacies and dependence between them. The modeling tool we use to study this problem is closely related to earlier work on software design diversity. The earliest of these results showed that, under quite plausible assumptions, it would be unreasonable even to expect software versions that were developed 驴truly independently驴 to fail independently of one another. The key idea here was a 驴difficulty function驴 over the input space. Later work extended these ideas to introduce a notion of 驴forced驴 diversity, in which it became possible to obtain system failure behavior better even than could be expected if the versions failed independently. In this paper, we show that many of these results for design diversity have counterparts in diverse fault detection in a single software version. We define measures of fault finding effectiveness and of diversity and show how these might be used to give guidance for the optimal application of different fault finding procedures to a particular program. We show that the effects upon reliability of repeated applications of a particular fault finding procedure are not statistically independent驴in fact, such an incorrect assumption of independence will always give results that are too optimistic. For diverse fault finding procedures, on the other hand, things are different: Here it is possible for effectiveness to be even greater than it would be under an assumption of statistical independence. We show that diversity of fault finding procedures is, in a precisely defined way, 驴a good thing驴 and should be applied as widely as possible. The new model and its results are illustrated using some data from an experimental investigation into diverse fault finding on a railway signalling application.