InfoQ

News

Mind Maps Foster Thorough Test Design

Posted by Deborah Hartmann on Nov 09, 2006 06:30 AM

Community
Agile
Topics
Artifacts & Tools
Tags
TDD ,
Testing ,
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

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.