Regression testing is often a very resource and time consuming activity with large scale software. However, regression tests may be run in continuous integration where everything should run fast in order to get quick feedback.
This thesis reviews the existing solutions to optimize regression test suites and test suites in general by looking at various existing heuristic, computational intelligence and other methods. In most cases, these methods are based on the fact that test suites may contain redundant test cases. They also require code coverage, fault detection capability or requirement coverage information of each test case in order to be implemented.
Additionally, the thesis studies ways to detect redundancy in test trace. It is also discussed whether or not this kind of redundancy information can be used for test suite optimization instead. A new concept, pair-wise supermaximal repeats is presented.
A case study is conducted in software component continuous integration testing environment in Nokia Networks. Main methods include looking for patterns in test trace manually in a plot representing the test trace as well as finding pair-wise supermaximal repeats in the test trace with an enhanced suffix array implementation developed in test driven development method. A new application was developed, MRS Finder. The repeats are then analyzed.
The study shows that the there can be found huge amount of repetition which makes analyzing all of it hard by hand. The repeats also tend to occur more in the setup or teardown phase of a test case rather than in the action or assertion phase of the test cases. The study shows that MRS Finder offers different optimization possibilities than originally was thought. / Regressiotestaus on usein hyvin resursseja ja aikaa kuluttavaa suurten ohjelmistojen kanssa. Regressiotestejä voidaan kuitenkin ajaa jatkuvassa integroinnissa, jossa senkin tulisi suoriutua nopeasti, jotta palauteaika pysyy lyhyenä.
Tämä diplomityö käy läpi olemassa olevia ratkaisuja regressiotestien ja yleisestikin testisarjojen optimointia. Näistä käsitellään muun muassa heuristisia ja laskennallisen älykkyyden menetelmiä. Useimmissa tapauksissa nämä metodit perustuvat siihen, että testisarjat voivat sisältää testitapauksia, joissa on keskinäistä redundanssia. Menetelmät vaativat myös tietoa jokaisen testitapauksen koodikattavuudesta, virheiden paljastuskyvystä tai vaatimuskattavuudesta, jotta ne voidaan toteuttaa käytännössä.
Tämä työ tutkii myös tapoja löytää redundanssia testien jäljistä. Työ pohtii, voitaisiinko tätä tietoa käyttää testisarjojen optimointiin edellä mainittujen tietojen sijaan. Tämä työ esittelee uuden käsitteen, parittaisen supermaksimaalisen toiston.
Tapaustutkimus suoritettiin Nokia Networksin systeemikomponenttitason jatkuvan integroinnin järjestelmässä. Tapaustutkimuksessa kehitettiin testivetoisella kehityksellä MRS Finder -ohjelmisto, joka etsii toistoja parannetusta suffiksitaulusta ja tuottaa diagrammin, joka edustaa testien jälkiä. Diagrammista etsitään toistoja manuaalisesti ja suffiksitaulusta löydettyjä toistoja analysoidaan.
Tutkimus näyttää, että testien jäljistä voidaan löytää suuri määrä toistoja, joka tekee analysoinnista vaikeaa käsin. Toistot esiintyvät useammin testi tapauksien alkuasetus (setup) ja poiskorjaus (teardown) -vaiheissa kuin toiminta- tai vakuutusvaiheissa (assertion). Tutkimus näyttää myös, että MRS Finderilla löydetään erilaisia testi tapauksien optimointimahdollisuuksia kuin aluksi ajateltiin.
Identifer | oai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201505291729 |
Date | 01 June 2015 |
Creators | Kallio, R. (Roope) |
Publisher | University of Oulu |
Source Sets | University of Oulu |
Language | English |
Detected Language | Finnish |
Type | info:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess, © Roope Kallio, 2015 |
Page generated in 0.0017 seconds