We use cookies and other similar technologies (Cookies) to enhance your experience and to provide you with relevant content and ads. By using our website, you are agreeing to the use of Cookies. You can change your settings at any time. Cookie Policy.

Software Test Management and Metrics

Vishi Viswanath

Software Test Case Standardization

Vote 0 Votes

In almost all testing contexts, the term test case is very commonly used to mean a basic unit of testing. Especially in situations where the effort for testing has to be estimated, it is a general practice to express the effort in terms of number of test cases that would be required for the scope of work in hand. This almost gives the impression of a test case as a standardized unit of testing, whereas it is not so in reality.

There certainly are several standard definitions for a test case. Quoted below are a few prominent ones.

Rex Black defines a test case as a set of input, values, execution preconditions, expected results and execution post conditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.

ISTQB describes test case as the smallest unit of testing usually. A Test Case will consist of information such as requirements testing, test steps, verification steps, prerequisites, outputs, test environment, etc.

PCMag.com encyclopedia defines a test case as, a set of test data and test programs (test scripts) and their expected results. A test case validates one or more system requirements and generates a pass or fail.

Yet another definition of a test case is a set of conditions or variables under which a tester will determine if a requirement or use case upon an application is partially or fully satisfied. It may take many test cases to determine that a requirement is fully satisfied.

The descriptions of a test case above define it only in terms of its contents and format at the best, but never in terms of size or effort. Nonetheless, the prospect of standardizing a test case in terms of size or effort is an interesting one.

For this, let us again look at what defines a test case:

* Condition
* Input
* Expected output
* Steps
* Data requirements
* Pre-conditions

Among these, the condition and the expected output generally remain fixed as 1 each per test case, whereas inputs, steps, data requirements and pre-conditions can vary widely. This variation can be in terms of numbers and/or complexity. It is precisely this variation that can impact the size and/or effort related to a test case. (Effort can mean either or both creation and/or execution effort).

Hence the task of standardization of a test case will involve correlating the size and/or effort to the number and complexity of the parameters such as inputs, steps, data requirements and pre-conditions. Values can be assigned to the number and complexity of the individual parameters, a composite index can be derived and calibrated to indicate the size and effort of a test case.

Another interesting point to note would be that the parameters among inputs, steps, data and pre-conditions are not independent variables. They depend on the context of the testing. The context of testing relates to the level of testing being performed and on the time and budget constraints. For example, the number of steps, inputs and pre-conditions one would provide for a User Acceptance Test (UAT) level test case would be different from that of an integration-level test case. Hence, it would be appropriate to say that the size and effort related to a test case would closely follow the level of testing, though the dependency is not directly on the level of testing per se, but through the parameters involved.

Due to this dependency, for all practical purposes, it would serve to consider the test cases to be standardized along the lines of levels of testing. ie, a UAT-level test case, a system testing-level test case and an integration-testing level test case etc could be roughly considered to be the categories of test cases - each indicating a different size of the test case in terms of inputs, steps, pre-conditions and data, and consequently in terms of effort to create and execute the test cases as well.

Leave a comment

Software Testing is an important aspect in software development and maintenance. Irrespective of the models deployed for the development of systems, there is always a need for measurement and management of testing.This blog attempts demystify the testing challenges and guides you to measure the required testing efforts.

Vishi Viswanath

Vishi is a managing partner in Intellisys Technology, LLC. He has been in the information technology field for over 29 years.Progressively grown from a programming position to the executive level.

Recently Commented On


Monthly Archives