<?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>Shaun Abram &#187; Testing</title>
	<atom:link href="http://www.shaunabram.com/category/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shaunabram.com</link>
	<description>Java and Technology weblog</description>
	<lastBuildDate>Tue, 27 Jul 2010 23:14:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>OSCON Day1: Test Driven Database Development</title>
		<link>http://www.shaunabram.com/oscon-day1-tddd/</link>
		<comments>http://www.shaunabram.com/oscon-day1-tddd/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 01:57:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[oscon]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[tddd]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=871</guid>
		<description><![CDATA[The first tutorial at OSCON was on Test Driven Database Development. The idea was to use pgTAP to write unit tests to check database correctness, including table structures, views and stored procedures. As a fan of Test Driven Development (TDD) for regular code, the concept of using it on the database tier makes a lot [...]]]></description>
			<content:encoded><![CDATA[<p>The first tutorial at <a href="http://www.oscon.com/oscon2010">OSCON</a> was on <a href="http://www.oscon.com/oscon2010/public/schedule/detail/14168">Test Driven Database Development</a>. The idea was to use <a href="http://pgtap.org/">pgTAP</a> to write unit tests to check database correctness, including table structures, views and stored procedures. As a fan of Test Driven Development (TDD) for regular code, the concept of using it on the database tier makes a lot of sense.</p>
<p>Unfortunately I had a lot of problems getting the required software setup working, which included <a href="http://www.postgresql.org/">PostgreSQL</a>, <a href="http://pgtap.org/">pgTAP</a>, <a href="http://search.cpan.org/~andya/Test-Harness-3.21/lib/Test/Harness.pm">Test::Harness</a>, <a href="http://www.gnu.org/software/make/">make</a> and <a href="http://www.perl.org/">perl</a>. Ultimately I wasn&#8217;t able to get the examples running due to imcompatabilities between PostgreSQL and pgTAP on my Macbook Pro (OS X 10.5.8) and ended with this error:</p>
<p><code>dyld: Library not loaded: /usr/local/lib/libxml2.2.dylib<br />
  Referenced from: /Library/PostgreSQL/8.4/lib/postgresql/pgxs/src/makefiles/../../src/test/regress/pg_regress<br />
  Reason: Incompatible library version: pg_regress requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0</code></p>
<p>I considered trying to upgrade libxml, but there were <a href="http://superuser.com/questions/132177/os-x-not-booting-after-upgrading-libxml2">suggestions</a> that this could cause my machine to not boot! I even considered upgrading to OS X 10.6 (Snow Leopard), but decided that this was a little too close to shaving yaks.</p>
<p>I would really like to get more familiar with pgTAP at some point, but I will have to put on hold for now&#8230;</p>
<p>Update: I managed to get some input from <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6582">David Wheeler</a>, worked through the technical issues and got all the tests running. Thanks David! Despite the earlier setup problems, I came away with a very positive feeling about TDDD and pgTAP and can see it playing a part in any future database schema development I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/oscon-day1-tddd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium talk at SF JUG</title>
		<link>http://www.shaunabram.com/sfjug-selenium/</link>
		<comments>http://www.shaunabram.com/sfjug-selenium/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 07:26:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[JUG]]></category>
		<category><![CDATA[q]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[sfjug]]></category>
		<category><![CDATA[unittesting]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=749</guid>
		<description><![CDATA[I attended another great San Francisco JUG meeting tonight, this time on How to use Selenium with Maven/Ant to automate testing of web apps. The talk was given by Chris Bedford, from Build Lackey Labs &#8211; &#8220;Automating the Monkey Work Out and the Quality In!&#8221;. Overall, I thought this was a great talk by Chris. [...]]]></description>
			<content:encoded><![CDATA[<p>I attended another great <a href="http://www.sfjava.org/calendar/10674274/">San Francisco JUG</a> meeting tonight, this time on <a href="http://www.sfjava.org/calendar/11982857/">How to use Selenium with Maven/Ant to automate testing of web apps</a>.</p>
<p>The talk was given by Chris Bedford, from <a href="http://buildlackey.com/">Build Lackey Labs</a> &#8211; &#8220;Automating the Monkey Work Out and the Quality In!&#8221;. Overall, I thought this was a great talk by Chris. He clearly has a huge amount of experience creating automated tests and integrating them with build tools and he gave a well structured, interesting, well delivered presentation. I have posted a copy of <a href="http://www.shaunabram.com/attachments/testing-java-web-apps-with-selenium5.ppt">Chris&#8217;s slides</a> and I think the video will be posted on the SF JUG site at some point, but I have also posted my notes from the presentation below&#8230;<br />
<span id="more-749"></span></p>
<h3>Selenium Overview</h3>
<p>Chris started off with an overview of <a href="http://seleniumhq.org/">Selenium</a> &#8211; a tool for automating tests for web based applications. He then introduced us to the Selenium IDE &#8211; a Firefox add-on that allows you to set up tests by recording clicks on a web page, or by manually entering commands. The tests can then be played back as part of your automated test suite.</p>
<h3>Creating Selenium Tests</h3>
<p>Chris showed us the process by both executing an existing test he had already setup, and by walking us through the creation of a new test, which loaded a page, waited for text to be present, clicked on a link, and confirmed that text was present. The test was a html file, but he showed how to export it as <a href="http://testng.org/doc/index.html">TestNG</a> and <a href="http://www.junit.org/">JUnit</a> tests  (although both exports resulted in kind of ugly java code!)</p>
<h3>Possible hiccups with Selenium</h3>
<p>One of the things I thought Chris did well was, in addition to pointing out all the many great things about Selenium, he also pointed out some of the slight issues with Selenium that he has encountered during his time using it, such as</p>
<ul>
<li>Difficulties getting the initial Open page to work</li>
<li>Issues with where the test files get saved</li>
<li>Making sure you have the tests run slow to start with (to avoid timing/loading issues)</li>
<li>The Selenium IDE may be difficult to get working with IE (Firefox is fine)</li>
</ul>
<h3>Selenium Components</h3>
<p>The main Selenium section then finished up with a quick over of the various Selenium Components:</p>
<ul>
<li>Selenium IDE</li>
<li>Selenese Commands</li>
<li>Selenium RC (Remote Control)</li>
</ul>
<p>Chris also had a section on the &#8216;<a href="http://en.wikipedia.org/wiki/Same_origin_policy">same origin</a>&#8216; JavaScript  policy that Selenium manages to circumvent by using the Selenium RC Server. He managed to explain the issue in simple terms.</p>
<h3>Other functional test alternatives</h3>
<p>Chris discussed other functional test alternatives by comparing <a href="http://webtest.canoo.com/webtest/manual/WebTestHome.html">Canoo</a> to Selenium (Canoo is also an automated web app testing framework).</p>
<p>Chris also mentionted <a href="http://code.google.com/p/umangite/">Umangite</a>, Chris Richardson&#8217;s open source testing framework that makes Selenium tests easier to write. I have used this before, and agree it is worth checking out&#8230;</p>
<h3>Using Selenium with Build Tools</h3>
<p>He then discussed using Maven with Selenium, including using <a href="http://cargo.codehaus.org/">Cargo</a> (e.g. using the <a href="http://cargo.codehaus.org/Maven2+plugin">cargo maven2 plugin</a>). Cargo is a set of APIs that assists in</p>
<ul>
<li>installing web containers, such as Tomcat, JBoss</li>
<li>booting and shutting them down</li>
<li>deploying web apps (.wars, .ears)</li>
</ul>
<p>Chris finished the Selenium &#038; build tools section with a quick run through of using Selenium with <a href="http://ant.apache.org/">Ant</a>.</p>
<h4>Continuous Integration</h4>
<p>The final section of the presentation was a talk on Continuous Integration (CI). Chris described CI as: </p>
<ul>
<li>A dedicated box (see my follow up question below!) that runs regular full builds (including tests) of your software</li>
<li>Build triggers when any developer checks into SCM</li>
<li>Team is notified of any issues</li>
</ul>
<p>And talked about how Selenium can be used with <a href="http://hudson-ci.org/">Hudson</a> &#8211; a very cool CI tool from Sun. This leads well into <a href="http://www.sfjava.org/calendar/12296161/">next month&#8217;s SF JUG talk</a>!</p>
<h3>Q&#038;A</h3>
<p>Q: Do you have any info on WebDriver merging with Selenium?<br />
A: No, but sounds interesting!</p>
<p>Q: How closely do test writers work with marketing people?<br />
A: Chris suggested checking out the <a href="http://www.easyb.org/">easyb</a> framework, a behavior driven development framework that allows you to write conditions in a very abstract level, using a DSL that marketers can use and understand. He also suggested looking at the <a href="http://www.fitnesse.org/">fitnesse</a> framework.</p>
<p>Q: I asked Chris via email after the talk what he meant by needing &#8216;dedicated&#8217; box/server for Continuous Integration.<br />
A: He clarified that by &#8216;dedicated&#8217;, he just meant that the build box  should not be a box that you are doing development on, and that there isn&#8217;t anything wrong with having a mix of services on one machine. e.g. having a qa box that has the CI server and maybe hosts the bug tracking system as well&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/sfjug-selenium/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Groovy: Cool but slow</title>
		<link>http://www.shaunabram.com/groovy-slow/</link>
		<comments>http://www.shaunabram.com/groovy-slow/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 07:44:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=576</guid>
		<description><![CDATA[I have been learning Groovy recently (as part of Project Euler, a series of Maths programming problems). For the most part, I love it. I particularly like the easy syntax. Java without the crud! e.g. System.out.println becomes simply println for (int i-0; i&#60;10; i++) becomes for ( i in 0..9 ) Accessor methods are autogenerated [...]]]></description>
			<content:encoded><![CDATA[<p>I have been learning <a href="http://groovy.codehaus.org/">Groovy</a> recently (as part of <a href="http://projecteuler.net/">Project Euler</a>, a series of Maths programming problems). For the most part, I love it. I particularly like<br />
the easy syntax. Java without the crud!<br />
 e.g. </p>
<ul>
<li><code>System.out.println</code> becomes simply <code>println</code></li>
<li><code>for (int i-0; i&lt;10; i++)</code> becomes <code>for ( i in 0..9 )</code></li>
<li>Accessor methods are autogenerated and used</li>
</ul>
<p>Sure, the <a href="http://java.dzone.com/news/which-ide-supports-groovy-best">poor IDE support</a> is a little annoying, especially the lack luster code completion and debugging capabilities, but I am sure it will improve soon (especially with SpringSource <a href="http://broadcast.oreilly.com/2008/11/springsource-getting-into-the.html">on the case</a>).</p>
<p>But then I started to notice some slowness when using it. So, I performed a simple performance comparison and the results shocked me.<br />
I wrote an identical loop in both Java and Groovy (see the code below) which simply loops a million times.</p>
<ul>
<li>The Java version took ~5ms</li>
<li>The Groovy version took ~500ms</li>
</ul>
<p>I was shocked! Could Groovy really be a 100 times slower? I had heard rumors about Groovy being a bit slower than Java, but I hadn&#8217;t expected it to be this dramatic. Surely this is drastic enough to stop Groovy being used in serious, production quality projects?</p>
<p>I discussed this with a friend who is a Groovy advocate. He made the following points:</p>
<blockquote><p>1. I was running with an older, slower version of Groovy</p></blockquote>
<p>This is true. I ran the tests in Eclipse 3.5, with v1 of the Eclipse Groovy plugin, which uses v1.5.7 of the Groovy compiler.<br />
However, when I downloaded the latest version of Groovy (Version: 1.6.3 with JVM: 1.6.0_13) and ran from the command line, it still took the Groovy code ~200 ms. A huge improvement, but still ~40 times slower than Java.</p>
<blockquote><p>
2. It is an artificial, unrealistic test, as these kind of huge loops are not normal in most programs</p></blockquote>
<p>This is also true. But although artificial, it is still a straight comparison. Also, these kind of loops aren&#8217;t so unusual in Project Euler type problems (at least in my crude brute force solutions!). </p>
<p>There are also some more detailed Java/Groovy performance test results <a href="http://www.christianschenk.org/blog/performance-comparison-between-groovy-and-java/">here</a> and <a href="http://www.javalobby.org/java/forums/t101256.html">here</a>. </p>
<p>So, overall, I think the performance is a big issue. But not enough to stop me using it for pet projects. I am even going to keep trying to use it for Project Euler &#8211; it will be more motivation to avoid the brute force solutions. It is however, enough to stop me using it in any serious production apps. </p>
<p>For the record, here is the exact code I ran:<br />
Java version</p>
<pre>
<code>		long max = 1000000;
		long start = Calendar.getInstance().getTimeInMillis();
		for(int i=0;i&lt;max; i++) {}
		long end = Calendar.getInstance().getTimeInMillis();
		long duration = end - start;
		System.out.println(duration);</code>
</pre>
<p>Groovy version</p>
<pre>
<code>		long max = 1000000;
		long start = Calendar.getInstance().getTimeInMillis();
		for(int i=0;i&lt;max; i++) {}
		long end = Calendar.getInstance().getTimeInMillis();
		long duration = end - start;
		println(duration);  </code>
</pre>
<p>It is also worth pointing out that when I changed the Groovy code to use proper Groovy syntax, as in <code>for (i in 1..1000000) </code> is was substantially faster (although still significantly slower than Java), but I have left it as is, for a apples vs apples comparison.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/groovy-slow/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Exceptions versus Return Values</title>
		<link>http://www.shaunabram.com/exceptions-vs-return-values/</link>
		<comments>http://www.shaunabram.com/exceptions-vs-return-values/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 16:57:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[exceptions]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=171</guid>
		<description><![CDATA[In a previous post here, I blogged about checked exceptions and how I felt they are a useful tool in your Java toolbox. It is generally accepted that errors, or unrecoverable events, should be dealt with using unchecked exceptions and that recoverable problems, or contingencies, should be dealt with using checked exceptions. However, there is [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous post <a href="http://www.shaunabram.com/checked-exceptions/">here</a>, I blogged about checked exceptions and how I felt they are a useful tool in your Java toolbox. It is generally accepted that errors, or unrecoverable events, should be dealt with using unchecked exceptions and that recoverable problems, or contingencies, should be dealt with using checked exceptions.</p>
<p>However, there is another option for dealing with recoverable problems, i.e. using return values.</p>
<p><a href="http://www.shaunabram.com/exceptions-vs-return-values-article/">Read full article &amp; Comments</a></p>
<p><span id="sample-permalink"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/exceptions-vs-return-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Checked Exceptions</title>
		<link>http://www.shaunabram.com/checked-exceptions/</link>
		<comments>http://www.shaunabram.com/checked-exceptions/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 16:41:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[exceptions]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=163</guid>
		<description><![CDATA[The use of checked exceptions in Java is still widely debated. This post contains thoughts on their use by Java experts such as James Gosling, Joshua Bloch (Effective Java) and Bruce Eckel (Thinking in Java), before countering some of the arguments against their use, such as how I don&#8217;t believe they break encapsulation, and that [...]]]></description>
			<content:encoded><![CDATA[<p>The use of checked exceptions in Java is still widely debated. This post contains thoughts on their use by Java experts such as James Gosling, Joshua Bloch (Effective Java) and Bruce Eckel (Thinking in Java), before countering some of the arguments against their use, such as how I don&#8217;t believe they break encapsulation, and that their use shouldn&#8217;t be limited to truly exceptional conditions. It finishes by looking at when alternatives to checked exceptions should be used. The overall slant of the article is that there are many reasons why Exceptions, including checked Exceptions, should still be a part of your Java arsenal.</p>
<p><a href="http://www.shaunabram.com/checked-exceptions-article">Read full article</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/checked-exceptions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running Hibernate unit tests with Maven</title>
		<link>http://www.shaunabram.com/hibernate-maven-unit-tests/</link>
		<comments>http://www.shaunabram.com/hibernate-maven-unit-tests/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 08:37:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=42</guid>
		<description><![CDATA[I recently converted a project I have been working on to use Maven. After setting up all the dependencies in the pom, I got everything compiling fine but ran into problems getting the unit tests to pick up the hibernate config (hibernate.cfg.xml) and hibernate mapping (*.hbm.xml) files. With hindsight, it is straightforward, but it took [...]]]></description>
			<content:encoded><![CDATA[<p>I recently converted a project I have been working on to use <a href="http://maven.apache.org/">Maven</a>. After setting up all the dependencies in the pom, I got everything compiling fine but ran into problems getting the unit tests to pick up the hibernate config (hibernate.cfg.xml) and hibernate mapping (*.hbm.xml) files. With hindsight, it is straightforward, but it took me a while to figure it out so I thought I&#8217;d post the solution here.</p>
<p>Initially, I had my hibernate.cfg.xml file in the following directory</p>
<p style="padding-left: 30px;">my-app/src/main/java</p>
<p>And when I first tried to run my hibernate unit tests (mvn test), I got this error:</p>
<p style="padding-left: 30px;">SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found</p>
<p>Some checking of the maven docs and some forums revealed the following possible solutions:<br />
1) Copy the hibernate.cfg.xml file to</p>
<p style="padding-left: 30px;">my-app/target/classes</p>
<p>This works, however I think it is a hack as the target folder is generated rather than being somewhere you should actually manually create files.<br />
2) The next solution I found suggested moving the hibernate.cfg.xml to</p>
<p style="padding-left: 30px;">my-app/src/main/resources</p>
<p>This works well as the contents of this folder are copied to the base level of the my-app/target/classes folder so it is basically a &#8216;more correct&#8217; solution than the first.<br />
3) The next and I think best solution was to create a new, duplicate hibernate.cfg.xml inside</p>
<p style="padding-left: 30px;">my-app/src/test/resources</p>
<p>This allows a different hibernate.cfg.xml file to be used for testing and, for example, facilitates connecting to a different database (such as <a href="http://hsqldb.org/">hsqldb</a>) for testing while continuing to use your regular database (such as <a href="http://www.mysql.com/">MySQL</a>) for the app itself.</p>
<p>A couple of points to note:</p>
<p>1) The hibernate mapping files (i.e. the *.hbm.xml files) should also be in the resources folder (in whatever directory structure you choose) to ensure that these too are accessible by the unit tests.</p>
<p>2) I am not (yet) using Spring with the hibernate components, which would likely have changed the above setup.</p>
<p>Refs/links</p>
<p style="padding-left: 30px;"><a href="http://maven.apache.org/guides/getting-started/index.html#How_do_I_add_resources_to_my_JAR">http://maven.apache.org/guides/getting-started/index.html#How_do_I_add_resources_to_my_JAR</a></p>
<p style="padding-left: 30px;"><a href="http://www.mail-archive.com/users@maven.apache.org/msg54720.html">http://www.mail-archive.com/users@maven.apache.org/msg54720.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/hibernate-maven-unit-tests/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FindBugs</title>
		<link>http://www.shaunabram.com/findbugs/</link>
		<comments>http://www.shaunabram.com/findbugs/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 19:46:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=7</guid>
		<description><![CDATA[Came across this really neat tool that can actually find bugs in your code. It uses &#8216;static analysis&#8217; to find instances of bug patterns &#8211; code instances that are likely to be errors. I was pretty skeptical until I ran it on some code and was impressed by the results. It found loads of possible [...]]]></description>
			<content:encoded><![CDATA[<p>Came across this really neat tool that can actually find bugs in your code. It uses &#8216;static analysis&#8217; to find instances of bug patterns &#8211; code instances that are likely to be errors. I was pretty skeptical until I ran it on some code and was impressed by the results. It found loads of possible problems. I&#8217;ll definitely be using it again.</p>
<p>Check it out at <a href="http://findbugs.sourceforge.net/">http://findbugs.sourceforge.net/</a></p>
<p>Update: Found recommendations for another tool called JLint, which is supposed to be particularly good for spotting potential deadlocks so perhaps worth using when testing threaded code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/findbugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
