I was asked by a colleague the other day to define what test management is. Having spent 20 years practicing it, I was surprised to discover that I couldn’t come up with a short pithy one liner to describe it quickly. With a bit of thought I came up with this though…
“The discipline of controlling and tracking the process of testing from the development of test cases through to the reporting on execution status”.
It’s not as easy as you might think to come up with a simple definition. The domain of QA is massive in itself and this aspect tends to impinge on just about every aspect of QA. So whilst a one sentence definition is nice to have it’s difficult to see how it can be truly representative. Having said that if we look at the definition in more detail perhaps there’s more to it than first meets the eye.
From a controlling point of view we’re looking at the definition, implementation and execution of that process. So we define the workflow that a testcase should follow during development. We look at how a system might be implemented using a tool. And we make sure that this system or a set of consistent actions are adhered to at run time.
From a tracking point of view we’re concerned with reporting on progress both from the development through to the running of tests. We might have a testcase development approach that incorporates a review stage for example. In which case we could track the review approved status of our records. We’d also clearly want to look at the results from our execution phase as part of our tracking.
To get a little bit more technical though the word managing means to handle or control something. In this case we’re talking about our testcases. So in short this could be thought of as just controlling or handling our testcases.
In terms of handling we looking at aspects like workflow, version control and traceability that surround the process. We may only have 2 workflow development status values (perhaps say ‘new’ and ‘complete’). For execution we may have just 2 status values (perhaps ‘pass’ and ‘fail’). Even if you’re keeping it that simple you’ve put some control around it by defining a workflow.
So whilst these definitions are nice they do belay the complexities involved with this discipline. The complexities surrounding version control, run histories and traceability for example. All of these concepts, and others, when examined in detail remind us just how complex test management is in real life. So whilst a simple definition might be nice to have it doesn’t exactly convey to others how complex and involved this discipline really is.