Unit Teszt Tóth Zsolt Miskolci Egyetem
2013
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
1 / 22
Tartalomjegyzék
1
Bevezetés
2
Unit Teszt
3
Példa
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
2 / 22
Szoftvertesztelés
A szoftverfejlesztés része Célja: I I I I I
Hibák jelzése Olcsóbb hibajavítás Megfelelo˝ muködés ˝ igazolása Megrendelo˝ elvárásainak megfelel? A specifikációnak megfelel?
Fo˝ csoportok I I
Fekete dobozos teszt (Black–Box) (specifikáció alapján) Fehér dobozos teszt(White–Box) (forráskód alapján)
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
3 / 22
Black–Box
Specifikáció alapján történik A forráskód nem ismert Adott bemenetre várt kimenet Kapott és elvárt eredmény összehasonlítása Programozási versenyek
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
4 / 22
White–Box
Kódsor Elágazás Forráskód ismert
Ciklus
Strukturális tesztelés
Metódus
Kód egyes részeit teszteli
Osztály Funkció Modul
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
5 / 22
Tesztelés Szintjei
Komponensteszt 1
Komponensteszt
2
Integrációs teszt
3
Rendszerteszt
4
Átvételi teszt
Csak egyes komponensek tesztelése ˝ Komponens megfeleloen muködik ˝ e? Részei I I
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
Unit teszt Modulteszt
2013
6 / 22
Tesztelés Szintjei
Integrációs Teszt Több jól muköd ˝ o˝ komponens Átvételi Teszt Komponensek Felhasználók végzik együttmuködése ˝ Kész rendszer Rendszerteszt Végso˝ teszt Minden komponens együttes tesztelése
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
7 / 22
Statikus Technikák
Kód átvizsgálása
˝ Automatizált elemzok
Hatékony
Gyors
˝ Idoigényes
Szoftver eszköz
Szakérto˝
Forráskód elemzés
Szakterületi, programozási ismeretek
Inicializálás
Átvizsgáló csapat
Interface hibák
Tóth Zsolt (Miskolci Egyetem)
Vezérlési hibák
Unit Teszt
2013
8 / 22
Tartalomjegyzék
1
Bevezetés
2
Unit Teszt
3
Példa
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
9 / 22
Unit Teszt
Dinamikus tesztelési technika Komponensteszt része
Könnyen implementálható, futtatható
Egyes osztályok, modulok együttes tesztelése Legkisebb tesztelési egység. Általános
Miden metódushoz legalább egy Unit teszt Automatizált
Java → JUnit
Tóth Zsolt (Miskolci Egyetem)
IDE támogatás
Unit Teszt
2013
10 / 22
Unit Teszt
Visual Studio Beépített automatizmusok Osztályok és metódusaik tesztelése A teszt külön projekt Solution része Csak publikus osztályokat lehet tesztelni
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
11 / 22
Tesztosztály
Teszteseteket fog össze
Osztály tesztelése
Inicializálás [TestInitialize]
Egységbezárás
˝ fut le Teszteseteket elott egyszer
Adott osztályhoz tartozó tesztek
Megszüntetés [TestCleanUp]
[TestClass]
Tóth Zsolt (Miskolci Egyetem)
Teszt esetek után fut le
Unit Teszt
2013
12 / 22
Teszteset
Tesztelést végzo˝ metódus
[TestMethod] public void TestMethod() Egy metódust – Több tesztelo˝ { metódus . Követelmények: . I [TestMethod] . I void visszatérési érték } Egy teszteset
I
Üres paraméterlista
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
13 / 22
AAA Minta //arrange double r1 = 1.0; double area1 = Arrange, Act, Assert r1*r1*Math.PI; Circle c1 = new Unit tesztek általános felépítése Circle(new 1 Arrange: Értékek, adatok Point(0.0,0.0),r1); beállítása, inicializálása ami //act kell az adott tesztesethez. double resultArea = 2 Act: Tesztelt metódus c1.Area(); meghívása. //assert 3 Assert: Viselkedés Assert.AreEqual( ˝ ellenorzése. area1, resultArea, 0.0001); Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
14 / 22
Assert
Microsoft.VisualStudio.TestTools.UnitTesting Osztály Statikus metódusok I I I I I I
AreEqual AreNotEqual AreSame AreNotSame Fail ...
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
15 / 22
Assert
Különbözo˝ Típusok Fo˝ paraméterek 1 2 3 4
Várt érték Kapott érték Üzenet szövege Üzenet paraméterei
Egyes típusoknál turés ˝ I I
Double (delta) String (ignoreCase)
Tóth Zsolt (Miskolci Egyetem)
public static void AreEqual( Object expected, Object actual, string message, params Object[] parameters )
Unit Teszt
2013
16 / 22
Tartalomjegyzék
1
Bevezetés
2
Unit Teszt
3
Példa
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
17 / 22
Példa
Készítsen egy kör osztályt. A Kört az (x,y) koordinátái és a sugara határozza meg. A körnek legyen területet lekérdezo˝ Area és kerületet visszaadó Cricurmference metódusa.
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
18 / 22
Tesztesetek
Test / New Test... Basic Unit Test Wizard Windows I I I I I
Test View Test List Editor Test Results Test Runs ...
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
19 / 22
Unit Test Wizard
1. ábra
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
20 / 22
Teszteset [TestMethod] public void TestMethodArea() { double r1 = 1; double r2 = 4.5; double area1 = r1*r1*Math.PI; double area2 = r2*r2*Math.PI; Circle c1 = new Circle(new Point(0.0,0.0),r1); Circle c2 = new Circle(new Point(0.0,0.0),r2); Assert.AreEqual(area1,c1.Area(),0.0001); Assert.AreEqual(area2,c2.Area(),0.0001); } Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
21 / 22
Tesztesetek Futtatása Test View Test Results
Visual Studio 2010 esetén bug–os lehet!
Zöld X
A Test Pending marad!
Piros X
Unit Test Session muködik! ˝
Tóth Zsolt (Miskolci Egyetem)
Unit Teszt
2013
22 / 22