Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A Formal Method for the Abstract Specification of Software
Journal of the ACM (JACM)
IEEE Transactions on Software Engineering
Trace Specifications: Methodology and Models
IEEE Transactions on Software Engineering
Testing the Completeness of Specifications
IEEE Transactions on Software Engineering
Systematic design of algebraic specifications
IWSSD '89 Proceedings of the 5th international workshop on Software specification and design
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Case studies on testing object-oriented programs
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Automated Module Testing in Prolog
IEEE Transactions on Software Engineering
Software testing based on formal specifications: a theory and a tool
Software Engineering Journal
An approach to testing object-oriented programs
An approach to testing object-oriented programs
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Data Abstraction, Implementation, Specification, and Testing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstract data types and the development of data structures
Communications of the ACM
Abstract data types and software validation
Communications of the ACM
Some extensions to algebraic specifications
Proceedings of an ACM conference on Language design for reliable software
Developing an object-oriented software testing and maintenance environment
Communications of the ACM - Special issue on object-oriented experiences and future trends
Daistish: systematic algebraic testing for OO programs in the presence of side-effects
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
ACM SIGSOFT Software Engineering Notes
A theory of probabilistic functional testing
ICSE '97 Proceedings of the 19th international conference on Software engineering
In black and white: an integrated approach to class-level testing of object-oriented programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Testing generic Ada packages with APE
Proceedings of the 1998 annual ACM SIGAda international conference on Ada
Structural specification-based testing: automated support and experimental evaluation
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the Conference on The Future of Software Engineering
Formal specification: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Broad-spectrum studies of log file analysis
Proceedings of the 22nd international conference on Software engineering
Testing levels for object-oriented software
Proceedings of the 22nd international conference on Software engineering
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
A framework for testing database applications
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
TACCLE: a methodology for object-oriented software testing at the class and cluster levels
ACM Transactions on Software Engineering and Methodology (TOSEM)
Panel discussion: is ISSTA testing research relevant to industrial users?
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Embedding built-in tests in hot spots of an object-oriented framework
ACM SIGPLAN Notices
Testing from Formal Specifications, a Generic Approach
Ada Europe '01 Proceedings of the 6th Ade-Europe International Conference Leuven on Reliable Software Technologies
An Informal Formal Method for Systematic JUnit Test Case Generation
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Constructing Self-Testable Software Components
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
Increasing the Testability of Object-Oriented Frameworks with Built-in Tests
AISA '02 Proceedings of the First International Workshop on Advanced Internet Services and Applications
Augmenting data flow criteria for class testing
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
Class testing and code-based criteria
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
Inter-class testing of O-O software in the presence of polymorphism
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
Extending Test Templates with Inheritance
ASWEC '97 Proceedings of the Australian Software Engineering Conference
Measuring the Effectiveness of Method Test Sequences Derived from Sequencing Constraints
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Visualizing O-O Testing in Virtual Communities - Distributed Teaching and Learning
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Extracting object-oriented specification from procedurally oriented programs
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
A Graphical Class Representation for Integrated Black- and White-Box Testing
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
A Framework for Detecting Interface Violations in Component-Based Software
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Object state testing and fault analysis for reliable software systems
ISSRE '96 Proceedings of the The Seventh International Symposium on Software Reliability Engineering
Effect Of Class Testing On The Reliability Of Object-Oriented Programs
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
Testing Object-Oriented Programs An Integrated Approach
ISSRE '99 Proceedings of the 10th International Symposium on Software Reliability Engineering
Requirements interaction management
ACM Computing Surveys (CSUR)
A Technique for Mutation of Java Objects
Proceedings of the 16th IEEE international conference on Automated software engineering
A History-Based Approach for Early Faulty State Detection
COMPSAC '96 Proceedings of the 20th Conference on Computer Software and Applications
General Test Result Checking with Log File Analysis
IEEE Transactions on Software Engineering
CASCON '03 Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research
A Tool for Writing and Debugging Algebraic Specifications
Proceedings of the 26th International Conference on Software Engineering
Testing Object Oriented Software
Proceedings of the 26th International Conference on Software Engineering
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Experiences evaluating the effectiveness of JML-JUnit testing
ACM SIGSOFT Software Engineering Notes
Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests
Proceedings of the 19th IEEE international conference on Automated software engineering
A Case Study of Coverage-Checked Random Data Structure Testing
Proceedings of the 19th IEEE international conference on Automated software engineering
Enhancing Structured Review with Model-Based Verification
IEEE Transactions on Software Engineering
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Testing software modelling tools using data mutation
Proceedings of the 2006 international workshop on Automation of software test
Tool support for randomized unit testing
Proceedings of the 1st international workshop on Random testing
Test input generation for java containers using state matching
Proceedings of the 2006 international symposium on Software testing and analysis
Designing and comparing automated test oracles for GUI-based software applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Industrial Evaluation of a Log File Analysis Methodology
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Testing object-oriented industrial software without precise oracles or results
Communications of the ACM
Towards design for self-healing
Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
Automated Software Engineering
Nighthawk: a two-level genetic-random unit test data generator
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Developing and debugging algebraic specifications for Java classes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Validating Behavioral Component Interfaces in Rewriting Logic
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Self-healing by means of automatic workarounds
Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems
Search based software testing of object-oriented containers
Information Sciences: an International Journal
Using formal specifications to support testing
ACM Computing Surveys (CSUR)
Automatic workarounds as failure recoveries
Proceedings of the 2008 Foundations of Software Engineering Doctoral Symposium
PROMISE '09 Proceedings of the 5th International Conference on Predictor Models in Software Engineering
Synthesizing intensional behavior models by graph transformation
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
The axioms strike back: testing with concepts and axioms in C++
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Random Test Run Length and Effectiveness
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Testing from Structured Algebraic Specifications: The Veritas Case Study
Electronic Notes in Theoretical Computer Science (ENTCS)
Validating Behavioral Component Interfaces in Rewriting Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Nature-inspired techniques for conformance testing of object-oriented software
Applied Soft Computing
ICFEM'07 Proceedings of the formal engineering methods 9th international conference on Formal methods and software engineering
Testing data types implementations from algebraic specifications
Formal methods and testing
Two case studies in grammar-based test generation
Journal of Systems and Software
Testing techniques in software engineering
Testing techniques in software engineering
An experimental assessment of module documentation-based testing
Information and Software Technology
LaTe, a non-fully deterministic testing language
TestCom'06 Proceedings of the 18th IFIP TC6/WG6.1 international conference on Testing of Communicating Systems
Combining algebraic and model-based test case generation
ICTAC'04 Proceedings of the First international conference on Theoretical Aspects of Computing
Executable interface specifications for testing asynchronous creol components
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Automatic cross validation of multiple specifications: a case study
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
A tool to automatically detect defects in c++ programs
CIT'04 Proceedings of the 7th international conference on Intelligent Information Technology
A methodology and a framework for model-based testing
RISE'04 Proceedings of the First international conference on Rapid Integration of Software Engineering Techniques
Augmenting automatically generated unit-test suites with regression oracle checking
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
An experimental evaluation of weak-branch criterion for class testing
Journal of Systems and Software
Validating Behavioral Component Interfaces in Rewriting Logic
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Specification-Driven unit test generation for java generic classes
IFM'12 Proceedings of the 9th international conference on Integrated Formal Methods
Formal methods in avionic software certification: the DO-178C perspective
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: applications and case studies - Volume Part II
Software health management with Bayesian networks
Innovations in Systems and Software Engineering
Hi-index | 0.02 |
This article describes a new approach to the unit testing of object-oriented programs, a set of tools based on this approach, and two case studies. In this approach, each test case consists of a tuple of sequences of messages, along with tags indicating whether these sequences should put objects of the class under test into equivalent states and/or return objects that are in equivalent states. Tests are executed by sending the sequences to objects of the class under test, then invoking a user-supplied equivalence-checking mechanism. This approach allows for substantial automation of many aspects of testing, including test case generation, test driver generation, test execution, and test checking. Experimental prototypes of tools for test generation and test execution are described. The test generation tool requires the availability of an algebraic specification of the abstract data type being tested, but the test execution tool can be used when no formal specification is available. Using the test execution tools, case studies involving execution of tens of thousands of test cases, with various sequence lengths, parameters, and combinations of operations were performed. The relationships among likelihood of detecting an error and sequence length, range of parameters, and relative frequency of various operations were investigated for priority queue and sorted-list implementations having subtle errors. In each case, long sequences tended to be more likely to detect the error, provided that the range of parameters was sufficiently large and likelihood of detecting an error tended to increase up to a threshold value as the parameter range increased.