Axiomatizing software test data adequacy
IEEE Transactions on Software Engineering
Test sets generation from algebraic specifications using logic programming
Journal of Systems and Software
Programming in Prolog (3rd ed.)
Programming in Prolog (3rd ed.)
Unifying functional, object-oriented and relational programming with logical semantics
Research directions in object-oriented programming
Adequate testing and object-oriented programming
Journal of Object-Oriented Programming
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Case studies on testing object-oriented programs
TAV4 Proceedings of the symposium on Testing, analysis, and verification
A framework for testing object-oriented programs
Journal of Object-Oriented Programming
Software testing based on formal specifications: a theory and a tool
Software Engineering Journal
Incremental testing of object-oriented class structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Object-oriented integration testing
Communications of the ACM
The ASTOOT approach to testing object-oriented programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
A simplified domain-testing strategy
ACM Transactions on Software Engineering and Methodology (TOSEM)
Formal methods: state of the art and future directions
ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research
In black and white: an integrated approach to class-level testing of object-oriented programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Theoretical Computer Science
Algebraic Specification Techniques in Object Oriented Programming Environments
Algebraic Specification Techniques in Object Oriented Programming Environments
Abstract and Concrete Objects - An Algebraic Design Method for Object-Based Systems
AMAST '93 Proceedings of the Third International Conference on Methodology and Software Technology: Algebraic Methodology and Software Technology
A Test Strategy for Object-Oriented Programs
COMPSAC '95 Proceedings of the 19th International Computer Software and Applications Conference
Software requirements validation via task analysis
Journal of Systems and Software
A Choice Relation Framework for Supporting Category-Partition Test Case Generation
IEEE Transactions on Software Engineering
Automated Generation of Test Programs from Closed Specifications of Classes and Test Cases
Proceedings of the 26th International Conference on Software Engineering
A Tool for Writing and Debugging Algebraic Specifications
Proceedings of the 26th International Conference on Software Engineering
Journal of Software Maintenance and Evolution: Research and Practice
Testing software modelling tools using data mutation
Proceedings of the 2006 international workshop on Automation of software test
Automatic test case generation from UML communication diagrams
Information and Software Technology
Testing object-oriented industrial software without precise oracles or results
Communications of the ACM
Automated Software Engineering
A test framework for integration testing of object-oriented programs
CASCON '07 Proceedings of the 2007 conference of the center for advanced studies on Collaborative research
Estimating the coverage of the framework application reusable cluster-based test cases
Information and Software Technology
Developing and debugging algebraic specifications for Java classes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Testing criteria for object oriented visual dataflow languages
Journal of Computational Methods in Sciences and Engineering - Selected papers from the International Conference on Computer Science, Software Engineering, Information Technology, e-Business, and Applications, 2004
Using formal specifications to support testing
ACM Computing Surveys (CSUR)
Test case prioritization for regression testing of service-oriented business applications
Proceedings of the 18th international conference on World wide web
Data flow testing of service choreography
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of 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
Nature-inspired techniques for conformance testing of object-oriented software
Applied Soft Computing
Probe mechanism for object-oriented software testing
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
Testing data types implementations from algebraic specifications
Formal methods and testing
Testing techniques in software engineering
Testing techniques in software engineering
ADMA'05 Proceedings of the First international conference on Advanced Data Mining and Applications
Specification-Driven unit test generation for java generic classes
IFM'12 Proceedings of the 9th international conference on Integrated Formal Methods
Hi-index | 0.02 |
Object-oriented programming consists of several different levels of abstraction, namely, the algorithmic level, class level, cluster level, and system level. The testing of object-oriented software at the algorithmic and system levels is similar to conventional program testing. Testing at the class and cluster levels poses new challenges. Since methods and objects may interact with one another with unforeseen combinations and invocations, they are much more complex to simulate and test than the hierarchy of functional calls in conventional programs. In this paper, we propose a methodology for object-oriented software testing at the class and cluster levels. In class-level testing, it is essential to determine whether objects produced from the execution of implemented systems would preserve the properties defined by the specification, such as behavioral equivalence and nonequivalence. Our class-level testing methodology addresses both of these aspects. For the testing of behavioral equivalence, we propose to select fundamental pairs of equivalent ground terms as test cases using a black-box technique based on algebraic specifications, and then determine by means of a white-box technique whether the objects resulting from executing such test cases are observationally equivalent. To address the testing of behavioral nonequivalence, we have identified and analyzed several nontrivial problems in the current literature. We propose to classify term equivalence into four types, thereby setting up new concepts and deriving important properties. Based on these results, we propose an approach to deal with the problems in the generation of nonequivalent ground terms as test cases. Relatively little research has contributed to cluster-level testing. In this paper, we also discuss black-box testing at the cluster level. We illustrate the feasibility of using contract, a formal specification language for the behavioral dependencies and interactions among cooperating objects of different classes in a given cluster. We propose an approach to test the interactions among different classes using every individual message-passing rule in the given Contract specification. We also present an approach to examine the interactions among composite message-passing sequences. We have developed four testing tools to support our methodology.