<?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; Grounded Test Design</title>
	<atom:link href="http://thetesteye.com/blog/tag/grounded-test-design/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>Mon, 30 Jan 2012 21:03:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Synthesizing Test Ideas</title>
		<link>http://thetesteye.com/blog/2010/11/synthesizing-test-ideas/</link>
		<comments>http://thetesteye.com/blog/2010/11/synthesizing-test-ideas/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 15:18:35 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Skills]]></category>
		<category><![CDATA[Grounded Test Design]]></category>
		<category><![CDATA[ongoing test ideas]]></category>
		<category><![CDATA[synthesizing]]></category>
		<category><![CDATA[test ideas]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=1593</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/skills.png" width="48" height="48" alt="" title="Skills" /><br/>It is very difficult to describe the process of synthesizing test ideas. It involves a multitude of information sources, a sense of what’s important, and a dose of creativity to come up with ingenious test ideas, and effective ways to execute them. The easiest way is to take the requirements document, re-phrase each item, and [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/skills.png" width="48" height="48" alt="" title="Skills" /><br/><p>It is very difficult to describe the process of synthesizing test ideas. It involves a multitude of information sources, a sense of what’s important, and a dose of creativity to come up with ingenious test ideas, and effective ways to execute them.</p>
<p>The easiest way is to take the requirements document, re-phrase each item, and optionally add some details using equivalence partitioning.</p>
<p>The best way is to use a variety of information sources and generate testworthy test ideas that have a good chance of being effective.<br />
An impossible way is to combine all important information in all possible ways.</p>
<p>Rather you should use each element that is important, and each combination you think is important.</p>
<p>Reviews are helpful, the actual product invites to some tests, and also the speed of the tests will guide you to the best ideas in your situation.</p>
<p>It is recommended to write down the test ideas, at least with a high-level granularity. If reviewing isn’t done, or the software already is available, it is faster to write them afterwards, together with the result.</p>
<p>Don’t try to cover everything, because you can’t. Rather make sure there is a breadth, and count on serendipity to find the information needed for a successful product. Some of the test ideas you will generate on-the-fly, during your test execution when you see what you actually can do with the software.</p>
<p>And don’t stop just because you reach an adequate test idea. Think some more, and you might find better ways, or new solutions to old problems.</p>
<p>I find no better way to elaborate further than to discuss different categories of test ideas:</p>
<h3>Ongoing Test Ideas</h3>
<p>Ongoing test ideas can’t be completed at once; they keep going as long as more relevant information is revealed. A good example is quality characteristics like stability; the more you test, the more you know about the stability of the product. You probably don’t do only ongoing tests (in the background) for important characteristics, but as a complement, it is very powerful, and very resource efficient.</p>
<p>Another example is ongoing usability testing for free, where the tester keeps the relevant attributes in the back of their head during any testing, and whenever a violation occurs, it is noticed, and communicated.</p>
<h3>Classic Test Ideas</h3>
<p>Classic test ideas deal with something specific, and can be written in “verify that&#8230;” format. They can be a mirror of requirements, or other things the testers know about.</p>
<p>For review and reporting’s sake, beware of granularity; rather use one test “verify appropriate handling of invalid input (empty, string, special ASCII, Unicode, long)” than a dozen of tests. In some situations you can even use “Verify explicit requirements are met”, and put focus on the more interesting test ideas.</p>
<p>Also take the opportunity to recognize which tests are better suited as automated tests, and which are safest to test automatically, and tool-aided and manually.</p>
<h3>Combinatorial Test Ideas</h3>
<p>Many bugs don’t happen in isolation (that’s why unit tests are very good, but far from a complete solution), therefore testing wants to use features, settings and data together, in different fashions and sequence.</p>
<p>Scenario testing is one way to go, pairwise is said to be good, and the tester with product knowledge can tell you at once which interoperability can’t be neglected.</p>
<p>Combinatorial test ideas use many test elements together, because we think they can have effect on each other, or we don’t know.</p>
<h3>Unorthodox Test Ideas</h3>
<p>Requirements are often written so they can be “tested” (but what usually is meant is “verified”.) This easily results in requirements being quantified and often in a contractual style, instead of describing the real needs and desires.</p>
<p>The risk of missing what is really important can be mitigated with testing that isn’t necessarily aimed towards falsifying hypothesis. “<em>You are one of few who will examine the full product in detail before it is shipped</em> [Testing Computer Software]</p>
<p>Unorthodox test ideas are open, based on something that is interesting, but without a way to put a Pass/Fail status, and more aimed towards investigation and exploration for useful information.</p>
<p>With creativity you can come up with original ways of solving a testing problem.<br />
Usability testing can be addressed by asking any heavy user what they think.<br />
Charisma might be best evaluated by having a quick look at a dozen of alternative designs.<br />
If there are a hundred options, you might want to take a chance and only look at five random.</p>
<p>These are especially vital to get feedback on, since one unorthodox test idea can generate two others, that are better, or be dismissed as irrelevant.</p>
<h3>Visual Test Ideas</h3>
<p>Some things can’t be expressed with words. And many things are much more effective to communicate with images. Try to use visual representations of your tests, also because they can generate new thoughts and understandings.</p>
<p>Examples: state models, architectural images, technology representation, test elements relations, inspiring images of any kind</p>
<p>The visual test ideas, as all the others, can be transformed to other types, morphed to many, or what is best suited.</p>
<h3>What and How?</h3>
<p>Most test ideas will probably be focused on what to test. Some will also state how to test it. This can have many benefits, e.g. if you write you’re going to use Xenu’s Link Checker, and someone points out that there’s another tool that will fit the purpose a lot better.</p>
<p>These categories are artificial, and only used to better explain the processes.<br />
When you know them, forget about them, and re-build your own model of the test design that suit your, your colleagues’ and your company’s thinking. Make sure that you change and add to your test ideas as you learn more.<br />
Your questions, hypothesis and answers will emerge.</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%2F11%2Fsynthesizing-test-ideas%2F&amp;title=Synthesizing%20Test%20Ideas" 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/2010/11/synthesizing-test-ideas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Complete List of Testing Inspiration</title>
		<link>http://thetesteye.com/blog/2010/09/the-complete-list-of-testing-inspiration/</link>
		<comments>http://thetesteye.com/blog/2010/09/the-complete-list-of-testing-inspiration/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 20:01:13 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Grounded Test Design]]></category>
		<category><![CDATA[testing inspiration]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=1344</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/>It is often said, with right, that you need to consider a lot more than the explicit requirements in order to be able to test a product well. Often a few examples are included, e.g. something about the customer needs, or the necessity of reading the code, or knowing the technology the software operates in, [...]]]></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 often said, with right, that you need to consider a lot more than the explicit requirements in order to be able to test a product well.<br />
Often a few examples are included, e.g. something about the customer needs, or the necessity of reading the code, or knowing the technology the software operates in, or an understanding of quality characteristics in the specific context.<br />
But I have not seen a long, yet brief, list of things that might be important as inspiration, so I thought we together could come up with a &#8220;checklist when building your own checklist&#8221;.<br />
This is what I have so far:</p>
<p><strong>MODELS</strong></p>
<p><em>Requirements</em>: explicit, combinatorial, implicit, incorrect, changing, vague, different, impossible, aiding<br />
<em>Specifications</em>: conceptual, technical, functional, design, test specifications<br />
<em>Code</em>: old, new, shaky, read, reviewed?<br />
<em>Help</em>: online, pdf, web sites<br />
<em>Actual software</em>: prototypes, in progress, released, competitors<br />
<em>Other</em> people&#8217;s models</p>
<p><strong>HISTORY</strong></p>
<p><em>Previous versions</em>: what did the old version do?<br />
<em>Bugs/Error catalogs</em>: what bugs occurred for similar functionality?<br />
<em>Test Ideas/Cases/Strategies/Results</em>: what can you learn from previous test efforts?<br />
<em>Claims</em>: which features are used in marketing material?<br />
<em>Reviews</em>: what has been said by others about your product?</p>
<p><strong>USAGE</strong></p>
<p><em>Support department</em>: what experiences are channeled to support?<br />
<em>User scenarios</em>: how many ways of actual usage of the software do you know of?<br />
<em>Customer stories</em>: what problems are the customers trying to solve?<br />
<em>Dog food</em>: can you use the product internally &#8220;for real&#8221;?<br />
<em>Competitors</em>: software products, in-house tools, analog systems<br />
<em>Training material</em>: learn about how customers learn your software<br />
<em>Business</em>: needs, logic, information, knowledge, standards, laws</p>
<p><strong>TECHNOLOGY</strong></p>
<p><em>Environment</em>: Hardware, OS, Applications, 3rd Party Components<br />
<em>Tools</em>: development tools, (static) test tools, monitors, editors, brain<br />
<em>Systems</em>: what does the big system look like?</p>
<p><strong>PROJECT</strong></p>
<p><em>Functionality</em>: recently &#8220;improved&#8221;, core, problematic, high interoperability, complex, popular<br />
<em>Risks</em>: important, omitted, forgotten, changing, unknown<br />
<em>Project plan</em>: when, what, how?<br />
<em>Process</em>: Agile/Waterfall-mix<br />
<em>Infrastructure</em>: configuration management, test environment<br />
<em>Test execution context</em>:  what, when, where, why, who, how?<br />
<em>Quality objectives</em>:  what is always important?<br />
<em>Deliverables</em>:  executables, interfaces, all sorts of documentation, Release Notes, readme:s, meta data</p>
<p><strong>PEOPLE</strong></p>
<p><em>Team</em>: developers, interaction designers, leaders, managers, technical writers, testers, experts<br />
<em>Stakeholders</em>: have you talked to (product) managers lately?<br />
<em>YOU</em>: your knowledge, experience and subjectivity<br />
<em>Users</em>: needs, knowledge, feelings, impairments, personas, have you seen the real users in action?</p>
<p><strong>SKILLS</strong></p>
<p><em>Analytical thinking</em>: model details and the big picture, follow paths<br />
<em>Critical thinking</em>: see problems, risks and possibilities<br />
<em>Creativity</em>: broaden test spectra, generate new ideas, lateral thinking<br />
<em>Factoring</em>: break down to testable elements<br />
<em>Investigation</em>: explore and learn<br />
<em>The Test Eye</em>: wants to see errors, sees many types, looks at many places, looks often</p>
<p><strong>SOFTWARE TESTING</strong></p>
<p><em>Quality Characteristics</em>: Capability, Reliability, Usability, Charisma, Security, Performance, IT-bility, Compatibility, Supportability, Testability, Maintainability, Portability, Localizability, Auditability<br />
<em>Generic test ideas</em>:  quicktests, tours, mnemonics, heuristics<br />
<em>Tricks</em>: error-prone machine, Basic Configuration Matrix, attacks, Cheat Sheets<br />
<em>Information</em>: books, courses, blogs, forums, web sites, conferences, conversations<br />
<em>Testing theory</em>: with many different techniques/approaches you have a higher chance of finding important information</p>
<p><strong>Suggestions for improvements are very welcome!!</strong></p>
<p>Everything is not always relevant, but I recommend spending a few seconds on each sub-category. Think about what is important, and what would be worthwile to investigate more.<br />
By using multiple information sources, including the actual product and customer needs, your tests will get a better connection with reality, they will be grounded.</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%2F09%2Fthe-complete-list-of-testing-inspiration%2F&amp;title=The%20Complete%20List%20of%20Testing%20Inspiration" 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/09/the-complete-list-of-testing-inspiration/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Grounded Test Design</title>
		<link>http://thetesteye.com/blog/2009/12/grounded-test-design/</link>
		<comments>http://thetesteye.com/blog/2009/12/grounded-test-design/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 06:31:34 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[Grounded Test Design]]></category>
		<category><![CDATA[Grounded Theory]]></category>
		<category><![CDATA[test techniques]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=677</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/>For quite some time I have felt that the classic test design techniques don&#8217;t add up to the needs of software testing that tries to find most of the important information. At EuroSTAR 2009 it dawned on me that it is time to describe the method that I, and many, many others, have been using [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/ideas.png" width="48" height="48" alt="" title="Ideas" /><br/><p>For quite some time I have felt that the classic test design techniques don&#8217;t add up to the needs of software testing that tries to find most of the important information.<br />
At EuroSTAR 2009 it dawned on me that it is time to describe the method that I, and many, many others, have been using for a long time.<br />
By talking more around this, I hope we can spread the usage of this test design, improve the way we do it, and make it more understandable for other people, avoiding the comment: &#8220;oh, you&#8217;re error guessing.&#8221;<br />
What I will describe could be called a method, activity or a skill, but I like to think of it as a test design technique, that is seen as a tester&#8217;s most powerful weapon, much better than equivalence partitioning, decision trees etc.</p>
<p>Grounded Test Design: learn a lot, and synthesize important test ideas.</p>
<p>To explain this further: Software testers should follow the thoughts of social science Grounded Theory; we should use many sources of information regarding the subject (requirements, specifications, prototypes, code, bugs, error catalogs, support information, customer stories, user expectations, technology, tools, models, systems, quality objectives, quality attributes, testing techniques, test ideas, conversations with people, risks, possibilities); we should group things together, use our creativity, and create a theory consisting of a number of ideas capturing what is important to test.<br />
Grounded Test Design is for those that want to test a lot more than the requirements, that understand the need to combine things of different types, to look at the whole and the details at the same time.<br />
This might seem heavy, but people have phenomenal capacity.<br />
It has a lot more to it than the closest technique error guessing; for instance, it is not only about errors, it can also be investigations, or questions regarding dubious behavior.<br />
It isn&#8217;t guessing, it is a qualified synthesis of knowledge.<br />
And also: it isn&#8217;t (and doesn&#8217;t sound like) something done lightly, something unstructured, or unprofessional.</p>
<p>Being a technique, it is something that can be applied in many different situations. The most informal Grounded Test Design might happen extremely fast in the expert tester&#8217;s head when thinking of a completely new idea while performing exploratory testing; or it could be the base for test scripts/cases/scenarios, that are carefully investigated and designed in advance. Good software testing uses many different methods.<br />
A formal Grounded Test Design (to be defined, tried and evaluated&#8230;) might be best used by someone completely new to a product, or maybe most efficiently performed in diversified pairs.</p>
<p>Grounded Test Design has a loose scientific, theoretical base in Grounded Theory (Strauss/Corbin), used in social science as a qualitative, thorough analysis of a phenomenon.<br />
The scientists examine the subject very carefully, gather a lot of material, document codes and concepts, combine them to categories, from which a theory is constructed.<br />
There is no hypothesis to start with, as in the traditional natural science, and that&#8217;s quite similar to software testing; it would be dangerous if we thought we knew the important questions at once.<br />
I think it is good to be slightly associated with this theory, especially since it emphasizes that the researcher must use her creativity.</p>
<p>On the other hand; do we really need this word, maybe we already have enough words about how to do good software testing?<br />
Or is it a good word to have in reserve when explaining to managers why testing is difficult, takes a lot of time, and must include manual work?<br />
Or should we go further with this and try to develop a framework for performing structured analysis of everything that is important for testing?</p>
<p>Opinions are very welcome.</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%2Fgrounded-test-design%2F&amp;title=Grounded%20Test%20Design" 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/2009/12/grounded-test-design/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

