Constructing compact models of concurrent Java programs
Finite-state verification technology (e.g., model checking) provides a powerful means to detect concurrency errors, which are often subtle and difficult to reproduce. Nevertheless, widespread use of this technology by developers is unlikely until tools ...
Computation of interprocedural control dependence
Program dependence information is useful for a variety of software testing and maintenance tasks. Properly defined, control and data dependencies can be used to identify semantic dependencies. To function effectively on whole programs, tools that ...
Comparing flow and context sensitivity on the modification-side-effects problem
Precision and scalability are two desirable, yet often conflicting, features of data-flow analyses. This paper reports on a case study of the modification---ide-effects problem for C in the presence of pointers from the perspective of contrasting the ...
An experiment in estimating reliability growth under both representative and directed testing
The Order Statistic model of reliability growth offers improved• experimental design, and• flexibility in testing methodologycompared to conventional reliability growth models. It permits prediction of operational reliability without requiring ...
On random and partition testing
There have been many comparisons of random and partition testing. Proportional partition testing has been suggested as the optimum way to perform partition testing. In this paper we show that this might not be so and discuss some of the problems with ...
What can we learn by testing a program?
It is conventional to start research papers on software engineering, particularly on testing and software quality, with a statement of how important software has become in the world, and the potential dangers of using it when those who construct it ...
Automatic test data generation using constraint solving techniques
Automatic test data generation leads to identify input values on which a selected point in a procedure is executed. This paper introduces a new method for this problem based on constraint solving techniques. First, we statically transform a procedure ...
An applicable test data generation algorithm for domain errors
An integrated testing criterion is proposed that extends traditional criteria to be effective to reveal domain errors. The method requires many fewer test cases and is applicable for any kind of predicates. An automated test data generation algorithm is ...
Automated program flaw finding using simulated annealing
One of the major costs in a software project is the construction of test-data. This paper outlines a generalised test-case data generation framework based on optimisation techniques. The framework can incorporate a number of testing criteria, for both ...
A visual test development environment for GUI systems
We have implemented an experimental test development environment (TDE) intended to raise the effectiveness of tests produced for GUI systems, and raise the productivity of the GUI system tester.The environment links a test designer, a test design ...
Automatic interoperability test generation for source-to-source translators
This paper describes a strategy for automatically generating tests which ensure interface compatibility between software components expressed in two different languages. This strategy is useful for testing code produced by a source-to-source computer ...
Improving efficiency of symbolic model checking for state-based system requirements
We present various techniques for improving the time and space efficiency of symbolic model checking for system requirements specified as synchronous finite state machines. We used these techniques in our analysis of the system requirements ...
Verifying systems with integer constraints and Boolean predicates: a composite approach
Symbolic mode, checking has proved highly successful for large finite-state systems, in which states can be compactly encoded using binary decision diagrams (BDDs) or their variants. The inherent limitation of this approach is that it cannot be applied ...
Model checking without a model: an analysis of the heart-beat monitor of a telephone switch using VeriSoft
VeriSoft is a tool for systematically exploring the state spaces of systems composed of several concurrent processes executing arbitrary code written in full-fledged programming languages such as C or C++. The state space of a concurrent system is a ...
On the limit of control flow analysis for regression test selection
Automated analyses for regression test selection (RTS) attempt to determine if a modified program, when run on a test t, will have the same behavior as an old version of the program run on t, but without running the new program on t. RTS analyses must ...
Automated regression test generation
Regression testing involves testing the modified program in order to establish the confidence in the modifications. Existing regression testing methods generate test cases to satisfy selected testing criteria in the hope that this process may reveal ...
All-du-path coverage for parallel programs
One significant challenge in bringing the power of parallel machines to application programmers is providing them with a suite of software tools similar to the tools that sequential programmers currently utilize. In particular, automatic or semi-...