Translation of Decision Tables
ACM Computing Surveys (CSUR)
Software Engineering, An Advanced Course, Reprint of the First Edition [February 21 - March 3, 1972]
Some experience with automated aids to the design of large-scale reliable software
Proceedings of the international conference on Reliable software
Software Engineering Techniques: Report of a conference sponsored by the NATO Science Committee, Rome, Italy, 27-31 Oct. 1969, Brussels, Scientific Affairs Division, NATO
Structured programming
Validating programs without specifications
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
On the Use of Transcendentals for Program Testing
Journal of the ACM (JACM)
ACM Computing Surveys (CSUR)
ACM Computing Surveys (CSUR)
Test data as an aid in proving program correctness
Communications of the ACM
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Construction of Verified Compiler Front-Ends with Program-Checking
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Rigorous Compiler Implementation Correctness: How to Prove the Real Thing Correct
FM-Trends 98 Proceedings of the International Workshop on Current Trends in Applied Formal Method: Applied Formal Methods
Assertions and APL programming
APL '75 Proceedings of seventh international conference on APL
ACM '76 Proceedings of the 1976 annual conference
A generalized assertion language
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Programanalysis - A method for the verification of software for the control of a nuclear reactor
ICSE '76 Proceedings of the 2nd international conference on Software engineering
An application of graph theory to software test data selection
Proceedings of the software quality assurance workshop on Functional and performance issues
Methods for teaching program verification
SIGCSE '75 Proceedings of the fifth SIGCSE technical symposium on Computer science education
Test data as an aid in proving program correctness
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
TestEra: A Novel Framework for Automated Testing of Java Programs
Proceedings of the 16th IEEE international conference on Automated software engineering
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
A top-down view of software engineering
ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes
Invariants and state in testing and formal methods
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Subdomain testing of units and systems with state
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the 38th conference on Winter simulation
A specification-based approach to testing software product lines
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Automatic Model-Based Generation of Parameterized Test Cases Using Data Abstraction
Electronic Notes in Theoretical Computer Science (ENTCS)
A specification-based approach to testing software product lines
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
Dynamic Testing of Control Units
IEEE Transactions on Computers
Programming Languages The First 25 Years
IEEE Transactions on Computers
Using model transformation to support model-based test coverage measurement
Proceedings of the 3rd international workshop on Automation of software test
Using modern mathematics as an FOSD modeling language
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Saturation-based testing of concurrent programs
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
An Empirical Study of Structural Constraint Solving Techniques
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Generating test data for specification-based tests via quasirandom sequences
ICCS'06 Proceedings of the 6th international conference on Computational Science - Volume Part IV
Mixed constraints for test input generation - An initial exploration
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Fundamenta Informaticae - Theory that Counts: To Oscar Ibarra on His 70th Birthday
Component testing is not enough: a study of software faults in telecom middleware
TestCom'07/FATES'07 Proceedings of the 19th IFIP TC6/WG6.1 international conference, and 7th international conference on Testing of Software and Communicating Systems
Efficiently generating structurally complex inputs with thousands of objects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Hi-index | 0.02 |
This paper examines the theoretical and practical role of testing in software development. We prove a fundamental theorem showing that properly structured tests are capable of demonstrating the absence of errors in a program. The theorem's proof hinges on our definition of test reliability and validity, but its practical utility hinges on being able to show when a test is actually reliable. We explain what makes tests unreliable (for example, we show by example why testing all program statements, predicates, or paths is not usually sufficient to insure test reliability), and we outline a possible approach to developing reliable tests. We also show how the analysis required to define reliable tests can help in checking a program's design and specifications as well as in preventing and detecting implementation errors.