Test Driven Development
(Difference between revisions)
(Explanation and info from Nick Ingalls) |
(examples found) |
||
Line 1: | Line 1: | ||
+ | === Examples of TDD in OSS === | ||
+ | * https://www.quora.com/What-are-examples-of-substantial-open-source-software-written-using-test-driven-development-TDD | ||
+ | ** https://github.com/rails/rails | ||
+ | ** https://travis-ci.org/rails/rails | ||
+ | ** https://github.com/rails/rails/pull/23690 | ||
+ | |||
+ | * http://stackoverflow.com/questions/4174425/open-source-project-developed-using-tdd-and-java | ||
+ | ** http://www.sqlite.org/testing.html | ||
+ | ** Superb write up of how they do extensive testing, but its possibly not developed with TDD principles, or maybe partially. | ||
+ | |||
+ | * https://github.com/unclebob/fitnesse | ||
+ | ** Written by one of the Agile Manifesto co-authors | ||
+ | ** Very clean code, tests in /test directory | ||
+ | |||
+ | * http://junit.org/ | ||
+ | ** Well-known java unit testing framwork written by Kent Beck, inventor or TDD himself | ||
+ | ** https://github.com/junit-team/junit | ||
+ | ** https://github.com/junit-team/junit/tree/master/src/test | ||
+ | ** ex of actual test code: https://github.com/junit-team/junit/blob/master/src/test/java/junit/tests/framework/AssertTest.java | ||
+ | |||
+ | === Ideas and research === | ||
+ | |||
TDD | TDD | ||
* Idea 1: Find a project that already has a testing harness and associated tests; learn it, and add a new unit test | * Idea 1: Find a project that already has a testing harness and associated tests; learn it, and add a new unit test | ||
Line 19: | Line 41: | ||
** https://gist.github.com/ingalls/70508ec69c8e97a1c81e pseudo-code TDD | ** https://gist.github.com/ingalls/70508ec69c8e97a1c81e pseudo-code TDD | ||
** https://github.com/substack/tape tape tap-producing test harness for node and browsers | ** https://github.com/substack/tape tape tap-producing test harness for node and browsers | ||
+ | |||
+ | * 5 min TDD overview https://www.youtube.com/watch?v=QCif_-r8eK4 | ||
+ | * Is TDD Dead? https://www.youtube.com/watch?v=z9quxZsLcfo |
Revision as of 17:18, 16 February 2016
Examples of TDD in OSS
- http://stackoverflow.com/questions/4174425/open-source-project-developed-using-tdd-and-java
- http://www.sqlite.org/testing.html
- Superb write up of how they do extensive testing, but its possibly not developed with TDD principles, or maybe partially.
- https://github.com/unclebob/fitnesse
- Written by one of the Agile Manifesto co-authors
- Very clean code, tests in /test directory
- http://junit.org/
- Well-known java unit testing framwork written by Kent Beck, inventor or TDD himself
- https://github.com/junit-team/junit
- https://github.com/junit-team/junit/tree/master/src/test
- ex of actual test code: https://github.com/junit-team/junit/blob/master/src/test/java/junit/tests/framework/AssertTest.java
Ideas and research
TDD
- Idea 1: Find a project that already has a testing harness and associated tests; learn it, and add a new unit test
- Idea 2: Create a test harness to make, build, and run unit tests on an existing open source project
- Jim Bowring has done this in the past, though it seems they are lengthy projects vs a shorter activity; Do we want to create a “project”-oriented LA?
- Teach the “mental discipline” of testing
- How can we test a Requirement?
- Ensuring testing starts at user requirement gathering
- Iterating through tests once code has been written, helps to improve the tests
- Dave thinks ManageIQ does unit testing
- Background reading:
- http://www.cs.cofc.edu/~bowring/ - course in testing
- Boris Byser - the test guru
- Kent Beck - extreme programming (ford motor)
- http://foss2serve.org/index.php/Test_Coverage_Activity
- Info that Nick Ingalls gave me
- https://gist.github.com/ingalls/70508ec69c8e97a1c81e pseudo-code TDD
- https://github.com/substack/tape tape tap-producing test harness for node and browsers
- 5 min TDD overview https://www.youtube.com/watch?v=QCif_-r8eK4
- Is TDD Dead? https://www.youtube.com/watch?v=z9quxZsLcfo