Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van

Hasonló előadás


Az előadások a következő témára: "Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van"— Előadás másolata:

1 Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van
9. Enterprise Developer Meetup Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van Honfi Dávid

2 Az előadás fókusza modul B modul A modul C service
Egységtesztelés (unit testing) modul B modul A modul C service Struktúra alapú tesztelés (kód ismert)

3 Forráskód alapú teszttervezés
public int M1(int a, int b) { if(a == 0) { Console.WriteLine(ERROR_MSG); return -1; } if(b > a) return b*a+5; else return (a+b)/2; Fedjük le az összes utasítást! a==0 a!=0 && b>a a!=0 && b<=a a==0 a!=0 && b>a a!=0 & b<=a a 2 1 b

4 teszteset = bemenet + elvárt kimenet
Mi az, ami kimaradt? teszteset = bemenet + elvárt kimenet Mi az, amit észre lehet venni? Alap, általános hibák (pl. nem várt kivételek) Ellenőrzések megsértése (pl. assertionök) Eltérés már meglévő kimenettől Regressziós teszt: korábbi változatok összevetése Más implementációk összehasonlítása

5 Kód alapú tesztgenerálás automatizálása
Jól láthatóan automatizálható (kódbejárás) ’70-es évek óta módszerek (pl. szimbolikus végrehajtás) DE: számítási igények + egyéb kihívások Napjainkban válik alkalmazhatóvá Újabb és újabb módszerek Meglévő technikák vegyítése Fejlett számítási algoritmusok

6 Eszközök .NET Java JavaScript: Jalangi C: KLEE (Cloud9)
Microsoft IntelliTest (a.k.a. Pex) Microsoft SAGE Java NASA Symbolic PathFinder CATG JavaScript: Jalangi C: KLEE (Cloud9)

7 Microsoft Research IntelliTest

8 Microsoft IntelliTest
Egység-tesztelés Struktúra alapú teszt Szimbolikus végrehajtás Parametrikus egységtesztek modul A Tesztbemenetek, tesztesetek Pex

9 Az IntelliTest alapvető használata
DEMO 1. Az IntelliTest alapvető használata

10 Konkrét bemeneti értékek
A Pex engine részletei Szimbolikus végrehajtás Végrehajtás Forráskód a,b a:=2; b:=3 Konkrét bemeneti értékek Szimbolikus változók a!=0 && b>a Kényszer-megoldó Kényszerek

11 Az IntelliTest használata komplex esetekben
DEMO 2. Az IntelliTest használata komplex esetekben

12 Services (UserServices)
DEMO 2. architektúra Felhasználót hozunk létre BLL (UserManager) DAL (DBExecutor) Services (UserServices) Még nem implementált Cloudban futó

13 Tesztgenerálás vizualizációja
DEMO 3. Tesztgenerálás vizualizációja

14 Mit várhatunk a hasonló eszközöktől?
Kiértékeléshez megfelelő „experiment” kell SF100 benchmark: 100 projekt SourceForge-ról 50% körüli elágazás lefedettség Nagy szórás Saját tapasztalatok Modellező eszköz: 99% blokklefedettség, jól alkalmazható CMS rendszer: Komplex rendszerekhez iteratív használat Használhatósági kiértékelés? Ipari méretű problémákra hogyan használható? Mérnökök hogyan alkalmazzák? Demóból mit hagytam ki?

15 IntelliTest Összefoglalás Struktúra alapú tesztelés automatizálható
Sok eszköz létezik, különböző hatékonysággal Microsoft IntelliTest Parametrizált egységteszt Szimbolikus végrehajtás Több használati eset Bemenetek generálása Tesztgenerálás Használhatóságuk kiértékelése nehéz kérdés IntelliTest


Letölteni ppt "Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van"

Hasonló előadás


Google Hirdetések