Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Lasilaatikkotestauksen toinen lähestymistapa. ● Siinäkin käytetään vuoverkkoa. ● Tarkastelun kohteena ovat moduulin muuttujat (myös sen käyttämät globaalit.

Samankaltaiset esitykset


Esitys aiheesta: "Lasilaatikkotestauksen toinen lähestymistapa. ● Siinäkin käytetään vuoverkkoa. ● Tarkastelun kohteena ovat moduulin muuttujat (myös sen käyttämät globaalit."— Esityksen transkriptio:

1 Lasilaatikkotestauksen toinen lähestymistapa. ● Siinäkin käytetään vuoverkkoa. ● Tarkastelun kohteena ovat moduulin muuttujat (myös sen käyttämät globaalit muuttujat). ● Erityisen kiinnostavaa olio-ohjelmille. ● Olion atribuuttien välittämä tietovuo metodinkutsujen välillä. Jokainen muuttujan käsittelytapaus luokitellaan seuraavasti: ● määrittely (definition, D): muuttujalle annetaan arvo (alustuksella, sijoituksella tai syöttöoperaatiolla) ● käyttö eli lukeminen (use, U): muuttujan arvoa käytetään mutta ei muuteta ● predikaattikäyttö (predicate use, P-use): käytetään haarautumisehdossa (tai silmukan ohjausmuuttujana) ● laskentakäyttö (computational use, C-use): käytetään muihin tarkoituksiin (laskentaan, tulostukseen) ● tuhoaminen (kill, K): muuttuja tuhotaan tai sen arvo tehdään määrittelemättömäksi. Tietovuohon perustuva yksikkötestaus (1/6)

2 Mahdolliset peräkkäisten tapauslajien järjestykset: ● DD – lievästi epäilyttävä (edellistä arvoa ei käytetä mihinkään) ● DK – samoin epäilyttävä ● DU – perustapaus (jota varten muuttujat ovat olemassa) ● UD, UU, UK – normaalia ● KD – normaalia ● KK – kummallinen (ei mahdollinenkaan kaikissa kielissä) ● KU – virheellinen! Lisäksi muuttujaan kohdistuvan ensimmäisen tapauksen pitää olla D; viimeinen tapaus on luonnollisimmin K. ● Joissakin kielissä kaikki paikalliset muuttujat alustetaan automaattisesti. ● Globaalit muuttujat erikoistapauksia. Vuokaavion solmut (segmentit): ● Luetteloidaan jokaisen muuttujan käsittelyt kussakin segmentissä. ● Tapausjärjestys segmentin sisällä on täysin staattinen. ● Segmenttien välillä kiinnostaa polulla aiemman segmentin viimeinen ja myöhemmän ensimmäinen tapaus (muuttujittain). ● Kaikki staattisessa analyysissä todettavat polut eivät kuitenkaan ole välttämättä mahdollisia. Tietovuohon perustuva yksikkötestaus (2/6)

3 DU-polku (DU path) (jonkin muuttujan suhteen): ● Ensimmäisessä segmentissä on D-tapaus (määrittely). ● Viimeisessä segmentissä on U-tapaus (käyttö). ● P-käyttö tulkitaan yleensä niin, että se ei tapahdu itse predikaattisolmussa vaan siitä lähtevissä kaarissa. ● Välillä ei ole yhtään D- eikä K-tapausta. ● Siis ei välttämättä koko aliohjelman alusta loppuun. ● DU-polku voi olla toisen DU-polun osapolku. ● Kattavuuden kannalta vain maksimaaliset polut ovat kiinnostavia. ● Silmukoita ei kuitenkaan käydä DU-polulla läpi moneen kertaan. Tietovuopohjaisessa testauksessa pyritään kattamaan DU-polkuja. ● Koko polulla aliohjelman alusta loppuun voidaan joutua käymään silmukka läpi kahdesti. Yleisiä kattavuustavoitteita: ● Vahvin: kaikki DU-polut (ADUP). ● Ei kuitenkaan vaadi niin paljon testitapauksia kuin voisi luulla, koska sama testi kattaa yleensä useita muuttujia, määrittelyjä ja käyttöjä. ● Kaikki käytöt (AU): ainakin yksi DU-polku jokaisesta määrittelystä sen jokaiseen käyttöön. Tietovuohon perustuva yksikkötestaus (3/6)

4 Kaikki P-käytöt (APU): ainakin yksi DU-polku jokaisesta määrittelystä sen jokaiseen predikaattikäyttöön. Em. tulkinnalla takaa haarakattavuuden. ● Kaikki C-käytöt (ACU): vastaavasti laskentakäytöille. ● Ei takaa haarakattavuutta. ● Kaikki P-käytöt ja jotkin C-käytöt (APU+C): kuten APU, mutta lisäksi ainakin yksi DU-polku C-käyttöön jokaisesta sellaisesta määrittelystä, jolla ei ole yhtään P-käyttöä. ● Kaikki C-käytöt ja jotkin P-käytöt (ACU+P): vastaavasti kuin APU+C. ● Kaikki määritelmät (AD): ainakin yksi DU-polku jokaisesta määrittelystä. Luokanlaajuisessa vuoverkossa kiinnostavia ovat sellaiset DU-polut, jotka ylittävät metodinrajat. Polun herkistäminen tapahtuu tietysti samoin kuin ohjausvuohon perustuvassa testauksessa. ● DU-polut ovat kuitenkin melko helppoja, varsinkin silmukkojen käsittely. Tietovuohon perustuva yksikkötestaus (4/6)

5 Tietovuohon perustuva yksikkötestaus (5/6) Muutamien testausstrategioiden (kattavuusmittojen) vahvuussuhteita ● Nuoli A:sta B:hen: A on (aidosti) vahvempi kuin B. ● Jos A:n ja B:n välillä ei ole polkua, ne ovat "vertailukelvottomia".

6 Tietovuohon perustuva yksikkötestaus (6/6) Tietovuotestauksen ongelmia Taulukoista ei yleensä tiedetä staattisesti, mitä alkiota missäkin käsitellään. ● Voidaan valita turhia polkuja (luultavasti vain pieni lisärasite). ● Mahdollinenkin tietovuo voi jäädä toteutumatta. Osoitin- ja viitemuuttujat aiheuttavat paljon suurempia ongelmia. ● Mm. useimmissa oliokielissä kaikki muuttujat (perustyyppejä lukuunottamatta) ovat viitteitä. ● On otettava huomioon sekä itse muuttujat että niiden kulloinkin osoittamat oliot (laajassa merkityksessä). ● Samannimisyys (aliasing): useat muuttujat viittaavat samaan olioon. ● Nollaosoitin on hankala erikoistapaus. ● Ei yleensä käsitellä testauskirjoissa! Varsinaisten olioiden käsittely on suureksi osaksi metodien kutsumista, ei yksinkertaista kirjoittamista ja lukemista. Työkalutuki on melko huono. ● Uudempi lähestymistapa kuin ohjausvuotestaus.


Lataa ppt "Lasilaatikkotestauksen toinen lähestymistapa. ● Siinäkin käytetään vuoverkkoa. ● Tarkastelun kohteena ovat moduulin muuttujat (myös sen käyttämät globaalit."

Samankaltaiset esitykset


Iklan oleh Google