<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Increasing Functional Test Coverage With QuickNet</title>
	<atom:link href="http://davybrion.com/blog/2009/08/increasing-functional-test-coverage-with-quicknet/feed/" rel="self" type="application/rss+xml" />
	<link>http://davybrion.com/blog/2009/08/increasing-functional-test-coverage-with-quicknet/</link>
	<description>Trying to walk that thin line between intelligence and ignorance</description>
	<lastBuildDate>Thu, 29 Jul 2010 21:01:23 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: QuickNet On Google Code &#124; The Inquisitive Coder &#8211; Davy Brion&#8217;s Blog</title>
		<link>http://davybrion.com/blog/2009/08/increasing-functional-test-coverage-with-quicknet/comment-page-1/#comment-22441</link>
		<dc:creator>QuickNet On Google Code &#124; The Inquisitive Coder &#8211; Davy Brion&#8217;s Blog</dc:creator>
		<pubDate>Thu, 03 Sep 2009 10:11:36 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=1486#comment-22441</guid>
		<description>[...] Increasing Functional Test Coverage With QuickNet [...]</description>
		<content:encoded><![CDATA[<p>[...] Increasing Functional Test Coverage With QuickNet [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kilfour</title>
		<link>http://davybrion.com/blog/2009/08/increasing-functional-test-coverage-with-quicknet/comment-page-1/#comment-22249</link>
		<dc:creator>kilfour</dc:creator>
		<pubDate>Thu, 06 Aug 2009 00:52:02 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=1486#comment-22249</guid>
		<description>Thanks for the link. Both your suggestions are on my (rather large) todo list ;-)
About the difference with Pex, there&#039;s a short answer : Pex is a parameterized unit tester, QuickNet is a property based tester that models a program (or model, class, method) as a finite state machine. 
Part of the long answer :
Recently Peli de Halleux published a paper with &lt;a href=&quot;http://research.microsoft.com/en-us/projects/pex/patterns.pdf&quot; rel=&quot;nofollow&quot;&gt;Pex patterns&lt;/a&gt;. The State Machine pattern on page 13 might seem familiar to anyone who has read the QuickNet preview (QN was born about a year ago btw, around the same time Pex made it&#039;s first steps, I think we all saw the same talk By J.H). But look at the amount of classes and code, imagine having to string together a large number of transitions, or deal with a transition in one class that changes the state of another class. This will get out of hand. Pex is a unit tester, not really designed to handle state, but to make input generation as painless as possible. QuickNet is designed to handle both unit tests and integration tests (state).
In the &lt;a href=&quot;http://research.microsoft.com/en-us/projects/pex/pextutorial.pdf&quot; rel=&quot;nofollow&quot;&gt;Pex Tutorial&lt;/a&gt; chapter 6 it is mentioned that &#039;Abstraction from the environment is necessary if you want to have a Pex-testable design.&#039;. Now I truly agree that &#039;Abstraction from the environment is necessary&#039; in order to have good code and if the program was developed in a TDD fashion, it probably has this feature, but in reality a lot of programs do not make this abstraction and I still want to test those. And I want to test them BEFORE I refactor them. QuickNet allows me to do that even if it touches a database or a filesystem or whatever. 
I&#039;m sure Pex derived it&#039;s ideas from QuickCheck aswell just as QuickNet does (the Oracle in the example kind of gives it away ;-) ) but they changed a couple of basic premises. 
Too long a comment already so I&#039;ll keep the explanation of the last statement for a post on my own blog ;-)</description>
		<content:encoded><![CDATA[<p>Thanks for the link. Both your suggestions are on my (rather large) todo list <img src='http://davybrion.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
About the difference with Pex, there&#8217;s a short answer : Pex is a parameterized unit tester, QuickNet is a property based tester that models a program (or model, class, method) as a finite state machine.<br />
Part of the long answer :<br />
Recently Peli de Halleux published a paper with <a href="http://research.microsoft.com/en-us/projects/pex/patterns.pdf" rel="nofollow">Pex patterns</a>. The State Machine pattern on page 13 might seem familiar to anyone who has read the QuickNet preview (QN was born about a year ago btw, around the same time Pex made it&#8217;s first steps, I think we all saw the same talk By J.H). But look at the amount of classes and code, imagine having to string together a large number of transitions, or deal with a transition in one class that changes the state of another class. This will get out of hand. Pex is a unit tester, not really designed to handle state, but to make input generation as painless as possible. QuickNet is designed to handle both unit tests and integration tests (state).<br />
In the <a href="http://research.microsoft.com/en-us/projects/pex/pextutorial.pdf" rel="nofollow">Pex Tutorial</a> chapter 6 it is mentioned that &#8216;Abstraction from the environment is necessary if you want to have a Pex-testable design.&#8217;. Now I truly agree that &#8216;Abstraction from the environment is necessary&#8217; in order to have good code and if the program was developed in a TDD fashion, it probably has this feature, but in reality a lot of programs do not make this abstraction and I still want to test those. And I want to test them BEFORE I refactor them. QuickNet allows me to do that even if it touches a database or a filesystem or whatever.<br />
I&#8217;m sure Pex derived it&#8217;s ideas from QuickCheck aswell just as QuickNet does (the Oracle in the example kind of gives it away <img src='http://davybrion.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) but they changed a couple of basic premises.<br />
Too long a comment already so I&#8217;ll keep the explanation of the last statement for a post on my own blog <img src='http://davybrion.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
