<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software design and embedded system tools. &#187; TDD</title>
	<atom:link href="http://embedsoftdev.com/tag/tdd/feed/" rel="self" type="application/rss+xml" />
	<link>http://embedsoftdev.com</link>
	<description>Good information for software design</description>
	<lastBuildDate>Tue, 17 Jan 2012 19:13:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Test driven development (test first)</title>
		<link>http://embedsoftdev.com/software-engineering/test-driven-development-test-first/</link>
		<comments>http://embedsoftdev.com/software-engineering/test-driven-development-test-first/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 01:45:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[test first]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://embedsoftdev.com/?p=670</guid>
		<description><![CDATA[Test driven development Test Driven Development is one of test method that specializes in the test repetition. The reason for doing this is to test codes repeatedly with hopes of making a given software better and more effective. The Test-Driven Design has several steps that must be followed before the test is successfully completed. The [...]
Related posts:<ol>
<li><a href='http://embedsoftdev.com/software-engineering/agile-software-development-model-ii/' rel='bookmark' title='Agile software development model II.'>Agile software development model II.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>Test driven development </strong></p>
<p><a href="http://embedsoftdev.com/wp-content/uploads/2010/08/SCHEMA-Client-IT-Services-Provider-01.jpg"><img src="http://embedsoftdev.com/wp-content/uploads/2010/08/SCHEMA-Client-IT-Services-Provider-01-300x274.jpg" alt="software engineering Test driven development (test first)" title="SCHEMA Client IT Services Provider 01" width="300" height="274" class="aligncenter size-medium wp-image-691" /></a></p>
<p>Test Driven Development is one of test method that specializes in the test repetition.<br />
The reason for doing this is to test codes repeatedly with hopes of making a given software better and more effective.<br />
 The Test-Driven Design has several steps that must be followed before the test is successfully completed.<br />
The first step requires writing a test (so it&#8217;s also called <strong>test first</strong>). There has to be a sample diagram or flowchart before any other actions can be taken.<br />
However, when written test finish , it&#8217;s not mean to success the TDD process because it is written before the physical test (real test) is performed.<br />
The person writing the test must know precise specification of  the features being created as well as everything required for creating test suite.<br />
In most cases the writer obtains the information about the feature required to create the test by using use cases or user stories of the software that will be run the test on.<br />
After gather all useful information then source code is written. Next, every test must be ran to written code to determine that the written code is fail in the test suite<br />
or not.<br />
At this point, it should pass and if all the tests pass then it’s time to proceed to the final step. The final step is all about cleaning up the code.<br />
This is done by re-running the test cases in search for defects and so on . There has to be certainty that there is no damage being found to any other software functionality<br />
as a result of the new software can be released.</p>
<p><strong>Advantages of test first</strong></p>
<p>1. When you continue to do the test first then you will get a lot of test cases. After that when you want to restructure the system, you can do it easily<br />
and don&#8217;t have to fear about the bugs that may happen because when you finish restructure the system , your new system may not pass some written<br />
test cases, so at this point you can retrace to modify the written test cases and then try to validate the new system to pass to modified test cases.<br />
(If you don&#8217;t have test cases , after complete restructure your system for 2 or 3 months , the unknown bugs may occur because the restructured system<br />
was not tested. At this time you have to fix bugs but it&#8217;s so difficult to fix them due to you may forget about wherever in the function or files that you used<br />
to modified source code. In my opinion, if your system is very complex , your certainly have to write intensive test cases )</p>
<p>2.With test first you have to write test documents before write the code , this way will help the programmer or developer to plan before they begin to write<br />
code (they have to write the code to pass the test documents). As a result your entire code will look better and you will get the software that have a good<br />
structure. It also help you to reduce runtime error or unexpected bugs (so cost to fix the bugs is also reduced too).</p>
<p>Test first is differ from unit test as follow<br />
                1. Test first is done before writing source code but Unit test is done after finish writing the code.<br />
                2. In test first , you don&#8217;t need to look at source code to write the tests but in unit test , you must use the written code to do unit test.<br />
                3. Unit test help you to ensure that your written function or piece of code is work or not but test first help you to ensure that<br />
entire code in the project work well or not.</p>
<p>Thank you,<br />
       Jitkasem</p>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://embedsoftdev.com/software-engineering/test-driven-development-test-first/" title="test driven development">test driven development</a></li></ul><p>Related posts:<ol>
<li><a href='http://embedsoftdev.com/software-engineering/agile-software-development-model-ii/' rel='bookmark' title='Agile software development model II.'>Agile software development model II.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://embedsoftdev.com/software-engineering/test-driven-development-test-first/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile software development model II.</title>
		<link>http://embedsoftdev.com/software-engineering/agile-software-development-model-ii/</link>
		<comments>http://embedsoftdev.com/software-engineering/agile-software-development-model-ii/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 13:40:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile development model]]></category>
		<category><![CDATA[agile methodology]]></category>
		<category><![CDATA[agile model]]></category>
		<category><![CDATA[agile software development model]]></category>
		<category><![CDATA[AMDD]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[software development model]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[xp model]]></category>

		<guid isPermaLink="false">http://embedsoftdev.com/?p=63</guid>
		<description><![CDATA[This article is the continue version of the last article (Agile Software development model I) The technique for development using Agile is as follow. -Agile model driven development (AMDD) -Code Refactor : is the method to redesign code that is to modify the code immediately and then the design is also change. -Pair Programming : [...]
Related posts:<ol>
<li><a href='http://embedsoftdev.com/software-engineering/agile-software-development-model-i/' rel='bookmark' title='Agile software development model I.'>Agile software development model I.</a></li>
<li><a href='http://embedsoftdev.com/software-engineering/software-process-and-software-development-model/' rel='bookmark' title='Software Process and Software Development model.'>Software Process and Software Development model.</a></li>
<li><a href='http://embedsoftdev.com/software-engineering/scrum-and-extreme-programming/' rel='bookmark' title='Scrum and Extreme Programming'>Scrum and Extreme Programming</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This article is the continue version of the last article (Agile Software development model I)</p>
<p><strong>The technique for development using Agile</strong> is as follow.<br />
      -Agile model driven development (AMDD)<br />
      -Code Refactor : is the method to redesign code that is to modify the code immediately and then<br />
                         the design is also change.<br />
      -Pair Programming : Combine the two developers to work together for the same project.<br />
                          These two developers work at the same location and<br />
                          also use the same computer.Share the computer in the way that one<br />
                          person implement the code and another person has a responsibility for<br />
                          checking the correction of implemented code.<br />
      -Test Driven Development(TDD) : is the technique for writing the test-case and write the test<br />
                          case before implement the code.</p>
<p><strong>The format(pattern) of Agile.</strong></p>
<p>       Agile methodology has many patterns that can be used for developing the system such as Scrum, FDD,<br />
XP (extreme programming), DSDM, RUP, etc&#8230;But the popular pattern in my opinion is XP (extreme programming) because XP is the pattern that emphasize on the satisfaction of the customer and XP can change the system easily when the customer change the requirement.</p>
<p><strong>Addition aspect for Agile.</strong><br />
       &#8211; When we have the old project that can be used for additional development.It mean that<br />
         we have the asset that can be used as the base system for develop the new project,<br />
         so if the new project arrive then we can send the old project to the customer before sending<br />
         the new one.<br />
       &#8211; In the first step of developing new project,we can also deliver the things such as the screen,<br />
         the prototype,infrastructure to our customer without the software (because we have not written<br />
         the software yet)<br />
       &#8211; We also can think about Agile as the modifier of the former software development process such as<br />
             &#8211; Use Agile for rearrange the importance of the project development activity ,<br />
               which activity should be done and which should not be done.<br />
             &#8211; Use Agile to control the former project and look at some part of former project.The part that<br />
               is important for use with the development of new project should be done ,<br />
               the unimportant part will be ignored.</p>
<p>Related posts:<ol>
<li><a href='http://embedsoftdev.com/software-engineering/agile-software-development-model-i/' rel='bookmark' title='Agile software development model I.'>Agile software development model I.</a></li>
<li><a href='http://embedsoftdev.com/software-engineering/software-process-and-software-development-model/' rel='bookmark' title='Software Process and Software Development model.'>Software Process and Software Development model.</a></li>
<li><a href='http://embedsoftdev.com/software-engineering/scrum-and-extreme-programming/' rel='bookmark' title='Scrum and Extreme Programming'>Scrum and Extreme Programming</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://embedsoftdev.com/software-engineering/agile-software-development-model-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

