<?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>Cognifide Blog &#187; qa</title>
	<atom:link href="http://www.cognifide.com/blogs/tag/qa/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cognifide.com/blogs</link>
	<description>The Cognifide.Com Tech Hub</description>
	<lastBuildDate>Thu, 23 May 2013 08:23:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Testing Dojo &#8211; Barcode challenge</title>
		<link>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-barcode-challenge/</link>
		<comments>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-barcode-challenge/#comments</comments>
		<pubDate>Wed, 30 May 2012 08:00:10 +0000</pubDate>
		<dc:creator>Łukasz Morawski</dc:creator>
				<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[exlopratory testing]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[testing dojo]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=1844</guid>
		<description><![CDATA[The challenge was based on one of the Weekend Testing challenges and the aim was to practice usage of test techniques, pair collaboration, problem solving and, last but not least, have some fun. The mission is a &#8220;test this&#8221; type of mission. Application http://www.barcodeart.com/artwork/netart/yourself/yourself.swf Mission Find out how the barcode is generated and report any [...]]]></description>
			<content:encoded><![CDATA[<p>The challenge was based on one of the <strong>Weekend Testing</strong> challenges and the aim was to practice usage of test techniques, pair collaboration, problem solving and, last but not least, have some fun.</p>
<p> The mission is a &#8220;test this&#8221; type of mission.</p>
<p><div id="attachment_2069" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/Barcode.jpg"><img class="size-medium wp-image-2069" title="Barcode challenge. source: barcode.com" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/Barcode-300x266.jpg" alt="barcode challenge" width="300" height="266" /></a><p class="wp-caption-text">source: barcode.com</p></div>
<p><strong>Application</strong></p>
<p><a href="http://www.barcodeart.com/artwork/netart/yourself/yourself.swf" rel="nofollow">http://www.barcodeart.com/artwork/netart/yourself/yourself.swf</a></p>
<p><strong>Mission</strong></p>
<p>Find out how the barcode is generated and report any bugs within 20 minutes.</p>
<p><span id="more-1844"></span></p>
<p><strong>Prerequisites</strong></p>
<ul>
<li>4 laptops</li>
<li>pencils and paper for notes</li>
</ul>
<p><strong>The Dojo</strong></p>
<p>We started with pairing and subject presentation. This time I was able to take a part in this dojo and wasn&#8217;t limited to being the organiser.</p>
<p>The flash application presents a question and expects an answer. User can move forward to the next question with “Next” link and move backward with clicking on “Back” link.</p>
<p>Until no answer is granted, “Next” link is not visible. After answering all questions, the barcode is generated based on all the questions. Application asks for:</p>
<ul>
<li>sex,</li>
<li>age,</li>
<li>nationality,</li>
<li>height (in feet and inches or in centimetres),</li>
<li>weight (pounds or kilograms),</li>
</ul>
<p>The Dojo started and for next 20 minutes every teams were trying to solve the problem. Here are the conclusions that teams made:</p>
<ul>
<li><strong>Sex</strong> is coded in first digit, 1 for male, 0 for female. This was pretty obvious and every team quickly reported this one,</li>
<li><strong>Age</strong> is coded in next 2 digits, directly as it was enter by user. We observe that maximum value we could enter was &#8220;99&#8243;,</li>
<li><strong>Location</strong> (or nationality) is coded on next 3 digits, the country codes were a mystery at first but as the teams noticed the codes starts from “001” value
<p> for the upper left flag and then continues in order. The UK flag is nineteen in a row and the code for UK is ”019”. For Poland the code is “062”,</li>
<li><strong>Height</strong>. I think this was most time consuming because most of us started with centimetres. Turns out that thinking in the “metric” system didn’t really help in solving this challenge.
<p> Finally, we resolved this that the height is coded in 2 digits in inches. So we enter 1 foot and 0 inches and this gave us the multiplier &#8211; “12”.</p>
<p> So 5 feet and 5 inches gives up “65” inches and so is the value in barcode. Sadly, this was not so obvious for us!</li>
<li><strong>Weight</strong>. Coded in pounds on 3 digits with no mathematics. Entering &#8220;999&#8243; gives &#8220;999&#8243; in barcode and it was the maximum value,</li>
<li><strong>CRC</strong> – control checksum calculated based on the rest of the code. We didn’t take the challenge with this as the time ran out.</li>
</ul>
<p>During the Dojo, we found some bugs:</p>
<ul>
<li>Moving back and then, hitting next unlocks next link: “Start application-sex:male-next-back-next”,</li>
<li>Moving back to the start makes “location” dropdown empty: “Start app-sex:male-next-age:31-next-location:Luxemburg-back-back-next-next”,</li>
<li>In height, when providing feet with no (empty) inches gives “00” in barcode. For example: 1 foot, empty inches result in “00”. 1 foot and 0 inches gives “12” barcode,</li>
<li>Undefined variables – Bug has preserved its existence on screen attached at the end of this post. Going forward, backward and forward again gives “undefined” strings,</li>
</ul>
<p>Most of the bugs are the result of one issue – the “next” link appearing.</p>
<h3>Picture</h3>
<p><div id="attachment_1845" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/DSC00304-small.jpg"><img class="size-full wp-image-1845" title="DSC00304-small" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/DSC00304-small.jpg" alt="Table with results" width="500" height="375" /></a><p class="wp-caption-text">Results table</p></div><div id="attachment_1846" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/barcode_undefined1-small.png"><img class="size-full wp-image-1846" title="barcode_undefined1-small" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/barcode_undefined1-small.png" alt="Undefined error" width="500" height="330" /></a><p class="wp-caption-text">Undefined error</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-barcode-challenge/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Testing Dojo &#8211; The Light-bot game</title>
		<link>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-the-light-bot-game/</link>
		<comments>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-the-light-bot-game/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 13:40:34 +0000</pubDate>
		<dc:creator>Łukasz Morawski</dc:creator>
				<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[tester game]]></category>
		<category><![CDATA[testing dojo]]></category>
		<category><![CDATA[testing skills]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=1851</guid>
		<description><![CDATA[A different kettle of fish, this time. Improve your testing skills by playing games! This exercise, in particular, aims to improve problem solving skills of a tester. Also, encourage some creative thinking. Application Light-bot, a flash game (http://www.funnygames.co.uk/light-robot.htm) &#8211; programme a little robot to &#8220;light&#8221; blue squares. Mission Tasks: Finish as many levels as you [...]]]></description>
			<content:encoded><![CDATA[<p>A different kettle of fish, this time. Improve your testing skills by playing games! This exercise, in particular, aims to improve problem solving skills of a tester. Also, encourage some creative thinking.</p>
<p><strong>Application</strong></p>
<p>Light-bot, a flash game (<a href="http://www.funnygames.co.uk/light-robot.htm" rel="nofollow">http://www.funnygames.co.uk/light-robot.htm</a>) &#8211; programme a little robot to &#8220;light&#8221; blue squares.</p>
<div id="attachment_1852" class="wp-caption aligncenter" style="width: 661px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/LightBot-The-Game.png"><img class=" wp-image-1852" title="LightBot-The-Game" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/LightBot-The-Game.png" alt="Light-bot game" width="651" height="323" /></a><p class="wp-caption-text">Light-bot game, first level</p></div>
<p><strong>Mission Tasks:<br />
</strong><strong></strong></p>
<ol>
<li>Finish as many levels as you can.</li>
<li>Question: Does this teach you something?</li>
<li>Additional task: try to implement a recursive function that lights up and lights down the square.</li>
<li>Challenge: Try to finish the game with less than 205 commands (my result).</li>
</ol>
<h3><span id="more-1851"></span></h3>
<p><strong>Time</strong>: 40 minutes</p>
<p><strong>Testers</strong>: Cognifide QA Team</p>
<h2>The Dojo</h2>
<p>The main question asked while conducting this dojo was how such an exercise can help testers. Is it a waste of time or just a free time killer? Or will it really teach us something?</p>
<p>Obviously, it helps testers who develop tests because the main goal is to program the robot, but is it helpful for functional testers who don’t write code? This conversation led us to think what tasks really help us to do and our observations were:</p>
<ul>
<li>Task grouping &#8211; we can learn how to prepare to test, manage our time,</li>
<li>Algorithm &#8211; developers create algorithms which we test</li>
<li>Searching for patterns &#8211; functions are patterns, while testing we search patterns to identify and reproduce bugs,</li>
<li>Developer view &#8211; we learn how to be a developer, what challenges and what problems he is facing (&#8220;you fixed it instead of refactor the code&#8221;),</li>
<li>Logic &#8211; we&#8217;re trained to think logically,</li>
<li>Inquisitiveness &#8211; sometimes you need to be very inquisitive to find some bugs, they hide well.</li>
</ul>
<p>And the three main reasons to conduct such a dojo was:</p>
<ul>
<li>Creative thinking &#8211; testing needs creativity to be successfully conducted,</li>
<li>Problem solving – as a testers, we are faced to problems which we are supposed to solve. We have to handle it.</li>
<li>Building a team spirit</li>
</ul>
<p><strong>Summary</strong></p>
<p>I was little afraid before conducting this dojo because this was not a standard event. I didn&#8217;t know how my fellow testers would react to such a (trivial at first glance) exercise. But it was OK, we went through the dojo without a hitch. Participants were engrossed by the game and concerned with finishing as many levels as they could but burdened by the time constraint, we managed to get to 10th level. Also, teams came up with an enhancement for the game – “a hot seat mode”. Here, every tester is allowed to make one move then the next one makes their move and so on.</p>
<p>This shows that there can be many ways to achieve one goal and most of the time, we have to choose only one. Such games would also illustrate the limits for us testers (time, knowledge, tools) and teach you how to overcome them. This, I believe could be a great example of team work. Hmm, I wonder if such an approach would result in any success. We will definitely try this out someday!</p>
<p>Unfortunately, on this dojo, we didn&#8217;t manage to complete all missions &#8211; implementation of recursive function were left for other time. And the homework is still to be done &#8211; 205 commands to beat. Anyone to match ?</p>
<div id="attachment_1854" class="wp-caption aligncenter" style="width: 688px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/LightBot_Congratulation_cut1.png"><img class=" wp-image-1854 " title="LightBot_Congratulation_cut" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/LightBot_Congratulation_cut1.png" alt="Light-bot game" width="678" height="338" /></a><p class="wp-caption-text">Can you beat my result?</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-the-light-bot-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Dojo &#8211; Test Heuristics</title>
		<link>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-test-heuristics/</link>
		<comments>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-test-heuristics/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 16:50:04 +0000</pubDate>
		<dc:creator>Łukasz Morawski</dc:creator>
				<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[heuristics]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[test heuristics]]></category>
		<category><![CDATA[testing dojo]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=1831</guid>
		<description><![CDATA[In my previous post, What’s a testing dojo, I described the purpose of having testing dojos and also described &#8220;how we do it&#8221; at Cognifide. Now, I&#8217;d like to share a detailed report from our exercises. So, here it goes. The mission I’ve chosen for the first testing dojo was &#8220;Learn new approaches&#8221;. Recently, I’ve [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1924" title="Test Heuristics" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/Screen-shot-2012-04-12-at-18.12.351.png" alt="Test Heuristics" width="188" height="251" /></p>
<p>In my previous post, <a href="../quality-assurance/whats-a-testing-dojo/" rel="nofollow">What’s a testing dojo</a>, I described the purpose of having testing dojos and also described &#8220;how we do it&#8221; at Cognifide. Now, I&#8217;d like to share a detailed report from our exercises. So, here it goes.</p>
<p>The mission I’ve chosen for the first testing dojo was &#8220;Learn new approaches&#8221;. Recently, I’ve come across a couple of articles and posts on various blogs about test heuristics and thought the topic was interesting enough to be our first subject at Cognifide.<br />
<span id="more-1831"></span></p>
<h3>Introduction</h3>
<p>The aim of these exercises is to gain both theoretical and practical knowledge of test heuristics. First, let&#8217;s define the term &#8220;test heuristics&#8221; and then, discuss some practical examples. Also, we will focus on usability heuristics based on <a href="http://www.useit.com/papers/heuristic/heuristic_list.html" rel="nofollow">Jakob Nielsen’s Ten Usability Heuristics</a> whitepaper. Then, we will exercise usage of the test heuristics in pairs.</p>
<h3>Application</h3>
<p>An Adobe WEM solution &#8211; CQ &#8211; component, the Table. It allows you to create a table with the desired number of rows and cells. And also, allows you to set table&#8217;s header and footer.</p>
<div id="attachment_1832" class="wp-caption aligncenter" style="width: 329px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/CQ-Table-Component.jpg"><img class=" wp-image-1832    " title="CQ-Table-Component" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/CQ-Table-Component.jpg" alt="CQ Table Component" width="319" height="229" /></a><p class="wp-caption-text">CQ Table Component</p></div>
<div id="attachment_1833" class="wp-caption aligncenter" style="width: 418px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/CQ-Table-Dialog.jpg"><img class=" wp-image-1833 " title="CQ-Table-Dialog" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/CQ-Table-Dialog.jpg" alt="CQ Table Dialog" width="408" height="254" /></a><p class="wp-caption-text">CQ Table Dialog</p></div>
<p><strong>Test Dojo Mission</strong>: Get familiar with cheat sheets. Pick up and use three heuristics. Try to use usability heuristics. Report any bugs, question and explore the product.</p>
<p><strong>Time</strong>: Up to 30 minutes.</p>
<p><strong>The Test Dojo:</strong></p>
<p>We started with pairing, i.e. two testers collaborating on one laptop and had 4 teams working on the dojo mission. Initially, I handed a cheat sheet per person so that each pair would have some reference. And hey, it’s a cheat sheet for a reason, right? Next, we spent 5 minutes refreshing our memory about test heuristics &#8211; the training, theoretical part was conducted on previous QA Meeting a week ago. We identified the term &#8220;heuristics&#8221; as:</p>
<ul>
<li>Rules of thumb</li>
<li>Educated guesses</li>
<li>Common sense</li>
<li>Problem solving</li>
</ul>
<p>I revealed the aim and subject of exercise and all 4 teams started testing. For the next 30 minutes, all teams were discussing, questioning and exploring the product. Some of the identified heuristics and consequential bugs were quickly captured on the whiteboard but the main discussion was left for the end. The last 10 minutes were intended for a summary.</p>
<p>The teams identified following heuristics:</p>
<p><strong>CRUD</strong></p>
<p>This heuristic was used by almost all teams. <strong>C</strong>reating, <strong>R</strong>eading, <strong>U</strong>pdating and <strong>D</strong>eleting was recognized as the most common and basic operation to be performed on all tested components.</p>
<p>Team 3, working on IE 8, found out that deleting the component doesn’t really delete all its sub items. They observed that it deleted only the main container, leaving child items intact. It turned out that if a certain row contains some data, it results in some serious errors on the published instance. The same operation performed by other teams who were using the Firefox browser revealed that the bug didn&#8217;t surface there. Instead, after deleting, the hoverbar appeared on the upper left corner of the browser. Refreshing the page (<strong>Web test navigation</strong> heuristics) resulted in the hoverbar disappearing. The teams pointed that multiple editing cells doesn’t change its value presented in component while in configuration dialog the value is proper. Problem with refreshing components content – as far as we know. Digging some deeper (testing wisdom <strong>Bug cluster</strong>) – we found out that this problem occurs in all cells except cells in first row. This row is always refreshed. Auto refreshing only first row would be some kind of <strong>consistency and standards</strong> heuristic (why only first row?). At first glance it looks like a bug.</p>
<p>So it seems like it was a combination of <strong>CRUD</strong> and <strong>Position</strong> heuristics. Another problem focused on the flow of issues found so far, leading us to move the component to other parsys with drag&amp;drop. After moving, the data stored in component just disappeared. Page refreshing gave us some relief – data exists, though. Some of us questioned drag&amp;drop capability and pointed this as a usability issue (<strong>consistency and standards</strong>) because there is no copy option available from hoverbar and Paste option is disabled.</p>
<p><strong>Boundaries</strong></p>
<p>A very well-known heuristic is <strong>Boundary Value Analysis</strong>. The teams identified this heuristic with the &#8220;Number of rows&#8221; and &#8220;Number of columns&#8221; properties. Exploring the boundaries revealed that for columns maximum value is 10 and for rows is 30. Entering values 11 and 31 was validated properly – suitable error message occurred. But entering &#8220;0&#8243; value lead to component disappearing. Also entering floating point value (<strong>data type attack</strong>) here lead to Java error and strange component appearance. Another try with a very large number produced a rounding to floating point number (or maybe converting to scientific notation?). Teams also questioned field &#8220;Width&#8221; – accepting all characters (<strong>strings attack</strong>).</p>
<p><strong>Usability</strong></p>
<p>The configuration dialog needs to be resized to use it. Also teams pointed that correlation between controls is not clear and emphasized. It applies to, for instance, the footer tab.<br />
The footer bar can be disabled (value set to &#8220;none&#8221;) but one can edit its text. Maybe better solution is to disable or hide rich text while footer is disabled? Some of teams complained about used language and complexity of the component pointing <strong>Aesthetic and minimalist design</strong> and <strong>Match between system and the real world</strong> heuristics in use here.<br />
We identified also <strong>Consistency and standards</strong> usability heuristic issue. Property name &#8220;Table col stripe&#8221; should be changed to &#8220;Table column stripe&#8221; – there is already property &#8220;Number of columns&#8221; so we should stick to one naming convention.</p>
<p><strong>Other issues</strong></p>
<p>During the test session, some JavaScript errors have been found and performance issues risen. JavaScript error on IE8, just opened the page with component:</p>
<div>
<div>
<pre>Webpage error details
Message: 'null' is null or not an object
Line: 857
Char: 2
Code: 0</pre>
</div>
</div>
<p>Also, the performance issue occurs when the maximum number of columns and rows were selected. Generally, the more columns and rows, the slower the performance. On IE we get “Stop running this script” window message.</p>
<p><strong>Conclusions</strong></p>
<p>The aim was to gain some knowledge and the ability to name, mostly, already known and used test techniques. I believe that every team member will be more aware of activities he performs during testing. Issues named during the session have been raised in Jira and have been confronted with the project’s Tech Lead Bartosz Mordaka (text in italic font is Bartosz’s answer):</p>
<ul>
<li>Problem with deleting component (IE and FF) –<br />
<blockquote><p><em>&#8220;CQ issue. CQ does not handle such component structure that well. A fix can be provided: refresh the page after deleting component.&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>First row refreshing –<em>&#8220;This is intentional. The first row cells are configured with product references, which are used by all cells in the column. Thus, it is needed to refresh all cells in that column after changing product reference. This is achieved by refreshing whole page (refreshing particular component is not trivial code-wise). For all other cells, it is enough to refresh the edited cell only, so no need to refresh whole page.&#8221;</em> Won’t fix – it seems that we didn’t even scratch the surface here</li>
</ul>
<ul>
<li>Not changing value –<br />
<blockquote><p><em>&#8220;CQ issue, already spotted earlier on other components as well. As this happens on IE authoring, and after manual page refresh fixes the issue, the workaround of automatic page refresh after editing is rather an overhead and is not suggested approach.&#8221;</em>, Won’t fix</p></blockquote>
</li>
</ul>
<ul>
<li>Moving component to other parsys makes data disappear –<br />
<blockquote><p><em>&#8220;This happens due to complex structure of component &#8211; the cells, which don&#8217;t preserve data when moving to</em><br />
<em> other parsys are actually dynamically generated but as FIXed component &#8211; thus making CQ hard time handling this while copying. A fix for that would be to refresh the page after copying/dropping the component.&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>Drag&amp;Drop –<br />
<blockquote><p><em>&#8220;The &#8220;New&#8230;&#8221; and &#8220;Paste&#8221; actions come together and cannot be separated. So it&#8217;s either removing them both, or adding &#8220;Copy&#8221; and &#8220;Cut&#8221;. In this particular case, &#8220;New&#8230;&#8221; is required as of client&#8217;s request, so let&#8217;s add &#8220;Copy&#8221; and &#8220;Cut&#8221; (they can be safely added I guess, and component is supposed to be rather wideone).</em><br />
<em> The thing with &#8220;New&#8230;&#8221; is also this: it is required in order to give ability to drop a component just before/after a component with the &#8220;New&#8230;&#8221; action. However, there is possibility to remove &#8220;New&#8230;&#8221; action from hoverbar, but preserve in context menu. So if the component is too narrow to have all mentioned actions, and then let&#8217;s remove</em><em> New&#8230;, Paste, Cut, Copy and drag and dropping will still be possible.&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>Rows and columns accepting too many –<br />
<blockquote><p><em>&#8220;Server-side validation should restrict number to be 1-30 and no floating point numbers. As for client-side validation (dialog) let&#8217;s incorporate a standard validator, but live with its issue&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>Rows and columns accepts very big number and then converts it somehow –<br />
<blockquote><p><em>&#8220;Built in validators in dialogs are not perfect.. Although we stick to the rule that in such cases authors are responsible for putting reasonable values into dialog fields, this is planned to be dealt with as part of CQ Practice&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>Correlation between controls –<br />
<blockquote><p><em>&#8220;This is a nice idea, and has been spotted to be investigated in CQ Practice as part of CQP-92, which is custom implementation of mechanisms to manage dynamic field hiding/disabling etc. Once it&#8217;s done and approved, will be incorporated into our guidelines, but not ready at the moment.&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>Configuration dialog needs to be resized –<br />
<blockquote><p><em>&#8220;For sake of better authoring experience, let&#8217;s extract the last properties group from Header tab into separate tab, and increase the size of dialog as well.&#8221;</em></p></blockquote>
</li>
</ul>
<ul>
<li>Performance issue –<br />
<blockquote><p><em>&#8220;Not proud to say that this proves CQ weakness under IE. 300 components is too much for client-side interface but nothing really we can do about it at the moment.&#8221;</em> Won’t fix,</p></blockquote>
</li>
</ul>
<ul>
<li>Resource error on publish – crème de la crème, the most important issue that we have found – making testing wisdom completely true – <strong>big bugs are often found by coincidence</strong>. Entering data into hanging rows after deletion of component produces some chaos in database and results in errors on publish. Maybe this is the ghost issue that has been poisoning life of our developers for some time especially in CQ Aftercare. Hard bugs but simple solution – page refresh after deletion will prevent this bug from emerging. But if it is already present – only digging in database can fix it.</li>
</ul>
<p>So, if it would be all about numbers, we’ve found 15 issue whereof 6 issues have been marked as Won’t fix (2 of them are in CQ Practice already), 9 issues have been or will be fixed. But as we all know it’s not all about the numbers.</p>
<h3>Pictures</h3>
<h3><img class="size-medium wp-image-1915 " title="CQ-Table-Float" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/CQ-Table-Float1-300x129.jpg" alt="CQ-Table-Float" width="300" height="129" /></h3>
<h3>  <img class=" wp-image-1916" title="CQ-Table-Refreshing" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/CQ-Table-Refreshing2-300x197.jpg" alt="CQ-Table-Refreshing" width="240" height="158" /></h3>
<h3></h3>
<h3></h3>
<div id="attachment_1917" class="wp-caption alignleft" style="width: 234px"><img class="size-medium wp-image-1917" title="TestHeuristicsWhiteBoard1" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/TestHeuristicsWhiteBoard1-small-224x300.jpg" alt="TestHeuristicsWhiteBoard1" width="224" height="300" /><p class="wp-caption-text">TestHeuristicsWhiteBoard1</p></div>
<h3></h3>
<h3></h3>
<div id="attachment_1918" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-1918" title="Testing Dojo Whiteboard" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/04/TestingDojoWhiteboard1-small-300x225.jpg" alt="Testing Dojo Whiteboard" width="300" height="225" /><p class="wp-caption-text">Testing Dojo Whiteboard</p></div>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3>References</h3>
<ol>
<li>Test Heuristics Cheat Sheet &#8211; <a href="http://testobsessed.com/wp-content/uploads/2011/04/testheuristicscheatsheetv1.pdf" rel="nofollow">http://testobsessed.com/wp-content/uploads/2011/04/testheuristicscheatsheetv1.pdf<sup><img src="https://confluence.cognifide.com/confluence/images/icons/linkext7.gif" alt="" width="7" height="7" align="absmiddle" border="0" /></sup></a></li>
<li><a href="http://en.wikipedia.org/wiki/Heuristics" rel="nofollow">http://en.wikipedia.org/wiki/Heuristics<sup><img src="https://confluence.cognifide.com/confluence/images/icons/linkext7.gif" alt="" width="7" height="7" align="absmiddle" border="0" /></sup></a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/quality-assurance/testing-dojo-test-heuristics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review &#8211; Application Security Testing Tools</title>
		<link>http://www.cognifide.com/blogs/quality-assurance/review-application-security-testing-tools/</link>
		<comments>http://www.cognifide.com/blogs/quality-assurance/review-application-security-testing-tools/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 17:44:42 +0000</pubDate>
		<dc:creator>Jacek Maciejewski</dc:creator>
				<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[acunetix]]></category>
		<category><![CDATA[acunitex]]></category>
		<category><![CDATA[netsparker]]></category>
		<category><![CDATA[owasp]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[security test]]></category>
		<category><![CDATA[wapiti]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=1102</guid>
		<description><![CDATA[Although your web application&#8217;s security is a critical issue nowadays, some companies tend to underestimate the magnitude. This is very unfortunate as security holes can affect not only your brand or profitability but more importantly, your users’ data which can potentially lead to further problems. It&#8217;s obviously a good practice for a company to seek [...]]]></description>
			<content:encoded><![CDATA[<p>Although your web application&#8217;s security is a critical issue nowadays, some companies tend to underestimate the magnitude. This is very unfortunate as security holes can affect not only your brand or profitability but more importantly, your users’ data which can potentially lead to further problems. It&#8217;s obviously a good practice for a company to seek services of a specialist firm specializing in web security (especially if it doesn’t have an information security wing). The intent of this post however, is to delve into what a  QA&#8217;s role is when it comes to security.</p>
<p>In an ideal world, the QA team should have a security specialist. But what if this isn&#8217;t always possible? Well, even if we can’t do something perfectly (due to the lack of specialized knowledge), let&#8217;s at least do what we can. Anyone can really perform a basic security audit that will detect and eliminate so called “low-hanging fruits” (I&#8217;m referring to obvious security holes that could be exploited by an inexperienced attacker).</p>
<p>Even if you have absolutely no knowledge of security, you can use a wide range of tools available on the market that will help you scan for some potential problems.Of course, to use a tool however it would be good to have some basic knowledge so we know what we’re actually testing. <img src='http://www.cognifide.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>For starters, it may be a good idea to visit the <a title="OWSAP Top 10" href="[https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project" target="_blank">OWASP Top 10 Project</a>  that lists top security vulnerabilities for the previous year. Chances are that not all of them will be applicable to your project (i.e. if your website does not use any database then you are definitely not vulnerable to SQL injection).</p>
<p><span id="more-1102"></span></p>
<p>Let’s go a step further and try to run a test using one of tools mentioned in the OWASP Top 10 Projects list. At Cognifide, our team uses both Netsparker and Acunetix to test against XSS holes and Wapiti to check for SQL injection issues. Both  have nice, user-friendly interfaces, but can only be run on the Windows system. Wapiti, on the other hand is cross-platform and can be run from the console which is quite important if you want to be running your tests using continuous integration tool (like Jenkins or CruiseControl).</p>
<p>Starting a scan in Netsparker is pretty straightforward and doesn&#8217;t require much explanation. After opening the program, the  &#8220;Start a New Scan&#8221; window appears automatically. If it doesn&#8217;t, press Alt+N or click &#8220;Start New Scan button&#8221; on the top left of the window. Generally, you can leave all the settings as they are. The only thing you should do is to make sure that a proper database is set in the &#8220;Advanced Settings&#8221; tab. In case that website requires authentication or if clicking some kind of disclaimer is necessary, one needs to set the cookie manually. You can do it in &#8220;Authentication&#8221; tab in &#8220;Custom Cookies&#8221; field. Simply type cookieName1=value1; cookieName2=value2;&#8230; etc. The report is very clear and you should not encounter any problems with interpreting results.</p>
<p>Now, let’s now move on to Acunetix. After you run the program, the &#8220;Scan Wizard&#8221; window should appear. If it doesn&#8217;t simply click &#8220;New Scan&#8221; button which can be found in the toolbar on the top. The wizard has a few steps, but again, they don&#8217;t require much description.</p>
<ol>
<li>Scan type -&gt; Scan single website -&gt; provide base url of a website to be scanned</li>
<li>Select targers -&gt; optimize for following technologies -&gt; check options that apply for your project</li>
<li>Crawling Options -&gt; leave all settings as they are (default)</li>
<li>Scan options -&gt; Scanning mode -&gt; I recommend to set it to &#8220;Extensive&#8221;, but this will result in greater amount of scanning time. Therefore &#8220;Heuristic&#8221; mode can be better in some situations.</li>
<li>Login &#8211; if site requires login or clicking on some kind of disclaimer click &#8220;Record Login Sequence&#8221; button. New wizar will appear, follow the steps to record login sequence. A new browser window will open within the program and you will be allowed to record all the necessary actions.</li>
</ol>
<p>After completing all steps in the wizard, the scan will start automatically. Acunetix reports are rather vague but it&#8217;s still more readable than those from some open source tools. The report contains both exploited url and attack string. However, note that they are in different sections so in order to get the whole picture it&#8217;s advisable to look at HTTP Request Headers. Look at the picture below to get a better idea.</p>
<div id="attachment_1105" class="wp-caption aligncenter" style="width: 670px"><a href="http://www.cognifide.com/blogs/wp-content/uploads/2012/02/acunetix-results.png"><img class="size-large wp-image-1105 " title="acunetix-results" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/02/acunetix-results-1024x733.png" alt="acunetix" width="660" height="400" /></a><p class="wp-caption-text">Example of Acunetix report</p></div>
<p>And  last but not least: Wapiti. Unfortunately, it does not have a user friendly GUI, but running a scan from console is very simple. You just need to type “wapiti.py <a href="http://your.site " rel="nofollow">http://your.site</a>”. After the scan is done, report can be found in generated_report/index.html file.</p>
<p>As you can see, using vulnerability scanner is pretty easy and it can save you a lot of trouble in the future! Just remember: it’s only an automated scan and although it’s better than nothing, it cannot replace a professional audit!</p>
<p>If you have any questions on how to use the tools, please share the question so that everyone who shares the same thoughts, can benefit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/quality-assurance/review-application-security-testing-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
