Using formal specifications to support testing

  title={Using formal specifications to support testing},
  author={Robert Mark Hierons and Kirill Bogdanov and Jonathan P. Bowen and Rance Cleaveland and John Derrick and Jeremy Dick and Marian Gheorghe and Mark Harman and Kalpesh Kapoor and Paul J. Krause and Gerald L{\"u}ttgen and Anthony J. H. Simons and Sergiy A. Vilkomir and Martin R. Woodward and Hussein Zedan},
  journal={ACM Comput. Surv.},
Formal methods and testing are two important approaches that assist in the development of high-quality software. While traditionally these approaches have been seen as rivals, in recent years a new consensus has developed in which they are seen as complementary. This article reviews the state of the art regarding ways in which the presence of a formal specification can be used to assist testing. 

Test-Case Generation for Maude Functional Modules

A tool is presented that is able to generate test cases for Maude functional modules, and check their correctness with respect to a given specification or select a subset of these test cases to be checked by the user by using different strategies.

A framework for formal specification considering review and specification-based testing

This paper introduces and examines a description framework for an interface specification and discusses the implementation of the framework and the effectiveness of applying a labeling feature to the authors' description framework.

Enhancing Formal Modelling Tool Support with Increased Automation

Progress report for the qualification exam report for PhD Student Kenneth Lausdahl. Initial work on enhancing tool support for the formal method VDM and the concept of unifying a abstract syntax tree

Improving input-output conformance testing theories

Important concern in software development, as a consequence of the ever-ascending trend of using software system in critical systems, model-based testing is formalized in terms of a mathematical notion of conformance.

Agile Development using Formal Methods

This research explores a more lightweight approach of using formal methods by creating a specification in a high-level language, which is transformed into both a formal model in mCRL2 and an implementation in Java.

Testing and Refinement

This chapter explores the relationship between testing and refinement, and looks at how tests for a refinement can be derived from tests for the abstract system.

Towards the integration of formal specification in the Áncora methodology

This article describes a methodological proposal, implementing formal methods to the results of the process of requirements analysis of the methodology \'Ancora', aimed at generating a contribution to the specification of requirements.

Concurrent Software Testing : A Systematic Review ?

A systematic review identified testing criteria, bugs taxonomy and testing tools that can provide the foundation for new research in the area of concurrent program testing, such as definition of new criteria and new testing tools.

Metrics for quantifying evolutionary changes in Z specifications

  • A. Bollin
  • Computer Science
    J. Softw. Evol. Process.
  • 2013
Measurements are proposed for quantifying changes throughout the evolution of formal software specifications in long living systems to help assess the impact of evolutionary changes.

Functional Requirements-Based Automated Testing for Avionics

  • Youcheng SunM. Brain I. Broster
  • Computer Science
    2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS)
  • 2017
The application of Bounded Model Checking to formal low-level requirements is applied to generate tests automatically that are good enough to replace existing labor-intensive test writing procedures while maintaining independence from implementation artefacts.



Using formal specifications to support software testing

It is shown how the specification can be used for systematically deriving test input data and for automatically evaluating test results, and the same principles may be applied to other specification languages.

FORTEST: formal methods and testing

The usefulness or otherwise of formal methods in various contexts for improving software testing is explored and a number of different possibilities for the use of formal Methods are explored.

Formal Specification and Design Time Testing

It is shown how design time testing can be used in conjunction with formal specification and that such an approach offers positive benefits by providing early design validation and a controlled, disciplined design process.

Testing as Abstraction

The PROST-Objects project has developed a method for formally specifying tests, based on systematic abstraction from a ‘state-plusoperation’ style specification, which can be used to produce a suite of formal test specifications.

Testing Formal Specifications to Detect Design Errors

  • R. Kemmerer
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1985
Why it is necessary to test specifications early in the software life cycle to guarantee a system that meets its critical requirements and that also provides the desired functionality is demonstrated.

Combining Testing with Formal Specifications: A Case Study

This paper describes the experience specifying, implementing, and validating a record-oriented text editor similar to one discussed in [7], where algebraic axioms served as the specification notation and thorough exercising of the implementations by the specifications resulted in few errors persisting until integration.

An approach to architectural analysis and testing

This position paper shows how the architectural style description language ASDL provides a basis for architectural analysis and testing as well as a prototype architecture description toolset that will serve as the foundation for testing and analysis tools that are currently under development.

Testing Can Be Formal, Too

The paper presents a theory of program testing based on formal specifications that is the basis for a notion of an exhaustive test set and shows that the success of this test set is equivalent to the satisfaction of the specification.

Probe: a formal specification-based testing system

A new approach for specification-based testing is described, which uses an executable PROLOG specification as the basis for generating test cases, which is translated from the formal specifications of the software under test.

Testing refinements of state‐based formal specifications

After tests have been derived from a formal specification, the specification might be refined further before it is implemented, and therefore a mechanism is needed to relate the abstract tests to the refined implementation.