Learn More
Exhaustive testing of computer software is intractable, but empirical studies of software failures suggest that testing can in some cases be effectively exhaustive. We show that software failures in a variety of domains were caused by combinations of relatively few conditions. These results have important implications for testing. If all faults in a system(More)
Experimentation helps determine the effectiveness of proposed theories and methods. But computer science has not developed a concise taxonomy of methods for demonstrating the validity of new techniques. E ffective software can mean software that is low cost, reliable, rapidly developed, safe, or has some other relevant attribute. To determine whether a(More)
Although experimentation is an accepted approach toward scientiic validation in most scientiic disciplines, it only recently has gained acceptance within the software development community. In this paper we discuss a 12 model classiication scheme for performing experimentation within the software development domain. We evaluate over 600 published papers in(More)
Although the need to transition new technology to improve the process of developing quality software products is well understood, the computer software industry has done a poor job of carrying out that need. All too often new software technology is touted as the next "silver bullet" to be adopted, only to fail and disappear within a very short period. New(More)
Most complex systems today contain software, and systems failures activated by software faults can provide lessons for software development practices and software quality assurance. This paper presents an analysis of software-related failures of medical devices that caused no death or injury but led to recalls by the manufacturers. The analysis categorizes(More)
—Exhaustive testing of computer software is intractable, but empirical studies of software failures suggest that testing can in some cases be effectively exhaustive. Data reported in this study and others show that software failures in a variety of domains were caused by combinations of relatively few conditions. These results have important implications(More)
This paper describes a Computer Aided Software Engineering CASE tool, unravel, that can assist in the evaluation of high integrity software by using program slices to extract a software channel of code for examination and test. The tool, available through the National Institute of Standards and Technology, can currently be used to evaluate software written(More)
When to apply a new technology in an organization is a critical decision for every software development organization. Earlier work defines a set of methods that the research community uses when a new technology is developed. This chapter presents a discussion of the set of methods that industrial organizations use before adopting a new technology. First(More)