Font Size: a A A

Integrating behavior driven development and programming by contract to improve correctness in computer programs

Posted on:2013-06-29Degree:M.SType:Thesis
University:Bradley UniversityCandidate:Schoeneman, LarryFull Text:PDF
GTID:2456390008982601Subject:Computer Science
Abstract/Summary:
In many professional development settings, Test Driven Development (TDD), and its evolutionary descendent, Behavior Driven Development (BDD) are increasingly being used to improve code quality and reducing error rates. While very valuable, they are considerably less rigorous than formal methodologies of program correctness via formal logic. A less rigorous methodology utilizing the ideas of formal methods but without requiring an actual full proof are also in use called "Design by Contract" (DBC) or "Programming by Contract." (PBC).;This thesis will examine extending and combining the ideas behind TDD, BDD and DBC to improve the overall stability and quality of a system. It will examine using both TDD/BDD (hereinafter referred to as TDD) and PBC to enhance the quality of development throughout the software development life cycle, while aiding in the development and stabilization of sound architecture.;A result of this examination is a tool that attempts to derive unit tests automatically by analyzing human written specifications for preconditions and post-conditions when coupled with data definitions. These results will be used to generate code to be run by a unit testing framework before deployment, either as part of a continuous integration environment or by individual developers. The tool will also attempt to generate wireframe classes implementing pre and post-conditions within the code and using runtime contract analysis to generate information when an exception occurs, thereby helping to automate verification of bug fixes. Ultimately, the tool produced would be useful in a non-academic environment as a utility to extend the benefit of design by contract combined with TDD to the agile space.
Keywords/Search Tags:Development, TDD, Contract, Improve
Related items