InfoQ

News

Mind Maps Foster Thorough Test Design

Posted by Deborah Hartmann Preuss on Nov 09, 2006

Community
Agile
Topics
Artifacts & Tools
Tags
Testing ,
TDD ,
Complementary Practices
November's featured article In Better Software magazine is on use of Mind Mapping: X Marks the Test Case: Using Mind Maps for Software Design.  In it, author Robert Sabourin says:  "If you’ve run through the standard design approaches and still need that killer test case, try mind maps."

Sabourin first learned about mind maps from his young son, who was taught in grade school how to use mind maps to describe the plot, characters, theme, and events of stories read in class.  Mind Maps are a way to explore and document ideas and their relationships in a simple diagram. Important concepts are recorded as words or pictures and connected with lines indicating their relationships. Invented by a college student for his own use, to save time in creating and reviewing notes, they've become quite popular and today mind maps are used to improve memory, reading skills, note taking, creativity, performance, and brainstorming.  

Sabourin started to dabble with mind maps to solve some of the software engineering projects he worked on.  Following is an outline of some ways suggested by Sabourin to use use Mind Maps. These are just the high points - visit the site to view the full article.

Mind Maps to Help Define Equivalence Classes.  Today this is widely taught as a key element of domain testing (see the StickyNotes in the article for additional resources on the subject).

Identify the Variables.  I create a mind map for each variable under test. The variable is the center of the mind map.

Identify Classes Based on AIM.  
The AIM model in Figure 1 is the basic template the author used to begin defining an equivalence class mind map for a variable. It consists of an Application Logic or "A" node, an Input or "I" node, and a Memory or "M" node. These are explained in the article. Note that he considers explicit (documented) and implicit requirements when identifying classes based on the application logic. Following are a couple of example mind maps, but the article contains more detailed examples, too.



Identify Invalid Classes.  For each node of the mind map two two branches are often created, one for valid classes and the other for invalid classes.

Mind Maps to Identify Usage Scenarios.
 To parody a familiar quote: "Test not only what your application can do for your user but also what your user can do with your application."

Mind Maps to Identify Quality Factors.  A quality factor is a characteristic of the software project which, if missing, will lead to failure or negative consequences.

The author wraps up with an example of how to get started with mind mapping for your own tests.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

Shame about the BMPS by David Skelly Posted Nov 10, 2006 3:10 AM
  1. Back to top

    Shame about the BMPS

    Nov 10, 2006 3:10 AM by David Skelly

    Somebody ought to teach this guy how to use images in web pages properly. Those BMPs are not only huge, they're butt-ugly and some of them are completely unreadable.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.