<?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>Roommate App Development Blog &#187; Testing</title>
	<atom:link href="http://development.roommateapp.com/category/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://development.roommateapp.com</link>
	<description>Building a bill manager, and some other stuff</description>
	<lastBuildDate>Tue, 16 Jun 2009 05:24:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Testing Roommate App</title>
		<link>http://development.roommateapp.com/2009/06/testing-roommate-app/</link>
		<comments>http://development.roommateapp.com/2009/06/testing-roommate-app/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 05:18:21 +0000</pubDate>
		<dc:creator>Heff</dc:creator>
				<category><![CDATA[Goals]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://development.roommateapp.com/?p=53</guid>
		<description><![CDATA[It&#8217;s been over a month now since launching Roommate App, and for not advertising and not having any kind of marketing website, it&#8217;s doing pretty well. I&#8217;ve  been getting a lot of good feedback/requests as well. I kind of burnt myself out a little on the project getting it launched, so I took some [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been over a month now since launching <a href="http://roommateapp.com">Roommate App</a>, and for not advertising and not having any kind of marketing website, it&#8217;s doing pretty well. I&#8217;ve  been getting a lot of good feedback/requests as well. I kind of burnt myself out a little on the project getting it launched, so I took some time off, but I will get to everything eventually. Before I get too deep into new features though, I need to develop the test suite.<br />
<span id="more-53"></span><br />
Coming from a PHP background, testing is new ground for me (not that testing isn&#8217;t done in PHP, but it&#8217;s not nearly as prevalent as in the Rails community). When I say &#8220;test&#8221; in this context, I don&#8217;t mean clicking around through the app in your web browser and making sure all the links work, etc. I mean writing more code that makes sure the code you&#8217;ve written works (sounds like an endless cycle doesn&#8217;t it?). The benefit of doing this is that you can make changes to your application, then run all your tests to make sure what you just changed didn&#8217;t break something somewhere else. I&#8217;m probably not explaining it very well. Judging by the <a href="http://en.wikipedia.org/wiki/Software_testing">Wikipedia article</a>, I guess you would call this &#8220;Regression Testing&#8221;.</p>
<p>Anyway, at this point Roommate App has very low test coverage. The goal would be to reach 100% test coverage, and it&#8217;s probably under 5% right now. So I&#8217;ve got some work to do. The <a href="http://guides.rubyonrails.org/testing.html">testing guide</a> at rubyonrails.org was a good starting place for me. It gave me a good overview of the basics and the reasoning behind it. If anyone knows additional resources feel free to suggest them.</p>
<p>While the guide was a good start, <a href="http://sevenwire.com">Sevenwire</a> (my company) actually uses a lot of modifications to the default Rails app test suite. These include:</p>
<ul>
<li><a href="http://github.com/thoughtbot/factory_girl/tree/master">Factory Girl</a> &mdash; A library for creating test data.</li>
<li><a href="http://www.thoughtbot.com/projects/shoulda">Shoulda</a> &mdash; A library for writing more understandable tests.</li>
<li><a href="http://github.com/sevenwire/forgery/tree/master">Forgery</a> &mdash; A fake/random data generator (and a Sevenwire original).</li>
</ul>
<p>So I have a lot of different elements to learn, but that&#8217;s half the fun of this project.</p>
]]></content:encoded>
			<wfw:commentRss>http://development.roommateapp.com/2009/06/testing-roommate-app/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
