- Sponsor:
- sigsoft
Welcome to ISSTA 2004: the Fourteenth International Symposium on Software Testing and Analysis. ISSTA 2004 brings together academics, industrial researchers, and practitioners to exchange new ideas, solve problems, and share experiences related to problems involving software testing and program analysis.The program for ISSTA 2004 begins with two workshops: the Workshop on Testing, Analysis, and Verification of Web Services, and the Workshop on Empirical Research in Software Testing. These workshops are followed by the ISSTA technical program, which consists of research papers, tools papers, and two invited speakers. Ninety-three research papers were submitted to ISSTA. Each paper was reviewed by at least three members of the Program Committee, and some were reviewed by four or five members and/or outside reviewers. The Program Committee selected twenty-six of these papers for inclusion in the conference. Eight tools papers were also submitted, and the Program Committee selected two of these papers. Our invited speakers, Robert Kurshan, and David Harel, speak on issues relevant to analysis and validation of software.ISSTA 2004 is collocated with the 16th International Conference on Computer Aided Verification (CAV), and the final day of ISSTA's technical program is also the first day of CAV's technical program. ISSTA and CAV sessions on this shared day are open to attendees of both conferences: the day includes a joint ISSTA/CAV keynote address by David Harel, as well as ISSTA and CAV technical papers sessions. To further facilitate interaction, a joint ISSTA/CAV reception will be held on Tuesday night. We also hope that you'll stay and participate in the CAV sessions in the days that follow.
Proceeding Downloads
Static and dynamic analysis of call chains in java
This work presents a parameterized framework for static and dynamic analysis of call chains in Java components. Such analyses have a wide range of uses in tools for software understanding and testing. We also describe a test coverage tool built with ...
Software validation via scalable path-sensitive value flow analysis
In this paper, we present a new algorithm for tracking the flow of values through a program. Our algorithm represents a substantial improvement over the state of the art. Previously described value flow analyses that are control-flow sensitive do not ...
Testing of java web services for robustness
This paper presents a new compile-time analysis that enables a testing methodology for white-box coverage testing of error recovery code (i.e., exception handlers) in Java web services using compiler-directed fault injection. The analysis allows ...
Testing malware detectors
In today's interconnected world, malware, such as worms and viruses, can cause havoc. A malware detector (commonly known as virus scanner) attempts to identify malware. In spite of the importance of malware detectors, there is a dearth of testing ...
Covering arrays for efficient fault characterization in complex configuration spaces
Testing systems with large configurations spaces that change often is a challenging problem. The cost and complexity of QA explodes because often there isn't just one system, but a multitude of related systems. Bugs may appear in certain configurations, ...
Optimal strategies for testing nondeterministic systems
This paper deals with testing of nondeterministic software systems. We assume that a model of the nondeterministic system is given by a directed graph with two kind of vertices: states and choice points. Choice points represent the nondeterministic ...
An empirical study of profiling strategies for released software and their impact on testing activities
An understanding of how software is employed in the field can yield many opportunities for quality improvements. Profiling released software can provide such an understanding. However, profiling released software is diffcult due to the potentially large ...
An experimental evaluation of continuous testing during development
Continuous testing uses excess cycles on a developer's workstation to continuously run regression tests in the background, providing rapid feedback about test failures as source code is edited. It is intended to reduce the time and energy required to ...
Where the bugs are
The ability to predict which files in a large software system are most likely to contain the largest numbers of faults in the next release can be a very valuable asset. To accomplish this, a negative binomial regression model using information from ...
Test input generation with java PathFinder
We show how model checking and symbolic execution can be used to generate test inputs to achieve structural coverage of code that manipulates complex data structures. We focus on obtaining branch-coverage during unit testing of some of the core methods ...
Evolutionary testing in the presence of loop-assigned flags: a testability transformation approach
Evolutionary testing is an effective technique for automatically generating good quality test data. However, for structural testing, the technique degenerates to random testing in the presence of flag variables, which also present problems for other ...
Evolutionary testing of classes
Object oriented programming promotes reuse of classes in multiple contexts. Thus, a class is designed and implemented with several usage scenarios in mind, some of which possibly open and generic. Correspondingly, the unit testing of classes cannot make ...
The AGEDIS tools for model based testing
We describe the tools and interfaces created by the AGEDIS project, a European Commission sponsored project for the creation of a methodology and tools for automated model driven test generation and execution for distributed systems. The project ...
Software assurance by bounded exhaustive testing
The contribution of this paper is an experiment that shows the potential value of a combination of selective reverse engineering to formal specifications and bounded exhaustive testing to improve the assurance levels of complex software. A key problem ...
Automated black-box testing of functional correctness using function approximation
We consider black-box testing of functional correctness as a special case of a satisfiability or constraint solving problem. We introduce a general method for solving this problem based on function approximation. We then describe some practical results ...
On the analytical comparison of testing techniques
We introduce necessary and sufficient conditions for comparing the expected values of the number of failures caused by applications of software testing techniques. Our conditions are based only on the knowledge of a total or even a hierarchical order ...
Automating commutativity analysis at the design level
Two operations commute if executing them serially in either order results in the same change of state. In a system in which commands may be issued simultaneously by different users, lack of commutativity can result in unpredictable behaviour, even if ...
Modeling and verification of an air traffic concept of operations
A high level model of the concept of operations of NASA's Small Aircraft Transportation System for Higher Volume Operations (SATS-HVO) is presented. The model is a non-deterministic, asynchronous transition system. It provides a robust notion of safety ...
An optimizing compiler for batches of temporal logic formulas
Model checking based on validating temporal logic formulas has proven practical and effective for numerous software engineering applications. As systems based on this approach have become more mainstream, a need has arisen to deal effectively with large ...
Active learning for automatic classification of software behavior
A program's behavior is ultimately the collection of all its executions. This collection is diverse, unpredictable, and generally unbounded. Thus it is especially suited to statistical analysis and machine learning techniques. The primary focus of this ...
Improving the adaptability of multi-mode systems via program steering
A multi-mode software system contains several distinct modes of operation and a controller for deciding when to switch between modes. Even when developers rigorously test a multi-mode system before deployment, they cannot foresee and test for every ...
Slicing tools for synchronous reactive programs
In this paper, we present two slicing tools: VHDL_Slice and Est_slice that compute static executable slices of VHDL and Esterel programs respectively. The slicers have been tested on a number of small and medium sized examples.
Exploiting purity for atomicity
The notion that certain procedures are atomic is a fundamental correctness property of many multithreaded software systems. A procedure is atomic if for every execution there is an equivalent serial execution in which the actions performed by any thread ...
Faster constraint solving with subtypes
Constraints in predicate or relational logic can be translated into boolean logic and solved with a SAT solver. For faster solving, it is common to exploit the typing of predicates or relations, in order to reduce the number of boolean variables needed ...
SABER: smart analysis based error reduction
- Darrell Reimer,
- Edith Schonberg,
- Kavitha Srinivas,
- Harini Srinivasan,
- Bowen Alpern,
- Robert D. Johnson,
- Aaron Kershenbaum,
- Larry Koved
In this paper, we present an approach to automatically detect high impact coding errors in large Java applications which use frameworks. These high impact errors cause serious performance degradation and outages in real world production environments, ...
Model checking XML manipulating software
The use of XML as the de facto data exchange standard has allowed integration of heterogeneous web based software systems regardless of implementation platforms and programming languages. On the other hand, the rich tree-structured data representation, ...
A formal approach for modeling and verification of RTCORBA-based applications
We introduce a formal model for describing Real-Time CORBA-based applications, and a set of guidelines to formally check that the design of such an application is consistent with its specification. The model and the guidelines are then applied to the ...
Verifying process models built using parameterized state machines
Software process and work flow languages are increasingly used to define loosely-coupled systems of systems. These languages focus on coordination issues such as data flow and control flow among the subsystems and exception handling activities. The ...
- Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis