Test Case Design As Crucial Element in Ensuring Product Quality

Volha Hrachova
4 min readMar 4, 2024

--

Fundamentally, testing is the process of comparing “what is” with “what ought to be.”
For better effectiveness and efficiency, test cases must be designed, rather than just assembled together.

The design of tests can be as challenging as the initial design of the product itself. We must design tests that have the highest likelihood of finding the most errors with a minimum amount of time and effort.

There is a book “A Practitioner’s Guide to Software Test Design” by Lee Copeland, which I strongly recommend to anyone interested in this topic.
This book is an excellent overview of various testing techniques useful to a software tester.

In this article, I’d like to talk about how to design Test Cases, as it’s an important process that impacts product quality.
Below I’ll describe briefly one of the concepts of test design techniques classification and then expand the details of them further on.

There are different classifications of test design techniques, and one of them is based on access to code and application architecture:

Black Box Testing

Black Box Testing is a strategy in which testing is based solely on the requirements and specifications. Unlike its complement, White Box testing, Black Box Testing requires no knowledge of the internal paths, structure, or implementation of the software under test (SUT).

Definition of Black Box Testing

Testing, either functional or non-functional, based on an analysis of the specification of the component or system, without reference to the internal structure of the component or system.

In Black Box Testing approach tester either does not have access to the code of the application, or does not have enough knowledge to understand it, or deliberately does not refer to it during the testing process.

In this approach documentation (requirements and general common sense) is the main source of information for test case creation.

Software tester simply runs the application and checks the response in the same way that users or other applications would interact with it in real life.

White Box Testing

White Box testing is a strategy in which testing is based on the internal paths, structure, and implementation of the software under test (SUT). Unlike its complement, Black Box Testing, White Box Testing generally requires detailed programming skills.

Definition of White Box Testing

Testing based on an analysis of the internal structure of the component or system.

In White Box Testing approach tester has access to the internal structure and code of the application, and also has enough knowledge to understand what tester sees.

This approach can be applied at all development levels — unit, integration, system.

Although White Box Testing is commonly associated with Unit Testing performed by developers, limiting it to this perspective is somewhat narrow.

White Box Testing is more than code testing — it is path testing.

Typically, the paths that are tested are within a module (Unit Testing). However, we can apply the same techniques to examine paths between modules within subsystems, between subsystems within systems, and even between entire systems.

What Are Advantages And Disadvantages Of Black Box and White Box Testing?

I’ve summarized all of them in the table below:

It’s also important to say, that White Box and Black Box Testing techniques are not competing or mutually exclusive. On the contrary, they work in harmony, complementing each other to address and compensate for any existing shortcomings.

Which Test Desing Techniques are included in Black Box and White Box Testing?

Below is the diagram showing which Test Desing techniques are included in Black Box and White Box Testing:

We’ll talk about Black Box and White Box techniques in detail in the next articles.

Conclusions

There are many different types of software testing techniques, and each has its own strengths and weaknesses.
Additionally, each technique is good at finding specific types of defects while being less effective in detecting other types.

Sources

A Practitioner’s Guide to Software Test Design by Lee Copeland
Software Testing. Base Course​ by Svyatoslav Kulikov
Foundations of Software Testing: ISTQB Certification by Dorothy Graham

--

--

Volha Hrachova

Lead Software Test Engineer and Software Quality Enthusiast