Testing Graphical Software Development Kits (SDK)

Written

July 14, 2022

Written by the Engineering Team, Kongsberg Geospatial

Regression testing is an important consideration for any product, especially for a Software Development Kit (SDK) used in Mission Critical Systems. Programs spanning years of development, and decades of deployment, require confidence that vendor software updates will not introduce any new issues.

There are many unit test frameworks available, and they are generally geared to modular code components that can be evaluated against a known correct result provided by the test author. But how do you test a graphics Software Development Kit (SDK), where the results have to be visually inspected for “correctness” or for improvements which are subject to the discretion of the viewer?

Creating a Set of Baseline Images

Baseline images, created from a reproducible set of tests that exercise the API, can be used to form comparisons for regression testing. If the image is the same from one product version to the next, all good! Otherwise, the image delta can be reviewed by a tester experienced in the product to determine whether the change is a potential regression, or if it is expected and desired and should therefore be updated in the baseline set.

Exception: Rendered images are not always the same. A pixel-by-pixel comparison may indicate differences not visible (or significant) to the human eye. Image comparison tools can account for this somewhat by applying a fault tolerance to differences. Still, image data can be platform-specific. While this can be accommodated by maintaining reference image sets per system, when you add in the complexity of a Software Development Kit (SDK) available across several API languages, compilers and operating systems, and tested for different graphics cards and drivers, the result can be a lot of tests, capturing many reference images and requiring substantial time to run through all the variants.

Continuously Integrating on a Range of Platforms and Graphics Cards

By selecting key functional aspects of the Software Development Kit (SDK), and integrating automated image comparison tests of these into the build process, a number of issues can be caught before expending the effort of a full regression test. This is especially helpful to catch issues due to variants like operating systems or a graphics card’s capabilities.

Runtime performance and memory consumption baselines are extensions to the image tests that also help ensure the quality of the release. Comparisons that show significant discrepancies, either between graphics cards or between product releases, can then be investigated in more detail.

About TerraLens:

TerraLens® is a highly performant geospatial and display Software Development Kit (SDK) designed for easy project integration and quick implementation in virtually any development environment. TerraLens provides real-time 2D and 3D mapping with powerful data visualization tools. TerraLens also includes a flexible and full-featured UI development toolset that, when coupled with QT, includes advanced multi-touch support.

Try TerraLens for Free:

We can help you evaluate TerraLens® with one or more free developer licenses, and one on one technical support. Contact us through email: info@kongsberggeospatial.com or visit the page below to talk to a Technical Solutions Engineer about your needs and environment.

Build Your Own UAS Sensor Data Solution with TerraLens®

Real-Time Geospatial SDK

Learn More

Learn More

Build Your Own UAS Sensor Data Solution with TerraLens®

Real-Time Geospatial SDK