Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Five tools to improve embedded software testing efforts

Embedded software testing tools are useful for catching defects during unit, integration and system testing. Here are five such tools that can make testing easier.

Testing embedded systems, or closed hardware environments where users don't realize the embedded interface exists,...

is challenging and different because there is no user interface (UI). Instead, the tests involve digital output, interfaces, APIs, data exchange messaging or other forms of communication. It's also challenging because the testing is not within a UI; instead, it involves components not visible to the end user. Another difference from UI testing is the general difficulty of reproducing defects, especially the longer the time between when a defect is reported and the time it is fixed. The following is a list of testing tools available to assist with effective embedded software testing.

Vector Software

Vector Software provides automated tools for testing embedded software using unit and integration tests. Vector's software uses a "tool chain" method that supports a total cross-development environment that includes a cross-compiler, debug emulator, target board and real-time OS. Vector's tool includes configurable target integrations for each tool chain an embedded software code system needs. Vector Software is a leading provider of automated software testing tools for safety-critical embedded applications. The VectorCast products automate and manage unit, integrations, and system-level testing in the C, C++ and Ada programming languages. Vector Software's tools are fully qualified for use in building and testing regulated applications, a distinct advantage for organizations that create software in a regulated industry such as Class III medical devices or commercial aviation.

KlocWork

Embedded software testing tools add a layer to testing that finds defects hidden in the back-end processing that might otherwise not be found.

KlocWork Insight offers a static analysis tool for code written in C, C++, C# and Java. It automatically identifies programming bugs and security vulnerabilities. Application security vulnerabilities open attack vectors in the application that lead to denial of service or remote code execution attacks. The tool assists with security testing as well as integration and component-level testing. KlocWork Insight includes built-in testing systems for the following standards: CWE, CWE/SANS Top 25, CERT, OWASP, DISA STIG and MISRA.

KlocWork Insight runs dynamically or on the fly as code executes, so testing is executable both before and after the build is run. KlocWork claims to seamlessly integrate into all existing workflows and enable developers to fix software security defects before they are checked in.

Parasoft

The Parasoft Development Testing Platform (DTP) offers automation of continuous development activities in the IDE or on the target for testing embedded applications. The tool integrates into any embedded development environment and provides reports for statistical and historical data at the component level. Parasoft DTP includes tools to perform static analysis, code reviews, unit testing, code coverage analysis and even traceability. Like many embedded testing tools, Parasoft provides preconfigured settings on industry and regulatory standards in order to verify code compliance. Testers can customize Parasoft templates to meet a user's needs. Having a customized tool assists in building on traceability and other tracking or monitoring features required for verifying compliance for safety-critical systems.

Hitex Development Tools

Tessy, a Hitex Development Tools product, has been around a while in the embedded testing world. Tessy, which can test embedded code bases written in C and C++, is frequently used for compliance verification with multiple standards. Testers can configure Tessy to automatically execute automated tests and generate the associated test reports. Tessy includes the Classification Tree Method for test specification, and it supports test documentations in HTML, Word, and Excel.

TestPlant

The eggPlant tool from TestPlant is designed to handle nonstandard software, including embedded applications that can't be installed on the test system. Testers can use eggPlant with other systems to test against any system. It includes tests for keyboard connectivity, video, mouse hardware and ports. The tool is also useful for running system tests without the code being installed on the server or software under test. Major advantages of eggPlant are that it runs with nonstandard technology and isn't dependent on the underlying code. In other words, eggPlant can run on virtually any system. The tool includes commands that allow manual direction during test execution. The "Ask and Answer" commands let testers interact with the automated test execution, add input and designate other behavior dynamically. By allowing manual interaction, testers can use eggPlant with functionality too complex for most automated testing tools. The eggplant tool also provides a handy method of dynamically altering the test execution to allow for more creative and spontaneous testing.

Using automated tests that focus on embedded applications adds significant quality to any product by testing the back end or software that users don't see. Embedded software testing tools add a layer to testing that finds defects hidden in the back-end processing that might otherwise not be found, even with thorough unit, integration and functional testing.

Next Steps

What tools and processes are specific to testing embedded software?

Common defects in embedded software

Learn the benefits of Seapine QA Wizard Pro

This was last published in November 2014

Dig Deeper on Software Security Testing Tools

PRO+

Content

Find more PRO+ content and other member only offers, here.

Join the conversation

7 comments

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

Have you considered embedded software testing tools? If so, which ones?
Cancel
I like the VectorCAST suite, which has tools for actively monitoring and testing apps and software in development. Installation was easy and it's very intuitive to use.
Cancel
Given the wide range of 'devices' today.  At what point does it stop being embedded and becomes something else like, mobile, tablet, for example?  What I mean is, I'm not sure what qualifies as embedded anymore.
Cancel
@Veretax, I'd say something like a digital thermometer, smoke detector, or a parking permits machine.

None of the tools mentioned in the article helps with performance testing though.
Cancel
The static analysis tool, KlocWork, is an interesting addition. Though it isn't exactly a testing tool and the coverage models it renders don't necessarily imply that the coverage is any good, it certainly can point you to areas of the software that lack test coverage. That is a very valuable thing.
Cancel
Interesting. Seems like VectorCast could be especially handy for Agile teams. Other products appear to be more oriented on "code over the wall" approach.
Cancel
Please let me know the embedded automation tool name to automate the one of the product used in the railway domain. 
Cancel

-ADS BY GOOGLE

SearchMicroservices

TheServerSide

SearchCloudApplications

SearchAWS

SearchBusinessAnalytics

SearchFinancialApplications

SearchHealthIT

Close