What is Domain Testing in Software Testing?

Software TestingAutomation TestingTesting Tools

Domain testing is a testing process where the software is tested to ensure it doesn't accept invalid or out-of-range values. The output is tested against a minimum number of inputs to see whether the system is accepting the input within the required range or not. The white box testing is a perfect example of domain testing.

What is White Box Testing?

In this process, testing engineers test the internal structure, coding, and software design, making sure it goes with the input-output flow. It also determines the design, usability, and overall security of the software. Since the code is visible to the testers, white box testing is also called the clear box, transparent box, glass box, and code-based testing. This is because white box testing allows testers to penetrate the outer shell of an application and look at its inner structure.

White box testing and black box testing both come under software testing. The difference is that in a black box, the software is tested based on its external and end-user perspective. However, in the white box, testing is done to analyze the inner structure of the product.

Domain Testing Strategy

A specific boundary defines every domain. During the test, testers analyze each point nearby those boundaries. Each testing process starts with a question, and the purpose of domain testing is to find solutions to these questions.

  • What domains to choose for the testing process?
  • What values should one choose for the test?
  • How do you group values into classes?
  • How do you get the results?

Example of Domain testing

Let's say there is a group of students in a hall. They have been given a set of tasks based on their age and gender inputs. Here, you can consider the hall as the test, age groups as boundary values with numerous possible scenarios.

Tasks are given to students in the following ways −

Students under ten are asked to draw.

  • Boys 10 >= 15 are asked to compete in a race
  • Girls 10 >= 15 are asked to participate in a sport
  • Boys > 15 are asked to dance
  • Girls > 15 are asked to sing
  • Reaming > 15 students are asked to give a presentation

After having the above algorithms, testers need to group the values into classes. You can classify students into age groups, then set boundary values such as highest and lowest age values.

What domains are tested in Domain Testing?

You can test any domains containing input and output functionality. First, you need to enter the input value and verify the output.

How do you group values into classes?

For grouping values into classes, you need to partition the values into subsets.

You can partition values in two ways −

Equivalence Partitioning

In this process, you have to divide a set of test conditions into groups or set in a way that the system handles them equivalently. In short, the system should consider these partitions as the same.


VariableValid Class Equivalence ClassInvalid Class Equivalence ClassBoundaries & Special cases




Explanation − If a field accepts ranges between 0-20, then it should not accept invalid entries and out of boundaries entries like -1 and 21.

The field should only accept values 0, 20, and any number in between them.

Boundary Testing

Boundary testing analysis or BVA is a process to test boundaries between partitions. In this process, you will have to test both valid and invalid input values from the partition.

Example − Let's say you are ordering a sandwich through an online platform, and you are asked to enter the number of sandwiches you are intended to order. Now, it's a rule that a single customer can only order up to 10 sandwiches.

So, when you enter the value 1 to 10, it is considered valid. A success message will be displayed.

If you choose 11 to 99, it will be considered invalid, leading to an error message.

Which values of the classes were tested in domain testing?

You need the boundary values to test the values of the class.

Example derived from the previous case.

Test condition −

  • Number > 10 in the sandwich field is invalid.
  • Number > 1 is considered invalid.
  • Number 1 to 10 is valid.
  • Three-digit numbers are invalid.

How to determine the result?

The output results are determined through domain knowledge.

How to formulate a domain testing structure?

  • Analyze beforehand what can go wrong while setting boundaries

  • Prepare strategies to handle each case

  • Checkpoints to conduct error testing

  • Use one test point to evaluate adjacent domains

  • Check off unnecessary test points

  • Run the test
  • Check for errors in boundaries
  • Verify every boundary are free from defects

Domain Knowledge

Domain knowledge is a skill set that says you have a great understanding of a particular field and are familiar with all the known terms in the said field. Apart from accuracy, it helps in reducing the delivery cycle by shortening the time of development.

Is it important to have domain knowledge for domain testing?

It is highly important to have at least basic domain knowledge for an expert to conduct domain testing.

Domain knowledge is crucial as each industry or field is unique and has specific requirements.

  • Retail − In retail domains, the workflow runs at different levels. Therefore, testing engineers looking forward to running domain testing in retail must know how things work in warehouse management, in-store solutions, and so on.

  • Online Banking − Online backing consists of several crucial internet-dependent activities such as login, money transfer, bill payment, etc., which is quite different than retails.

  • Healthcare − Handling healthcare domains is quite critical as it holds a huge risk to someone's life. Besides, it includes numerous menial yet time-consuming tasks like patient's entry, health history, prescriptions, setting & modifying schedules, insurance, etc.

As you can see, each domain comes with its own uniqueness and challenges. Therefore, without domain knowledge in the specific field, a tester can't conduct domain testing.

Published on 20-Aug-2021 08:30:06