Synthetic Data for Increasing Software Quality

Published on
February 19, 2022
 Synthetic Data for Increasing Software Quality

Software Quality is determined by many factors such as Reliability, Ease of Use, Maintainability, Usefulness, Relevance, etc. A large part of Software Quality depends upon the experience and domain knowledge of the software testing personnel. This is because of the following factors:

  • Edge Cases – All corners of the logic within the software need to be tested thoroughly. Let’s say that something applies for people between the ages 25 and 60. Does the software behave normally when the test case is for someone aged 40, for example? How about 24 and 61 when the test needs to fail or display appropriate edge case behavior?
  • Combination of Characteristics – Sometimes the use cases for testing may be a combination of many different characteristics of the test data. The combinations may be so massive that manual design of test data may be difficult, even impossible, or comprehensive enough. You may need an automated tool that makes sure that as many combinations in the test data are represented.
  • Adequate Data for Performance or Stress Testing – Sometimes large volumes may be needed to test performance of the software and the backend infrastructure. Is the infrastructure capacity enough when there is a large volumes of transactions happening in a short amount of time? This amount of data may not be available naturally in the current production data. It may need to be generated manually or with an automated script.
  • Complex Test Cases – Software Testing using Happy Paths is easy. Negative Test Cases may be combination of semantic factors and subject to complex rules that go across multiple tables and columns. There may be complex combinations not easily captured by just looking at data types in columns and validating them for those alone. Let’s say that a decision demands higher automotive insurance premium amounts, if the age of the auto insurance applicant is between 18 and 21, and the car is a Red Convertible! These can be captured normally only in a business rule engine. What if your software test cases need to be complex and subject to multiple complex business rules?

A synthetic data tool that has the following features can help address all the above requirements for increasing Software Quality by appropriate design of test cases:

  • Volume of Synthetic Data Generated – A Synthetic Data tool that allows you to select the volume of data you need can address the performance testing issue. Since the synthetic data generated uses a machine learning model created using real production data, it carries the same characteristics as the real data, but the volume can be as large as you needed.
  • Edge Case Specifications – If the synthetic data tool allows you to select tables and columns and you can specify edge case rules, the data generated can include those edge cases for testing. For example, if age group needs to be between 25 and 60, and the synthetic data generated includes ages 24, 40, and 61, normal data, as well as edge cases, will be represented.
  • Business Rues for Complex Test Cases – If the synthetic data tool understands the meta data of the real production data, a business rules builder can capture the complex semantic conditions in the data generated. The synthetic data can be made to include auto insurance applicants that are between ages 18 ands 21 and own red convertibles!

Software Quality depends upon many factors but one of the ways you can ensure it, is to create synthetic data that represents all the complex combination of test cases you need. Test cases, enough in volume to test performance, and semantically complex enough to test all far corners of your software logic, can go a long way in improving your Software Quality!

To assess or improve software quality in your organization, you must define the aspects of quality in which you are interested, then decide how you are going to measure them ~ Barbara Kitchenham

Start your project with brewdata

Try out our tools for free by signing up!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.