Top Banner
ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATION Panagiotis Stratis, Vanya Yaneva, Ajitha Rajan 12 October 2018 ESEM'18, Oulu, Finland
26

ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

May 27, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

ASSESSINGTHEEFFECTOFDATATRANSFORMATIONSONTESTSUITE

COMPILATIONPanagiotisStratis,VanyaYaneva,AjithaRajan

12October2018ESEM'18,Oulu,Finland

Page 2: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

SOFTWAREISEVERYWHERE

SAFETYANDCORRECTNESSARECRUCIALTESTINGISCRITICAL

TESTINGCANBEEXTREMELYTIMECONSUMING.

Page 3: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

FUNCTIONALTESTING

Page 4: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

Testingframeworks:

GoogleTest(C++)JUnit(Java)Mocha(JavaScript)

...and100sothers

HOWDOWEIMPLEMENTTESTING?

Page 5: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

Repeatthecycle:

everycommiteverymergeTest-drivendevelopment(TDD)

everyday(overnightbuilds)Continuousintegration(CI)

Testingtakesasignificantportionofthedevelopmenttime.

WHENDOWETEST?

Allthetime!

Page 6: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

1. Write/generatetests-✔Automatedtestgeneration,paralleltestgeneration

2. Build(compile)-?

3. Runtests-✔Testsuiteminimisation,testcaseprioritisation,paralleltestexecution

SPEEDINGUPTESTINGEXISTINGRESEARCH

Page 7: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

REDUCINGCOMPILATIONTIMEISIMPORTANT

Largetestsuitestakealongtimetocompile."...Comparabletorunningtime."[CodeplaySoftware]Weneedtocompilenotonlythesystemcode,butalsothetestcode.

Compileroptimisationsincreasecompilationtime.-O1,-O2,-O3

Testcodeneedstobecompiledoften.

Page 8: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

CONTRIBUTIONS

Codetransformationstargetingtestcode,resultinginshortercompilationtimes.

Empiricalevaluationusing15programsfromEEMBC&SPECand1largeindustryprogram.

Speedupincompilationtime:1.3xto69x.

Page 9: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

ContainsmanyfunctioncallstotheFUT-oneforeachtestinput.

Highcompilationoverheadforfunctioninliningandinstructionselection.

Thisnumbergrowsasmoretestsareadded.

OURAPPROACH-EXAMPLE

Page 10: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

ContainsmanyfunctioncallstotheFUT-oneforeachtestinput.

Highcompilationoverheadforfunctioninliningandinstructionselection.

Thisnumbergrowsasmoretestsareadded.

Hypothesis:ReducingthenumberofcallstotheFUT,atcompiletime,willreducecompilationtime.

OURAPPROACH-EXAMPLE

Page 11: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

OURAPPROACHDATATRANSFORMATIONOFTHETESTS

Page 12: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

EVALUATION-RESEARCHQUESTIONS

RQ1:CompilationspeedupDoesthetransformationspeedupcompilationtime?

RQ2:ScalabilityDoesthetransformationallowustocompilelargertestsuites?

RQ3:ExecutiontimeandcorrectnessoftestingDoesthetransformationimpacttheexecutiontimeandcorrectnessoftesting?

Page 13: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

EVALUATION-SUBJECTS

EEMBCindustry-standardembeddedsystemsapplicationsused5telecomprograms&5automotiveprograms

SPECwell-knownbenchmarkssuiteofcomputeintensiveapplicationsused5programs,includingbzip2,libquantum

Tests:10KrandomlygeneratedtestinputsCompilers:gcc,clang

Page 14: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

ComputeCPP,CodeplaySoftwareimplementationoftheSYCLheterogeneousprogrammingmodel

Tests:2testsuites-imageTS&bufferTSeachhasapprox.10Ktests,producedbyCodeplaydevelopers

Compilers:2customcompilers,basedonClangoneforhost&onefordevice

EVALUATION-SUBJECTS

Page 15: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

Maxspeedup1.5x(avg.1.3x)

Maxspeedup1.8x(avg.1.4x)

RQ1:SPEEDUP-EEMBC

Page 16: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

Maxspeedup15x(avg.7.9x)

Maxspeedup20.2x(avg.12x)

RQ1:SPEEDUP-SPEC

Page 17: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

SPEEDUPVARIATIONACROSSPROGRAMS

Page 18: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

-ftime-report:showstimespentcompilingindividualfilesandfunctions.

Comparedtimetocompiletestcodevswholecode.

SPEEDUPVARIATIONACROSSPROGRAMS

Page 19: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

SPEEDUPVARIATIONACROSSPROGRAMS

Averagecompilationtimeoftestcodeaspercentageoftotalcompilationtime.

Page 20: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

SPEEDUPVARIATIONACROSSPROGRAMS

Averagecompilationtimeoftestcodeaspercentageoftotalcompilationtime.

Usingmodulardesignwithpre-compiledlibrariesgreatlyimprovesspeedup.

Page 21: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

SPEEDUPANALYSISForEEMBCandSPEC,

Analysedassemblycodegeneratedbythecompiler.Analysedtimespentbyeachcompilerpass,using-ftime-report.

Page 22: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

SPEEDUPANALYSIS

Beforetransformation:

SeparatecallstotheFUTemittedforeachtest.

47%oftestcodecompilationspentininstructionselectionfunctioninliningcombineredundantinstructions

Aftertransformation:

1calltotheFUTemitted.

Only13.6%ofcompilationtimespentinthosepasses.

ForEEMBCandSPEC,

Analysedassemblycodegeneratedbythecompiler.Analysedtimespentbyeachcompilerpass,using-ftime-report.

Page 23: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

Maxspeedup69.5x(avg.42x)

Orig.time[s] Newtime[s]

bufferTS 257 4

imageTS 434 29

RQ1.SPEEDUP-COMPUTECPP

Page 24: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

RQ2.SCALABILITY

Beforetransformation:

Clangandgcccrashwhen1milliontestsarereached.

Aftertransformation:

Clangandgccsuccessfullycompile10milliontests.

ForEEMBCandSPEC,

wegenerated10millionrandomtestinputs.

forhighestoptimisationlevel-O3.

Page 25: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

RQ3.EXECUTIONTIMEANDCORRECTNESS

ForEEMBC,SPECandComputeCpp,

ExecutiontimeOurtransformationdoesnotslowdowntheexecutionofthetestcode.

CorrectnessOurtransformationpreservesthecorrectnessofthetestexecution.

Page 26: ASSESSING THE EFFECT OF DATA TRANSFORMATIONS ON TEST SUITE COMPILATIONhomepages.inf.ed.ac.uk/s0835905/talks/esem2018.pdf · 2018-10-17 · Test-driven development (TDD) every day

TAKEAWAYTestcodecanaddsignificantcompilationoverhead,contributingtototaltestingtime.

Itcanbereducedwithcodetransformationsonthetestcode.

Thisisparticularlyeffectivewhenusingmodulardesignandpre-compiledlibraries.