Google Test/Google Mock to Verify Critical Embedded Software

08/09/2022
by   Hafsa Cheddadi, et al.
0

Critical embedded systems (CES) have become ubiquitous in whether medical, automotive, or industrial. Software failures in such systems are potentially disastrous and could lead to serious consequences not only financially but also life-threatening. However, besides their omnipresence, CES complexity have grown to extreme measures, faced with this increase, manufacturers and suppliers are increasingly interested in effective methods of testing logical correctness and verifying that software parts are error-free.Software testing is a collection of methods used to detect and correct bugs and faults found in software code. The first stage of software testing is unit testing, a widely used technique where individual units of source code are isolated, often divided up into classes and functions, and tested separately to aid in the verification of the behavior and functionality of the system. In this chapter, an overview of GoogleTest (GTest), a xUnit C++ testing framework will be performed, and a comparison of different available unit test frameworks for use in the C++ language. On account of the complexity provided by critical embedded systems, it is difficult to isolate and test the system's behavior, mocking techniques were considered to enable a real implementation to be replaced with a fake implementation, the replacement allowed to overcome the challenges related to hardware dependencies and external factors. Further, this chapter describes GoogleMock, a part of GoogleTest C++ testing framework that makes the tests run in isolation.

READ FULL TEXT

page 1

page 5

page 8

page 11

research
10/26/2021

Automated Support for Unit Test Generation: A Tutorial Book Chapter

Unit testing is a stage of testing where the smallest segment of code th...
research
05/14/2020

Intermittently Failing Tests in the Embedded Systems Domain

Software testing is sometimes plagued with intermittently failing tests ...
research
11/16/2021

Automated System-Level Software Testing of Industrial Networked Embedded Systems

Embedded systems are ubiquitous and play critical roles in management sy...
research
09/20/2021

Neural Unit Test Suggestions

Testing is widely recognized as an important stage of the software devel...
research
06/29/2019

Model Checking a C++ Software Framework, a Case Study

This paper presents a case study on applying two model checkers, SPIN an...
research
05/04/2021

Automated Driver Testing for Small Footprint Embedded Systems

Embedded systems represent a billionaire market and are present in most ...
research
09/13/2019

P^2IM: Scalable and Hardware-independent Firmware Testing via Automatic Peripheral Interface Modeling (extended version)

Dynamic testing or fuzzing of embedded firmware is severely limited by h...

Please sign up or login with your details

Forgot password? Click here to reset