Results 1 -
5 of
5
An interpretation of purdom’s algorithm for automatic generation of test cases
- In 1st Annual International Conference on Computer and Information Science
, 2001
"... Abstract — We present a structured reformulation of the seminal algorithm for automatic generation of test cases for a context-free grammar. Our reformulation simplifies the algorithm in several ways. First, we provide a structured reformulation so that it is obvious where to proceed at each step. S ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Abstract — We present a structured reformulation of the seminal algorithm for automatic generation of test cases for a context-free grammar. Our reformulation simplifies the algorithm in several ways. First, we provide a structured reformulation so that it is obvious where to proceed at each step. Second, we partition the intricate third phase into five functions, so that the discussion and comprehension of this phase can be modularized. Our implementation of the algorithm provides information about the grammatic, syntactic and semantic correctness of the generated test cases for two important languages in use today: C and C++. The results of our study of C and C++ highlight a lacuna latent in the research to date. In particular, if one or more of the automatically generated test cases is syntactically or semantically incorrect, then the confidence of structural “coverage ” may be compromised for the particular grammar-based tool under test. Our ongoing work focuses on a solution to this problem. Keywords — Structural-based testing, implementation-based testing, black-box testing, white-box testing, context-free grammar, parsing, re-engineering. I.
Identifying state transitions and their functions in source code
- In TAIC PART
, 2006
"... Finite state machine specifications form the basis for a number of rigorous state-based testing techniques and can help to understand program behaviour. Unfortunately they are rarely maintained during software development, which means that these benefits can rarely be fully exploited. This paper des ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Finite state machine specifications form the basis for a number of rigorous state-based testing techniques and can help to understand program behaviour. Unfortunately they are rarely maintained during software development, which means that these benefits can rarely be fully exploited. This paper describes a technique that, given a set of states that are of interest to a developer, uses symbolic execution to reverse-engineer state transitions from source code. A particularly novel aspect of our approach is that, besides determining whether or not a state transition can take place, it also precisely identifies the path(s) through the source code that govern a transition. The technique has been implemented as a prototype, enabling a preliminary evaluation of our technique with respect to real software systems. 1.
A State Exploration-Based Approach to Testing Java Monitors
- IEEE Int'l Conf. on Software Reliability Engineering
, 2006
"... A Java monitor is a Java class that defines one or more synchronized methods. Unlike a regular object, a Java monitor object is intended to be accessed by multiple threads simultaneously. Thus, testing a Java monitor can be significantly different from testing a regular class. In this paper, we prop ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
A Java monitor is a Java class that defines one or more synchronized methods. Unlike a regular object, a Java monitor object is intended to be accessed by multiple threads simultaneously. Thus, testing a Java monitor can be significantly different from testing a regular class. In this paper, we propose a state exploration-based approach to testing a Java monitor. A novel aspect of our approach is that during state exploration, threads are introduced on-the-fly, and as needed, to simulate race conditions that can occur when multiple threads try to access a monitor object at the same time. The states and state transitions in the state space of a Java monitor are defined such that thread interactions along each explored path can be precisely captured and controlled. We describe a prototype state exploration tool called MonitorExplorer and report three case studies. The results of our case studies indicate that our state exploration approach was very effective at detecting synchronization faults in the monitors we studied. 1
A taxonomy of OO classes to support the mapping of testing techniques to a class
- Journal of Object Technology
, 2005
"... In this paper we describe a taxonomy of object-oriented classes that catalogs each class in an application according to the characteristics of that class, including the properties of the data attributes and routines as well as the relationships with other classes. Our taxonomy is motivated by the fa ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
In this paper we describe a taxonomy of object-oriented classes that catalogs each class in an application according to the characteristics of that class, including the properties of the data attributes and routines as well as the relationships with other classes. Our taxonomy is motivated by the fact that the current research literature contains no formal methodology for capturing the characteristics of a class. To illustrate the advantages of the taxonomy, we apply it to the problem of choosing implementation-based testing techniques and, more importantly, we show that our taxonomy can expose characteristics of a class that remain uncovered by the chosen testing technique. 1
CppTest: A Prototype Tool for Testing C/C++ Programs
"... Software testing is a practical activity combined with theory, technology, tool, and management. Assistant tool for testing plays an important role in software development in practice, and should not be neglected. Taking the popularly used C and C++ programs as the test objects, this paper explores ..."
Abstract
- Add to MetaCart
Software testing is a practical activity combined with theory, technology, tool, and management. Assistant tool for testing plays an important role in software development in practice, and should not be neglected. Taking the popularly used C and C++ programs as the test objects, this paper explores how to implement a semi-automatic tool (named CppTest) with the testing capability in three levels, namely (1) structural testing in method level, (2) state-based class level testing through modeling state transition behaviors using an extended finite state machine (EFSM), and (3) system level black-box testing with some traditional strategies. During the later debugging stage, the prototype system can perform clustering analysis on the failure executions and sample fairly few representative test executions to direct program diagnosis. CppTest mainly possesses the merits as follows: (1) multi-levels ’ testing support, (2) high automation and visualization, (3) test project management, and (4) favorable scalability. In addition, some future research directions are also explored. 1.

