Results 1 - 10
of
127
An Experiment in Specification-based Testing
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 1995
"... The Test Template Framework (TTF) is a formal, abstract model of tests used to derive a hierarchy of test information, including test cases and oracles. The hierarchy is derived from a formal model-based specification, for example, one written in the Z notation. We present a case study deriving ..."
Abstract
-
Cited by 76 (8 self)
- Add to MetaCart
The Test Template Framework (TTF) is a formal, abstract model of tests used to derive a hierarchy of test information, including test cases and oracles. The hierarchy is derived from a formal model-based specification, for example, one written in the Z notation. We present a case study deriving a Test Template Hierarchy (TTH) from a specification for topological sorting. Test suites were also prepared from the same specification by two classes of testers: experts and non-experts. Qualitative analysis of the test suites indicated a lack of structured process in their development. The suites were analysed quantitatively by executing all valid test inputs on five implementations seeded with faults and the TTF-derived suite was the only one to identify all faults. The most structured of the non-TTF suites identified more faults than any other non-TTF suite, and it was found to be covered by the TTFderived suite. This informal comparison demonstrates that a systematic, formal ...
Improving Test Suites via Operational Abstraction
- In Proceedings of the 25th International Conference on Software Engineering
, 2003
"... This paper presents the operational difference technique for generating, augmenting, and minimizing test suites. The technique is analogous to structural code coverage techniques, but it operates in the semantic domain of program properties rather than the syntactic domain of program text. The opera ..."
Abstract
-
Cited by 75 (12 self)
- Add to MetaCart
This paper presents the operational difference technique for generating, augmenting, and minimizing test suites. The technique is analogous to structural code coverage techniques, but it operates in the semantic domain of program properties rather than the syntactic domain of program text. The operational difference technique automatically selects test cases; it assumes only the existence of a source of test cases. The technique dynamically generates operational abstractions (which describe observed behavior and are syntactically identical to formal specifications) from test suite executions. Test suites can be generated by adding cases until the operational abstraction stops changing. The resulting test suites are as small, and detect as many faults, as suites with 100% branch coverage, and are better at detecting certain common faults.
Testing can be formal, too
, 1995
"... Abstract. The paper presents a theory of program testing based on formal specifications. The formal semantics of the specifications is the basis for a notion of an exhaustive test set. Under some minimal hypotheses on the program under test, the success of this test set is equivalent to the satisfac ..."
Abstract
-
Cited by 67 (0 self)
- Add to MetaCart
Abstract. The paper presents a theory of program testing based on formal specifications. The formal semantics of the specifications is the basis for a notion of an exhaustive test set. Under some minimal hypotheses on the program under test, the success of this test set is equivalent to the satisfaction of the specification. The selection of a finite subset of the exhaustive test set can be seen as the introduction of more hypotheses on the program, called selection hypotheses. Several examples of commonly used selection hypotheses are presented. Another problem is the observability of the results of a program with respect to its specification: contrary to some common belief, the use of a formal specification is not always sufficient to decide whether a test execution is a success. As soon as the specification deals with more abstract entities than the program, program results may appear in a form which is not obviously equivalent to the specificied results. A solution to this problem is proposed in the case of algebraic specifications. 1
Generating Finite State Machines from Abstract State Machines
- in Proceedings of International Symposium on Software Testing and Analysis (ISSTA
, 2002
"... We give an algorithm that derives a finite state machine (FSM) from a given abstract state machine (ASM) specification. This allows us to integrate ASM specs with the existing tools for test case generation from FSMs. ASM specs are executable but have typically too many, often infinitely many states ..."
Abstract
-
Cited by 62 (19 self)
- Add to MetaCart
We give an algorithm that derives a finite state machine (FSM) from a given abstract state machine (ASM) specification. This allows us to integrate ASM specs with the existing tools for test case generation from FSMs. ASM specs are executable but have typically too many, often infinitely many states. We group ASM states into finitely many hyperstates which are the nodes of the FSM. The links of the FSM are induced by the ASM state transitions.
Criteria for generating specification-based tests
- In Proceedings of the Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS '99
, 1999
"... This paper presents general criteria for generating test inputs from state-based specifications. Software testing can only be formalized and quantified whena solid basis for test generation can be defined. Formal specifications of complex systems represent a significant opportunity for testing becau ..."
Abstract
-
Cited by 45 (3 self)
- Add to MetaCart
This paper presents general criteria for generating test inputs from state-based specifications. Software testing can only be formalized and quantified whena solid basis for test generation can be defined. Formal specifications of complex systems represent a significant opportunity for testing because they precisely describe what functions the software is supposed to provide in a form that can easily be manipulated. These techniques provide coverage criteria that are based on the specifications, and are made up of several parts, including test prefixes that contain inputs necessary to put the software into the appropriate state for the test values. The test generation process includes several steps for transforming specifications to tests. Empirical results from a comparative case study application of these criteria are presented.
Testing web applications by modeling with fsms
- Software and Systems Modeling
, 2005
"... Abstract. Researchers and practitioners are still trying to find effective ways to model and test Web applications. This paper proposes a system-level testing technique that combines test generation based on finite state machines with constraints. We use a hierarchical approach to model potentially ..."
Abstract
-
Cited by 37 (3 self)
- Add to MetaCart
Abstract. Researchers and practitioners are still trying to find effective ways to model and test Web applications. This paper proposes a system-level testing technique that combines test generation based on finite state machines with constraints. We use a hierarchical approach to model potentially large Web applications. The approach builds hierarchies of Finite State Machines (FSMs) that model subsystems of the Web applications, and then generates test requirements as subsequences of states in the FSMs. These subsequences are then combined and refined to form complete executable tests. The constraints are used to select a reduced set of inputs with the goal of reducing the state space explosion otherwise inherent in using FSMs. The paper illustrates the technique with a running example of a Web-based course student information system and introduces a prototype implementation to support the technique.
Generating test data from state-based specifications
- The Journal of Software Testing, Verification and Reliability
, 2003
"... Although the majority of software testing in industry is conducted at the system level, most formal research has focused on the unit level. As a result, most system level testing techniques are only described informally. This paper presents formal testing criteria for system level testing that are b ..."
Abstract
-
Cited by 36 (7 self)
- Add to MetaCart
Although the majority of software testing in industry is conducted at the system level, most formal research has focused on the unit level. As a result, most system level testing techniques are only described informally. This paper presents formal testing criteria for system level testing that are based on formal specifications of the software. Software testing can only be formalized and quantified when a solid basis for test generation can be defined. Formal specifications represent a significant opportunity for testing because they precisely describe what functions the software is supposed to provide in a form that can be automatically manipulated. This paper presents general criteria for generating test inputs from state-based specifications. The criteria include techniques for generating tests at several levels of abstraction for specifications (transition predicates, transitions, pairs of transitions and sequences of transitions). These techniques provide coverage criteria that are based on the specifications, and are made up of several parts, including test prefixes that contain inputs necessary to put the software into the appropriate state for the test values. The test generation process includes several steps for transforming specifications to tests. These criteria have been applied to a case study to compare their ability to detect seeded faults.
Improving Software Tests using Z Specifications
- In Proc. 9th International Conference of Z Users, The Z Formal Specification Notation
, 1995
"... Formal Specifications become more and more important in the development of software, especially, but not only in the area of high integrity systems. Testing as a method to validate the functionality of a system against the specification will keep its justification also in a development process using ..."
Abstract
-
Cited by 34 (0 self)
- Add to MetaCart
Formal Specifications become more and more important in the development of software, especially, but not only in the area of high integrity systems. Testing as a method to validate the functionality of a system against the specification will keep its justification also in a development process using formal specifications. We demonstrate, where the problems lie when carrying out software integration tests using traditional testing techniques. It will then be demonstrated, how formal specifications can be used to achieve greater reliability and productivity during the software testing process by using extensive automatic tool support. This applies for the selection of test cases as well as the evaluation of test results, leading to a highly automated test process. First experiences from a case study will be given, in which we repeat the software integration test process for an application that has been developed by DST as part of the Cabin Intercommunication Data System (CIDS) for the Airbus A330/340 family.
A Structure Preserving Encoding of Z in Isabelle/HOL
- Theorem Proving in Higher-Order Logics, LNCS 1125
, 1996
"... . We present a semantic representation of the core concepts of the specification language Z in higher-order logic. Although it is a "shallow embedding" like the one presented by Bowen and Gordon, our representation preserves the structure of a Z specification and avoids expanding Z schemas. The ..."
Abstract
-
Cited by 33 (6 self)
- Add to MetaCart
. We present a semantic representation of the core concepts of the specification language Z in higher-order logic. Although it is a "shallow embedding" like the one presented by Bowen and Gordon, our representation preserves the structure of a Z specification and avoids expanding Z schemas. The representation is implemented in the higherorder logic instance of the generic theorem prover Isabelle. Its parser can convert the concrete syntax of Z schemas into their semantic representation and thus spare users from having to deal with the representation explicitly. Our representation essentially conforms with the latest draft of the Z standard and may give both a clearer understanding of Z schemas and inspire the development of proof calculi for Z. 1 Introduction Implementations of proof support for Z [Spi 92, Nic 95] can roughly be divided into two categories. In direct implementations, the rules of the logic are directly represented by functions of the prover's implementation...
TestEra: Specification-based Testing of Java Programs Using SAT
- AUTOM. SOFTW. ENG
, 2004
"... TestEra is a framework for automated specification-based testing of Java programs. TestEra requires as input a Java method (in sourcecode or bytecode) , a formal specification of the pre- and post-conditions of that method, and a bound that limits the size of the test cases to be generated. Using th ..."
Abstract
-
Cited by 32 (5 self)
- Add to MetaCart
TestEra is a framework for automated specification-based testing of Java programs. TestEra requires as input a Java method (in sourcecode or bytecode) , a formal specification of the pre- and post-conditions of that method, and a bound that limits the size of the test cases to be generated. Using the method's pre-condition, TestEra automatically generates all nonisomorphic test inputs up to the given bound. It executes the method on each test input, and uses the method postcondition as an oracle to check the correctness of each output. Specifications are first-order logic formulae. As an enabling technology, TestEra uses the Alloy toolset, which provides an automatic SAT-based tool for analyzing first-order logic formulae. We have used TestEra to check several Java programs including an architecture for dynamic networks, the Alloy-alpha analyzer, a fault-tree analyzer, and methods from the Java Collection Framework.

