Return to search

Automated coverage calculation and test case generation

Thesis (MScEng)--Stellenbosch University, 2012. / ENGLISH ABSTRACT: This research combines symbolic execution, a formal method of static analysis, with various
test adequacy criteria, to explore the e ectiveness of using symbolic execution for calculating
code coverage on a program's existing JUnit test suites. Code coverage is measured with a
number of test adequacy criteria, including statement coverage, branch coverage, condition
coverage, method coverage, class coverage, and loop coverage. The results of the code coverage
calculation is then used to automatically generate JUnit test cases for areas of a program that
are not su ciently covered. The level of redundancy of each test case is also calculated during
coverage calculation, thereby identifying fully redundant, and partially redundant, test cases.
The combination of symbolic execution and code coverage calculation is extended to perform
coverage calculation during a manual execution of a program, allowing testers to measure the
e ectiveness of manual testing.
This is implemented as an Eclipse plug-in, named ATCO, which attempts to take advantage
of the Eclipse workspace and extensible user interface environment to improve usability of the
tool by minimizing the user interaction required to use the tool.
The code coverage calculation process uses constraint solving to determine method parameter
values to reach speci c areas in the program. Constraint solving is an expensive
computation, so the tool was parallellised using Java's Concurrency package, to reduce the
overall execution time of the tool. / AFRIKAANSE OPSOMMING: Hierdie navorsing kombineer simboliese uitvoering, 'n formele metode van statiese analise, met
verskeie toets genoegsaamheid kriteria, om die e ektiwiteit van die gebruik van simboliese
uitvoer te ondersoek vir die berekening van kode dekking op 'n program se bestaande JUnit
toets stelle. Kode dekking word gemeet deur verskeie toets genoegsaamheid kriteria, insluited
stelling dekking, tak dekking, kondisie dekking, metode dekking, klas dekking, en lus dekking.
Die resultate van die kode dekking berekeninge word dan gebruik om outomaties JUnit toets
voorbeelde te genereer vir areas van 'n program wat nie doeltre end ondersoek word nie. Die
vlak van oortolligheid van elke toets voorbeeld word ook bereken gedurende die dekkingsberekening,
en daardeur word volledig oortollige, en gedeeltelik oortollige, toets voorbeelde
identi seer. Die kombinasie van simboliese uitvoer en kode dekking berekening is uitgebrei
deur die uitvoer van dekking berekeninge van 'n gebruiker-beheerde uitvoer, om sodoende kode
dekking van 'n gebruiker-beheerde uitvoer van 'n program te meet. Dit laat toetsers toe om
die e ektiwiteit van hulle beheerde uitvoer te meet.
Bogenoemde word ge mplimenteer as 'n Eclipse aanvoegsel, genaamd ATCO, wat poog om
voordeel te trek vanuit die Eclipse werkspasie, en die uitbreibare gebruiker oordrag omgewing,
om die bruikbaarheid van ATCO te verbeter, deur die vermindering van die gebruiker interaksie
wat benodig word om ATCO te gebruik.
Die kode dekking berekeningsproses gebruik beperking oplossing om metode invoer waardes
te bereken, om spesi eke areas in die program te bereik. Beperking oplossing is 'n duur berekening,
so ATCO is geparalleliseer, met behulp van Java se Concurrency pakket, om die algehele
uitvoer tyd van die program te verminder.

Identiferoai:union.ndltd.org:netd.ac.za/oai:union.ndltd.org:sun/oai:scholar.sun.ac.za:10019.1/20041
Date03 1900
CreatorsMorrison, George Campbell
ContributorsInggs, C. P., Barnard, A., Stellenbosch University. Faculty of Engineering. Dept. of Electrical and Electronic Engineering
PublisherStellenbosch : Stellenbosch University
Source SetsSouth African National ETD Portal
Languageen_ZA
Detected LanguageUnknown
TypeThesis
Format99 p. : ill.
RightsStellenbosch University

Page generated in 0.0023 seconds