1 / 56

Szoftvertesztelés 2013. május 7.

Szoftvertesztelés 2013. május 7. Bevezető. Jelen előadás anyaga az International Software Testing Qualifications Board (ISTQB) és a Hungarian Testing Board (HTB) által jóváhagyott és használt struktúrákat és fogalmakat tartalmazza

Télécharger la présentation

Szoftvertesztelés 2013. május 7.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Szoftvertesztelés 2013. május 7.

  2. Bevezető • Jelen előadás anyaga az International Software Testing QualificationsBoard (ISTQB) és a Hungarian Testing Board (HTB) által jóváhagyott és használt struktúrákat és fogalmakat tartalmazza • Az anyag segít megérteni a tesztelést, mint üzletágat és átfogó képet igyekszik alkotni arról, hogyan is teszteljünk éles helyzetekben

  3. Agenda • A tesztelés alapjai • Mi a tesztelés, miért jó? • Alapelvek • Alapvető folyamatok • Tesztelés a szoftver életciklusán át • Szoftverfejlesztési modellek • Tesztszintek • Teszttípusok • Karbantartási teszt • Statikus technikák • Felülvizsgálat folyamata, statikus elemzés • Teszttervezési technikák • Black box technikák • White box technikák • Empirikus tesztelés • Eszköztámogatás

  4. A tesztelés alapjai

  5. Tesztelési alapelvek • Szoftverhibák okai: • Dokumentációs hiba • Kódolási hiba • Hardver feltételek megváltozása • Környezeti viszonyok • Sugárzás • Mágneses, elektromos mező • Szennyezés

  6. Tesztelési alapelvek • Miért van szükség tesztelésre? • Használat során fellépő problémák kockázatának csökkentése • Minőségi szoftver • Megfelelés szerződésben foglalt szabályoknak, jogi előírásoknak • Megfelelés ipari szabványoknak

  7. Tesztelés és a minőség • A teszteléssel mérjük a szoftver minőségét • Megbízhatóság • Használhatóság • Hatékonyság • Karbantarthatóság • Hordozhatóság

  8. Mennyi tesztelés elegendő? • Ahhoz, hogy eldönthessük mennyi tesztelés elegendő, figyelembe kell vennünk: • A kockázati szintet • A technikai és vállalati termékek, projektek kockázatát • A projekt időre és költségvetésre vonatkozó megkötéseit

  9. Mi a tesztelés? • Téves általános felfogás : a tesztelés csak tesztek futtatásából áll, vagyis a szoftver használatát, futtatását jelenti. Ez része a tesztelésnek, de a tesztelés nem csak ebből áll !!! • Tesztelési tevékenységek a tesztfuttatás előtt és után is léteznek: • Dokumentumok felülvizsgálata (beleértve a forráskódot is) • Teszttervezés- és irányítás, • Tesztelési feltételek meghatározása • Tesztesetek tervezése és futtatása, eredmények ellenőrzése • Kilépési feltételek kiértékelése • Tesztciklus lezárása, dokumentálás

  10. Tesztelés helye az életciklusban Ötlet Definíció Tervezés Létrehozás Ellenőrzés Átadás Tesztelés

  11. Tesztelési alapelvek • 1. alapelv – Hibajelenlét kimutatása • Bár a tesztelés kimutathatja a hibák jelenlétét, de azt nem képes igazolni, hogy nincsenek hibák. • 2. alapelv – Nem lehetséges kimerítő teszt • 3. alapelv – Korai tesztelés • 4. alapelv – Hibák csoportosulása • A kiadást megelőző tesztelés során a megtalált hibák többsége néhány modulban van, vagy legalábbis ezen modulok felelősek a működési hibák többségéért. • 5. alapelv – A féregirtó paradoxon • Ha mindig ugyanazokat a teszteket hajtjuk végre, akkor az azonos tesztkészlet egy idő után nem fog új hibákat találni. • 6. alapelv – A tesztelés függ a körülményektől (körülményfüggés) • Internetbank vs tanszéki portál • 7. alapelv – A hibátlan rendszer téveszméje • A hibák megtalálása és javítása hasztalan, ha a kifejlesztett rendszer használhatatlan, és nem felel meg a felhasználók igényeinek, elvárásainak.

  12. A tesztelés folyamata Tervezés és irányítás Note: Ezek a folyamatok logikailag egymás után következnek, de a gyakorlatban legtöbbször átfedik egymást. Elemzés és műszaki tervezés Megvalósítás és végrehajtás Kilépési feltételek értékelése és jelentés Teszt lezárása

  13. Tesztelés a szoftver életciklusán át

  14. Tesztszintek • Komponensteszt - Unit Test • Integrációs teszt – Integration Test • Rendszerteszt – System Test • Átvételi teszt – UserAcceptance Test (UAT)

  15. A V-modell

  16. Komponens teszt • Tesztbázis: • Komponens követelmények • Részletes műszaki tesztterv • Kód • A tesztelés jellemző tárgyai: • Komponensek • Programok • Adatkonvertáló / migrációs programok • Adatbázis modulok

  17. Integrációs teszt • Tesztbázis: • A szoftver és a rendszer műszaki tesztterve • Architektúra • Munkafolyamatok • Használati esetek • A tesztelés jellemző tárgyai: • Alrendszerek adatbázis implementálása • Infrastruktúra • Interfészek

  18. Rendszer teszt • Tesztbázis: • Rendszer– és szoftverkövetelmény specifikáció • Használati esetek • Funkcionális specifikáció • Kockázatelemzés jelentések • A tesztelés jellemző tárgyai: • Rendszer-, felhasználói-, és működési kézikönyv • Rendszer konfiguráció

  19. Átvételi teszt • Tesztbázis: • Felhasználói követelmények • Rendszerkövetelmények • Használati esetek • Üzleti folyamatok • Kockázatelemzés jelentések • A tesztelés jellemző tárgyai: • Üzleti folyamatok teljesen integrált rendszeren • Működési és karbantartási folyamatok • Felhasználói eljárások • Sablonok • Jelentések

  20. Teszttípusok • Funkcionális teszt • Functionaltesting • Nem funkcionális teszt • Non-Functionaltesting • Strukturális teszt • Structuraltesting • Változásokhoz kapcsolódó teszt, újratesztelés és regressziós tesztelés • Confirmationand regression testing • Karbantartási teszt • Maintenancetesting

  21. Funkcionális teszt • Black box testing • A funkcionalitások alatt azt értjük, amit „a rendszer tesz” • A szoftver külső viselkedésével foglalkozik • Megfelelőség • Együttműködő készség • Biztonság • Pontosság, „jóság” • Szabványnak való megfelelés

  22. Nem funkcionális teszt • Azt teszteli, hogy a rendszer „hogyan” működik • Azokat a teszteket takarja, melyek a különböző mennyiségi mutatókkal leírható rendszer- és szoftverjellemzők méréséhez szükségesek • Teljesítmény teszt (Performance testing) • Terheléses teszt (Load testing) • Stressz teszt (Stress testing) • Használhatósági teszt (Usability testing) • Megbízhatósági teszt (Reliability testing) • Hordozhatósági teszt (Portability testing)

  23. Strukturális teszt • White box testing • A strukturális technikák legjobban a specifikáció alapú technikák után használhatók annak érdekében, hogy egy adott típusú struktúra lefedettségének elemzésével támogassák a teszt lefedettségének mérését. • A lefedettség azt mutatja meg, hogy egy tesztkészlet milyen mértékben hívott meg egy struktúrát, és ezt az értéket a lefedett elemek százalékában fejezik ki. Ha a lefedettség nem 100%, további teszteket tervezhetnek, hogy a kimaradt elemeket is teszteljék, ezzel növelve a lefedettséget.

  24. Újratesztelés és Regressziós teszt • Egy hiba felismerése és javítása után a szoftvert újra kell tesztelni, ezáltal meggyőződve arról, hogy a hiba eltűnt. Ezt hívják ellenőrző tesztnek. • A regressziós teszt egy már letesztelt program módosítása után történő ismételt tesztelése. Note: A regressziós tesztkészleteket sokszor futtatják le, és többnyire lassan fejlődnek ki, így a regressziós tesztnél fontos lehet az automatizálás.

  25. Karbantartási teszt • A karbantartási tesztet létező, működő rendszeren hajtják végre, a tesztelésre a szoftver vagy rendszer módosítása, migrációja, vagy kivonása ad okot. • Hatáselemzés (ImpactAnalysis) alatt értjük annak meghatározását, hogy a változtatások milyen befolyással lesznek a már létező rendszerre; ez segít annak eldöntésében, hogy mennyi regressziós tesztet kell végezni. Note: A karbantartási tesztet jelentősen megnehezíti, ha a specifikációk elavultak, vagy egyáltalán nem állnak rendelkezésre.

  26. Statikus technikák

  27. Mi a statikus technika? • A kód vagy a projekt dokumentum manuális vizsgálata vagy automatikus elemzése • A követelményekben található hibák javítása sokkal olcsóbb mint a későbbi fázisokban • Felülvizsgálat (Review) előnyei • Hibák korai megtalálása és javítása • Fejlesztési termelékenység javítása • Fejlesztési időtartamok csökkentése • Tesztelési költség és idő csökkentése • Teljes élettartam költségeinek csökkentése • Kevesebb hiba, jobb kommunikáció

  28. Cost to Fix A hibajavítás relatív költsége $100+ 100 … 60 $50 50 40 30 $20 20 $5 $1 10 0 Test Requirements Design Code Maintenance A hiba felfedezésének fázisa • A hibákat minél korábban fedezzük fel!

  29. Review típusok

  30. Statikus elemzés eszközökkel • A statikus elemző eszközök a programkódot (pl. vezérlési folyam és adatfolyam) valamint a generált kimenetet (mint pl. HTML vagy XML) elemzik. • A statikus elemző eszközök által felismert tipikus hibák: • meghatározatlan értékű változóra való hivatkozás • összeférhetetlen interfész modulok és komponensek között • soha nem használt változók • nem elérhető (halott) kód • hiányzó vagy hibás logika (potenciális végtelen ciklusok) • túl komplikált struktúra • programozási szabványok megsértése • biztonsági rések • szintaxis megsértése a kódban

  31. Teszttervezési technikák

  32. Teszttervezés • A teszt műszaki tervezése során a tesztesetek és tesztadatok megalkotása és meghatározása történik. • Egy teszteset a következőkből áll: • bemeneti értékek halmaza • végrehajtási előfeltételek • elvárt eredmények • végrehajtás utáni feltételek • A „Szoftverteszt Dokumentáció Szabvány” (IEEE 829) tárgyalja a (tesztelési feltételeket is tartalmazó) műszaki tesztterv specifikációk és a teszteset specifikációk tartalmát.

  33. Teszttervezési technikák kategóriái • Black box technikák • Ekvivalencia particionálás • Határérték elemzés • Döntési tábla • Állapotátmenet teszt • Usecase teszt • White box technikák • Utasítás szintű teszt és lefedettség • Döntési teszt és lefedettség • Tapasztalat alapú technikák

  34. Black box technikák • Black box technikák • Ekvivalencia particionálás • Határérték elemzés • Döntési tábla • Állapotátmenet teszt • Usecase teszt

  35. Ekvivalencia particionálás • A szoftver, vagy a rendszer bemeneteit olyan csoportokra kell osztani, melyek valószínűleg hasonlóan fognak viselkedni, így bizonyára ugyanúgy kerülnek feldolgozásra. • Ekvivalencia partíciók léteznek az érvényes és az érvénytelen adatokra is. A partíciók alkalmazhatók továbbá • bemenetekre • kimenetekre • belső értékekre • idővel kapcsolatos értékekre (pl. egy esemény előtt vagy után) • valamint interfész paraméterekre (pl. tesztelendő integrált komponensekre az integrációs teszt során). • A partíciók lefedésére tesztek tervezhetők. • A tesztelés minden szintjén alkalmazható.

  36. Példa bementi paraméterek tesztelésére Követelmény: Egy beviteli integer mező -1000 és +1000 között fogad el adatokat és megengedi a határértékeket is.

  37. Példa kimeneti paraméterek tesztelésére Követelmény: Egy banki rendszer különböző kamatot ajánl különböző feltételek teljesítése esetén. A bank elfogadja a centet is. • 5% az első 1000$ -os betétre • 10% a következő 1000$-ra • 15% a további betétekre

  38. Határérték elemzés • Az ekvivalencia partíciók határain kisebb az esély a helyes viselkedésre, mint a partíción belül, ezért ott a tesztek nagy eséllyel találnak hibákat. Egy partíció maximális és minimális értékei a határértékek. • Az érvényes partíciók határértéke érvényes határérték; míg az érvénytelen partíciók határa az érvénytelen határérték. • A tesztek tervezhetők úgy, hogy lefedjék az érvényes és az érvénytelen határértékeket is. A tesztesetek tervezésénél minden határértékhez választani kell egy tesztet. • A határérték elemzés minden tesztelési szinten alkalmazható. • Viszonylag egyszerű az alkalmazása, hibatalálási képessége magas. A részletes specifikációk hasznosak az érdekes határértékek megállapításakor. • Ezt a technikát sokszor az ekvivalencia particionálás kiterjesztésének tekintik.

  39. Példa határérték elemzésre Az ekvivalencia partíciónk a következő: [-100;+100]

  40. Döntési tábla • A döntési táblák jól használhatók logikai feltételeket tartalmazó rendszerkövetelmények felvételére és a belső rendszerfelépítés dokumentálására. Alkalmazhatók a rendszer által megvalósított komplex üzleti szabályok rögzítésére. • A bemeneti feltételek és műveletek leggyakrabban úgy vannak megadva, hogy csak igaz vagy hamis értékek lehetnek (Boolean). • A döntési tábla tartalmaz kiváltó okokat, valamint a feltételek kombinációihoz tartozó eredményeket. • Előnye: a feltételek olyan kombinációit hozzák létre, melyeket a tesztelés során esetleg nem érintenének. • Minden olyan helyzetben alkalmazható, ahol a szoftver által végrehajtott művelet különböző logikai döntéseken alapul.

  41. Példa döntési táblára Egy áruház hűségrendszert kínál minden vásárlójának. A hűségkártya tulajdonosok kedvezményeket kapnak minden vásárlásukhoz, vagy hűségpontokat kérnek kártyájukra amely voucher-re váltható. Akiknek nincs hűségkártyája, csak abban az esetben kap kedvezményt, ha 10000HUF felett vásárol, más esetben nem jár kedvezmény.

  42. Állapot átmenet teszt • A rendszer az adott jellemzőitől vagy a megelőző eseményektől (az állapottól) függően különböző válaszokat adhat. Ebben az esetben a rendszer helyzetét állapotátmenet diagrammal lehet bemutatni. Ennek segítségével a tesztelő vizsgálhatja a szoftvert a különböző állapotaiban, az állapotok közötti átmeneteket, az állapotváltozásokat kiváltó bemeneteket és eseményeket valamint a műveleteket, melyek az átmenetek következményei. • A tesztelt rendszer vagy objektum állapotai elkülöníthetők, beazonosíthatók és véges számúak. • Az állapotátmenet-tesztet gyakran használják a beágyazott szoftvereknél és általánosságban a műszaki automatizálásban.

  43. Példa állapot átmenet tesztre

  44. Példa állapot átmenet tesztre

  45. UseCase teszt • A teszteket használati esetekből kiindulva határozhatják meg. Egy használati eset a szereplők – ide tartoznak a felhasználók és a rendszer – közötti kölcsönhatásokat írja le, melyek eredményeként egy a rendszer felhasználója számára értékes eredmény jön létre. • Minden használati eset rendelkezik előfeltételekkel, melyeknek teljesülniük kell a használati eset sikeres működéséhez. • Minden használati eset végrehajtás utáni feltételekkel ér véget, ezek a használati eset lezárása után megfigyelhető eredményeket és a rendszer végső állapotát tartalmazzák. • A használati esetnek általában van egy fő (vagyis legvalószínűbb) forgatókönyve, valamint esetenként alternatív mellékágai. • A használati esetek leírják az „eljárási folyamatot” a rendszer valószínűsíthető használata alapján, így a használati esetekből származtatott tesztesetek a leghasznosabbak a rendszer valós használata folyamán fellépő hibák felderítésére. • A használati esetek (gyakran forgatókönyvekként említik őket) nagyon hasznosak átvételi tesztek tervezésére, amelyekben az ügyfél/felhasználó részt vesz. Egyébként a gyakorlatban a legelterjettebb módszer.

  46. White box technikák • White box technikák • Utasítás szintű teszt és lefedettség (statementcoverage) • Döntési teszt és lefedettség (conditioncoverage)

  47. Statement- és conditioncoverage • Utasítás szintű teszt és lefedettség • A komponenstesztnél az utasítás szintű lefedettség annak értékelése, hogy valamely teszteset készlet a futtatható utasítások hány százalékát érintette. • Az utasítás szintű tesztnél a származtatott tesztesetek meghatározott utasításokat hajtanak végre, általában az utasítás lefedettség növelése érdekében. • Döntési teszt és lefedettség • A döntési lefedettség – amely összefüggésben áll az elágazás teszttel – annak értékelése, hogy valamely teszteset készlet a döntési eredmények (pl. egy If utasítás Igaz vagy Hamis lehetőségei) hány százalékát hajtotta végre. • A döntési tesztnél a származtatott tesztesetek speciális döntési eredményeket hajtanak végre, általában a döntési lefedettség növelése érdekében. • A döntési lefedettséget a megtervezett, illetve végrehajtott döntési eredmények száma és a tesztelendő kódban található összes lehetséges döntési eredmény hányadosa határozza meg. • A döntési lefedettség magasabb rendű az utasítás-lefedettségnél: 100%-os döntési lefedettség esetén garantált a 100%-os utasítás-lefedettség, aminek fordítottja nem igaz.

  48. Példa If ((temperature < 0) or (temperature > 100) { alert(„DANGER”); if ((speed < 100 ) and (load <= 50) { speed = 50; } } else { check = false; } A 100% osconditioncoverage-hez (és egyben a statementcoveraghez is) 2 teszteset elegendő!

  49. Tapasztalat alapú technikák • A tesztek a tesztelő szaktudásából és intuíciójából, valamint a hasonló alkalmazásokkal és technológiákkal kapcsolatos tapasztalataiból származnak. • Ha a szisztematikus technikák kiegészítéseként alkalmazzák őket, akkor ezek a technikák hasznosak lehetnek olyan speciális tesztek meghatározásánál, melyeket formális technikákkal nehéz elérni • Hatékonysága nagy eltéréseket mutathat, mivel függ a tesztelők tapasztalatától. • Hibasejtés: A tesztelők általában a tapasztalat alapján előre sejtik a hibákat. • A felderítő teszt: Ez a megközelítés akkor különösen hasznos, ha kevés, vagy hiányos specifikáció áll rendelkezésre, kevés az idő, vagy ha más, formálisabb tesztet szándékoznak bővíteni, kiegészíteni.

  50. Eszköztámogatás

More Related