An Introduction to Domain Testing

Preview and Definition

In this blog I will describe the techniques of domain testing. These techniques are popular with a lot of testers because of the way they have absorbed a little bit of the best of several other simple-but-effective techniques.

Domain testing, if you’re not familiar with it, is a software testing technique where the minimum numbers of inputs are used to assess the appropriate output of the system, and to ensure that the system does not accept invalid input values.

The dilemma faced sooner or later by absolutely all testers is how to make minimal testing also be optimal testing. Domain testing achieves this by combining two techniques—equivalence testing + boundary values testing—which I will describe for you in detail.

Equivalence and Boundary Testing

Equivalence Testing – the division of potential values ​​into different general “classes”, whose representatives, when tested, will have to show the same expected result (the expected result for a particular class can be either positive or negative)

Boundary Testing – testing values ​​that are at the boundary/junction of certain classes that were previously defined in equivalence testing. It is based on the assumption (fair and reasonable) that most potential errors in the operation of programs will occur at the junction of different classes.

In order to get acquainted with the technique of equivalent and boundary testing using specific examples, we only need to understand the terminology of positive and negative tests.

Positive Tests – system should accept input inside this tests and return no errors, much recommended to combine them.

Negative Tests – system should throw an error, couldn’t combine since you wouldn’t know which input value exactly lead to the error.

Test Example

Let’s look at a specific example that will help us quickly understand how equivalence and boundary testing techniques work in practice. Imagine that we have a random website, on one of the pages of which users have to upload checks/receipts for payment. Therefore, the download of this image will have certain conditions, which we will now use as the basis for our testing techniques.

Requirements

Size – from 100 kb to 900 kb

Name – from 3 to 10 symbols, no digits, no spaces, all languages, all register, all spec symbols 

Format –  jpeg, png, gif 

Image 1. Test example with requirements

Equivalence Testing Technique Usage

Now, using the equivalent testing technique, we will work with the requirements for the size and name of the uploaded file. The image below conveniently and clearly shows how we will divide the values ​​into different classes. Accordingly, both in the case of the size and in the case of the file name, the representatives of the second class should give us a positive result, and the representatives of the first and third classes—a negative one.

Image 2. Equivalence testing technique usage

Boundary Values Testing Technique Usage

Now, by analogy with the previous testing technique, we will again consider the division of potential values ​​into classes, only using the boundary value analysis technique.

Image 3. Boundary values testing technique usage

Positive and Negative Tests

Now, recall that a little earlier at the beginning of the article we decided on what positive and negative tests are. This knowledge, coupled with the analysis of all potential equivalent and boundary values, allows us to determine the potential values ​​for positive and negative tests/checks.

Image 4. Positive tests
Image 5. Negative tests

Now that we have both our positive and negative tests, we can optimize the possible testing by combining positive tests. This is possible, since all positive tests individually should give us a positive response from the system, respectively. Therefore, when several positive values ​​​​are combined in one test, the result should not change.

Remember that we can’t combine negative tests, since each of them is unique and should cause an error in response from the system, and if we combine them, we simply won’t know which of the negative tests worked or didn’t work. So, we combine positive tests, but do not combine negative ones.

Next we add positive checks for the image format to our positive tests as shown below.

Image 6. Positive tests combining

And our negatives test are all separate, and looks like this when we add the negative image format checks.

Image 7. Negative tests without combining

Conclusion and Food for Thought

Now, having understood looked at specific example of using the technique of equivalence testing and testing of boundary values, we are ready for the main conclusion:

Domain testing equivalence + boundary testing, combining positive tests and not combining negative tests.

These techniques used together are useful for novice testers because they give specific instructions, diagrams, and formalized guidance. More experienced testers may combine various checks in their heads and the main thing that they draw from various test design techniques is a way of thinking.

The “father of testers”, Сem Kaner, said: “Learning a new technique means learning a way of thinking how to test well, not how to follow a procedure”.

Equivalence classes allow us to reduce the number of primitive tests with the same result and save time on more complex ones.

Boundary values ​​give us an intuitive understanding that potential bugs and difficulties will always be at the junction of various functionalities within one application or feature (where one functionality smoothly transitions into another or interacts with it).

The main skill that develops after becoming familiar with many different test design techniques—as you gain experience in what most often works and what does not—is the assessment of potentially critical vulnerabilities in the application.

Related Blog Posts

We hope you’ve found this to be helpful and are walking away with some new, useful insights. If you want to learn more, here are a couple of related articles that others also usually find to be interesting:

Manage Your Windows Applications With Winget

Winget, Microsoft’s native package manager for Windows 10 (version 1709 and later) and Windows 11, offers a streamlined CLI for efficient application management. This blog post introduces Winget’s installation and basic commands for installing, updating, and removing software. It highlights the tool’s ability to manage non-Winget-installed apps and explores curated package lists for batch installations. The post also recommends top Winget packages, noting some may require a paid subscription.

Read More

Our Gear Is Packed and We're Excited to Explore With You

Ready to come with us? 

Together, we can map your company’s software journey and start down the right trails. If you’re set to take the first step, simply fill out our contact form. We’ll be in touch quickly – and you’ll have a partner who is ready to help your company take the next step on its software journey. 

We can’t wait to hear from you! 

Main Contact

This field is for validation purposes and should be left unchanged.

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the form below. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Montage Portal

Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.

Project Background

Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.

Logistics

We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:

Custom App and Software Development

We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.

Cloud and Mobile Applications

The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.

User Experience and Interface (UX/UI) Design

We want your end users to have optimal experiences with tech that is highly intuitive and responsive.

DevOps

This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.

Trailhead stepped into a challenging project – building our new web architecture and redeveloping our portals at the same time the business was migrating from a legacy system to our new CRM solution. They were able to not only significantly improve our web development architecture but our development and deployment processes as well as the functionality and performance of our portals. The feedback from customers has been overwhelmingly positive. Trailhead has proven themselves to be a valuable partner.

– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services

Technologies Used

When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.

Expertise

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

  • Project Management
  • Architecture
  • Web App Development
  • Cloud Development
  • DevOps
  • Process Improvements
  • Legacy System Integration
  • UI Design
  • Manual QA
  • Back end/API/Database development

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

Our Gear Is Packed and We're Excited to Explore with You

Ready to come with us? 

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Thank you for reaching out.

You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.