2018 · 15 citations · 18 references
EngineeringComputer EngineeringComputer ScienceDesign AutomationModel-based Systems EngineeringSystems ArchitectureAssertion-based VerificationDesign For TestabilityExecutable System ModelsSoftware TestingCode CoverageConcolic ExecutionConcolic TestingEvent-driven TestingSimulation SemanticsSystem TestingSystemc ModelingTesting
SystemC is a system-level modelling language widely used in the semiconductor industry. SystemC validation is both necessary and important, since undetected bugs may propagate to final silicon products, which can be extremely expensive and dangerous. However, it is challenging to validate SystemC designs due to their heavy usage of object-oriented features, event-driven simulation semantics, and inherent concurrency. In this paper, we present CTSC, an automated, easy-to-deploy, scalable, and effective binary-level concolic testing framework for SystemC designs. We have implemented CTSC and applied it to an open source SystemC benchmark. In our extensive experiments, the CTSC-generated test cases achieved high code coverage, triggered 14 assertions, and found two severe bugs. In addition, the experiments on two designs with more than 2K lines of SystemC code show that our approach scales to designs of practical sizes.
18
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations