Global value numbers and redundant computations
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Constraint-Based Automatic Test Data Generation
IEEE Transactions on Software Engineering
All-uses vs mutation testing: an experimental comparison of effectiveness
Journal of Systems and Software
High-level design verification of microprocessors via error modeling
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Dynamic state traversal for sequential circuit test generation
ACM Transactions on Design Automation of Electronic Systems (TODAES)
A measure of test case completeness (software, engineering)
A measure of test case completeness (software, engineering)
Automatic test data generation
Automatic test data generation
LLVA: A Low-level Virtual Instruction Set Architecture
Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture
Is mutation an appropriate tool for testing experiments?
Proceedings of the 27th international conference on Software engineering
MuJava: an automated class mutation system: Research Articles
Software Testing, Verification & Reliability
Mutation Operators for Concurrent Java (J2SE 5.0)
MUTATION '06 Proceedings of the Second Workshop on Mutation Analysis
Mutation Testing implements Grammar-Based Testing
MUTATION '06 Proceedings of the Second Workshop on Mutation Analysis
Leveraging a Commercial Mutation Analysis Tool For Research
TAICPART-MUTATION '07 Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION
A mutation model for the SystemC TLM 2.0 communication interfaces
Proceedings of the conference on Design, automation and test in Europe
ICSTW '09 Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops
Information and Software Technology
Efficient mutation testing by checking invariant violations
Proceedings of the eighteenth international symposium on Software testing and analysis
Full simulation coverage for SystemC transaction-level models of systems-on-a-chip
Formal Methods in System Design
Mutation-driven generation of unit tests and oracles
Proceedings of the 19th international symposium on Software testing and analysis
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Functional qualification of TLM verification
Proceedings of the Conference on Design, Automation and Test in Europe
Concurrency-oriented verification and coverage of system-level designs
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Test Case Generation from Mutants Using Model Checking Techniques
ICSTW '11 Proceedings of the 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops
KLOVER: a symbolic execution and automatic test generation tool for C++ programs
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
An Analysis and Survey of the Development of Mutation Testing
IEEE Transactions on Software Engineering
GKLEE: concolic verification and test generation for GPUs
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
LLBMC: bounded model checking of C and C++ programs using a compiler IR
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Testbenches for advanced TLM verification
Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
LLVMVF: A Generic Approach for Verification of Multicore Software
Journal of Electronic Testing: Theory and Applications
Hi-index | 0.00 |
Testbench development is a major component of simulation based verification, which is the de-facto verification technique used in the industry. Verification of a TLM design is not complete without a measure of the effectiveness of its testbenches. We devise a coverage driven testbench generation technique where the coverage metric uses that of a fault insertion based approach, namely mutation testing. Mutation testing is a commonly used software testing technique to measure the quality of testbenches. In mutation testing, the goal is to insert mutations (syntactic changes) into the program and check whether the impact of these mutations on the program can be detected by the available testbenches. If the testbenches cannot detect the impact of these inserted mutations then one can potentially add new testbenches to detect these changes. In this work, we automate the process of mutation testing based testbench generation exploiting the properties of concurrent TLM designs. Our framework is novel in that it uses the byte code representation of SystemC TLM models using Low Level Virtual Machine (LLVM) framework. Furthermore, these testbenches can detect concurrency related defects such as deadlocks or race conditions. We perform experiments on TLM models to demonstrate the effectiveness of our test bench generation approach.