Skip to main navigation Skip to search Skip to main content

Speeding up Test Execution with Increased Cache Locality

Research output: Contribution to journalArticlepeer-review

Abstract

As the scale and complexity of software increases, the number of tests needed for effective validation becomes extremely large. Executing these large test suites is expensive, both in terms of time and energy. Cache misses are a significant contributing factor to execution time of software. We propose an approach that helps order test executions in a test suite in such a way that instruction cache misses are reduced. We also ensure that the approach scales to large test suite sizes. We conduct an empirical evaluation with 20 subject programs and test suites from the SIR repository, EEMBC suite and LLVM Symbolizer, comparing execution times and cache misses with test orderings maximising instruction locality versus a traditional ordering maximising coverage and random permutations. We also assess overhead of algorithms in generating the orderings that optimise cache locality. Nature of programs and tests impact the performance gained with our approach. Performance gains were considerable for programs and test suites where the average number of different instructions executed between tests was high. We achieved an average execution speedup of 6.83% and a maximum execution speedup of 17% over subject programs with differing control flow between test executions.
Original languageEnglish
Number of pages24
JournalSoftware Testing, Verification and Reliability
Volume28
Issue number4
Early online date22 Jun 2018
DOIs
Publication statusE-pub ahead of print - 22 Jun 2018

Fingerprint

Dive into the research topics of 'Speeding up Test Execution with Increased Cache Locality'. Together they form a unique fingerprint.

Cite this