Estimating the total number of software failures using an exponential model
ACM SIGSOFT Software Engineering Notes
Third and fourth generation language productivity differences
Communications of the ACM
An integrated environment for reuse reengineering C code
Journal of Systems and Software - Special issue on software engineering and knowledge engineering
Coupling and control flow measures in practice
Journal of Systems and Software
A controlled experiment in program testing and code walkthroughs/inspections
Communications of the ACM
Software Engineering Economics
Software Engineering Economics
Softwear Reliability
IEEE Software
Software Reliability Modelling and Identification
Software test program: a software residency experience
Proceedings of the 27th international conference on Software engineering
Journal of Systems and Software
Improvement of Design Specifications with Inspection and Testing
EUROMICRO '05 Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications
Requirement error abstraction and classification: an empirical study
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
A systematic literature review to identify and classify software requirement errors
Information and Software Technology
Approximate Worst-Case Execution Time Analysis for Early Stage Embedded Systems Development
SEUS '09 Proceedings of the 7th IFIP WG 10.2 International Workshop on Software Technologies for Embedded and Ubiquitous Systems
A systematic literature review of software quality cost research
Journal of Systems and Software
ISoLA'10 Proceedings of the 4th international conference on Leveraging applications of formal methods, verification, and validation - Volume Part I
An empirical study on design quality improvement from best-practice inspection and pair programming
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
How architects see non-functional requirements: beware of modifiability
REFSQ'12 Proceedings of the 18th international conference on Requirements Engineering: foundation for software quality
Statically typed matrix: in C++ library
Proceedings of the Fifth Balkan Conference in Informatics
Information Resources Management Journal
Hi-index | 0.00 |
The search for and correction of errors in software are often time consuming and expensive components of the total cost of software development. The current research investigates to what extent these costs of software error detection and correction contribute to the total cost of software. We initiated the research reported here with the collection of a sample of transactions recording progress on one phase of development of a set of software programs. Each of these projects represented the completion of an identical phase of development (i.e., country localisation) for a different country. This enabled each project to be compared with the other, and provided an unusually high degree of control over the data collection and analysis in real-world empirical study. The research findings relied on programmers' self-assessment of the severity of errors discovered. It found that serious errors have less influence on total cost than errors that were classified as less serious but which occurred with more frequency once these less serious errors are actually resolved and corrected. The research suggests one explanation - that programmers have greater discretion in how and when to resolve these less severe errors. The data supports the hypothesis that errors generate significant software development costs if their resolution requires system redesign. Within the context of the research, it was concluded that uncorrected errors become exponentially more costly with each phase in which they are unresolved, which is consistent with earlier findings in the literature. The research also found that the number of days that a project is open is a log-linear predictor of the number of software errors that will be discovered, implying a bias in error discovery over time. This implies that testing results need to be interpreted in light of the length of testing, and that in practice, tests should take place both before and after systems release.