<?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>thoughts from the test eye &#187; requirements</title>
	<atom:link href="http://thetesteye.com/blog/tag/requirements/feed/" rel="self" type="application/rss+xml" />
	<link>http://thetesteye.com/blog</link>
	<description>by rikard edgren, henrik emilsson and martin jansson - with torbjörn ryber and henrik andersson</description>
	<lastBuildDate>Sun, 13 May 2012 17:27:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Multiple Information Sources</title>
		<link>http://thetesteye.com/blog/2011/02/multiple-information-sources/</link>
		<comments>http://thetesteye.com/blog/2011/02/multiple-information-sources/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 23:17:33 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[testing inspiration]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=1779</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/>When I wrote blog post The Complete List of Testing Inspiration, I didn&#8217;t think so much about many testing efforts being totally based on requirements and specifications. I took for granted that we know that requirements are incomplete and wrong, and that we should learn from many places. But when reading a good book such [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/><p>When I wrote blog post <a href="http://thetesteye.com/blog/2010/09/the-complete-list-of-testing-inspiration/">The Complete List of Testing Inspiration</a>, I didn&#8217;t think so much about many testing efforts being totally based on requirements and specifications.<br />
I took for granted that we know that requirements are incomplete and wrong, and that we should learn from many places.<br />
But when reading a good book such as Lee Copeland&#8217;s <em>A Practitioner&#8217;s Guide to Software Test Design</em> you see that the classic black box testing procedure is to base your test design solely on requirements and specifications.<br />
It&#8217;s the same as with code coverage models, the most interesting stuff is <b>what isn&#8217;t there</b>.</p>
<p>Maybe we need to sharpen the argumentation for this, so here are my first attempts:</p>
<p>1. <strong>What problem is testing trying to solve?</strong><br />
I think there are more situations like this:<br />
<em>&#8220;We know that there will be defects in the product we are building. We need your help to make sure that the released product can be used by customers without problems, and satisfactorily help them with their tasks.”</em><br />
than like this:<br />
<em>&#8220;We want to make sure that the actual product meets the statements in the requirements document.&#8221;</em></p>
<p>2. <strong>Requirements checklist of one</strong><br />
Did an omnipotent write the requirements?<br />
(We know more when testing than when requirements are written; testers look at other details; testers also test the requirements, how things turned out.)</p>
<p>3. <strong>The intuitive argument</strong><br />
A visual representation, like the <a href="http://thetesteye.com/blog/2009/12/in-search-of-the-potato/">software potato</a>: an image showing that requirements cover less than what&#8217;s important, that is less then everything.</p>
<p>4. <strong>Requirement realism</strong><br />
Requirements aren&#8217;t explored, but if all were written according to <i>Exploring Requirements</i> by Gause and Weinberg, we would probably be in a better position. We would not only know what needs to be in the product, we would also know about Preferences, Constraints, and &#8220;Want it without Cost&#8221;</p>
<p>One argument should suffice, but which one, and how can it be polished?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2011%2F02%2Fmultiple-information-sources%2F&amp;title=Multiple%20Information%20Sources" id="wpa2a_2"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2011/02/multiple-information-sources/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book Review: Exploring Requirements</title>
		<link>http://thetesteye.com/blog/2010/12/book-review-exploring-requirements/</link>
		<comments>http://thetesteye.com/blog/2010/12/book-review-exploring-requirements/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 22:22:18 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[Gause]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Weinberg]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=1655</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/people.png" width="48" height="48" alt="" title="People" /><br/>Exploring Requirements: Quality Before Design is an excellent book written by Donald C. Gause and Gerald M. Weinberg. It is primarily about requirements, but it is an excellent read for everyone involved in doing something that hasn&#8217;t been done before. As a software tester, it highlights, and helps, my own problems with understanding all important [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/people.png" width="48" height="48" alt="" title="People" /><br/><p><b>Exploring Requirements:</b> <i>Quality Before Design</i> is an excellent book written by Donald C. Gause and Gerald M. Weinberg.<br />
It is primarily about requirements, but it is an excellent read for everyone involved in doing something that hasn&#8217;t been done before.</p>
<p><a><img src="http://thetesteye.com/blog/wp-content/uploads/ExploringRequirements.jpg" alt="" title="ExploringRequirements" width="199" height="300" class="alignleft size-full wp-image-1656" /></a>As a software tester, it highlights, and helps, my own problems with understanding all important aspects of what the product is good for.<br />
I wish all requirements were written according to this book; it would make testing a lot easier, especially when trying to understand attributes, preferences, expectations and motivations.</p>
<p>They describe a human-centered requirements process, both regarding the people collaborating, and the product, that will be used by people, that have feelings.<br />
At one moment I felt that it was too much measurements, but on the next page I read:<br />
<i>However, keep in mind what von Neumann said, &#8220;There&#8217;s no sense being precise about something if you don&#8217;t know what you&#8217;re talking about&#8221;, and don&#8217;t get bogged down in metrics.</i></p>
<p>Of specific interest to testers is the notion of Frill/&#8221;Get It If You Can&#8221;: functions (or attributes) that are desirable, but shouldn&#8217;t cost anything.<br />
My testing interest is two-fold: first, even if these are ignored, you should watch out for violations to these, because they are (implicit) bugs.<br />
Second, manual system testers are often good at finding out how nifty small additions would be, so testers can help raise priority of frills, or create new and better ones.</p>
<p>I also want to mention the User Satisfaction Test, which looks very useful, maybe even for testing status reporting??</p>
<p>So, with a title like this, does the book contain any hints on documenting tests in advance or not?<br />
Yes, it does: &#8220;<i>To be most effective, black box test construction must be done before you start designing solutions.</i>&#8221;<br />
1-0  to documenting test ideas early on.<br />
Page 258 (original 1989 edition) also describes the very first test design technique:<br />
<b>asking &#8216;What if&#8217; questions</b><br />
Page 94-103 deals with the very first test analysis technique:<br />
<strong>&#8220;Mary had a little lamb&#8221; heuristic</strong></p>
<p>There&#8217;s a lot more that can be used in any situation, e.g. <a href="http://www.developsense.com/blog/2010/11/context-free-questions-for-testing/">Context-Free Questions</a>, and Rule of Three: &#8220;<i>If you can&#8217;t think of three things that might cause your great idea to fail, all that means is that you haven&#8217;t thought enough about it yet.</i>&#8221;</p>
<p>The book is fluently written, and contains a lot of entertaining and illuminating stories, and a beautiful ending.<br />
Endings like that are not necessary when merely writing a blog post.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2010%2F12%2Fbook-review-exploring-requirements%2F&amp;title=Book%20Review%3A%20Exploring%20Requirements" id="wpa2a_4"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2010/12/book-review-exploring-requirements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Testing Clichés Part III: &#8220;We can&#8217;t test those requirements&#8221;</title>
		<link>http://thetesteye.com/blog/2010/04/testing-cliches-part-iii-we-cant-test-those-requirements/</link>
		<comments>http://thetesteye.com/blog/2010/04/testing-cliches-part-iii-we-cant-test-those-requirements/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 19:01:35 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[cliché]]></category>
		<category><![CDATA[requirements]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=867</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/>It is good to strive for better requirements by critical analysis (and looking for what&#8217;s missing), but there is a danger in complaining about untestable requirements. If those vague requirements are changed (made too specific) or removed, the words in the requirements document have less meaning, and less chance of guiding towards great software. And [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/><p>It is good to strive for better requirements by <strong>critical analysis</strong> (and looking for what&#8217;s missing), but there is a danger in complaining about untestable requirements.<br />
If those vague requirements are changed (made too specific) or removed, the words in the requirements document have less meaning, and less chance of guiding towards great software.</p>
<p>And there are no such things as untestable requirements. There are requirements that can&#8217;t be verified, that can&#8217;t get a true/false stamp, but you can definitely test the software and look for things that don&#8217;t match the <strong>essence</strong> of the vagueness.</p>
<p>An example: <em>&#8220;the feature should be easy to operate&#8221;</em> is difficult to prove right or wrong, but very easy to evaluate subjectively after doing some manual testing.<br />
If the requirement is changed to <em>&#8220;minimum no. of mouse-clicks to perform common operations&#8221;</em>, you might catch some issues, but some other, more <strong>important</strong> things, might be lost in translation.<br />
And if the requirements are split into many, many smaller pieces, you might lose less information, but end up with a too complex document that is very expensive to create and maintain.<br />
It&#8217;s not a bad thing to be specific, but that&#8217;s not feasible for <strong>everything</strong>.</p>
<p>There&#8217;s an underlying assumption I should tell you about:<br />
I do not think requirements should be <em>contractual</em>, they should rather be <em>aiding</em> &#8211; they should help the development team produce good software.<br />
Since requirements neither can be complete nor perfect, we should rather take advantage of oppurtunities that arise, and create something that can solve problems. If the essence of the unspoken requirements are captured, it might not matter that a few specifics aren&#8217;t met.</p>
<p>Testers should keep in mind that there&#8217;s a greater whole we&#8217;re aiming for, and do our best with what we have, so be it <strong>unverifiable</strong> requirements.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2010%2F04%2Ftesting-cliches-part-iii-we-cant-test-those-requirements%2F&amp;title=Testing%20Clich%C3%A9s%20Part%20III%3A%20%26%238220%3BWe%20can%26%238217%3Bt%20test%20those%20requirements%26%238221%3B" id="wpa2a_6"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2010/04/testing-cliches-part-iii-we-cant-test-those-requirements/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>In search of the potato&#8230;</title>
		<link>http://thetesteye.com/blog/2009/12/in-search-of-the-potato/</link>
		<comments>http://thetesteye.com/blog/2009/12/in-search-of-the-potato/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 07:45:21 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[testing explained]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=672</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/>When preparing for EuroSTAR 2009 presentation I drew a picture to try to explain that you need to test a lot more than the requirements, but we don&#8217;t have to (and can&#8217;t) test everything and the qualitative dilemma is to look for and find the important bugs in the product. Per K. instantly commented that [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/><div class="mceTemp mceIEcenter">
<p style="text-align: left;">When preparing for EuroSTAR 2009 presentation I drew a picture to try to explain that you need to test a lot more than the requirements, but we don&#8217;t have to (and can&#8217;t) test everything and the qualitative dilemma is to look for and find the important bugs in the product.<br />
Per K. instantly commented that it looked like a potato, judge for yourself:</p>
</div>
<div id="attachment_673" class="wp-caption aligncenter" style="width: 554px"><img class="size-full wp-image-673 " title="software_potato" src="http://thetesteye.com/blog/wp-content/uploads/software_potato.png" alt="Software Potato" width="544" height="488" /><p class="wp-caption-text">Software Potato</p></div>
<p> The square symbolizes the features and bugs you will find with test cases stemming from requirements (that can’t and shouldn’t be complete.)<br />
The blue area is all bugs, including things that maybe no customers would consider annoying.<br />
The brown area is all important bugs, those bugs you’d want to find and fix.</p>
<p>So how do you go from the requirements to &#8220;all important bugs&#8221;?<br />
You won’t have time to create test scripts for &#8220;everything&#8221;.<br />
So maybe you do exploratory testing (thin lines in many directions), and hope for the best.<br />
Or maybe you test around one-liners (thicker horizontal lines), that are more distinct, that are reviewed, and have a better chance of finding what&#8217;s important.<br />
Either option, some part luck, and a large portion of hard work is needed.<br />
But I think you have a much better chance if you are using one-liners, especially if it’s a larger project.</p>
<p>Later I have realized that one-liners aren&#8217;t essential; that this problem has been solved many times at many places with many different approaches.<br />
What is common could be that testers learn a lot of things from many different sources, combine things, think critically and design tests (in advance or on-the-fly) that will cover the important areas.<br />
Maybe we need a name for this method; it could be Grounded Test Design.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2009%2F12%2Fin-search-of-the-potato%2F&amp;title=In%20search%20of%20the%20potato%26%238230%3B" id="wpa2a_8"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2009/12/in-search-of-the-potato/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Inquisitive Tester &#8211; Part II: Question the specs</title>
		<link>http://thetesteye.com/blog/2009/12/the-inquisitive-tester-part-ii-question-the-specs/</link>
		<comments>http://thetesteye.com/blog/2009/12/the-inquisitive-tester-part-ii-question-the-specs/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 13:24:32 +0000</pubDate>
		<dc:creator>the test eye</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[critical thinking]]></category>
		<category><![CDATA[inquisitive]]></category>
		<category><![CDATA[questioning]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[specifications]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=318</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/documentation.png" width="48" height="48" alt="" title="Documentation" /><img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><img src="http://thetesteye.com/blog/wp-content/uploads/people.png" width="48" height="48" alt="" title="People" /><br/>Statements in specifications try to clarify and are inevitably an interpretation of what the author thinks need to be more specific. I.e., they try to be a more specific model than what existed before the spec. And &#8220;Essentially, all models are wrong, but some are useful&#8221; (http://en.wikiquote.org/wiki/George_E._P._Box). Every specification you encounter is persons&#8217; interpretations, and  [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/documentation.png" width="48" height="48" alt="" title="Documentation" /><img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><img src="http://thetesteye.com/blog/wp-content/uploads/people.png" width="48" height="48" alt="" title="People" /><br/><p>Statements in specifications try to clarify and are inevitably an interpretation of what the author thinks need to be more specific. I.e., they try to be a more specific model than what existed before the spec. And &#8220;Essentially, all models are wrong, but some are useful&#8221; (<a href="http://en.wikiquote.org/wiki/George_E._P._Box">http://en.wikiquote.org/wiki/George_E._P._Box</a>).</p>
<p>Every specification you encounter is persons&#8217; interpretations, and  not necessarily true.</p>
<p>This means that you as an inquisitive tester have a lot to do by questioning the specifications. The questioning will help you to form a model of the software that is better than if you only had read and accepted the spec as it was.</p>
<p>Specifications cannot be complete and especially regarding things that the program shouldn&#8217;t do. It is probably not stated that the software shouldn&#8217;t use too much memory or processor for certain operations; it is not stated that the screen shouldn&#8217;t flicker, or that all text should be easy to read with all different font settings. Other typical omissions are interactions with other systems; things you expect from all applications under that operating system, internet browser, connected software etc.</p>
<p>You cannot expect a specification to be complete, in most (all? many?) cases, the thing produced by the specification is more important than the document about it. The hardest challenge for the inquisitive tester is to question a lot, but only for those things that are important.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Who will use the specification? What will they use it for? Will it meet their requirements?</p>
<p>What is it all about? Really?</p>
<p>What areas are left out?</p>
<p>Who is the writer? Does he/she usually miss certain things?</p>
<p>Are there many writers? Does this make the whole less tangible?</p>
<p>Are there many reviewers? Are they using different perspectives?</p>
<p>Is the writer vague, insecure and confusing about certain areas?</p>
<p>Is the specification consistent?</p>
<p>Is the specification consistent with other related specifications?</p>
<p>Is the specification consistent with other different features and combinations of those?</p>
<p>Are all functional and non-functional requirements covered?</p>
<p>Are there dubious thoughts about the wished for functionality?</p>
<p>Are there other sources of information that can be useful?</p>
<p>How is the style of the language affecting the specification?</p>
<p>What quality attributes are the most important, e.g. how is Security weighed against Performance and Usability?</p>
<p>Does it match the system requirements?</p>
<p>Does the specification focus on what is most important?</p>
<p>Does the specification reflect the model of what you think is described?</p>
<p>Are there any new terminology? Will this affect other documentation such as help files?</p>
<p>Is the new terminology consistent with other specifications?</p>
<p>What does the Internet say about the newly chosen terminology? Will there be any misunderstandings?</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>If there was no specification, could it be described in a completely different way?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2009%2F12%2Fthe-inquisitive-tester-part-ii-question-the-specs%2F&amp;title=The%20Inquisitive%20Tester%20%26%238211%3B%20Part%20II%3A%20Question%20the%20specs" id="wpa2a_10"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2009/12/the-inquisitive-tester-part-ii-question-the-specs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seven Categories of Requirements</title>
		<link>http://thetesteye.com/blog/2009/10/seven-categories-of-requirements/</link>
		<comments>http://thetesteye.com/blog/2009/10/seven-categories-of-requirements/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:10:52 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[inquisitive]]></category>
		<category><![CDATA[requirements]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=532</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/>I like to use categorizations to structure my understanding of a subject; and after the simplifications are made and I think I understand it well; the structures can be ripped apart, and you get a bit less confused by the complexity of reality. There are many forms of requirements, these are some a tester should [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/><p>I like to use categorizations to structure my understanding of a subject; and after the simplifications are made and I think I understand it well; the structures can be ripped apart, and you get a bit less confused by the complexity of reality.</p>
<p>There are many forms of requirements, these are some a tester should look out for:</p>
<p><strong>Explicit Requirements</strong><br />
These are the requirements found in the requirement documents. You are probably using them in your testing, making sure that they match the functionality.<br />
This is a quite small part of software testing as I see it.</p>
<p><strong>Implicit Requirements</strong><br />
These are requirements that can be found by combining different requirements that are intertwined.<br />
They could originate from general statements like <em>the program should never crash</em>, or <em>the program should be easy to use</em>, which has implications for many other requirements.<br />
They could also become very large, e.g. <em>support all possible input</em>, or <em>support Python scripting</em>.<br />
They are an effect of vague requirements, and they are a natural part of software development; it would be insane to document everything in advance. Tester can deal with it and understand what is important.</p>
<p><strong>Unspoken Requirements<br />
</strong>These are things that many users expect from a program, but they are seldom listed in the requirements document.<br />
Typical examples are <em>behave in same way as other applications on this platform</em>, <em>not leave any garbage files after running</em>, or <em>be appealing to most users</em>.</p>
<p><strong>Incorrect Requirements</strong><br />
The writers of the requirement documents don&#8217;t know everything in the world, sometimes they are wrong.<br />
There can be small errors, e.g. inconsistencies between requirements, and huge mistakes, because they didn&#8217;t understand the user&#8217;s true needs.</p>
<p><strong>Changing Requirements</strong><br />
Sometimes requirements need to be changed, which is something that testers shouldn&#8217;t object (too much). The requirements are most likely changed in order to make a better product, and that&#8217;s what we all are working for. But when they are changed, or added at a late stage, it can be difficult to challenge them, and test them really good, simply because you are under time-pressure.<br />
We can&#8217;t do more than our best, but that&#8217;s often enough.</p>
<p><strong>Vague Requirements</strong><br />
I used to dislike vague requirements that were very difficult, almost impossible, to test, but now I think they are good to have.<br />
Not that you should be vague on purpose, but quality attributes like usability, performance etc. can never be detailed <strong>and</strong> capture the important thing: that customers will be more than satisfied.<br />
It gives you a challenge as a tester; you need to use your feelings and imagination to come up with test ideas, and results that point to a positive or negative indication of result. You can&#8217;t hide between some numbers, and must stand for if you think the requirement is met or not.</p>
<p><strong>Hype Requirements</strong><br />
These can be difficult to handle. Often they come in the shape of specifying too much detail, e.g. <em>save settings in an XML file</em>, just because XML is hype (this was 10 years ago, so replace with SOA or the cloud or the hype your company believes in, right now.)<br />
They might be out-of-place, put there in order to be allowed to start the project, but they can also be important, exploiting the hype, or just being a perfect match for this specific application.<br />
As a tester, it&#8217;s often not much more to do than accept the hyped requirements, especially if it is accepted (or initiated) by the developers.<br />
But probably you need to learn more about the hype, often there are (at least some) good things inside them.</p>
<p>And regardless of how well all these categories of requirements are implemented and tested, will the application be really, really, super good?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2009%2F10%2Fseven-categories-of-requirements%2F&amp;title=Seven%20Categories%20of%20Requirements" id="wpa2a_12"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2009/10/seven-categories-of-requirements/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

