Matela Braquehais, Rudy (2017) Tools for Discovery, Refinement and Generalization of Functional Properties by Enumerative Testing. PhD thesis, University of York.
Abstract
This thesis presents techniques for discovery, refinement and generalization of properties about functional programs. These techniques work by reasoning from test results: their results are surprisingly accurate in practice, despite an inherent uncertainty in principle. These techniques are validated by corresponding implementations in Haskell and for Haskell programs: Speculate, FitSpec and Extrapolate. Speculate discovers properties given a collection of black-box function signatures. Properties discovered by Speculate include inequalities and conditional equations. These properties can contribute to program understanding, documentation and regression testing. FitSpec guides refinements of properties based on results of black-box mutation testing. These refinements include completion and minimization of property sets. Extrapolate generalizes counterexamples of test properties. Generalized counterexamples include repeated variables and side-conditions and can inform the programmer what characterizes failures. Several example applications demonstrate the effectiveness of Speculate, FitSpec and Extrapolate.
Metadata
Supervisors: | Runciman, Colin |
---|---|
Related URLs: |
|
Awarding institution: | University of York |
Academic Units: | The University of York > Computer Science (York) |
Identification Number/EthosID: | uk.bl.ethos.731590 |
Depositing User: | Mr. Rudy Matela Braquehais |
Date Deposited: | 26 Jan 2018 16:35 |
Last Modified: | 24 Jul 2018 15:24 |
Open Archives Initiative ID (OAI ID): | oai:etheses.whiterose.ac.uk:19178 |
Download
Examined Thesis (PDF)
Filename: rudy-braquehais-phd-thesis-2017-v2.4.pdf
Licence:
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License
Export
Statistics
You do not need to contact us to get a copy of this thesis. Please use the 'Download' link(s) above to get a copy.
You can contact us about this thesis. If you need to make a general enquiry, please see the Contact us page.