<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Hello Test World &#187; tips</title>
	<atom:link href="http://hellotestworld.com/tag/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://hellotestworld.com</link>
	<description>Aaron, Brian, Oliver and Richard on the art of testing</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:56:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hellotestworld.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/ec475e13be14ded5bfc63be87053a50a?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Hello Test World &#187; tips</title>
		<link>http://hellotestworld.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://hellotestworld.com/osd.xml" title="Hello Test World" />
	<atom:link rel='hub' href='http://hellotestworld.com/?pushpress=hub'/>
		<item>
		<title>Performance Ideas from 1-Click-Buy</title>
		<link>http://hellotestworld.com/2011/11/18/performance-ideas-from-1-click-buy/</link>
		<comments>http://hellotestworld.com/2011/11/18/performance-ideas-from-1-click-buy/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 10:08:08 +0000</pubDate>
		<dc:creator>oliver_nz</dc:creator>
				<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[Oliver]]></category>
		<category><![CDATA[performance testing]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://hellotestworld.com/?p=156</guid>
		<description><![CDATA[Why do we performance test? *duh* because we want faster response times&#8230;. oh and we want to know how to scale our virtual machines&#8230;. oh and we want to tune our systems&#8230; oh and XXXXX&#8230;.  there are tons of reasons. Performance testing has it&#8217;s testing rigor and we go and &#8220;hammer&#8221; the system to get at those [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hellotestworld.com&amp;blog=16007215&amp;post=156&amp;subd=hellotestworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Why do we performance test?</p>
<p>*<em>duh</em>* because we want faster response times&#8230;. oh and we want to know how to scale our virtual machines&#8230;. oh and we want to tune our systems&#8230; oh and <em>XXXXX</em>&#8230;.  there are tons of reasons. Performance testing has it&#8217;s testing rigor and we go and &#8220;hammer&#8221; the system to get at those answers.</p>
<p>One thing I like to do (because it&#8217;s fast and cheap) is use a calculator/spreadsheet for performance testing. I take architecture diagrams of present and future systems, infrastructure diagrams, requirements, human oracles and more and put all the numbers together. Then I check if they stack up. Like where the product tries to get 1GB of data across a 10Mbit network link in under a second. I don&#8217;t need a test to be able to tell you, that there&#8217;s a problem there.</p>
<p>But then it struck me today. There is something similarly simple that I am not doing (and am guessing not many performance testers do)&#8230;.</p>
<p>Ask yourself, what is the web page that has a response time of 0.000 milliseconds and has a infinitesimally small  throughput footprint?</p>
<p><span id="more-156"></span></p>
<p>It&#8217;s the page that doesn&#8217;t get loaded!</p>
<p>Think of purchasing something online. You run through a dozen screens entering passwords, addresses, delivery types&#8230;. on and on it goes. Usually one shop worse than the next. Just as you start thinking that it is actually simpler to drive to the shop and buy the damn thing there, someone comes along and invents the <a href="http://en.wikipedia.org/wiki/1-Click">1-Click purchase</a>. Never mind, what that did to sales of goods but think of what the advantages from the performance perspective are.</p>
<ol>
<li>Fewer web pages, resources and redirects to serve up</li>
<li>Less transactions in flight at one time</li>
<li>Less database interactions</li>
<li>Less infrastructure handshaking and latency</li>
</ol>
<p>These are just the obvious ones, there&#8217;s probably a dozen more. The example here might not even be a good one either but I think you get where I am going.</p>
<p>Is it not time for performance testing to look at a bit more than just response times?  This kind of analysis gets us looking beyond response times of single web pages but looks at complete flows. How much interaction does a whole flow create and can the process/business flow be optimized?</p>
<p>It seems to me that architects and business analysts ignore performance related issues in their designs. It can be false assumptions on what appropriate design is or just bad customer requirements that proliferate this behaviour. Too many unnecessary steps, interactive-polling overload, re-entry or confirmation of trivial data and many more that can be really annoying. Normal performance testing might highlight these issues too but the cost and effort involved might be much higher. This method is quick, easy and cheap.</p>
<p>So next time you front up to a performance testing gig maybe start right at the project beginning and have a look at what can be cut out of process and business flows and screen design/functionality. See if you can&#8217;t just go <em>1-Click.</em> It could even make your pending performance test a lot easier by having less of and a simpler application to test. I must admit I have not yet done this but I can&#8217;t see how a simple check like this could not be worthwhile.</p>
<p>&#8230;and who knows, there might be a patent hidden in there too <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Author: Oliver Erlewein<br />
&amp; thanks Aaron for the good tips for improving this post!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hellotestworld.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hellotestworld.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hellotestworld.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hellotestworld.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hellotestworld.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hellotestworld.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hellotestworld.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hellotestworld.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hellotestworld.com&amp;blog=16007215&amp;post=156&amp;subd=hellotestworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hellotestworld.com/2011/11/18/performance-ideas-from-1-click-buy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/65af5848f7066cbc3944eb0e779c2259?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">erlewein</media:title>
		</media:content>
	</item>
		<item>
		<title>Thoughts on Performance Testing in NZ</title>
		<link>http://hellotestworld.com/2011/11/07/thoughts-on-performance-testing-in-nz/</link>
		<comments>http://hellotestworld.com/2011/11/07/thoughts-on-performance-testing-in-nz/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 00:04:59 +0000</pubDate>
		<dc:creator>oliver_nz</dc:creator>
				<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[experience report]]></category>
		<category><![CDATA[NZ]]></category>
		<category><![CDATA[Oliver]]></category>
		<category><![CDATA[performance testing]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://hellotestworld.com/?p=98</guid>
		<description><![CDATA[I&#8217;ve spent the last couple of years helping projects with their application performance in NZ (mainly Wellington). I thought it&#8217;s about time I wrote something on the experiences I&#8217;ve had during that time and the lessons learned. NZ is comparatively a smallish place. 4.5m people live here. A large bank for example has about 0.5-0.75m [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hellotestworld.com&amp;blog=16007215&amp;post=98&amp;subd=hellotestworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.motogp.com"><img class="aligncenter size-full wp-image-116" title="26danipedrosa,motogp_preview_big" src="http://hellotestworld.files.wordpress.com/2011/11/26danipedrosamotogp_preview_big.jpg?w=497" alt=""   /></a></p>
<p>I&#8217;ve spent the last couple of years helping projects with their application performance in NZ (mainly Wellington). I thought it&#8217;s about time I wrote something on the experiences I&#8217;ve had during that time and the lessons learned.</p>
<p>NZ is comparatively a smallish place. 4.5m people live here. A large bank for example has about 0.5-0.75m customers. One of the biggest online applications running in NZ is probably TradeMe. They have 2.8m customers and about 75k-200k active customers at any point in time. On average they have less than 1m logins a day. If I contrast that to large international systems this is laughable. Ebay for instance has 83m users and  670 million page views a day (I don&#8217;t know from when these figures are though). Facebook has 750m users,&#8230;. So big international companies talk about building another datacenter, where we might start clustering.</p>
<p>We do things a bit smaller. That has its advantages – if we do our homework correctly. Most products used nowadays are designed to be massively scalable to the requirements of large international companies. So we should have no issues with performance&#8230;.<em>EVER</em>!</p>
<p>But as you probably know from your own surfing experience this is not always the case. It gets even worse when we use web applications that are in-house. All of this should actually be a no-brainer. So what&#8217;s going wrong?</p>
<p>I&#8217;ll try and list the thoughts and experiences that I see are common in projects here (no particular order).</p>
<p><span id="more-98"></span></p>
<ol>
<li><strong>No performance testing/analysis</strong><br />
Performance testing is still a rarity. Luckily awareness is rising and due diligence is being done more often. There are still long ways to go though.</li>
<li><strong>Unrealistic &amp; bad requirements</strong><br />
In most projects I have encountered the requirements are about 10-100 times higher than needed. This results in tuning for the wrong sweet spot. You might have an app that works excellently under high load but performs badly under low load. Or you might agree to test something the user actually doesn&#8217;t use that much. Describing performance is not easy by any stretch.</li>
<li><strong>Misunderstanding of terms</strong><br />
Concurrent, load, stress, performance, latency, response time,&#8230; they mean different things in different projects.These need to be clarified first before discussing anything. Do not assume that a technically correct interpretation equates to what people understand what the term is.</li>
<li><strong>Bad architecture</strong><br />
My experience is that most solution architects treat performance as a minor worry, if at all. It presents one of the biggest risks to any project. I have seen re-architectures very close to go-live. Performance specialists (and I don&#8217;t mean performance testers only!) should be part of the early architecture &amp; design phases.</li>
<li><strong>Developers unaware of performance</strong><br />
Not only architects but – in the heat of meeting the next milestone – even developers will not  think of how their code will perform. Only when confronted directly do they start tuning their code. It is less an active ignorance as a result of too narrowly focussed expectations. Non-functional requirements are often just an afterthought in development. There is the fallacy that they are minor things that are just by-products that any developer does anyway.</li>
<li><strong>No implementation of product tuning guidelines</strong><br />
Most products have tuning guidelines. They tell you things like threads per core, buffer sizes at different configurations or how to set up thread pools. Or they tell you what optimal hardware/virtualization configurations are for running the product. There might be hints on when and how to correctly cluster your solution. These are straightforward things that should be done/defined by the architects and developers before releasing their product. I have not yet seen a project do this without being told to do so by the performance tester. Oh and the excuse &#8220;there are no guidelines&#8221; doesn&#8217;t count. In that case the guideline is revealed by Google.</li>
<li><strong>Political &amp; bad choices for products<br />
</strong>IT is not as easy as the glossy brochures make it out to be. Products don&#8217;t work together, hardware won&#8217;t perform in certain set-ups and things are just plain buggy. As any good performance tester will tell you, <em>everything will fail </em>(that is actually always true. The question here is, does it matter). These are the things that should guide proper product selection but often products are selected by company default (we use Microsoft only/only HP servers/Cisco networking/&#8230;) or because the CIO went to dinner with XYZ product sales guy. Often products get chosen by people who have never even seen the product themselves or have any clue what it does. These people also are the same, that ignore advice from SMEs that know what they are talking about.</li>
<li><strong>Lack of monitoring or useful monitoring</strong><br />
Monitoring is one of the most important parts of running something in production. It tells you when things break. So why on earth would you not focus on it? Monitoring is also the brother of performance testing. Without it how can you see what load does to your system? But also the converse is true. Monitoring only can never replace performance testing.</li>
<li><strong>Lack of qualified people</strong><br />
There are only so many people in this country with specialist know how. We cannot keep up with the volume of new information that is being disseminated internationally. But amazingly it&#8217;s not only the complex stuff that goes wrong. It&#8217;s the basics. This to me just shows that we are not thorough enough. I think employers and customers should be asking for more and taking the lead with giving people the correct/full list of expectations and requirements.</li>
<li><strong>Blind belief in delivery dates</strong><br />
Ship and then performance test. Or &#8220;can we cut 2 weeks off the performance test?&#8221;.  Need I say more?</li>
<li><strong>Lack of  performance testers</strong><br />
My rule of thumb is the 10/20/70 rule. In performance testing 10% is the tool, 20% the training of how to performance test and 70% is just plain experience. It&#8217;s the 70% that make a performance tester. In Wellington I&#8217;d say there are probably only two-dozen performance testers that have that 70%. The market could do with a multiple of that but because this is learning from experience it&#8217;s a viscous circle. We don&#8217;t test enough because we can&#8217;t get the specialists and we can&#8217;t get specialists because there is too little performance testing.</li>
<li><strong>Project timelines</strong><br />
Ok, so when do we performance test? 99.9% of PMs will put a PT phase just before go-live. If you look at some of the issues above you might see why this can be a really bad idea. If you get architectural or product issues you might have a huge challenge on your hands and an immediate and huge delay in delivery. So performance testing should be pervasive throughout the SDLC to minimise the big risks.</li>
<li><strong>Staff turnover</strong><br />
I have worked on projects that have been running for years. Developers &#8220;get the feel&#8221; for performance once you have done a few performance testing cycles. They get better at developing performing code from the onset. As is normal for a project there is turnover. This means though that performance will drop when new team members come on board. They do not know the product well enough and will run into issues when the next PT comes. The process starts over. On projects that are highly performance critical I would suggest leaving team members in place for as long as possible and to <em>never</em> exchange a whole team big-bang style.</li>
<li><strong>Testing vs. Investigation</strong><br />
Last but not least it helps to understand the difference between these words. Testing means I have a clearly defined outcome that I am expecting. This is rarely the case. There are rough ideas, some data and guesses but certainly nothing that is clear and defined (see 2). So what performance testing – in all it&#8217;s diversity – is, is an investigation and tuning exercise. Think of this when creating/reading/critiquing the performance test plan or when asking for documentation. Also remember that investigation is an agile process and will form as time progresses so don&#8217;t be too rigid when prescribing what tests should look like. The investigation might lead you to unanticipated tests.</li>
<li><strong>Complex Tools</strong><br />
Performance Testing from a tool perspective is actually quite straightforward. Complex tools might make performance testing projects more intricate than they need to be. Worst case they get dumped into the &#8220;too hard&#8221; basket and don&#8217;t get done at all. Keep things simple and increase complexity when needed. In my experience the issues encountered in NZ are mostly not that intricate.</li>
<li><strong>Following advice<br />
</strong>On nearly every project I have the situation, where a vendor/developer/PM/architect/&#8230; doesn&#8217;t believe that there is a problem or that the cause of the problem is something other than what I tell him/her. I have spent weeks waiting and trying to convince people to look at XYZ without success. Time and effort wasted, just to come back to XYZ and find it&#8217;s exactly what is causing it. I am not saying that I or performance testers are infallible (far from it actually). But it would help immensely if <em>whoever</em> could start by looking at XYZ first, as chances are that the performance tester&#8217;s experience in performance exceeds <em>whoever&#8217;s</em>.</li>
<li><strong>Averages are worthless</strong><br />
People love to talk about averages. They are easy to understand and from school we know they are important. Well, in performance testing they tell you very little. They actually tell you nothing without other numbers that form a context. I think it is safe to stipulate that you shouldn&#8217;t use averages in performance testing (at least when reporting). The number to go for is 90th percentile (or any other percentile between 90% and 99%). If you need details go to Wikipedia, they do a good job of explaining these. And when using these numbers always relate them back to throughput. Without this relation they reveal nothing.</li>
</ol>
<div>As with everything it all depends on <em>your</em> personal context in <em>your</em> project. I&#8217;d be surprised though if not more than half of the issues above weren&#8217;t spot on. So have a think about the above and see if they cannot be solved or mitigated in some way. Best of course by doing proper performance testing.</div>
<div>I have probably forgotten another two dozen things but that will be another blog post on another sunny Sunday.</div>
<div>Author: Oliver Erlewein</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hellotestworld.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hellotestworld.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hellotestworld.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hellotestworld.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hellotestworld.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hellotestworld.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hellotestworld.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hellotestworld.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hellotestworld.com&amp;blog=16007215&amp;post=98&amp;subd=hellotestworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hellotestworld.com/2011/11/07/thoughts-on-performance-testing-in-nz/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/65af5848f7066cbc3944eb0e779c2259?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">erlewein</media:title>
		</media:content>

		<media:content url="http://hellotestworld.files.wordpress.com/2011/11/26danipedrosamotogp_preview_big.jpg" medium="image">
			<media:title type="html">26danipedrosa,motogp_preview_big</media:title>
		</media:content>
	</item>
	</channel>
</rss>
