publication . Preprint . Conference object . 2018

empirical evaluations for automated unit testing of embedded software in industry

Chengyu Zhang; Yichen Yan; Hanru Zhou; Yinbo Yao; Ke Wu; Ting Su; Weikai Miao; Geguang Pu;
Open Access English
  • Published: 23 Feb 2018
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...
free text keywords: Computer Science - Software Engineering, Computer science, Confidentiality, Symbolic execution, Source lines of code, Requirements engineering, Embedded software, Unit testing, Operating system, computer.software_genre, computer, Real-time computing, Array data structure, Scalability
Related Organizations
45 references, page 1 of 3

[1] M Moein Almasi, Hadi Hemmati, Gordon Fraser, Andrea Arcuri, and Ja¯nis Benefelds. 2017. An industrial evaluation of unit test generation: Finding real faults in a financial application. In Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track. IEEE Press, 263-272.

[2] Saswat Anand, Corina Păsăreanu, and Willem Visser. 2007. JPF-SE: A symbolic execution extension to java pathfinder. Tools and Algorithms for the Construction and Analysis of Systems (2007), 134-138. [OpenAIRE]

[3] IEEE Standards Association et al. 1990. Standard glossary of software engineering terminology. lEEE Std (1990), 610-12.

[4] Clark Barrett. 2013. âĂIJDecision Procedures: An Algorithmic Point of View,âĂİ by Daniel Kroening and Ofer Strichman, Springer-Verlag, 2008. Journal of Automated Reasoning 51, 4 (2013), 453-456.

[5] Clark Barrett, Christopher L Conway, Morgan Deters, Liana Hadarean, Dejan Jovanović, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. Cvc4. In International Conference on Computer Aided Verification . Springer, 171-177.

[6] Jacob Burnim and Koushik Sen. 2008. Heuristics for scalable dynamic test generation. In Automated Software Engineering, 2008. ASE 2008. 23rd IEEE/ACM International Conference on. IEEE, 443-446.

[7] Cristian Cadar, Daniel Dunbar, Dawson R Engler, et al. 2008. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs.. In OSDI, Vol. 8. 209-224.

[8] Cristian Cadar, Vijay Ganesh, Peter M Pawlowski, David L Dill, and Dawson R Engler. 2008. EXE: automatically generating inputs of death. ACM Transactions on Information and System Security (TISSEC) 12, 2 (2008), 10.

[9] Cristian Cadar, Patrice Godefroid, Sarfraz Khurshid, Corina S Păsăreanu, Koushik Sen, Nikolai Tillmann, and Willem Visser. 2011. Symbolic execution for software testing in practice: preliminary assessment. In Proceedings of the 33rd International Conference on Software Engineering. ACM, 1066-1071.

[10] Cristian Cadar and Koushik Sen. 2013. Symbolic execution for software testing: three decades later. Commun. ACM 56, 2 (2013), 82-90.

[11] Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An eficient SMT solver. Tools and Algorithms for the Construction and Analysis of Systems (2008), 337-340.

[12] Gordon Fraser and Andrea Arcuri. 2011. Evosuite: automatic test suite generation for object-oriented software. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering. ACM, 416-419.

[13] Gordon Fraser and Andrea Arcuri. 2014. A large-scale evaluation of automated unit test generation using evosuite. ACM Transactions on Software Engineering and Methodology (TOSEM) 24, 2 (2014), 8.

[14] Vijay Ganesh and David L Dill. 2007. A decision procedure for bit-vectors and arrays. In CAV, Vol. 4590. Springer, 519-531.

[15] Pranav Garg, Franjo Ivancic, Gogul Balakrishnan, Naoto Maeda, and Aarti Gupta. 2013. Feedback-directed unit test generation for C/C++ using concolic execution. In Proceedings of the 2013 International Conference on Software Engineering. IEEE Press, 132-141.

45 references, page 1 of 3
Powered by OpenAIRE Research Graph
Any information missing or wrong?Report an Issue