Object-branch coverage (OBC) is often used as a measure of the thoroughness of tests suites, augmenting or substituting source-code based structural criteria such as branch coverage and modified condition/decision coverage (MC/DC). In addition, with the increasing use of third-party components for which source-code access may be unavailable, robust object-code coverage criteria are essential to assess how well the components are exercised during testing. While OBC has the advantage of being programming language independent and is amenable to non-intrusive coverage measurement techniques, variations in compilers and the optimizations they perform can substantially change the structure of the generated code and the instructions used to represent branches. To address the need for a robust object coverage criterion, this paper proposes a rigorous definition of OBC such that it captures well the semantics of source code branches for a given instruction set architecture. We report an empirical assessment of these criteria for the Intel x86 instruction set on several examples from embedded control systems software. Preliminary results indicate that object-code coverage can be made robust to compilation variations and is comparable in its bug-finding efficacy to source level MC/DC.
|Original language||English (US)|
|Title of host publication||Proceedings - 2017 IEEE 28th International Symposium on Software Reliability Engineering, ISSRE 2017|
|Publisher||IEEE Computer Society|
|Number of pages||11|
|State||Published - Nov 14 2017|
|Event||28th IEEE International Symposium on Software Reliability Engineering, ISSRE 2017 - Toulouse, France|
Duration: Oct 23 2017 → Oct 26 2017
|Name||Proceedings - International Symposium on Software Reliability Engineering, ISSRE|
|Other||28th IEEE International Symposium on Software Reliability Engineering, ISSRE 2017|
|Period||10/23/17 → 10/26/17|
Bibliographical noteFunding Information:
ACKNOWLEDGMENT This material is based upon work supported by the National Science Foundation under Grant Numbers 1563920 and 1514444. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. The authors wish to thank Gregory Gay for his help in the tool development.
This material is based upon work supported by the National Science Foundation under Grant Numbers 1563920 and 1514444.
- Coverage criteria
- Object-code testing
- Structural testing