During my first three months at Canonical, and being part of the QA Ubuntu crew, I have been trying to figure out what needed to happen to improve the testing in Ubuntu. It is clear to me now, that we are starting from the basics and building from there. This is good in many ways, because it allows Ubuntu to get the bulk of the testing right from the beginning. So far we have relied a lot in the early adopters finding the problems and raising them, we want to move to better user experience from day one, so that testers that want to contribute to the quality of the product can focus on more complex problems, rather than finding the annoying simple ones.
This week I am at UDS-P, it is almost Friday already, so we are finishing off the planning for the coming release and we are about to start implementing all the things we've agreed upon during the week.
I have learnt many things during my first UDS, the most important one being, even though we all talk about quality and testing, each individual you speak to understand a different thing by the most common terms. Let's take test case as an example, most of the people I have spoken to in the Ubuntu Community, when they say test case they mean a list of steps to do something. Coming from a strong QA background, I think that does not constitute a test case, yet we are overloading the term with such meanings. Other persons think that a use case is the same as a test case. This is not true, since use case is a collection of test cases, yet the term is again overloaded and used to mean different things.
That is why we held a session to talk about what is ultimately a test case. Not because I think I know better, in fact, I took a definition from the ISTQB standard, which is an industry standard used by many companies and QA professionals because I don't like to reinvent the wheel when there are wheels already out there being used in all sorts of situations. Having said this, we had some interesting filosofical discussion regarding if the conventional definition of test case is obsolete in the current agile environments or not. I had people in the session saying that it was, that in the XXI century we need to be doing something different, which is fair enough, but I do not agree because I don't really believe you can cut in test planning without a cost down the line. As always, a compromise needs to be found for the particular problem you are trying to solve and that's what we've tried. This is the test case template we came up with and presented: https://wiki.ubuntu.com/QATeam/AutomatedTesting/TestCase.
A test case is a set of input values, execution preconditions, expected results and execution postconditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement. [After IEEE 610]