SmartUnit: Empirical Evaluations for Automated Unit Testing of Embedded Software in Industry

02/23/2018
by   Chengyu Zhang, et al.
0

In this paper, we aim at the automated unit coverage-based testing for embedded software. To achieve the goal, by analyzing the industrial requirements and our previous work on automated unit testing tool CAUT, we rebuild a new tool, SmartUnit, to solve the engineering requirements that take place in our partner companies. SmartUnit is a dynamic symbolic execution implementation, which supports statement, branch, boundary value and MC/DC coverage. SmartUnit has been used to test more than one million lines of code in real projects. For confidentiality motives, we select three in-house real projects for the empirical evaluations. We also carry out our evaluations on two open source database projects, SQLite and PostgreSQL, to test the scalability of our tool since the scale of the embedded software project is mostly not large, 5K-50K lines of code on average. From our experimental results, in general, more than 90 achieve 100 SQLite achieve 100 PostgreSQL achieve 100 runtime exceptions at the unit testing level. We also have reported exceptions like array index out of bounds and divided-by-zero in SQLite. Furthermore, we analyze the reasons of low coverage in automated unit testing in our setting and give a survey on the situation of manual unit testing with respect to automated unit testing in industry.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/17/2018

Towards Efficient Data-flow Test Data Generation Using KLEE

Dataflow coverage, one of the white-box testing criteria, focuses on the...
research
05/19/2019

Model-based Automated Testing of JavaScript Web Applications via Longer Test Sequences

JavaScript has become one of the most widely used languages for Web deve...
research
06/14/2021

JUGE: An Infrastructure for Benchmarking Java Unit Test Generators

Researchers and practitioners have designed and implemented various auto...
research
04/08/2021

Automated User Experience Testing through Multi-Dimensional Performance Impact Analysis

Although there are many automated software testing suites, they usually ...
research
08/18/2020

Differential coverage: automating coverage analysis

While it is easy to automate coverage data collection, it is a time cons...
research
03/11/2021

Using Relative Lines of Code to Guide Automated Test Generation for Python

Raw lines of code (LOC) is a metric that does not, at first glance, seem...
research
11/01/2020

How Testable is Business Software?

Most businesses rely on a significant stack of software to perform their...

Please sign up or login with your details

Forgot password? Click here to reset