Verified data transfer protocols with variable flow control
ACM Transactions on Computer Systems (TOCS)
Specification-based test oracles for reactive systems
ICSE '92 Proceedings of the 14th international conference on Software engineering
An integrated general purpose automated test environment
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
Generating a test oracle from program documentation: work in progress
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
TAOS: Testing with Analysis and Oracle Support
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
Oracles for checking temporal properties of concurrent systems
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
A semantic model of program faults
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Event graph visualization for debugging large applications
SPDT '96 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Generating oracles from your favorite temporal logic specifications
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
An approach to fault modeling and fault seeding using the program dependence graph
Journal of Systems and Software
Specification-based testing of reactive software: tools and experiments: experience report
ICSE '97 Proceedings of the 19th international conference on Software engineering
Model checking graphical user interfaces using abstractions
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
Using Test Oracles Generated from Program Documentation
IEEE Transactions on Software Engineering
Lutess: a specification-driven testing environment for synchronous software
Proceedings of the 21st international conference on Software engineering
A practical method for verifying event-driven software
Proceedings of the 21st international conference on Software engineering
Automatically Checking an Implementation against Its Formal Specification
IEEE Transactions on Software Engineering
Automated test oracles for GUIs
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Transient Fault Tolerance in Digital Systems
IEEE Micro
Experience in Testing the Motif Interface
IEEE Software
Formal Specifications and Test: Correctness and Oracle
Selected papers from the 11th Workshop on Specification of Abstract Data Types Joint with the 8th COMPASS Workshop on Recent Trends in Data Type Specification
Efficient Fault Tolerance: An Approach to Deal with Transient Faults in Multiprocessor Architectures
Proceedings of the 1994 International Conference on Parallel and Distributed Systems
CLAIRE: An Event-Driven Simulation Tool for Test and Validation of Software Programs
DSN '02 Proceedings of the 2002 International Conference on Dependable Systems and Networks
Patterns, frameworks, and middleware: their synergistic relationships
Proceedings of the 25th International Conference on Software Engineering
RTAS '99 Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium
A comprehensive framework for testing graphical user interfaces
A comprehensive framework for testing graphical user interfaces
A family of test adequacy criteria for database-driven applications
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Dependable computing: concepts, limits, challenges
FTCS'95 Proceedings of the Twenty-Fifth international conference on Fault-tolerant computing
Developing cost-effective model-based techniques for GUI testing
Proceedings of the 28th international conference on Software engineering
Design and analysis of GUI test-case prioritization using weight-based methods
Journal of Systems and Software
Hi-index | 0.00 |
Today's software-intensive systems contain an important class of software, namely event-driven software (EDS). All EDS take events as input, change their state, and (perhaps) output an event sequence. EDS is typically implemented as a collection of event-handlers designed to respond to individual events. The nature of EDS creates new challenges for test automation. In this paper, we focus on those relevant to automated test oracles. A test oracle is a mechanism that determines whether a software executed correctly for a test case. A test case for an EDS consists of a sequence of events. The test case is executed on the EDS, one event at a time. Errors in the EDS may iaappearls and later "disappear" at several points (e.g., after an event is executed) during test case execution. Because of the behavior of these transient (those that disappear) and persistent (those that don't disappear) errors, EDS require complex and expensive test oracles that compare the expected and actual output multiple times during test case execution. We leverage our previous work to study several applications and observe the occurrence of persistent/transient errors. Our studies show that in practice, a large number of errors in EDS are transient and that there are specific classes of events that lead to transient errors. We use the results of this study to develop a new test oracle that compares the expected and actual output at strategic points during test case execution. We show that the oracle is effective at detecting errors and efficient in terms of resource utilization.