<?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>Alex Podelko</title>
	<atom:link href="http://alexanderpodelko.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexanderpodelko.com/blog</link>
	<description>Alex Podelko&#039;s blog about Performance Engineering and other subjects</description>
	<lastBuildDate>Thu, 06 Jun 2013 15:15:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Setting Processor Affinity on Linux</title>
		<link>http://alexanderpodelko.com/blog/2013/06/06/setting-processor-affinity-on-linux/</link>
		<comments>http://alexanderpodelko.com/blog/2013/06/06/setting-processor-affinity-on-linux/#comments</comments>
		<pubDate>Thu, 06 Jun 2013 15:03:51 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=379</guid>
		<description><![CDATA[I needed to check if setting processor affinity would be able to minimize mutual performance impact of server programs running inside a Linux VM. Setting processor affinity in Linux with taskset looks pretty straightforward: taskset -c -p &#60;cpu#&#62; &#60;pid&#62; However, when I ran a test, I noticed that the program still use all CPUs. So [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F06%2F06%2Fsetting-processor-affinity-on-linux%2F&amp;title=Setting%20Processor%20Affinity%20on%20Linux" id="wpa2a_2"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>I needed to check if setting processor affinity would be able to minimize mutual performance impact of  server programs running inside a Linux VM. Setting processor affinity in Linux with <a href="http://linux.die.net/man/1/taskset">taskset</a>  looks pretty straightforward: </p>
<p> taskset -c -p &lt;cpu#&gt; &lt;pid&gt;</p>
<p>However, when I ran a test, I noticed that the program still use all CPUs. So I started investigation (truly speaking, suspecting that it may be a virtualization effect) – but I was pointed out that to set processor affinity for a multithreaded application (such as the one I worked with) I need to set affinity for all tasks in /proc/&lt;pid&gt;/task with something like:</p>
<p>for p in `ls /proc/&lt;pid&gt;/task`; do taskset -p -c &lt;cpu#&gt;  $p; done</p>
<p>as far as &#8220;threads are essentially just processes with a shared address space on Linux&#8221;. </p>
<p>As soon as I ran the code above for the pid, the process was limited to one processor and affinity worked fine.</p>
<p>So the problem was that I set affinity only for the parent process, but not for the tasks in /proc/&lt;pid&gt;/task (child processes inherit affinity when they are started – but in this case they all were started before I set affinity for the main process).</p>
<p>The process may be started with affinity from the beginning. The following, for example, works fine too:<br />
taskset -c &lt;cpu#&gt;  &lt;start_command&gt; </p>
<p>But if you need to set affinity for already running processes, don&#8217;t forget to set it for all tasks in /proc/&lt;pid&gt;/task too.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/06/06/setting-processor-affinity-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revolution in Vendor Education?</title>
		<link>http://alexanderpodelko.com/blog/2013/06/04/revolution-in-vendor-education/</link>
		<comments>http://alexanderpodelko.com/blog/2013/06/04/revolution-in-vendor-education/#comments</comments>
		<pubDate>Tue, 04 Jun 2013 19:01:34 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=376</guid>
		<description><![CDATA[A lot of discussions are going on around MOOCs (Massive Open Online Courses) and how they would revolutionize college education. Of course, it would be interesting to see what would be an outcome – although I don&#8217;t expect to see drastic changes in traditional education soon, probably it will trigger some evolutional changes (and MOOCs [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F06%2F04%2Frevolution-in-vendor-education%2F&amp;title=Revolution%20in%20Vendor%20Education%3F" id="wpa2a_4"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>A lot of discussions are going on around <a href="http://en.wikipedia.org/wiki/Mooc">MOOCs (Massive Open Online Courses)</a>  and how they would revolutionize college education. Of course, it would be interesting to see what would be an outcome – although I don&#8217;t expect to see drastic changes in traditional education soon, probably it will trigger some evolutional changes (and MOOCs don&#8217;t sound as something completely new for me – rather a next step in slow evolution of online / remote education).</p>
<p>I found rather interesting their application in another market – in vendor training. It was, in my understanding, a very stable market with expensive classes without much checking of results (as you pay for the class, you get a certificate).  Sometimes complemented by a certification program – where for some money your knowledge is checked and confirmed by a nice title and certificate.  All variations I saw so far included doing the same classes online or selling training materials (for the price comparable to the cost of actual class).</p>
<p>I was surprised to find that 10gen provides <a href="https://education.10gen.com/">free online classes for MongoDB</a> &#8211; a leading NoSQL database. The classes look well-designed and include meaningful knowledge check (only those who get up to some level get a certificate). I was also surprised to learn that they have thousands of people enrolled for a specific class – considering that MongoDB is rather a specialized product. Probably introducing these free online classes contributed to popularity of MongoDB, which <a href="http://db-engines.com/en/ranking">looks like the most popular NoSQL database for the moment</a>.</p>
<p>While I don&#8217;t know if other vendors follow the example, it looks revolutionary for me. Not from the technological point of view – it looks in line with other MOOC technology allowing a huge number of students with relatively moderate efforts to manage it. But from the business point of view, when a vendor voluntarily gives up training revenue for spreading a word about their technology and building up a community of loyal users. It was even more surprising because MongoDB is open source and 10gen doesn&#8217;t have a stream of revenue from software licenses (at least from the base product) –  so giving up one more stream of potential revenue doesn&#8217;t sounds self-evident.  But indeed the benefits they get with such approach are probably much more significant that the stream of revenue they could get (and maybe they are still getting it doing more traditional training for those who wants it – and their share may be larger due to a larger number of people familiar with the technology).</p>
<p>It is definitely a very important precedent which potentially may overturn the whole vendor training market. It would be interesting to see if other follow the pattern – and, I guess, those who follow may see a noticeable competitive advantage.  Of course, MongoDB is an open-source product and it may be not so straightforward for proprietary commercial products. Although many vendors have some kind of limited licenses (evaluation, developer, limited edition, etc.) anyway that potentially allows to have that kind of online courses.</p>
<p>Another side effect may be the destruction of third-party basic training for specific products. If free training is available, you can&#8217;t just live on teaching basics to people – you need add value to have people paying (whatever this value is).</p>
<p>I see some hints that it may become a trend. It looks like free online tutorials become a standard. BlazeMeter <a href="http://community.blazemeter.com/knowledgebase "> putting together JMeter educational videos</a>. It looks like the Practical Performance Analyst site gave up on the idea to charge for <a href="http://elearning.practicalperformanceanalyst.com/elearning/www/index.php"> online performance engineering classes</a> – so they are available now for free.  Evan large companies share a lot of free educational video. See, for example, <a href="http://apex.oracle.com/pls/otn/f?p=44785:2:0::NO:RIR::">Oracle Learning Library</a>. Of course, free videos is not a full class with checking knowledge and providing a certificate &#8211; so it may take some time until we see it as mainstream (although I may miss other important developments as far as the subject itself is not my primary interest). </p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/06/04/revolution-in-vendor-education/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Few Thoughts about Certifications</title>
		<link>http://alexanderpodelko.com/blog/2013/05/06/a-few-thoughts-about-certifications/</link>
		<comments>http://alexanderpodelko.com/blog/2013/05/06/a-few-thoughts-about-certifications/#comments</comments>
		<pubDate>Tue, 07 May 2013 03:13:43 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Functional Testing]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=356</guid>
		<description><![CDATA[Recently I continue to stumble upon ISTQB (International Software Testing Qualification Board) certification. First, after a few discussion about need of standardization (and potentially certifications) for performance engineering, I decided to check available [functional] testing certifications and started to ask people what they think about existing certification and which is the most popular. It is [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F05%2F06%2Fa-few-thoughts-about-certifications%2F&amp;title=A%20Few%20Thoughts%20about%20Certifications" id="wpa2a_6"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Recently I continue to stumble upon <a href="http://www.istqb.org/">ISTQB (International Software Testing Qualification Board) certification</a>.</p>
<p>First, after a few discussion about need of standardization (and potentially certifications) for performance engineering, I decided to check available [functional] testing certifications and started to ask people what they think about existing certification and which is the most popular. It is interesting that everybody referred to ISTQB – no others were mentioned seriously (while there are some around). While feedback differs depending on people&#8217;s position to certification in general, nobody mentioned anything particularly negative (beyond discussion about need in certifications in general). Not a scientific research, of course – but often such informal discussions help to understand what is going on. </p>
<p>I looked through <a href="http://www.astqb.org/get-certified/istqb-syllabi-the-istqb-software-tester-certification-body-of-knowledge/">ISTQB syllabi</a> and got impression of pretty decent attempt to formalize a not very structured area. I understand how difficult it should be to formalize it on the concept level – it is much more difficult than to make a syllabus / exam for a specific product or a well established discipline. And, of course, it is changing before our eyes with trends of agility (including exploratory testing) and continuous integration.  Of course, it is not ideal (I won&#8217;t even comment on the performance testing part) – but my impression is that it is a very good step in the right direction.    </p>
<p>My opinion is that reasonable good certifications are beneficial for both people and the industry. You can read why on any certification provider site. Of course, you need to take it with a grain of salt – actually a very large grain – but overall they probably bring more benefits than issues. Issues, of course, exist too. </p>
<p>If we speak about people, it probably brings more benefits in the beginning of the career. When you get to the expert level, certifications won&#8217;t probably add much to your credentials. So here I&#8217;d agree with <a href="http://mavericktester.com/archive/software-testing-jobs/">Anne-Marie Charrett&#8217;s post</a>, but it is probably not even certification-specific. If you see that your potential employer practices something that contradicts your believes – you&#8217;d better look for another one (if you have an option).  However I don&#8217;t agree that certification is needed only for screening – for example, certified people would probably know and use common terminology and may get some understanding of the areas they never touch otherwise. So certification may improve the bottom line, but it doesn&#8217;t add much to very experienced people. It even put them in somewhat awkward situation – they need either to go and prove that they know the basic stuff or prove periodically that they are so good that they don’t need any certification. And it is indeed an issue – but, unfortunately, such people don&#8217;t represent the majority – so it may be unfair to evaluate the benefits of certifications on the example of experts.</p>
<p>And I don&#8217;t agree with <a href="http://scott-barber.blogspot.com/2011/10/please-no-new-certifications.html"> this Scott Barber&#8217;s post</a>: it would be great in the ideal world, but in the real world we have certifications everywhere and I don&#8217;t recall any certification body in any area that gets financially accountable  for certified people. The word certification in the real world has a pretty standard meaning and has no such high-level connotations as listed by Scott.     </p>
<p>Then I stumbled on <a href="http://testertested.blogspot.ru/2013/04/the-istqb-scam-and-why-you-should-sign.html">Pradeep Soundararajan&#8217;s post about ISTQB</a>.  It struck me as illogical and unprofessional. While I am definitely a side observer and perhaps missing something important – but if you accuse somebody in scam (which in my understanding is a crime), you&#8217;d better put better reasons behind it.</p>
<p>&#8220;these training for the cheap certification that is really expensive&#8221;. And what? Training is usually expensive (there are some interesting trends now, but they didn&#8217;t get to testing yet). And as soon as it is not required for the certification, I am fine with it. <a href="http://www.astqb.org/get-certified/steps-to-certification/">You don&#8217;t need to take training for ISTQB, do you?</a> As far as I understand, there are books, which are not very expensive &#8211; buy a book and get prepared. Am I missed something?  If we speak about scam, I am more concerned when the training <i>is</i> required to get certification – and I know a lot of vendor certifications that do that (and at least one testing certification too). Why Pradeep doesn&#8217;t complain about those? </p>
<p>&#8220;I have a pre final year college graduate who wanted to try her luck, try ISTQB, cleared it and does not have a clue on how to test&#8221; –I met many people who got their degrees, and didn&#8217;t have a clue on how to do real work. There is always some danger in every training/certification that somebody would just memorize the facts. I&#8217;d rather consider foundation certification as evidence that the person knows terminology / main notions. Anyway it is fine to say that the certification doesn&#8217;t verify that or this enough – but saying that it is a scam and shame? In my understanding you need to provide something more to prove the point.</p>
<p>&#8220;ISTQB as an organization was built to show they are not for profit but those who say it is not for profit&#8221; Well, not for profit is, as far as I understand, is a well defined legal term and there are government organization (such as IRS in the US) that keep an eye that such organizations do what they are supposed to do. And this status doesn&#8217;t mean that the organization shouldn&#8217;t earn money. </p>
<p>&#8220;use their own company names to make the profit out of ISTQB&#8221; And what is bad here? I guess that they get a small marketing advantage saying that they were involved in its development – but as soon as they don&#8217;t distribute, for example, exam questions, I don&#8217;t see crime here. People use their credentials to earn money, what&#8217;s wrong with this?</p>
<p>&#8220;The bigger shame is &#8211; when I talked about this &#8211; the ISTQB fellas said, &#8220;We don&#8217;t ask them to do it but it is not our business to get them to change it&#8221;.&#8221; And what you want them to say? If a company believes that you need a certification (for whatever reason they have) – you either get it, or go to another employer. It looks pretty straightforward for me. While I don&#8217;t think that it was a good thing for them to do, I don&#8217;t see any reason why they can&#8217;t. I am not a big fun, for example, pre-employment drug testing or sexual harassment trainings, but many companies require them – and you just do them if you want employment. </p>
<p>&#8220;I have been employed in services companies that have asked me to take ISTQB and my appraisal would depend on that.&#8221; Hmm, and what is the problem with that? I&#8217;d really love if I was asked to get certified. I rather consider as a problem when employers don&#8217;t care at all about training / people development.</p>
<p>&#8220;Also, the marketing and advertising they put up in magazines, conferences and other places (I haven&#8217;t checked any bill boards) is misleading. It ranges from ROI on this certification to how better testers can be after this. &#8221; Actually in the couple of your examples you yourself proved that the certification <i>does</i> provide ROI to the certified – the employers <i>do</i> care about it and want to get certified people! And as for better testers – well, I&#8217;d assume that the certified people would know and use common terminology and may get some understanding of the areas they never touch otherwise.  That&#8217;s it – and if it gets relatively popular, it works. Certifications never were a way to revolutionize the process – rather an evidence of maturity. In that sense, if there are significant breaks through in the area, certification may need to be updated – but that is a separate story.</p>
<p>Then there is <a href=" http://www.ipetitions.com/petition/istqb-foundations-exam-review/">a petition</a>, it is definitely more to the point and is very intriguing. Wow, there is &#8220;an exam reliability coefficient reviewed by your exam consultants Kryterion&#8221; – it is indeed pretty interesting how it is calculated and what it shows. Kryterion turned out to be the ISTQB exam provider – so I don&#8217;t think you can name it third-party, it rather looks like internal feedback on exams to ISTQB (which, I hope, ISTQB will use to improve them)  &#8211; and the petition is asking to reveal this information. Well, I&#8217;d guess the petitioners have a right to ask – and it is up to ISTQB to decide what to do with this information. I don&#8217;t think that any organization ever revealed such information before (at least my Google search didn&#8217;t return anything), especially if there are some concerns – but it is, of course, up to ISTQB to decide.  By the way, I won&#8217;t be surprised if some coefficients would be worse for the ISTQB exams comparing with specific product exams – the area is definitely more difficult to formalize and evaluate.</p>
<p>But I am somewhat confused what the goal of the petition is. Concerns that the exam doesn&#8217;t test the syllabus properly? Apply pressure to ISTQB to make the exam more rigorous? Real concerns about improving the quality of the ISTQB certification? Doesn&#8217;t sound so at least when you read Pradeep&#8217;s post.</p>
<p>Well, testing as a discipline is not in the best shape right now. Perhaps we may say that it is in a crisis.  Status of testers may definitely be improved.  There are several groups of people working to improve status of testing and testers – but their efforts are far from full success. Certifications, with all their shortcoming, improve the maturity of the area. They don&#8217;t help top-level people much (and probably rather annoy them), but they move up the bottom line. So, in my opinion, it would be much more benefits for testing in general if all testing thought leaders would at least be professional and constructive in their discussions – for example, suggest ways to improve certifications if they believe they are not good enough. While we probably won&#8217;t need certifications in the ideal world when everybody would be knowledgeable and passionate about their work – but, unfortunately, the real world is far from that. So we probably need to live with certifications for a while – and the question is if we have a relatively decent one (as much as it could be) or they would be indeed close to a scam (as soon as developing decent one requires a lot of efforts).</p>
<p>In a strange association Scott Barber&#8217;s video  <a href=http://www.youtube.com/watch?v=YkCLzNBPOmU>Why Executives See Software Testing as #EpicFail</a> comes to mind. It is a very sobering view and perhaps all testers should watch it from time to time. There are quite different opinions almost about every subject – but, in my opinion, it would be better to see the whole picture and at least keep the discussions constructive and professional. </p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/05/06/a-few-thoughts-about-certifications/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Performance Testing: The Art of Scripting</title>
		<link>http://alexanderpodelko.com/blog/2013/04/19/performance-testing-the-art-of-scripting/</link>
		<comments>http://alexanderpodelko.com/blog/2013/04/19/performance-testing-the-art-of-scripting/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 20:37:55 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[load testing]]></category>
		<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[OATS]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=350</guid>
		<description><![CDATA[Performance testing is an interesting discipline: while you may see a lot of people doing it, not much is written about it. And what is written is often either introduction-level or tool-specific (other large groups of topics including performance analysis and performance troubleshooting are wider topics and not testing-specific). But not much about performance testing [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F04%2F19%2Fperformance-testing-the-art-of-scripting%2F&amp;title=Performance%20Testing%3A%20The%20Art%20of%20Scripting" id="wpa2a_8"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Performance testing is an interesting discipline: while you may see a lot of people doing it, not much is written about it. And what is written is often either introduction-level or tool-specific (other large groups of topics including performance analysis and performance troubleshooting are wider topics and not testing-specific). But not much about performance testing specific challenges beyond of what is covered by tool manuals. </p>
<p>My group specializes in performance testing of Hyperion / Enterprise Performance Management and Business Intelligence products at Oracle. A few of scripting challenges exist for almost every product. Nothing exceptional – you should resolve them if you have some experience and would be attentive enough, but time after time we are called to save performance testing projects to find out that there are serious problems with scripts and scenarios which make test results meaningless. Even very experienced testers stumble, but problems could be avoided if more time was spent analyzing what is going on.</p>
<p> Let&#8217;s consider an example – probably typical for challenges you can face with modern Web-based applications. Some operations, like financial consolidation, can take a long time. The client starts the operation on the server and then waits until it will finish, a progress bar is shown in meanwhile. When recorded, the script looks like (in LoadRunner pseudo-code):</p>
<p>web_custom_request(&#8220;XMLDataGrid.asp_7&#8243;,<br />
&#8220;URL={URL}/Data/XMLDataGrid.asp?Action=EXECUTE&#038;TaskID=1024&#038;RowStart=1&#038;ColStart=2&#038;RowEnd=1&#038;ColEnd=2&#038;SelType=0&#038;Format=JavaScript&#8221;,<br />
		LAST); </p>
<p>web_custom_request(&#8220;XMLDataGrid.asp_8&#8243;,<br />
&#8220;URL={URL}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS&#8221;,<br />
LAST);</p>
<p>web_custom_request(&#8220;XMLDataGrid.asp_9&#8243;,<br />
&#8220;URL={URL}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS&#8221;,<br />
LAST);</p>
<p>web_custom_request(&#8220;XMLDataGrid.asp_10&#8243;,<br />
&#8220;URL={URL}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS&#8221;,<br />
LAST);</p>
<p>What each request is doing is defined by the ?Action= part. The number of GETCONSOLSTATUS requests recorded depends on the processing time. In the example above it was recorded three times; it means that the consolidation was done by the moment the third GETCONSOLSTATUS request was sent to the server. If playback this script, it will work in the following way: the script submits the consolidation in the EXECUTE request and then calls GETCONSOLSTATUS three times. If we have a timer around these requests, the response time will be almost instantaneous. While in reality the consolidation may take many minutes or even an hour (yes, this is a good example when sometimes people may be happy having one hour response time in a Web application). If we have several iterations in the script, we will submit several consolidations, which continue to work in background competing for the same data, while we report sub-second response times.</p>
<p>Consolidation scripts require creating an explicit loop around GETCONSOLSTATUS to catch the end of consolidation:</p>
<p>web_custom_request(&#8220;XMLDataGrid.asp_7&#8243;,<br />
&#8220;URL={URL}/Data/XMLDataGrid.asp?Action=EXECUTE&#038;TaskID=1024&#038;RowStart=1&#038;ColStart=2&#038;RowEnd=1&#038;ColEnd=2&#038;SelType=0&#038;Format=JavaScript&#8221;,<br />
		LAST); </p>
<p>do {</p>
<p>	sleep(3000);</p>
<p>	web_reg_find(&#8220;Text=1&#8243;,&#8221;SaveCount=abc_count&#8221;,LAST);</p>
<p>	web_custom_request(&#8220;XMLDataGrid.asp_8&#8243;,<br />
	&#8220;URL={URL}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS&#8221;,<br />
	LAST);</p>
<p>	} while (strcmp(lr_eval_string(&#8220;{abc_count}&#8221;),&#8221;1&#8243;)==0);</p>
<p>Here the loop simulates the internal logic of the system sending GETCONSOLSTATUS requests each 3 sec until the consolidation is done. Without such loop the script just send requests and ends the iteration while the consolidation runs for a long time after that. </p>
<p>Some other examples can be found in my presentation <a href="http://alexanderpodelko.com/docs/Load_Testing_Story_CMG10.pdf">A Load Testing Story</a> at CMG&#8217;10 &#8211; a story about one my project which had a good share of testing challenges.</p>
<p>Many technical details about testing Hyperion products with LoadRunner are included in Oracle support document 1339743.1. A lot of this knowledge is now included in the Hyperion module of <a href="http://www.oracle.com/technetwork/oem/app-test/index.html"> Oracle Application Testing Suite</a>. But that is just about one family of products – which is a small sample of challenges you would see around.</p>
<p>According to my experience, creating a meaningful and realistic workload is the main <i>performance testing</i> challenge – and you probably face it in most non-trivial systems (including most of corporate applications). It is surprising that very few people talk about it: reading about performance testing you may get impression that the scripting is trivial and mundane (and it looks like many &#8220;performance testers&#8221; truly believe in it – and when they face any challenge, they start to talk about the death of performance testing). </p>
<p>Only few names come to my mind who write about specific challeneges. For example, see Northway (@northwaysg) / Scott Moore (@loadtester) <a href="http://northwaysolutions.com/blog/"> performance testing blog</a> and <a href="http://northwaysolutions.com/our-work/downloads/">white papers</a>  or Mentora (@MentoraGroup ) / Dan Downing <a href="http://www.mentora.com/knowledge-center">presentations and white papers</a>.  Maybe few more – but definitely they are few and far apart.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/04/19/performance-testing-the-art-of-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Concurrency</title>
		<link>http://alexanderpodelko.com/blog/2013/04/10/user-concurrency/</link>
		<comments>http://alexanderpodelko.com/blog/2013/04/10/user-concurrency/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 00:43:49 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Performance Testing]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=343</guid>
		<description><![CDATA[Performance testing terminology is not well defined and one of the most ambiguous terms is user concurrency. Re-reading Load Testing: Concurrent Users verses Simultaneous Users by Scott Moore (@loadtester) and LoadRunner Concurrency video by Mark Tomlinson (@mtomlins) inspired me to post this comment. Here is what I wrote (and still believe in it) in my [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F04%2F10%2Fuser-concurrency%2F&amp;title=User%20Concurrency" id="wpa2a_10"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Performance testing terminology is not well defined and one of the most ambiguous terms is user concurrency. Re-reading <a href="http://northwaysolutions.com/blog/load-testing-concurrent-verses-simultaneous-users">Load Testing: Concurrent Users verses Simultaneous Users</a> by Scott Moore (@loadtester) and <a href="http://www.youtube.com/watch?v=AT5wTvC8dsA">LoadRunner Concurrency video</a> by Mark Tomlinson (@mtomlins) inspired me to post this comment. Here is what I wrote (and still believe in it) in <a href="http://alexanderpodelko.com/docs/Performance_Requirements_CMG07.pdf">my old CMG paper about performance requirements</a> in 2007 (<a href="http://alexanderpodelko.com/docs/Perf_Requirements_CMG12.pdf"> the latest version of this paper was presented again at CMG&#8217;12</a>):</p>
<p><i>Concurrency is the number of simultaneous users or threads. It is important too: connected, but inactive users still hold some resources. For example, the requirement may be to support up to 300 active users.</p>
<p>When we speak about the number of users, the terminology is somewhat vague. Usually three metrics are used: </p>
<p>• Total or named users: all registered or potential users. That is a metric of data the system works with. It also indicates the upper potential limit of concurrency. </p>
<p>• Active or concurrent users: users logged in at a specific moment of time. That one is the real measure of concurrency in the sense it is used here. </p>
<p>• Really concurrent: users actually running requests at the same time. While that metric looks appealing and is used quite often, it is almost impossible to measure and rather confusing: the number of &#8220;really concurrent&#8221; requests depends on the processing time for this request. For example, let’s assume that we got a requirement to support up to 20 “concurrent” users. If one request takes 10 sec, 20 “concurrent” requests mean throughput of 120 requests per minute. But here we get an absurd situation that if we improve processing time from 10 to 1 second and keep the same throughput, we miss our requirement because we have only 2 “concurrent” users. To support 20 “concurrent” users with 1 second response time we really need to increase throughput 10 times to 1,200 requests per minute. </p>
<p>It is important to understand what users you are speaking about: the difference between each of these three metrics for some systems may be drastic. Of course, it heavily depends on the nature of the system. </p>
<p>The number of online users (the number of parallel session) looks like the best metric for concurrency (complementing throughput and response time requirements).</i> </p>
<p>To summarize my comment, I believe that the number of &#8220;really concurrent&#8221; users is not an appropriate input metric for performance engineering and performance testing. It perhaps may be an output metric characterizing system&#8217;s load if we find a way to measure it (in a way, it is the number of users in the system if we use queuing theory terminology).</p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/04/10/user-concurrency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance vs. Scalability</title>
		<link>http://alexanderpodelko.com/blog/2013/04/05/performance-vs-scalability/</link>
		<comments>http://alexanderpodelko.com/blog/2013/04/05/performance-vs-scalability/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 13:51:21 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Performance Testing]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=339</guid>
		<description><![CDATA[After attending Sergey Chernyshev&#8217;s (@sergeyche) Scalability vs. Performance presentation at NY Web Performance Meetup and reading Scalability: it&#8217;s the question that drives us by Robert David Graham (@ErrataRob) and Scalability vs. Performance: it isn&#8217;t a battle by Theo Schlossnagle (@postwait) I would like to share my understanding. While I agree in general with everything said, [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F04%2F05%2Fperformance-vs-scalability%2F&amp;title=Performance%20vs.%20Scalability" id="wpa2a_12"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>After attending Sergey Chernyshev&#8217;s  (@sergeyche) <a href="http://www.slideshare.net/SergeyChernyshev/scalability-vs-performance">Scalability vs. Performance</a> presentation at <a href="http://www.meetup.com/Web-Performance-NY/">NY Web Performance Meetup</a> and reading <a href="http://erratasec.blogspot.com/2013/02/scalability-its-question-that-drives-us.html">Scalability: it&#8217;s the question that drives us</a> by Robert David Graham (@ErrataRob) and <a href="http://lethargy.org/~jesus/writes/scalability-vs.-performance-it-isnt-a-battle">Scalability vs. Performance: it isn&#8217;t a battle</a> by Theo Schlossnagle (@postwait) I would like to share my understanding. While I agree in general with everything said, I would rather word it differently. The topic became loaded, so accents are important. Robert, for example, states that <i>&#8220;performance&#8221; and &#8220;scalability&#8221; are orthogonal problems</i>. Well, no, they are not. They are different, but correlated notions. Even leaving aside that performance and scalability are somewhat vague terms.</p>
<p>If we speak about web systems now, it looks like we can roughly separate two main components in response time (which <i>is</i> the main performance metric): backend (server-side) time and frontend (network and client-side time). There are subtleties and grey areas, but I&#8217;d ignore them here. The frontend time, the subject of Web Performance Optimization (WPO), doesn&#8217;t relate to scalability as far as it is not involving server processing (again ignoring subtleties).</p>
<p>The proportion of frontend time vs. backend time may be any at all. According to Steve Souders (@souders), the founder of WPO, <a href="http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/">80-90% of the end-user response time is spent on the frontend</a>.  But even for major web sites the backend time for requests involving database processing (such as submitting orders or querying order status) may be more noticeable. And there are plenty of corporate web applications where the share of frontend time is rather small. Of course, the starting point of any performance troubleshooting is to find where time is spent. And there is absolutely no sense to optimize parts where time is not spent.</p>
<p>However, there is one important &#8220;but&#8221;. While front-end time supposed to be constant (another simplification, but again ignoring subtleties), the backend (server) time depends on load. The heavier is load, the larger may be server time. And at some point it may skyrocket making the system practically unusable. So thinking about what you need to optimize, you need to check where time is spend under maximal load. Unless you don&#8217;t care about downtime and user experience, the way to do it is load testing. </p>
<p>And here we get to scalability. The frontend performance indeed doesn&#8217;t matter here and is independent of scalability. But the backend performance <i>is</i> directly related to scalability. The relationship, of course, may be non-linear and quite sophisticated – but it does exist. </p>
<p>To illustrate it, let&#8217;s consider one simple (but still typical) example. The backend processing takes X ms, the time is mainly spent in CPU and we don&#8217;t have any other bottlenecks. In this case the server response time would be mainly CPU processing time – and every request would take X ms of CPU time (if we don&#8217;t have parallelism here). As soon as we take most of available CPU time, server response time would skyrocket (that situation may be modeled using queuing theory). So there is a load when the system becomes practically unusable – and the question is just when we get to this load. We, of course, may get to problems sooner if we have any scalability problem inside the system or run out of another kind of resources. </p>
<p>Generally speaking, you can increase scalability by either optimizing server processing (using less resources) or providing more resources. Of course, if your architecture allows using these additional resources – so mainly scalability boils down to ability to parallelize your processing (and often limited by what you can&#8217;t fully parallelize – like a centralized database). </p>
<p>We do have two parts of response time – frontend and backend – which behaves differently and may need different approaches and tools to optimize. But the end user experience is the sum of these two parts – where the backend time is a function of load. You can&#8217;t say much about your end-to-end performance and its backend part until you check it under load – and load testing is the safe way to do so.</p>
<p>Historically performance engineering concentrated on backend &#8211; where main performance and scalability issues were – and practically ignored frontend (which indeed was usually pretty straightforward then). Several sub-disciplines were formed including performance analysis, capacity planning, and load testing. Later, when sophistication of frontend skyrocketed, a whole new discipline was established by Steve Souders and quickly grew around <a href="http://velocityconf.com/">Velocity</a> and Web Performance meetups. Unfortunately, it practically dismissed performance engineering developments of the last 40 years (maybe even more &#8211; the <a href="http://cmg.org/">Computer Measurement Group (CMG)</a> was founded in 1975). While frontend WPO definitely has its own specific, I&#8217;d still expect to see a holistic approach to performance engineering, taking in account all aspects of performance and scalability end-to-end. </p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/04/05/performance-vs-scalability/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>APM, Analytics, and Industry Trends</title>
		<link>http://alexanderpodelko.com/blog/2013/02/11/apm-analytics-and-industry-trends/</link>
		<comments>http://alexanderpodelko.com/blog/2013/02/11/apm-analytics-and-industry-trends/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 16:30:58 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[APM]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=331</guid>
		<description><![CDATA[Just read Gartner Q&#038;A: Analytics vs. APM with Will Cappelli, Gartner Research VP in Enterprise Management, part one, part two, and part three about his latest report: Will IT Operations Analytics Platforms Replace APM Suites? The discussion is very interesting and informative, touches areas that interested me for a long time, but the title doesn&#8217;t [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F02%2F11%2Fapm-analytics-and-industry-trends%2F&amp;title=APM%2C%20Analytics%2C%20and%20Industry%20Trends" id="wpa2a_14"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Just read <i>Gartner Q&#038;A: Analytics vs. APM</i> with Will Cappelli, Gartner Research VP in Enterprise Management, <a href="http://www.apmdigest.com/gartner-analytics-vs-application-performance-management-1">part one</a>, <a href="http://www.apmdigest.com/gartner-analytics-vs-application-performance-management-2">part two</a>, and <a href="http://www.apmdigest.com/gartner-analytics-vs-application-performance-management-3">part three</a> about his latest report: <i>Will IT Operations Analytics Platforms Replace APM Suites?</i></p>
<p>The discussion is very interesting and informative, touches areas that interested me for a long time, but the title doesn&#8217;t make sense for me. Maybe I just got behind in terminology – but here is as I understand it.</p>
<p>I joined Hyperion in 1999 and, with one break, did, in a way, performance management of performance management applications. I was responsible for application performance of business performance management and business intelligence applications.  At this point you probably can guess some questions that came to my mind. Can we use anything from application performance management in business performance management? Or, vise versa, can we use business analytic software for application performance analysis? Well, I haven&#8217;t still figured out a meaningful way to do it.</p>
<p>I am also involved in <a href="http://cmg.org/ ">CMG (worldwide organization of IT professionals specializing in performance, capacity and service management)</a>, where there was an idea that skills of application performance and capacity management may be used for business performance and capacity. I waited with interest if the best experts in application performance and capacity management (and CMG is the place where you find them) would be able to come with interesting ideas of using their skills for business (beyond the trivial fact that performance impacts business). Still waiting.</p>
<p>While these two areas, application performance and business performance, look very similar and, of course, often use the same underlying approaches and math, the devil is in details. They are just two different areas and not much may be re-used between them (as soon as we get to details).</p>
<p>Reading the discussion, I came to one explanation of what is going on. It also explains one more phenomenon surprising me for a while. The phenomenon was that there are many new companies on the market providing only end-user monitoring (EUM, or real-user monitoring, RUM) and apparently doing pretty well.  While EUM is definitely a very important APM area, my understanding was that it is just one part of APM and, without other parts, provides very limited APM value.  <a href="http://alexanderpodelko.com/blog/2012/12/28/thoughts-about-apm-predictions/">My understanding was that we should rather move toward integrated APM solutions</a>. Still the impression is that some such EUM companies doing even better than companies providing integrated APM solutions.</p>
<p>Well, the explanation is that web analytics (even with EUM) is just a completely different area from APM (although EUM is an important part of APM too). Web analytics is a business application (and yes, end-user performance is one of components of business analysis now) and APM is an &#8220;IT&#8221; application.  If we agree on this, it explains all these strange titles about death of APM or replacing APM by analytics.  End-user performance with web analytics became a business intelligence application – and the business intelligence market is many times larger than IT intelligence market (where we still have all true APM solutions – with all their problems because the APM is, in essence, much more sophisticated area technically than business analytics). It was always this way – recall market size of business intelligence (Hyperion, Cognos, Business Objects, etc.) vs. market size of companies providing monitoring and deep diagnostics solutions. </p>
<p>Business intelligence/analytics moved to a new level:  from sales analysis we are getting to user clicks analysis. And there we have another level of data volume (==big data) and we are getting to the point when end-user performance is just one more dimension of business data. Performance impacts business – and business wants to analyze it.   Well, in application performance management we worked with &#8220;big data&#8221; for ages – and have you heard about it as a world problem until it got into the business realm?    </p>
<p>But nothing changed in APM – if we find a way to separate these business-related applications, I guess we find that the APM market is slowly growing and that APM applications are slowly becoming better and better. To manage your applications, you need an APM solution, not web analytics and not EUM only (although EUM is important for APM too). </p>
<p>As I highlighted in my performance requirements article (<a href="http://www.alexanderpodelko.com/docs/Perf_Requirements_CMG12.pdf">here is the last version</a> just presented at <a href=" http://cmg.org/conference/cmg2012/">CMG&#8217;12</a>), we have two completely different views: business view and &#8220;IT&#8221; view. Business is interested in one (and only one) performance metric – end-user response time. That&#8217;s it, <b>nothing</b> else at all. All other stuff – throughput, resource utilization, bandwidth, latency, etc. – is for IT internal use only (even if &#8220;IT&#8221; is the core of the company as with many web services). Yes, business people know these words too – they hear them all the time as explanation why we can&#8217;t get requested performance or why we need to spend another pile of money on something IT needs – but if &#8220;IT&#8221; delivered the requested performance they were quite happy not even knowing these words. And that is exactly what we see here: we have solutions for business (EUM – which is much simpler of integrated APM solutions and provides everything business needs) and solutions for &#8220;IT&#8221; (with all these stuff you needed to manage applications performance – but much more sophisticated and difficult to implement).  </p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/02/11/apm-analytics-and-industry-trends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Testing Issues and Trends</title>
		<link>http://alexanderpodelko.com/blog/2013/01/22/performance-testing-issues-and-trends/</link>
		<comments>http://alexanderpodelko.com/blog/2013/01/22/performance-testing-issues-and-trends/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 21:52:27 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software Developemt]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=319</guid>
		<description><![CDATA[And now, after my posts about agile performance testing and performance requirements in agile projects, we are getting to another fundamental issue behind performance testing issues in agile projects. There are two very important assumptions for what I am saying below: stakeholders understand the need in performance engineering and the team knows the basics. How [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F01%2F22%2Fperformance-testing-issues-and-trends%2F&amp;title=Performance%20Testing%20Issues%20and%20Trends" id="wpa2a_16"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>And now, after my posts about <a href="http://alexanderpodelko.com/blog/2013/01/17/performance-testing-and-agile-projects-recollections-and-resources/">agile performance testing</a> and <a href="http://alexanderpodelko.com/blog/2013/01/17/performance-requirements-and-agile-projects/">performance requirements in agile projects</a>, we are getting to another fundamental issue behind performance testing issues in agile projects.</p>
<p>There are two very important assumptions for what I am saying below: stakeholders understand the need in performance engineering and the team knows the basics. How to get there is a very interesting topic, but it is outside of this post. For those, who are not there yet, the issues described below may sound abstract and they probably have more urgent problems to fight – but it is something you may want to be aware about while you are getting there. </p>
<p>The fundamental issue is, as I see it, that performance engineering teams don’t scale well, even assuming that they are competent and effective. At least not in their traditional form. They work well in traditional corporate environments where they check products for performance before release, but they face challenges as soon as we start to expand the scope of performance engineering (early involvement, more products/configurations/scenarios, etc.). And agile projects, when we need to test the product each iteration or build, expose the problem through the increased volume of work to do.</p>
<p>Just to avoid misunderstandings, I am a strong supporter of having performance teams and I believe that it is the best approach to building performance culture. Performance is a special area and performance specialists should have an opportunity to work together to grow professionally. The details of organization may vary (<a href="http://www.slideshare.net/rsbarber/agile-enterprise">Scott Barber, for example, specified three models: &#8220;on demand&#8221;, &#8220;on retainer&#8221;, &#8220;full immersion&#8221;</a>), but a center of performance expertise should exist. Only thing I am saying here is that while the approach works fine in traditional environment, it needs major changes in organization, tools, and skills when the scope of performance engineering should be extended (as in the case of agile projects).  </p>
<p>Actually remedies are well known: <a href="http://www.slideshare.net/melnykenator/top-ten-secret-weapons-for-agile-performance-testing">automation, making performance everyone jobs</a> (<a href="http://www.slideshare.net/rsbarber/agile-enterprise">full immersion</a>), etc. However they are not wide-spread yet.</p>
<p>Historically performance testing automation was almost non-existent (at least in traditional environments). Performance testing automation is much more difficult than, for example, functional testing automation (I use &#8220;automation&#8221; here as what should be done for &#8220;continuous testing&#8221;, i.e. process when you run test and get a report automatically for a new build without human intervention – not in its old way, when it meant using a tool; in performance we almost always use a tool). Setups are much more complicated. A list of possible issues is long. Results are complex (not just pass/fail). It is not easy to compare two result sets. So it is definitely much more difficult and would probably require much more human intervention, but it isn&#8217;t impossible. </p>
<p>However, the cost of performance testing automation is high. You need to know system well enough to make meaningful automation. Automation for a new system doesn&#8217;t make much sense &#8211; overheads are too high. So there was almost no automation in traditional environment [with testing in the end with a record/playback tool]. When you test the system once in a while before next major release, chances to re-use your artifacts are low. </p>
<p>It is opposite when the same system is tested again and again (as it should be in agile projects). It makes sense to invest in setting up automation. It rarely happened in traditional environments – even if you test each build, they are far apart and the difference between the builds prevents re-using the artifacts (especially with recorded scripts – API, for example, is usually more stable). So demand for automation was rather low and tool vendors didn&#8217;t pay much attention to it. Well, the situation is changing – we may see more automation-related features in load testing tools soon.  </p>
<p>There are some vendor claiming that their load testing tools better fit agile processes, but it looks like in the best case it means that the tool is a little easier to handle (and, unfortunately, often just because there is not much functionality in it). Even if there is something that may be used for automation, like starting by a command line with parameters, it is difficult to find out.</p>
<p>At the moment, I read about few implementation of continuous performance testing – for example <a href="http://www.optier.com/blog/how-optiers-continuous-performance-testing-process-ensures-our-industry-leading-technology/">OpTier</a> or <a href="http://www.slideshare.net/sthair/continuous-integration-a-performance-engineers-journey">Betfair</a> (and few about measuring response times during functional testing in single-user mode – like <a href="http://velocityconf.com/velocity2011/public/schedule/detail/18282">this</a> –  which is a good step toward full-scale performance testing automation).  Some prototypes, like <a href="http://www.slideshare.net/amitayhd/continuous-performance-testing-5896257">this</a>, are described– but without many details.</p>
<p>Probably we don&#8217;t see it more often because we don&#8217;t have much infrastructure for that kind of automation and performance testers may be not the best people to create complex integrated solutions from dozens of not-related pieces (as those who implemented it did). When we get more automation support in tools, we will probably see it changing.</p>
<p>By the way, I am not saying that automation would replace performance testing as we know it. Performance testing of new systems is agile and exploratory in nature and can&#8217;t be replaced by automation (well, at least not in the foreseen future). Automation would complement it – together with additional input from development offloading performance engineers from routine tasks not requiring sophisticated research and analysis. </p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/01/22/performance-testing-issues-and-trends/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Performance Requirements and Agile Projects</title>
		<link>http://alexanderpodelko.com/blog/2013/01/17/performance-requirements-and-agile-projects/</link>
		<comments>http://alexanderpodelko.com/blog/2013/01/17/performance-requirements-and-agile-projects/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 19:52:13 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Performance Requirements]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software Developemt]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=313</guid>
		<description><![CDATA[It looks like agile methodologies are somewhat struggling with performance requirements (and non-functional requirements in general). Probably there are several reasons for that. One is that actually even traditional software development methodologies and processes never came with a good approach to handle performance requirements. They are, of course, considered in both literature and practical projects [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F01%2F17%2Fperformance-requirements-and-agile-projects%2F&amp;title=Performance%20Requirements%20and%20Agile%20Projects" id="wpa2a_18"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>It looks like agile methodologies are somewhat struggling with performance requirements (and non-functional requirements in general). Probably there are several reasons for that. One is that actually even traditional software development methodologies and processes never came with a good approach to handle performance requirements. They are, of course, considered in both literature and practical projects – but are usually handled rather in ad hoc manner. Actually the process of gathering and elaboration of performance requirements is rather agile in itself, and attempts to make it rigorous and formal look unnatural and have never fully succeeded – so it should be easier and more natural to do it as part of agile methods. Still the challenge of handling multidimensional and difficult to formalize performance requirements remains intact and the difference is rather in <a href="http://tynerblain.com/blog/2009/02/10/agile-non-functional-reqs/">minor adjustments to agile processes than in the essence of performance requirements</a>.</p>
<p>Another reason is that practical agile development is struggling with performance in general. Theoretically it should be a piece of cake: every iteration you have a working system and know exactly where you stand with the system’s performance. You shouldn’t wait until the end of the waterfall process to figure out where you are – on every iteration you can track your performance against requirements and see the progress (making adjustments on what is already implemented and what is not yet). Clearly it is supposed to make the whole performance engineering process much more straightforward.</p>
<p>Unfortunately, it looks like it doesn’t always work this way in practice. So such notions as “hardening iterations” and “technical debt” get introduced. Although it is probably the same old problem: functionality gets priority over performance (which is somewhat explainable: you need first some functionality before you can talk about its performance). So performance related activities slip toward the end of the project, and the chance is missed to implement a proper performance engineering process built around performance requirements. </p>
<p>Another issue here is that agile methods are oriented toward breaking projects into small tasks, which is quite difficult to do with performance (and many other non-functional requirements) – performance-related activities usually span the whole project.</p>
<p>There is no standard approach to specifying performance requirements in agile methods. Mostly it is suggested to present them <a href="http://www.mountaingoatsoftware.com/blog/non-functional-requirements-as-user-stories/">as user stories</a> or <a href="http://scalingsoftwareagilityblog.com/wp-content/uploads/2010/08/leffingwell_shriver-agile-2010-nfr_final.pdf">as constraints</a>. And the difference is not so much in the way the requirements are presented, both ways rather use plain text. </p>
<p>User stories assume using a user voice form. <a href="http://www.mountaingoatsoftware.com/blog/non-functional-requirements-as-user-stories/">Cohn, for example, suggests</a> to use the “As a <type of user>, I want <some goal>, so that <some reason>” template for user stories (although he cautions that the user story template should only be used as a thinking tool, it should not be used as a fixed template). For constraints, <a href="http://scalingsoftwareagilityblog.com/wp-content/uploads/2010/08/leffingwell_shriver-agile-2010-nfr_final.pdf">both traditional expressions and user voice forms may be used</a>.</p>
<p>The difference between user stories and constraints approaches is not in performance requirements per se, but how to address them during the development process. The point of the constraint approach is that user stories should represent finite manageable tasks, while performance-related activities can’t be handled as such because they usually span multiple components and iterations. Those who suggest to use user stories address that concern in another way – <a href="http://www.infoq.com/news/2011/06/nailing-quality-requirements">for example, separating cost of initial compliance and cost of ongoing compliance</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/01/17/performance-requirements-and-agile-projects/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Performance Testing and Agile Projects: Recollections and Resources</title>
		<link>http://alexanderpodelko.com/blog/2013/01/17/performance-testing-and-agile-projects-recollections-and-resources/</link>
		<comments>http://alexanderpodelko.com/blog/2013/01/17/performance-testing-and-agile-projects-recollections-and-resources/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 05:06:14 +0000</pubDate>
		<dc:creator>Alex Podelko</dc:creator>
				<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software Developemt]]></category>

		<guid isPermaLink="false">http://alexanderpodelko.com/blog/?p=307</guid>
		<description><![CDATA[It looks like testingreflections.com, where I had blogged for a while, doesn&#8217;t exist anymore. One more confirmation that you can&#8217;t rely on somebody else long-term – who knows what would happen… Well, I still have some drafts of my old posts. Here is what I wrote about agile performance testing in 2009: Two Views of [...]]]></description>
				<content:encoded><![CDATA[<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falexanderpodelko.com%2Fblog%2F2013%2F01%2F17%2Fperformance-testing-and-agile-projects-recollections-and-resources%2F&amp;title=Performance%20Testing%20and%20Agile%20Projects%3A%20Recollections%20and%20Resources" id="wpa2a_20"><img src="http://alexanderpodelko.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>It looks like testingreflections.com, where I had blogged for a while, doesn&#8217;t exist anymore.  One more confirmation that you can&#8217;t rely on somebody else long-term – who knows what would happen… Well, I still have some drafts of my old posts. Here is what I wrote about agile performance testing in 2009:</p>
<blockquote><p>
<a href="http://www.stpcollaborative.com/knowledge/369-two-views-of-agile-unit-testing">Two Views of Agile Unit Testing</a> reminded me (indirectly) <a href="http://www.sqaforums.com/showflat.php?Number=563642">the QAForums Agile Performance Testing &#8211; Oxymoron? discussion</a> about agile development and performance testing some time ago</p>
<p>Well, if we talk about agile development I don&#8217;t see any problem with performance testing at all: you have a working build each iteration – you test it. What is a problem? It should be synonym, not oxymoron.</p>
<p>All issues mentioned in the discussion boil down to one: nobody wants to pay for it (so no testers, no equipment, etc). Don&#8217;t see anything especially agile in it. Maybe companies still don&#8217;t switch to agile development for major projects &#8211; and don&#8217;t want to spend money for minor projects. Another explanation may be that in most traditional projects performance testing happens at the very end instead of every iteration (so require less resources) &#8211; but it not the way to do it properly.</p>
<p>I see significantly more problems doing performance testing properly during traditional development. I wrote <a href="http://www.alexanderpodelko.com/docs/Agile_Performance_Testing_CMG08.pdf">a paper that has the same title, Agile Performance Testing, but completely different content</a>: how to do performance testing in an agile way for any kind of projects (where agile projects look rather like a trivial case for me).</p>
<p>Well, returning to the original question of the discussion, there are a few articles in the Internet about the subject:</p>
<p><a href="http://jamiedobson.co.uk/blog/agile-performance-testing/">Agile Performance Testing</a> by Jamie Dobson</p>
<p><a href=" http://www.logigear.com/newsletter-2007/320-an-explanation-of-performance-testing-on-an-agile-team-part-1-of-2.html">An Explanation of Performance Testing on an Agile Team Part 1</a> and <a href=" http://www.logigear.com/newsletter-2007/321-an-explanation-of-performance-testing-on-an-agile-team-part-2-of-2.html">Part2</a> by Scott Barber</p>
<p><a href="http://perftestingguide.codeplex.com/Wiki/View.aspx?title=Chapter%206%20%u2013%20Managing%20an%20Agile%20Performance%20Test%20Cycle">Chapter 6 of Performance Testing Guidance for Web Applications. Managing an Agile Performance Test Cycle.</a></p></blockquote>
<p>Well, I still believe so. I still believe that performance testing in agile projects should be easier conceptually (although, of course, it would be a lot of technical difficulties – but who said that it should be easy?).</p>
<p>There are a few good newer articles addressing some aspects of the subject:</p>
<p><a href="http://www.slideshare.net/melnykenator/top-ten-secret-weapons-for-agile-performance-testing">Top Ten Secret Weapons For Agile Performance Testing</a> by Patrick Kua</p>
<p><a href="http://www.agileload.com/agileload//blog/2012/10/22/agile-performance-testing-process---whitepaper">Agile Performance Testing process</a> AgileLoad whitepaper</p>
<p><a href="http://www.slideshare.net/rsbarber/agile-enterprise">Performance Testing in the Agile Enterprise</a> by Scott Barber</p>
<p><a href="http://www.perftesting.co.uk/performance-by-design-an-agile-approach/2011/11/18/">Performance By Design – an Agile Approach</a> by Jason Buksh</p>
<p>Still the subject is not covered much (and it looks like not actually practiced much &#8211; apart from involvement of traditional performance testing team in agile projects).</p>
<p>I started to prepare my talk for <a href="http://btd2013.com/">Belgium Testing Days</a> (which promises to be a very interesting global testing conference) and the subject got me to very philosophical questions – will try to share my further thoughts about the subject in following posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexanderpodelko.com/blog/2013/01/17/performance-testing-and-agile-projects-recollections-and-resources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
