http://foss2serve.org/index.php?title=Test_Driven_Development&feed=atom&action=historyTest Driven Development - Revision history2024-03-28T18:33:17ZRevision history for this page on the wikiMediaWiki 1.18.1http://foss2serve.org/index.php?title=Test_Driven_Development&diff=12676&oldid=prevClif.kussmaul at 12:16, 8 September 20182018-09-08T12:16:40Z<p></p>
<a href="http://foss2serve.org/index.php?title=Test_Driven_Development&diff=12676&oldid=9464">Show changes</a>Clif.kussmaulhttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=9464&oldid=prevADalal at 17:43, 8 March 20172017-03-08T17:43:31Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 17:43, 8 March 2017</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 254:</td>
<td colspan="2" class="diff-lineno">Line 254:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: CS1]]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: CS1]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: CS2]]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: CS2]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Category: Good Draft]]</ins></div></td></tr>
</table>ADalalhttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=9454&oldid=prevLlambert: /* Background: */2017-03-08T17:41:58Z<p><span class="autocomment">Background:</span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 17:41, 8 March 2017</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 25:</td>
<td colspan="2" class="diff-lineno">Line 25:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Is there background reading material?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Is there background reading material?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>It is assumed, as per the prerequisites above, that students have already learned about TDD. However, if teacher or students need some content to start on, the best quick dummies guide would be this [https://www.youtube.com/watch?v=QCif_-r8eK4 YouTube video summarizing TDD], and this [http://www.agiledata.org/essays/tdd.html graphical explanation of the TDD process]. If you want more extensive TDD learning content, check out Kent <del class="diffchange diffchange-inline">Becks </del>[http://www.amazon.com/exec/obidos/ASIN/0321146530/ "Test-Driven Development by Example"]. He is the inventor of TDD and wrote JUnit, the focus of this exercise. Additionally, see how a [https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf CalPoly] and [http://www.cs.cofc.edu/~bowring/ College of Charleston] class used TDD in their studies. For more resources, and ideas on secondary TDD exercises, see the [[#Appendix|Appendix]] of this page.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>It is assumed, as per the prerequisites above, that students have already learned about TDD. However, if teacher or students need some content to start on, the best quick dummies guide would be this [https://www.youtube.com/watch?v=QCif_-r8eK4 YouTube video summarizing TDD], and this [http://www.agiledata.org/essays/tdd.html graphical explanation of the TDD process]. If you want more extensive TDD learning content, check out Kent <ins class="diffchange diffchange-inline">Beck's </ins>[http://www.amazon.com/exec/obidos/ASIN/0321146530/ "Test-Driven Development by Example"]. He is the inventor of TDD and wrote JUnit, the focus of this exercise. Additionally, see how a [https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf CalPoly] and [http://www.cs.cofc.edu/~bowring/ College of Charleston] class used TDD in their studies. For more resources, and ideas on secondary TDD exercises, see the [[#Appendix|Appendix]] of this page.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>What is the rationale for this activity?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>What is the rationale for this activity?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The method of how developers go about implementing code is varied. Test driven development is one such method stemming in the 2000's that has gained momentum as an accepted and [https://tuhat.halvi.helsinki.fi/portal/files/29553974/2014_01_swqd_author_version.pdf research-proven] method for increasing software quality, readability, and reliability. Testing software to assure that it works within particular constraints is an extension of quality assurance (QA) efforts that most professional software products enact to increase their products value. With TDD, this testing is built-in even ''before'' students write their first line of code. This means that students will have a better grasp on ''what'' they are programming and why. It means that students will have code that not only works when they first implement it, but that will continue to work when others develop next to it and run the same tests.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The method of how developers go about implementing code is varied. Test driven development is one such method stemming in the 2000's that has gained momentum as an accepted and [https://tuhat.halvi.helsinki.fi/portal/files/29553974/2014_01_swqd_author_version.pdf research-proven] method for increasing software quality, readability, and reliability. Testing software to assure that it works within particular constraints is an extension of quality assurance (QA) efforts that most professional software products enact to increase their products value. With TDD, this testing is built-in even ''before'' students write their first line of code. This means that students will have a better grasp on ''what'' they are programming and why. It means that students will have code that not only works when they first implement it, but that will continue to work when others develop next to it and run the same tests.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Directions: ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Directions: ===</div></td></tr>
</table>Llamberthttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=6455&oldid=prevDee.weikle: Added category2016-08-07T20:48:38Z<p>Added category</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:48, 7 August 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 253:</td>
<td colspan="2" class="diff-lineno">Line 253:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Boris Byser - the test guru</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Boris Byser - the test guru</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Kent Beck - extreme programming (ford motor)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Kent Beck - extreme programming (ford motor)</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Category: CS1]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Category: CS2]]</ins></div></td></tr>
</table>Dee.weiklehttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=5349&oldid=prevNyeates: Add clarifying sentance2016-02-25T13:04:50Z<p>Add clarifying sentance</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 13:04, 25 February 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 185:</td>
<td colspan="2" class="diff-lineno">Line 185:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Below lists 3rd party tutorials, how-to's, and learning resources that explain TDD and JUnit. They may be useful as alternative or harder secondary learning activities so that students can dive in a bit deeper.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Below lists 3rd party tutorials, how-to's, and learning resources that explain TDD and JUnit. They may be useful as alternative or harder secondary learning activities so that students can dive in a bit deeper.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/ , http://www.codeaffine.com/2012/11/26/working-efficiently-with-junit-in-eclipse-2/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/ , http://www.codeaffine.com/2012/11/26/working-efficiently-with-junit-in-eclipse-2/</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** This is the tutorial used in the above activity, kept here for posterity sake.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** A superbly written step-by-step walk through of creating a test and then creating the associated functional code</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** A superbly written step-by-step walk through of creating a test and then creating the associated functional code</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** It uses JUnit, which is an open source technology - it uses a helloworld example</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** It uses JUnit, which is an open source technology - it uses a helloworld example</div></td></tr>
</table>Nyeateshttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=5341&oldid=prevNyeates: added intro sentances to directions so its more flowy and less bullety2016-02-23T22:19:37Z<p>added intro sentances to directions so its more flowy and less bullety</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 22:19, 23 February 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 34:</td>
<td colspan="2" class="diff-lineno">Line 34:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Directions: ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Directions: ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>This activity follows a tutorial that steps you through the TDD development process in the Eclipse IDE using its integrated JUnit module. Follow the below tutorials while implementing the TDD test code in Eclipse on your own computer. Finally, you will create <del class="diffchange diffchange-inline">actual non-test </del>code that gets the tests to succeed (green JUnit bar). You will hand in this code, the associated test, and two screenshots.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>This activity follows a tutorial that steps you through the TDD development process in the Eclipse IDE using its integrated JUnit module. Follow the below tutorials while implementing the TDD test code in Eclipse on your own computer. Finally, you will create <ins class="diffchange diffchange-inline">standard functional </ins>code that gets the tests to succeed (green JUnit bar). You will hand in this code, the associated test <ins class="diffchange diffchange-inline">code</ins>, and two screenshots.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Step 1: Setup Eclipse and JUnit ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Step 1: Setup Eclipse and JUnit ====</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">First, you will need to setup and understand your coding environment. If you have not setup the Eclipse IDE for java before, read through some of the below links. You need to be able to run code and tests with the IDE. There can be some unexpected "gotchas".</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* [https://eclipse.org/downloads/ Download and install] Eclipse - JUnit comes with "Eclipse IDE for Java Developers"</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* [https://eclipse.org/downloads/ Download and install] Eclipse - JUnit comes with "Eclipse IDE for Java Developers"</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Become familiar with the Eclipse Workbench and in Running code - there is a built-in Eclipse Help Guide, as well as 3rd party tutorials.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Become familiar with the Eclipse Workbench and in Running code - there is a built-in Eclipse Help Guide, as well as 3rd party tutorials.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 44:</td>
<td colspan="2" class="diff-lineno">Line 45:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Start a new Java Project and include your own name in the 'Project name' field.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Start a new Java Project and include your own name in the 'Project name' field.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Ex: "NumberCounter-NYeates"</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Ex: "NumberCounter-NYeates"</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Step 2: Make the test ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Step 2: Make the test ====</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">Next</del>, <del class="diffchange diffchange-inline">follow </del>the <del class="diffchange diffchange-inline">Eclipse-JUnit-based TDD </del>tutorial <del class="diffchange diffchange-inline">located at</del>:</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">As per TDD you will write a failing test first</ins>, <ins class="diffchange diffchange-inline">before writing any real code that achieves your purpose. The meat of this activity is in </ins>the <ins class="diffchange diffchange-inline">Code Affine </ins>tutorial <ins class="diffchange diffchange-inline">below</ins>:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/  </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** It is an illustrated step-by-step walk through of creating a test and then creating the associated System Under Test (SUT) code (the code which implements the functionality that you actually want).</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** It is an illustrated step-by-step walk through of creating a test and then creating the associated System Under Test (SUT) code (the code which implements the functionality that you actually want).</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 56:</td>
<td colspan="2" class="diff-lineno">Line 56:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* You will be marked up for commenting your code.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* You will be marked up for commenting your code.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Take a screenshot of the failing test (red JUnit bar) and code.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Take a screenshot of the failing test (red JUnit bar) and code.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Step 3: Write the code ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Step 3: Write the code ====</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>You should now have a test case that fails and a stub/skeleton for the System Under Test (SUT) code.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>You should now have a test case that fails and a stub/skeleton for the System Under Test (SUT) code. Now, you need to make the test succeed. This means implementing the SUT code <ins class="diffchange diffchange-inline">(the code that actually implements the functionality wanted) </ins>to make the test go green in Eclipse<ins class="diffchange diffchange-inline">.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* </del>Now, you need to make the test succeed. This means implementing the SUT code to make the test go green in Eclipse.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* Create working SUT code in the "NumberRangeCounter.java" file</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* You will be marked up for commenting your code.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* You will be marked up for commenting your code.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Take a screenshot of the succeeding test (green JUnit bar), alongside the code implemented to attain it.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Take a screenshot of the succeeding test (green JUnit bar), alongside the code implemented to attain it.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 72:</td>
<td colspan="2" class="diff-lineno">Line 71:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Deliverables: ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Deliverables: ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">Code </del>and screenshots:</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">After having gone through the above tutorials and coding exercise, students will hand in the following code </ins>and screenshots:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>* Test code and implementation code that, together, make a successful test case (green in Eclipse JUnit).</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>* Test code and implementation <ins class="diffchange diffchange-inline">(SUT) </ins>code that, together, make a successful test case (green in Eclipse JUnit).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* A screenshot of the test failing (red JUnit bard), before you write the SUT code.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* A screenshot of the test failing (red JUnit bard), before you write the SUT code.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* A screenshot of the test succeeding (green JUnit bar), along side the code you just ran.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* A screenshot of the test succeeding (green JUnit bar), along side the code you just ran.</div></td></tr>
</table>Nyeateshttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=5340&oldid=prevNyeates: pretty up the Directions section with nicer titles and organization2016-02-23T22:04:59Z<p>pretty up the Directions section with nicer titles and organization</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 22:04, 23 February 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 23:</td>
<td colspan="2" class="diff-lineno">Line 23:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Background: ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Background: ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">==== Background </del>reading <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">Is there background </ins>reading <ins class="diffchange diffchange-inline">material?</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>It is assumed, as per the prerequisites above, that students already <del class="diffchange diffchange-inline">know </del>TDD. However, if teacher or students need some content to start on, the best quick dummies guide would be this [https://www.youtube.com/watch?v=QCif_-r8eK4 YouTube video summarizing TDD], and this [http://www.agiledata.org/essays/tdd.html graphical explanation of the TDD process]. If you want more extensive TDD learning content, check out Kent Becks [http://www.amazon.com/exec/obidos/ASIN/0321146530/ "Test-Driven Development by Example"]. He is the inventor of TDD and wrote JUnit, the focus of this exercise. Additionally, see how a [https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf CalPoly] and [http://www.cs.cofc.edu/~bowring/ College of Charleston] class used TDD in their studies. For more resources, and ideas on secondary TDD exercises, see the [[#Appendix|Appendix]] of this page.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>It is assumed, as per the prerequisites above, that students <ins class="diffchange diffchange-inline">have </ins>already <ins class="diffchange diffchange-inline">learned about </ins>TDD. However, if teacher or students need some content to start on, the best quick dummies guide would be this [https://www.youtube.com/watch?v=QCif_-r8eK4 YouTube video summarizing TDD], and this [http://www.agiledata.org/essays/tdd.html graphical explanation of the TDD process]. If you want more extensive TDD learning content, check out Kent Becks [http://www.amazon.com/exec/obidos/ASIN/0321146530/ "Test-Driven Development by Example"]. He is the inventor of TDD and wrote JUnit, the focus of this exercise. Additionally, see how a [https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf CalPoly] and [http://www.cs.cofc.edu/~bowring/ College of Charleston] class used TDD in their studies. For more resources, and ideas on secondary TDD exercises, see the [[#Appendix|Appendix]] of this page.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">What is the rationale for this activity?</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">==== Rationale ====</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The method of how developers go about implementing code is varied. Test driven development is one such method stemming in the 2000's that has gained momentum as an accepted and [https://tuhat.halvi.helsinki.fi/portal/files/29553974/2014_01_swqd_author_version.pdf research-proven] method for increasing software quality, readability, and reliability. Testing software to assure that it works within particular constraints is an extension of quality assurance (QA) efforts that most professional software products enact to increase their products value. With TDD, this testing is built-in even ''before'' students write their first line of code. This means that students will have a better grasp on ''what'' they are programming and why. It means that students will have code that not only works when they first implement it, but that will continue to work when others develop next to it and run the same tests.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The method of how developers go about implementing code is varied. Test driven development is one such method stemming in the 2000's that has gained momentum as an accepted and [https://tuhat.halvi.helsinki.fi/portal/files/29553974/2014_01_swqd_author_version.pdf research-proven] method for increasing software quality, readability, and reliability. Testing software to assure that it works within particular constraints is an extension of quality assurance (QA) efforts that most professional software products enact to increase their products value. With TDD, this testing is built-in even ''before'' students write their first line of code. This means that students will have a better grasp on ''what'' they are programming and why. It means that students will have code that not only works when they first implement it, but that will continue to work when others develop next to it and run the same tests.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 34:</td>
<td colspan="2" class="diff-lineno">Line 36:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>This activity follows a tutorial that steps you through the TDD development process in the Eclipse IDE using its integrated JUnit module. Follow the below tutorials while implementing the TDD test code in Eclipse on your own computer. Finally, you will create actual non-test code that gets the tests to succeed (green JUnit bar). You will hand in this code, the associated test, and two screenshots.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>This activity follows a tutorial that steps you through the TDD development process in the Eclipse IDE using its integrated JUnit module. Follow the below tutorials while implementing the TDD test code in Eclipse on your own computer. Finally, you will create actual non-test code that gets the tests to succeed (green JUnit bar). You will hand in this code, the associated test, and two screenshots.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">==== Step 1: </ins>Setup Eclipse and JUnit <ins class="diffchange diffchange-inline">====</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Setup Eclipse and JUnit</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* [https://eclipse.org/downloads/ Download and install] Eclipse - JUnit comes with "Eclipse IDE for Java Developers"</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* [https://eclipse.org/downloads/ Download and install] Eclipse - JUnit comes with "Eclipse IDE for Java Developers"</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Become familiar with the Eclipse Workbench and in Running code - there is a built-in Eclipse Help Guide, as well as 3rd party tutorials.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Become familiar with the Eclipse Workbench and in Running code - there is a built-in Eclipse Help Guide, as well as 3rd party tutorials.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 45:</td>
<td colspan="2" class="diff-lineno">Line 46:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">==== Step 2: Make the test ====</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Next, follow the Eclipse-JUnit-based TDD tutorial located at:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Next, follow the Eclipse-JUnit-based TDD tutorial located at:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/  </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/  </div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 52:</td>
<td colspan="2" class="diff-lineno">Line 55:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Implement the test class code and the skeleton SUT code found in the tutorial and get a failing test.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Implement the test class code and the skeleton SUT code found in the tutorial and get a failing test.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* You will be marked up for commenting your code.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* You will be marked up for commenting your code.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>* Take a screenshot of the failing test (red JUnit bar)<del class="diffchange diffchange-inline">, alongside the test class used to bring the Assertion fail</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>* Take a screenshot of the failing test (red JUnit bar) <ins class="diffchange diffchange-inline">and code</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">==== Step 3: Write the code ====</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>You should now have a test case that fails and a stub/skeleton for the System Under Test (SUT) code.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>You should now have a test case that fails and a stub/skeleton for the System Under Test (SUT) code.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Now, you need to make the test succeed. This means implementing the SUT code to make the test go green in Eclipse.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Now, you need to make the test succeed. This means implementing the SUT code to make the test go green in Eclipse.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 63:</td>
<td colspan="2" class="diff-lineno">Line 68:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>(Optional self-learning) For tips and tricks on using JUnit in Eclipse, see the following:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>(Optional self-learning) For tips and tricks on using JUnit in Eclipse, see the following:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2012/11/26/working-efficiently-with-junit-in-eclipse-2/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://www.codeaffine.com/2012/11/26/working-efficiently-with-junit-in-eclipse-2/</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
</table>Nyeateshttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=5339&oldid=prevNyeates: Appendix is more well explained and organized2016-02-23T21:54:29Z<p>Appendix is more well explained and organized</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 21:54, 23 February 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 24:</td>
<td colspan="2" class="diff-lineno">Line 24:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Background reading ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Background reading ====</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>It is assumed, as per the prerequisites above, that students already know TDD. However, if teacher or students need some content to start on, the best quick dummies guide would be this [https://www.youtube.com/watch?v=QCif_-r8eK4 YouTube video summarizing TDD], and this [http://www.agiledata.org/essays/tdd.html graphical explanation of the TDD process]. If you want more extensive TDD learning content, check out Kent Becks [http://www.amazon.com/exec/obidos/ASIN/0321146530/ "Test-Driven Development by Example"]. He is the inventor of TDD and wrote JUnit, the focus of this exercise. Additionally, see how a [https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf CalPoly] and [http://www.cs.cofc.edu/~bowring/ College of Charleston] class used TDD in their studies. For more <del class="diffchange diffchange-inline">resource</del>, see the [[#Appendix|<del class="diffchange diffchange-inline">See </del>Appendix]] of this page.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>It is assumed, as per the prerequisites above, that students already know TDD. However, if teacher or students need some content to start on, the best quick dummies guide would be this [https://www.youtube.com/watch?v=QCif_-r8eK4 YouTube video summarizing TDD], and this [http://www.agiledata.org/essays/tdd.html graphical explanation of the TDD process]. If you want more extensive TDD learning content, check out Kent Becks [http://www.amazon.com/exec/obidos/ASIN/0321146530/ "Test-Driven Development by Example"]. He is the inventor of TDD and wrote JUnit, the focus of this exercise. Additionally, see how a [https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf CalPoly] and [http://www.cs.cofc.edu/~bowring/ College of Charleston] class used TDD in their studies. For more <ins class="diffchange diffchange-inline">resources, and ideas on secondary TDD exercises</ins>, see the [[#Appendix|Appendix]] of this page.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Rationale ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Rationale ====</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 155:</td>
<td colspan="2" class="diff-lineno">Line 155:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: Quality_and_Testing]]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: Quality_and_Testing]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: Specification_and_Design]]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Category: Specification_and_Design]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Appendix ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Appendix ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The below appendix includes information found while researching and creating the above Learning Activity. Instructors may find it useful if they are wanting to create their own follow-on activities or want more info.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The below appendix includes information found while researching and creating the above Learning Activity. Instructors may find it useful if they are wanting to create their own follow-on activities or want more info.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Background Reading ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Background Reading ===</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 172:</td>
<td colspan="2" class="diff-lineno">Line 175:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Is TDD Dead? https://www.youtube.com/watch?v=z9quxZsLcfo</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Is TDD Dead? https://www.youtube.com/watch?v=z9quxZsLcfo</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* List of all open source testing tools - http://www.opensourcetesting.org/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* List of all open source testing tools - http://www.opensourcetesting.org/</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">=== TDD Tutorials ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Below lists 3rd party tutorials, how-to's, and learning resources that explain TDD and JUnit. They may be useful as alternative or harder secondary learning activities so that students can dive in a bit deeper.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/ , http://www.codeaffine.com/2012/11/26/working-efficiently-with-junit-in-eclipse-2/</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** A superbly written step-by-step walk through of creating a test and then creating the associated functional code</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** It uses JUnit, which is an open source technology - it uses a helloworld example</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* https://schuchert.wikispaces.com/Cxx+TDD+Monopoly</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** Line-by-line explanation of code and tests and process to create Monopoly features via TDD</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** Not sure what students would do, as all answers are given</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** CC-BY-SA</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* https://dzone.com/articles/Write-JUnit-Tests-in-Spring-With-Mocked-and-Real-Objects</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** Specific to spring framework, and not for beginners; possibly complex to implement for beginners</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* http://technologyconversations.com/2013/12/20/test-driven-development-tdd-example-walkthrough/ http://osherove.com/tdd-kata-1/ https://vimeo.com/8506325</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** These are a great series of TDD "Practice Exercises"; It gives you requirements that you are supposed to serially step through and implement on top of each other</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* https://github.com/orfjackal/tdd-tetris-tutorial</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** Tetris based TDD</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** It gives you test cases, already written, and you code to satisfy the tests</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">** License says "This material may NOT be used as course material without prior written agreement."</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Examples of OSS projects that were implemented with TDD ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Examples of OSS projects that were implemented with TDD ===</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">The below list shows actual open source projects that were created with TDD methodologies. These could be used as examples of TDD in-practice. Students could learn how TDD is done in real life, learn best practices, etc. They are divided below into the two best examples, and then a number of other weaker examples.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Best examples ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Best examples ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://junit.org/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://junit.org/</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 186:</td>
<td colspan="2" class="diff-lineno">Line 213:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Very clean code, tests in /test directory</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Very clean code, tests in /test directory</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Not as well known, but might be easier for students to understand</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Not as well known, but might be easier for students to understand</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Weaker examples ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Weaker examples ====</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 200:</td>
<td colspan="2" class="diff-lineno">Line 226:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Another TDD example project, but its around .NET .... meh</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Another TDD example project, but its around .NET .... meh</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** https://github.com/AutoFixture/AutoFixture/blob/master/Src/AutoFixture.xUnit.net.UnitTest/AutoDataAttributeTest.cs</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** https://github.com/AutoFixture/AutoFixture/blob/master/Src/AutoFixture.xUnit.net.UnitTest/AutoDataAttributeTest.cs</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">=== TDD Tutorials ===</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* http://www.codeaffine.com/2014/08/12/junit-in-a-nutshell-hello-world/ , http://www.codeaffine.com/2012/11/26/working-efficiently-with-junit-in-eclipse-2/</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** A superbly written step-by-step walk through of creating a test and then creating the associated functional code</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** It uses JUnit, which is an open source technology - it uses a helloworld example</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* https://schuchert.wikispaces.com/Cxx+TDD+Monopoly</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** Line-by-line explanation of code and tests and process to create Monopoly features via TDD</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** Not sure what students would do, as all answers are given</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** CC-BY-SA</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* https://dzone.com/articles/Write-JUnit-Tests-in-Spring-With-Mocked-and-Real-Objects</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** Specific to spring framework, and not for beginners; possibly complex to implement for beginners</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* http://technologyconversations.com/2013/12/20/test-driven-development-tdd-example-walkthrough/ http://osherove.com/tdd-kata-1/ https://vimeo.com/8506325</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** These are a great series of TDD "Practice Exercises"; It gives you requirements that you are supposed to serially step through and implement on top of each other</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">* https://github.com/orfjackal/tdd-tetris-tutorial</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** Tetris based TDD</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** It gives you test cases, already written, and you code to satisfy the tests</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** License says "This material may NOT be used as course material without prior written agreement."</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
</table>Nyeateshttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=5338&oldid=prevNyeates: turned background reading bullets into paragraph and moved other links down2016-02-23T21:34:17Z<p>turned background reading bullets into paragraph and moved other links down</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 21:34, 23 February 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 24:</td>
<td colspan="2" class="diff-lineno">Line 24:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Background reading ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Background reading ====</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">None of these are required by </del>the <del class="diffchange diffchange-inline">student</del>, <del class="diffchange diffchange-inline">but can </del>be <del class="diffchange diffchange-inline">used in the learning of TDD that must precede </del>this <del class="diffchange diffchange-inline">activity:</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">It is assumed, as per </ins>the <ins class="diffchange diffchange-inline">prerequisites above</ins>, <ins class="diffchange diffchange-inline">that students already know TDD. However, if teacher or students need some content to start on, the best quick dummies guide would </ins>be this <ins class="diffchange diffchange-inline">[</ins>https://www.youtube.com/watch?v=QCif_-r8eK4 <ins class="diffchange diffchange-inline">YouTube video summarizing </ins>TDD<ins class="diffchange diffchange-inline">], and this [</ins>http://www.agiledata.org/essays/tdd.html <ins class="diffchange diffchange-inline">graphical explanation of the </ins>TDD <ins class="diffchange diffchange-inline">process]</ins>. <ins class="diffchange diffchange-inline">If you want more extensive </ins>TDD <ins class="diffchange diffchange-inline">learning content, check out Kent Becks [</ins>http://www.amazon.com/exec/obidos/ASIN/<ins class="diffchange diffchange-inline">0321146530</ins>/ <ins class="diffchange diffchange-inline">"Test-Driven Development by Example"]</ins>. <ins class="diffchange diffchange-inline">He is the inventor of TDD and wrote </ins>JUnit<ins class="diffchange diffchange-inline">, the focus of this exercise. Additionally, see how </ins>a <ins class="diffchange diffchange-inline">[</ins>https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf <ins class="diffchange diffchange-inline">CalPoly] </ins>and <ins class="diffchange diffchange-inline">[http</ins>://<ins class="diffchange diffchange-inline">www</ins>.<ins class="diffchange diffchange-inline">cs</ins>.<ins class="diffchange diffchange-inline">cofc</ins>.<ins class="diffchange diffchange-inline">edu</ins>/<ins class="diffchange diffchange-inline">~bowring</ins>/ <ins class="diffchange diffchange-inline">College of Charleston] class used </ins>TDD <ins class="diffchange diffchange-inline">in their studies</ins>. <ins class="diffchange diffchange-inline">For more resource, see the </ins>[[#Appendix|See Appendix]] <ins class="diffchange diffchange-inline">of this page.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* 5 min TDD overview video </del>https://www.youtube.com/watch?v=QCif_-r8eK4</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* Graphical explanation of </del>TDD http://www.agiledata.org/essays/tdd.html</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* Kent Beck book (he invented </del>TDD<del class="diffchange diffchange-inline">) http://www</del>.<del class="diffchange diffchange-inline">amazon.com/exec/obidos/ASIN/0321146530/</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* Astels </del>TDD <del class="diffchange diffchange-inline">book </del>http://www.amazon.com/exec/obidos/ASIN/<del class="diffchange diffchange-inline">0131016490</del>/</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* Unit test vs Acceptance test https://dzone</del>.<del class="diffchange diffchange-inline">com/articles/Write-</del>JUnit<del class="diffchange diffchange-inline">-Tests-in-Spring-With-Mocked-and-Real-Objects</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* TDD in </del>a <del class="diffchange diffchange-inline">CalPoly course </del>https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* Research showing TDD's pro's </del>and <del class="diffchange diffchange-inline">con's https</del>://<del class="diffchange diffchange-inline">tuhat</del>.<del class="diffchange diffchange-inline">halvi</del>.<del class="diffchange diffchange-inline">helsinki</del>.<del class="diffchange diffchange-inline">fi</del>/<del class="diffchange diffchange-inline">portal</del>/<del class="diffchange diffchange-inline">files/29553974/2014_01_swqd_author_version.pdf</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* JUnit Testing book - https://www.packtpub.com/application-development/testing-junit</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* Is </del>TDD <del class="diffchange diffchange-inline">Dead? https://www</del>.<del class="diffchange diffchange-inline">youtube.com/watch?v=z9quxZsLcfo</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* List of all open source testing tools - http://www.opensourcetesting.org/</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">* </del>[[#Appendix|See Appendix]] <del class="diffchange diffchange-inline">for more resources</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Rationale ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Rationale ====</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 170:</td>
<td colspan="2" class="diff-lineno">Line 159:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Appendix ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Appendix ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The below appendix includes information found while researching and creating the above Learning Activity. Instructors may find it useful if they are wanting to create their own follow-on activities or want more info.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The below appendix includes information found while researching and creating the above Learning Activity. Instructors may find it useful if they are wanting to create their own follow-on activities or want more info.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">=== Background Reading ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">The below bullets are additional background readings, books and study materials that can be used in the learning of TDD:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* 5 min TDD overview video https://www.youtube.com/watch?v=QCif_-r8eK4</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Graphical explanation of TDD http://www.agiledata.org/essays/tdd.html</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Kent Beck book (he invented TDD) http://www.amazon.com/exec/obidos/ASIN/0321146530/</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Astels TDD book http://www.amazon.com/exec/obidos/ASIN/0131016490/</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Unit test vs Acceptance test https://dzone.com/articles/Write-JUnit-Tests-in-Spring-With-Mocked-and-Real-Objects</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* TDD in a CalPoly course https://users.csc.calpoly.edu/~djanzen/courses/405W10/presentations/TDD.pdf</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Research showing TDD's pro's and con's https://tuhat.halvi.helsinki.fi/portal/files/29553974/2014_01_swqd_author_version.pdf</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* JUnit Testing book - https://www.packtpub.com/application-development/testing-junit</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* Is TDD Dead? https://www.youtube.com/watch?v=z9quxZsLcfo</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">* List of all open source testing tools - http://www.opensourcetesting.org/</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Examples of OSS projects that were implemented with TDD ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Examples of OSS projects that were implemented with TDD ===</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 183:</td>
<td colspan="2" class="diff-lineno">Line 186:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Very clean code, tests in /test directory</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Very clean code, tests in /test directory</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Not as well known, but might be easier for students to understand</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Not as well known, but might be easier for students to understand</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Weaker examples ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Weaker examples ====</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 218:</td>
<td colspan="2" class="diff-lineno">Line 222:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** It gives you test cases, already written, and you code to satisfy the tests</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** It gives you test cases, already written, and you code to satisfy the tests</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** License says "This material may NOT be used as course material without prior written agreement."</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** License says "This material may NOT be used as course material without prior written agreement."</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Initial Ideas and research ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Initial Ideas and research ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>TDD</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">Below are a brainstorm of ideas that pre-empted the creation of the </ins>TDD <ins class="diffchange diffchange-inline">learning activity. It is purely an idea and note taking set of bullets:</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Idea 1: Find a project that already has a testing harness and associated tests; learn it, and add a new unit test</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Idea 1: Find a project that already has a testing harness and associated tests; learn it, and add a new unit test</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Idea 2: Create a test harness to make, build, and run unit tests on an existing open source project</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Idea 2: Create a test harness to make, build, and run unit tests on an existing open source project</div></td></tr>
</table>Nyeateshttp://foss2serve.org/index.php?title=Test_Driven_Development&diff=5331&oldid=prevNyeates: small wording changes2016-02-19T10:20:47Z<p>small wording changes</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 10:20, 19 February 2016</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Use JUnit in Eclipse to implement code that passes a TDD test</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Use JUnit in Eclipse to implement code that passes a TDD test</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|}</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|}</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[File:TDDEclipseJUnit.png|500px]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">----</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Background: ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Background: ===</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 49:</td>
<td colspan="2" class="diff-lineno">Line 53:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Try the tips in the [[#Comments:|Comments section]] below if you get really stuck.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** Try the tips in the [[#Comments:|Comments section]] below if you get really stuck.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Start a new Java Project and include your own name in the 'Project name' field.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* Start a new Java Project and include your own name in the 'Project name' field.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>** <del class="diffchange diffchange-inline">Example Project Name</del>: "NumberCounter-NYeates"</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>** <ins class="diffchange diffchange-inline">Ex</ins>: "NumberCounter-NYeates"</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 167:</td>
<td colspan="2" class="diff-lineno">Line 171:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The below appendix includes information found while researching and creating the above Learning Activity. Instructors may find it useful if they are wanting to create their own follow-on activities or want more info.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>The below appendix includes information found while researching and creating the above Learning Activity. Instructors may find it useful if they are wanting to create their own follow-on activities or want more info.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>=== Examples of OSS projects that <del class="diffchange diffchange-inline">use </del>TDD ===</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>=== Examples of OSS projects that <ins class="diffchange diffchange-inline">were implemented with </ins>TDD ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Best examples ====</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>==== Best examples ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://junit.org/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* http://junit.org/</div></td></tr>
</table>Nyeates