In this issue

In this issue, we have six regular research papers. The first four papers are all concerned with aspects of software defects, whereas the final two deal with software maintenance and reducing the cost of software development, respectively. In ‘‘Predicting defective modules in different test phases,’’ Bora Caglayan, Ayse Tosun Misirli, Ayse Basar Bener, and Andriy Miranskyy describe how they built a learning-based model for each testing phase. Their model can be used to improve defect prediction performance and so reduce the time needed to detect defects. This can help managers to know where extra resources will be needed during testing. For many years, it has been assumed that there is a link between faults and failures, but little direct evidence of this has been published. The paper ‘‘Exploring fault types, detection activities, and failure severity in an evolving safety–critical software system’’ by Maggie Hamill and Katerina Goseva-Popstojanova investigates this link and looks at the types of faults that tend to cause failures as well as the severity of the resulting failure. Using data from a safety–critical NASA mission, the authors report a number of findings, including that a small number of fault types was responsible for the majority of failures (both pre-release and post-release). Post-release failures and safety–critical failures were closely associated with coding faults. The authors suggest that a list of common coding faults should be maintained and used to prevent such faults from re-occurring. They also suggest that requirements engineering should be performed continually throughout the life cycle and post-release, because requirements faults were found to be a significant root cause of software failures. In ‘‘Reducing software defects removal cost via design of experiments using Taguchi approach,’’ Ljubomir Lazić and Stevan Milinković discuss how testing can be improved in order to remove defects efficiently. Their strategy (which involves identifying a set of