TL;DR: It is argued, though, that the method was originally developed to allow for a thorough testing of parts of the software of a new commercial telephone switch also has broad applicability to distributed software systems design in general.
Abstract: SUMMARY To formally verify a large software application, the standard method is to invest a considerable amount of time and expertise into the manual construction of an abstract model, which is then analysed for its properties by either a mechanized or a human prover. There are two problems with this approach. The first problem is that this verification method can be no more reliable than the humans that perform the manual steps. If the average rate of error for human work is a function of the problem size, this holds not only for the construction of the original application, but also for the construction of the model. The standard verification trajectory therefore tends to become less reliable for larger applications. The second problem is one of timing and relevance. Software applications built by teams of programmers can change rapidly, often daily. Manually constructing an accurate abstraction of any one version of the application, though, can take weeks, which may jeopardize the validity of the results. In this paper a different verification method that avoids these problems is discussed. This method, which may be the precursor of a new class of testing techniques, was originally developed to allow for a thorough testing of parts of the software of a new commercial telephone switch. Here it is argued, though, that the method also has broad applicability to distributed software systems design in general.
TL;DR: Three test case selection strategies are proposed that aim at the detection of the literal insertion fault and the literal reference fault in programs whose specifications are expressed by Boolean algebra.
TL;DR: A modification of a formal testing method for extended finite‐state machines to handle the problem of correct behaviour of an implementation of some system, with respect to its specification, provided certain specific requirements for both of them are satisfied.
TL;DR: The results of an experiment using two mutation‐based testing criteria for unit and integration testing phases: the Mutation Analysis and the Interface Mutation adequacy criteria, respectively are presented.
TL;DR: Inspection is found to be ineffective when reviewing requirements to find errors violating structural properties, and current tools used in requirements engineering provide only limited support in automatically enforcing structural correctness of the requirements.
TL;DR: A new style of formal methods course is described, based on a pragmatic approach that emphasizes testing, that introduces students to formal specification using Z, and shows how formal specification and testing can benefit each other, in both the validation and verification phases.
TL;DR: A rigorous method is described that investigates the suitability of formal specifications written in Object‐Z specification language for testing object‐oriented software implementation in a black‐box fashion and generates test templates that are free from any implementation bias.
TL;DR: The first paper in this issue of STVR, by Periyasamy and Alagar, ‘A rigorous method for test templates generation from object-oriented specifications’, investigates specifications written in Object-Z to generate specification-based tests and a modification of a formal testing method for extended finite state machines to allow the testing of a system based upon statechart specifications.
Abstract: The last issue of STVR, 10(4), was a special issue dedicated to specification-based testing and edited by Rob Hierons and John Derrick. Three papers were included in that issue, one by Edwards providing component testing based on flowgraph sequencing information, a second paper by Wimmel et al., indicating how testing can be determined from a state-based specification, and a third by Hong et al., describing how tests can be systematically generated from a statechart, in effect a special form of state-based specification. The interesting observation is that both of the papers in this issue of STVR, 11(1), also involve specification-based testing. For example, the first paper in this issue, by Periyasamy and Alagar, ‘A rigorous method for test templates generation from object-oriented specifications’, investigates specifications written in Object-Z to generate specification-based tests. Object-Z is an extension of the Z notation that preserves the basic syntax and semantics of Z, but provides additional syntax for features such as inheritance, encapsulation and polymorphism. The primary emphasis of the paper is to generate test templates and oracles for composite operations in an Object-Z specification. A composite operationin Object-Z is specified using the names of operations that are composed using unnamed schemas. These unnamed schemas may introduce additional variables that are subject to scope rules, thus imposing additional constraints on the composed operations. Note that as a result, the input and output spaces are not explicit from the syntax of the composite operation. The correctness of the proposed method is informally justified based upon the semantics of the composite operators in Object-Z. The authors have applied the method to an electronic mail system example. Challenges for future research are to establish scalability and to automate the method with one or more tools. The second paper is written by Bogdanov and Holcombe, ‘Statechart testing method for aircraft control systems’, and could be considered a companion paper to the one on statecharts by Hong et al. that was included in the special STVRissue10(4). In the Bogdanov and Holcombe paper, the authors describe a modification of a formal testing method for extended finite state machines (FSMs) to allow the testing of a system based upon statechart specifications. This research was motivated by the fact that a number of concurrent control systems for aircraft have been specified using statecharts. It is interesting that, as a starting point to test simple statecharts, the authors reference and utilize Chow’s W method [ 1]. Recently, this Editor used an FSM to partially model a GUI for testing, and Chow’s W method was rediscovered for use in testing this FSM model. Readers unfamiliar with the Chow paper might want to check on it for the solution to a commonly occurring problem in testing. Bogdanov and Holcombe have applied their testing method to statechart specifications of part of an autopilot as a case
TL;DR: For September 2001, STVR reverts to being a regular issue, after the previous one which was devoted to a collection of papers from the WAPATV 2000 workshop, and the three papers in this issue seem to be linked by the theme of formal specifications also.
Abstract: For September 2001, STVR reverts to being a regular issue, after the previous one which was devoted to a collection of papers from the WAPATV 2000 workshop. In fact, two out of the past three issues have been special. Readers will recall that STVR 10(4) in December 2000 was a themed issue on specification-based testing. As it happens, STVR 11(1) in March 2001 also contained papers on that topic. The three papers in this issue seem to be linked by the theme of formal specifications also. In passing, another link is noted and that is a geographic one. The three sets of authors all come from Pacific Rim countries: Korea, Australia and New Zealand. It is good to see that STVR is achieving a truly global dimension! Kim and Cha, in their paper, describe how they built a tool to take requirements specifications in the SCR (Software Cost Reduction) style and translate them into equivalent PVS (Prototype Verification System) specifications. Structural properties concerning the inputs, the outputs and the consistency of the data flows were expressed as PVS theorems which were checked automatically by the PVS theorem prover. The method has been used with success on part of the emergency shutdown system of the Wolsung nuclear power plant in Korea. The structural properties considered were generic, so the same procedure could be applied without alteration to the requirements of other systems. In the future the authors hope to handle application-specific safety properties, provided they can be expressed as PVS theorems. The paper by Chen and Lau considers specifications in the form of Boolean expressions. Although the format might sound straightforward, especially by comparison with more specialist notations, it is not uncommon for a large number of variables to be involved, making exhaustive testing impossible. Certainly the motivation for considering such specifications is firmly rooted in the real world of avionics or avionics-related systems. For example, an earlier study by Weyuker et al. [1] represented the conditions for state transitions in the statechart specification of the Traffic alert and Collision Avoidance System II (TCAS II) as Boolean formulae. In this issue, Chen and Lau adopt an approach where test cases are generated or selected with the aim of detecting particular types of faults. Three strategies are proposed which, when taken in combination, are more cost-effective than the most powerful strategy in the family of ‘meaningful impact’ strategies previously proposed by Weyuker et al. for such specifications. The paper by Utting and Reeves will be of particular interest to university educators. It describes their experiences in presenting a formal methods course that was modified to emphasize, amongst
TL;DR: ATGen, an automatic test data generator, based on symbolic execution and that uses constraint logic programming, is presented and approaches for the resolution of the technical difficulties that have so far prevented symbolic execution from reaching its full potential are presented.
TL;DR: An empirical study performed to evaluate the effectiveness of object-oriented test strategies using the mutation method and chooses three selected OO test methods according to their effectiveness by determining how well the developed test sets kill injected mutants.
Abstract: The mutation method assesses test quality by examining the ability of a test set to distinguish syntactic deviations representing specific types of faults from the program under test. This paper describes an empirical study performed to evaluate the effectiveness of object-oriented (OO) test strategies using the mutation method. The test sets for the experimental system are generated according to three selected OO test methods and their effectiveness is compared by determining how well the developed test sets kill injected mutants derived from an established mutation system Mothra, and our own OO-specific mutation technique which is termed Class Mutation.
TL;DR: This paper outlines a general strategy for automated black‐box testing of software components that includes automatic generation of component test drivers, automaticgeneration of black‐ box test data, and automatic or semi‐automatic generation of part wrappers that serve as test oracles.
Abstract: This paper outlines a general strategy for automated black-box testing of software components that includes: automatic generation of component test drivers, automatic generation of black-box test data, and automatic or semi-automatic generation of component wrappers that serve as test oracles. This research in progress unifies several threads of testing research, and preliminary work indicates that practical levels of testing automation are possible.
TL;DR: This work investigates procedures for the determination of a sufficient mutant operators set for C programs with the perspective of contributing to the establishment of low‐cost, effective mutation‐based testing strategies.
TL;DR: It is argued, though, that the method was originally developed to allow for a thorough testing of parts of the software of a new commercial telephone switch also has broad applicability to distributed software systems design in general.