<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: C++ Unit Tests</title>
	<link>http://www.colorpilot.com/blog/cpp-unit-tests/</link>
	<description></description>
	<pubDate>Fri, 16 May 2008 14:55:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>By: Vitaliy Shibaev</title>
		<link>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-216</link>
		<dc:creator>Vitaliy Shibaev</dc:creator>
		<pubDate>Fri, 25 Apr 2008 13:23:11 +0000</pubDate>
		<guid>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-216</guid>
		<description>Hi Bertrand!

Thanks for your letter!
Of course, we know TDD principles. But there was such trouble - the project existed before us and it was not contain unit tests. Some tests for PDF creation and conversion existed but it was not unit tests. Code was not very good and unit tests writing "as is" wasn't possible for the most part. When we reorganize code unit testing became possible. Now we are writing tests before coding in the main (depends on mood and tasks :) )

Best regards,
Vitaliy Shibaev!</description>
		<content:encoded><![CDATA[<p>Hi Bertrand!</p>
<p>Thanks for your letter!<br />
Of course, we know TDD principles. But there was such trouble - the project existed before us and it was not contain unit tests. Some tests for PDF creation and conversion existed but it was not unit tests. Code was not very good and unit tests writing &#8220;as is&#8221; wasn&#8217;t possible for the most part. When we reorganize code unit testing became possible. Now we are writing tests before coding in the main (depends on mood and tasks <img src='http://www.colorpilot.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Best regards,<br />
Vitaliy Shibaev!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bertrand Dechoux</title>
		<link>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-215</link>
		<dc:creator>Bertrand Dechoux</dc:creator>
		<pubDate>Fri, 25 Apr 2008 12:41:25 +0000</pubDate>
		<guid>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-215</guid>
		<description>Hi Vitaliy!

I found your blog entry while searching what would be the best option for unit testing in C++. I already knew about cppunit and Boost test but I was quite lost in the 'C++ Unit Testing Framework Jungle'. The links you provided seems a good starting point. Thanks.

I thought I would drop a comment because of this sentence "One of our refactoring goals was to improve testability of the code". I understand your point but I am used to read it the other way around. In "test driven development", the first step is testing and testing is a way to improve design. It seems like your team is not using this method of designing software but you might want to know more about it.

regards

Bertrand Dechoux</description>
		<content:encoded><![CDATA[<p>Hi Vitaliy!</p>
<p>I found your blog entry while searching what would be the best option for unit testing in C++. I already knew about cppunit and Boost test but I was quite lost in the &#8216;C++ Unit Testing Framework Jungle&#8217;. The links you provided seems a good starting point. Thanks.</p>
<p>I thought I would drop a comment because of this sentence &#8220;One of our refactoring goals was to improve testability of the code&#8221;. I understand your point but I am used to read it the other way around. In &#8220;test driven development&#8221;, the first step is testing and testing is a way to improve design. It seems like your team is not using this method of designing software but you might want to know more about it.</p>
<p>regards</p>
<p>Bertrand Dechoux</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vitaliy Shibaev</title>
		<link>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-207</link>
		<dc:creator>Vitaliy Shibaev</dc:creator>
		<pubDate>Tue, 22 Apr 2008 17:13:08 +0000</pubDate>
		<guid>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-207</guid>
		<description>Hi Dietrich!

We aren't divide refactoring and code writing - always try to write good new code. Because our library contains some bad code from old-old version sometimes we only refactor code all day long.
Refactoring (in aggregate with architecture projecting) is creative work undoubtedly. See how the code is becoming better - it's delicious :)
Of course sometimes needs some routine actions, it's normal.

Best regards,
Vitaliy Shibaev!</description>
		<content:encoded><![CDATA[<p>Hi Dietrich!</p>
<p>We aren&#8217;t divide refactoring and code writing - always try to write good new code. Because our library contains some bad code from old-old version sometimes we only refactor code all day long.<br />
Refactoring (in aggregate with architecture projecting) is creative work undoubtedly. See how the code is becoming better - it&#8217;s delicious <img src='http://www.colorpilot.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Of course sometimes needs some routine actions, it&#8217;s normal.</p>
<p>Best regards,<br />
Vitaliy Shibaev!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dietrich</title>
		<link>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-204</link>
		<dc:creator>Dietrich</dc:creator>
		<pubDate>Tue, 22 Apr 2008 13:00:03 +0000</pubDate>
		<guid>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-204</guid>
		<description>Of course, I've read these things. Code Complete is really great.  It is always at my fingertips. I see you have been dealing with refactoring for a long time. It seems you are a guru in the issue J.

I'm a Java developer. After reading of Fowler I use JUnit Tests in my projects. I think that a self tested code is important for refactoring. So your notes are interesting for C++ developers.

Vitaly, how much time (percentagewise) do you deal with refactoring in development process? Do you think that refactoring is creative work or it's rather a routine for developers?</description>
		<content:encoded><![CDATA[<p>Of course, I&#8217;ve read these things. Code Complete is really great.  It is always at my fingertips. I see you have been dealing with refactoring for a long time. It seems you are a guru in the issue J.</p>
<p>I&#8217;m a Java developer. After reading of Fowler I use JUnit Tests in my projects. I think that a self tested code is important for refactoring. So your notes are interesting for C++ developers.</p>
<p>Vitaly, how much time (percentagewise) do you deal with refactoring in development process? Do you think that refactoring is creative work or it&#8217;s rather a routine for developers?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vitaliy Shibaev</title>
		<link>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-84</link>
		<dc:creator>Vitaliy Shibaev</dc:creator>
		<pubDate>Mon, 25 Feb 2008 19:12:58 +0000</pubDate>
		<guid>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-84</guid>
		<description>Hi Dietrich!

First you need always remember main goal of refactoring - it is code clarity. Look at your code and ask yourself - how I can make it more clear? Imagine resulted code and think over process to achieve that result, divide it on elementary steps, such as Extract method, Rename method etc. Each step must not change program behavior, so unit tests is very useful. With experience you will make it automatically, without remembering names of Fowler's refactorings.
Undoubtedly the most frequently used refactoring is Extract method (with good method name).

I advise you necessarily read these books (if didn't read as yet) - "Refactoring" (M. Fowler) and "Code Complete" (S. McConnell).
Concerning me - I permanently refactor my code since reading Fowler's book, about 1.5 years.

Best regards, 
Vitaliy Shibaev!</description>
		<content:encoded><![CDATA[<p>Hi Dietrich!</p>
<p>First you need always remember main goal of refactoring - it is code clarity. Look at your code and ask yourself - how I can make it more clear? Imagine resulted code and think over process to achieve that result, divide it on elementary steps, such as Extract method, Rename method etc. Each step must not change program behavior, so unit tests is very useful. With experience you will make it automatically, without remembering names of Fowler&#8217;s refactorings.<br />
Undoubtedly the most frequently used refactoring is Extract method (with good method name).</p>
<p>I advise you necessarily read these books (if didn&#8217;t read as yet) - &#8220;Refactoring&#8221; (M. Fowler) and &#8220;Code Complete&#8221; (S. McConnell).<br />
Concerning me - I permanently refactor my code since reading Fowler&#8217;s book, about 1.5 years.</p>
<p>Best regards,<br />
Vitaliy Shibaev!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dietrich</title>
		<link>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-76</link>
		<dc:creator>Dietrich</dc:creator>
		<pubDate>Wed, 20 Feb 2008 13:40:54 +0000</pubDate>
		<guid>http://www.colorpilot.com/blog/cpp-unit-tests/#comment-76</guid>
		<description>Vitaly, that’s an interesting article. I would like to know more about  Refactoring, I am a novice in this area. I use Extract method and Move method, Extract Class, Decompose Conditional, and Rename Method.  Which methods do you use for Refactoring? How long do you work using Refactoring?
Dietrich</description>
		<content:encoded><![CDATA[<p>Vitaly, that’s an interesting article. I would like to know more about  Refactoring, I am a novice in this area. I use Extract method and Move method, Extract Class, Decompose Conditional, and Rename Method.  Which methods do you use for Refactoring? How long do you work using Refactoring?<br />
Dietrich</p>
]]></content:encoded>
	</item>
</channel>
</rss>
