CSC/ECE 517 Fall 2014/ch1b 28 cg: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
==Behavior-Driven Development and Test-Driven Development | ==Behavior-Driven Development and Test-Driven Development== | ||
==Background== | ==Background== | ||
==What is Test-Driven Development?== | ==What is Test-Driven Development?== | ||
Test driven development(TDD) is a [[software development process]] that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. | Test driven development(TDD) is a [[software development process]]] that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. | ||
===Development cycle=== | ===Development cycle=== |
Revision as of 19:09, 28 September 2014
Behavior-Driven Development and Test-Driven Development
Background
What is Test-Driven Development?
Test driven development(TDD) is a software development process] that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.
Development cycle
A TDD development cycle could be simply described as followed
- first write an automated test for your code. While writing the automated tests, you must take into account all possible inputs, errors, and outputs. This way, your mind is not clouded by any code that's already been written.
- The first time you run your automated test, the test should fail—indicating that the code is not yet ready.
- programming. Since there's already an automated test, as long as the code fails it, it means that it's still not ready. The code can be fixed until it passes all assertions.
- Begin cleaning up codes and remove redundancy via refactoring. As long as the code still passes the test, it means that it still works. You no longer have to worry about changes that introduce new bugs.
- Start the whole thing over again with some other method or program.
Example of TDD
What is Behavior-Driven Development?
Definition
BDD(Behavior Driven Development) is a synthesis and refinement of practices stemming from TDD(Test Driven Development) and ATDD(Acceptance Test Driven Development). Behavior driven development combines the ideas from domain-driven design and object-oriented analysis design, providing the collaboration between business interests and technical insights with shared tools and shared process to collaborate on software development. During the "Agile specifications, BDD and Testing eXchange" in November 2009 in London, Dan North[6] gave the following description of BDD: BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.