Does anyone know of any diagram or tool that can help me think and chalk out a strategy for upgrade testing?

Suppose there is a server side component that can have add-ons, plugins if you will. There are also rich clients in the form of apps (computers and phones). All of these components have inter-dependencies, that is they work on a particular version onwards.

It's pretty complicated to just put it in a simple table and I'm wondering if there is some sort of a diagram (a sample would be helpful) or tool that will help me chalk all of this out. Using squares to denote components and directed lines to denote an upgrade path just isn't cutting it right now.


  • Aniket, welcome to SQA. Is your goal just to visualize the problem or are you looking for a methodical way to create test cases that cover the various inter-component combinations that you need to test?
    – user246
    Commented Mar 2, 2012 at 14:43
  • It's two fold and therefore both. I want to visualize the problem as well as investigate if there is a defined testing pattern or a standard that the industry follows.
    – Aniket
    Commented Mar 2, 2012 at 17:31

4 Answers 4


I suspect the best representation for devising a test plan will not be the same as the best representation for visualizing the relationships. For devising a test plan for a combinatorial problem, I think you want a matrix and a list of constraints. The matrix has a column per independent variable, with the possible values of that variable listed in that column. The constraints describe which tuples of values are compatible (or incompatible). In you case, that might mean a column per component, which each column contains the versions of that component, and then a list of which component versions are compatible (or incompatible) with other component versions.

Given this representation, there are a variety of programs that will try to minimize the number of test cases while maximizing the number of combinations that you test. I am glossing over a lot of details, but if you search SQA for "combinatorial", you will find more information about those programs.

  • Not precisely what I was looking for, but you've pointed me in the right direction. :) Thank you!
    – Aniket
    Commented Mar 4, 2012 at 6:35

This sounds like the kind of thing where an entity-relationship style diagram or similar would help. If you want gold-plated, Visio does that.

Simpler tools - you can do the same thing (with a bit of extra effort) in any drawing application, and I believe the Google drawing tools offer similar kinds of function.

If I read this correctly, you're looking for something like these images:

enter image description here enter image description here

A quick google for "software system diagrams" got me a lot of links including free software you might like to play with.

Mind-mapping software could also be helpful to you to show relationships and potential upgrade paths.

Just a few thoughts - I hope they help.

  • Thanks for for answer Kate. Unfortunately system diagrams aren't what I'm looking for. They visualize the relationship between components. I want to visualize upgrade support, such that comp1 works with v4.2 of server but if comp1 was v 3.2 it will only work with v5.0 and so on. I have a system that's starting to get complicated enough to not be able to remember everything hence need a method to visualize this. :)
    – Aniket
    Commented Mar 2, 2012 at 17:35
  • Great diagram though.
    – user246
    Commented Apr 11, 2016 at 13:27

Are you looking for something like this description of visualising bamboo dependencies with graphviz?

I also found some other suggestions for diagramming dependencies in this Stack Overflow question: https://stackoverflow.com/questions/100372/good-tool-to-generate-dependency-diagram


I usually use Mind map to visualize scenarios like this.

Below is one one such upgrade scenario Mind map enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.