Szoftvertesztelés 2013. május 7..

Slides:



Advertisements
Hasonló előadás
A szabványosítás és a szabvány fogalma, feladata
Advertisements

T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
A MINŐSÉG MEGTERVEZÉSE
Projekt vezetés és kontroll – Mi történik a gépházban?
Valós idejű tesztlefedettség- monitorozás JEE környezetben Dr. Ferenc Rudolf, Szegedi Tudományegyetem Bakota Tibor, FrontEndART Szoftver Kft.
Szoftverminőség, 2010 Farkas Péter. SG - Sajátos célok  SG 1. Termék / komponens megoldás kiválasztása  SP 1.1. Alternatívák és kiválasztási kritériumok.
A szoftver minősége A szoftverfejlesztési folyamat azt igényli, hogy a fejlesztők és felhasználók ugyanazokat a minőségi jellemzőket használják a szoftver.
Projektciklus- menedzsment (PCM)
Clarity üzleti reggeli Budapest, Le Meridien február 19.
Az SAP bevezetése a Debreceni Egyetemen
Projektzárás „Komplex szervezetfejlesztési projekt megvalósítása Kaposvár Megyei Jogú Város Polgármesteri Hivatalánál” ÁROP-1.A.2/B
Rendszerfejlesztés gyakorlat - © Fülöp Lajos
Minőségbiztosítási terv
MINŐSÉGMENEDZSMENT 5. előadás PTE PMMK MÉRNÖKI MENEDZSMENT TANSZÉK 2011.
Rendszerfejlesztés.
A TANÁCSADÓ SZEREPE az EU műszaki jogi szabályozásának vállalati alkalmazásában CE jelölés és társai – a.
A webes tesztelés jövője
DOKUMENTUMKEZELÉS.
Validálás & verifikálás
Dr. Kollár Gábor vezető auditor Det Norske Veritas Magyarország
Szoftver minőség és menedzsment Mérés és elemzés Sziládi Zoltán.
Trendek a szoftveriparban: e-business és e-development Csontos Péter IQSOFT Rational e-development szakmai nap 2000 február 16.
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozási alapismeretek 9. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/
A projektmenedzsment funkciói és területei
Minőségmenedzsment 2. előadás
Funkciópont elemzés: elmélet és gyakorlat
Megvalósíthatóság és költségelemzés Készítette: Horváth László Kádár Zsolt.
Brachmann Ferenc PTE-TTK/KTK A kurzus szerepe és célja A minőségbiztosítás általános alapelveire történő folyamatos hivatkozással áttekinti a szoftverminőség.
Brachmann Ferenc PTE-TTK/KTK 2009
Szoftvertechnológia Szoftvergyártás 2..
Szoftvertechnológia Ember-gép rendszerek. Mit értünk rendszer alatt? Kapcsolódó komponensek halmaza – egy közös cél érdekében működnek együtt A rendszer.
Szoftvertechnológia Rendszertervezés.
A website teljesítményének vizsgálata, fejlesztése 1. Forrás: WebTrends Analysis Suite, Advanced Edition White Paper (
WEB MES (webes gyártásirányító rendszer) Kiss Miklós (G-5S8)
Ipari középvállalat projektvezetőjének tapasztalatai az integrált vállalatirányítási szoftver bevezetési szakaszában Projektmenedzsment Fórum A kis-
S S A D M ELEMZÉSI ÉS TERVEZÉSI MÓDSZERTAN
Projektek monitorozása. Elvek és módszerek
R EQUIREMENTS D EVELOPMENT Készítette: Devecseri Viktor.
Szervezeti viselkedés Bevezetés
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
Funkciói, feladatai és területei
Szintaktikai, szemantikai szabályok
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Rendszertervezés Alapfogalmak; Az informatikai rendszer
Kulturális Projekt Ciklus Menedzsment A kultúra gazdaságtana
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
2014. június 12. Lackó Péter Clarity
Szoftver születik Eötvös Konferencia Köllő Hanna.
A website teljesítményének vizsgálata, fejlesztése 1. Forrás: WebTrends Analysis Suite, Advanced Edition White Paper (
Programozás, programtervezés
Információs rendszer fejlesztése 1. előadás
A közszolgáltatásokra kifejlesztett általános együttműködési modell GYÁL VÁROS ÖNKORMÁNYZATÁNÁL Gyál, szeptember 30.
CMMI - VALIDÁCIÓ Suba Gergely.
Incremental change © 2013 Betyár Gábor Rendszerfejlesztés II. 3. Óra.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék R3-COP és R5-COP projekt: Környezetfüggő viselkedés tesztelése.
Projekt dokumentáció A dokumentumok között vannak a projekt irányításával összefüggő dokumentumok, és vannak műszaki dokumentumok.
Mit láthatunk a honlapon? Az előző ISO 9001 szabvány szerint kiadott tanúsítványok (várhatóan) az új ISO 9001 szabvány kiadását követő 24 hónapig.
Continuous delivery: cél a működő szoftver. Forráskód és értéke A műszaki adósság és a csődhelyzet „Kódjátszma”: irány a kiváló minőség A kód újraírásának.
Continuous delivery: cél a működő szoftver
Stipkovits István ISZ auditor SGS Hungária Kft.
2003. május 21. ÜZLETMENETFOLYTONOSSÁG ÉS KATASZTRÓFA ELHÁRÍTÁS TERVEZÉSE Jakab Péter igazgató Magyar Külkereskedelmi Bank Rt. Bankbiztonság.
PROJEKTMENEDZSMENT. Projektmenedzsment a stratégia megvalósításának eszköze. Projekt egy-egy konkrét stratégiai program vagy részprogram.
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM S zoftverfejlesztés Tanszék Programrendszerek tanúsítása – szoftverminőség mérése Dr. Gyimóthy.
KONFIGURÁCIÓKEZELÉS è A projektirányítás a költségekkel, erőforrásokkal és a felhasznált idővel foglalkozik. è A konfigurációkezelés pedig magukkal a termékekkel.
INFORMÁCIÓMENEDZSMENT Dr. Szalay Zsigmond Gábor adjunktus, intézeti tanszékvezető VEZETÉS ÉS SZERVEZÉS MSC SZAK SZENT ISTVÁN EGYETEM.
EUCIP konferencia október 20. Cséfalvay Katalin Fejlesztés (BUILD) modul.
"Ha nem tudod, hogy hová mész,
MINŐSÉG BS 4778 "Egy termék vagy szolgáltatás jellemzőinek és sajátosságainak összessége, amelyek együttesen egy adott szükséglet kielégítésére képesek".
A teljesítménymenedzsment stratégiai kérdései
Előadás másolata:

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 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

Agenda A tesztelés alapjai Tesztelés a szoftver életciklusán át 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

A tesztelés alapjai

Szoftverhibák okai: Tesztelési alapelvek 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

Miért van szükség tesztelésre? 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

A teszteléssel mérjük a szoftver minőségét 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

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

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

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

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.

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

Tesztelés a szoftver életciklusán át

Komponensteszt - Unit Test Integrációs teszt – Integration Test Tesztszintek Komponensteszt - Unit Test Integrációs teszt – Integration Test Rendszerteszt – System Test Átvételi teszt – User Acceptance Test (UAT)

A V-modell

A tesztelés jellemző tárgyai: 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

Integrációs teszt Tesztbázis: A tesztelés jellemző tárgyai: 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

A tesztelés jellemző tárgyai: 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ó

Átvételi teszt Tesztbázis: A tesztelés jellemző tárgyai: 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

Teszttípusok Funkcionális teszt Nem funkcionális teszt Functional testing Nem funkcionális teszt Non-Functional testing Strukturális teszt Structural testing Változásokhoz kapcsolódó teszt, újratesztelés és regressziós tesztelés Confirmation and regression testing Karbantartási teszt Maintenance testing

A funkcionalitások alatt azt értjük, amit „a rendszer tesz” 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

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)

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.

Ú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.

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 (Impact Analysis) 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.

Statikus technikák

Felülvizsgálat (Review) előnyei 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ó

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

Review típusok Informális felülvizsgálat Átvizsgálás Technikai felülvizsgálat Inspekció Tervezés nincs van Kick-off opcionális Egyéni felkészülés Review meeting Újradolgozás Követés

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

Teszttervezési technikák

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.

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 Use case teszt White box technikák Utasítás szintű teszt és lefedettség Döntési teszt és lefedettség Tapasztalat alapú technikák

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 Use case teszt

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ó.

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. Ekvivalencia partíciók Értékek Tesztadatok szempontjából Érvényes pozitív értékek 0<x<=1000 Érvényes ekvivalencia partíció Érvényes negatív értékek -1000<=x<0 Érvényes zéró érték x=0 Érvénytelen pozitív értékek x>1000 Érvénytelen ekvivalencia partíció Érvénytelen negatív értékek x<-1000 Valós számok 5,34 Érvénytelen karakterek efesdf

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 Bemenet Kimenet 0-1000.00 5% 1000.01-2000.00 10% 2000.01- 15%

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.

Példa határérték elemzésre Az ekvivalencia partíciónk a következő: [-100;+100] Tesztadat Intervallum Megjegyzés -101 ]-végtelen; -101] Maximum érvénytelen határérték -100 [-100;+100] Minimum érvényes határérték +100 Maximum érvényes határérték +101 [+101;+végtelen[ Minimum érvénytelen határérték

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.

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. Szabály 1 Szabály 2 Szabály 3 Szabály 4 Feltételek: Nincs hűségkártya T F Van hűségkártya Kedvezményt választ - 10000Huf feletti vásárlás Akciók: Nincs kedvezmény Van kedvezmény Hűségpont

Á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.

Példa állapot átmenet tesztre

Példa állapot átmenet tesztre Teszteset azonosító Kezdő állapot Állapotátmenet Végső állapot 1 Empty Break Broken 2 Squirt(n) Checking bottle 3 Not full 4 Full 5 Capped Sealed 6

Use Case 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.

White box technikák White box technikák Utasítás szintű teszt és lefedettség (statement coverage) Döntési teszt és lefedettség (condition coverage)

Statement- és condition coverage 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.

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

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.

Eszköztámogatás

Tesztmenedzsment Tesztmenedzsment eszközök Interfész a tesztek végrehajtásához, a hibák nyomon követéséhez és a követelmények menedzseléséhez. Támogatják a tesztelés tárgyának mennyiségi analízisét és ezekről történő jelentéskészítést. Támogatják a tesztelés tárgyának a követelmény specifikációval szemben történő nyomon követését. Követelmény menedzsment eszközök A követelmények, illetve a követelményekhez tartozó attribútumok tárolása. Egyedi azonosítókat kínálnak és támogatják a követelmények nyomon követését az egyes tesztekben. Incidens menedzsment eszközök (Hibakövető eszközök) Tárolják és menedzselik az incidensjelentéseket, pl. hibák, meghibásodások és változáskezdeményezések, a talált problémák és rendellenességek kezelését. Támogatják továbbá az incidensek életciklusának menedzselését Konfiguráció menedzsment eszközök Bár nem kifejezetten teszteszközök, de szükségesek a tesztterv és a kapcsolódó szoftverek tárolásához és verziókövetéséhez, különösen, ha a teszt egynél több hardver/szoftver környezetet (pl. operációs rendszert, fordítóprogramot, böngészőt, stb.) igényel.

Statikus teszt eszközei Felülvizsgálati eszközök (review) Támogatják a felülvizsgálati folyamatot, az ellenőrző listákat, a felülvizsgálati útmutatókat és gyakran használják a felülvizsgálati megjegyzések és jelentések, valamint a ráfordítási adatok tárolására és kommunikációjára. Támogathatják az online felülvizsgálatokat a nagy, vagy földrajzilag szétosztott csapatok részére. Statikus elemző eszközök A statikus elemző eszközök támogatják a fejlesztőket, a tesztelőket, hogy a hibákat a dinamikus teszt előtt megtalálják azáltal, hogy támogatást nyújtanak a kódolási irányelvek betartásának Modellező eszközök A modellező eszközökkel validálhatók a szoftver modelljei (pl. fizikai adatmodell egy relációs adatbázishoz)

Teszt specifikáció eszközei Műszaki teszttervező eszközök Tesztbemeneteket, vagy futtatható teszteket alakíthatnak ki a követelményekből, egy grafikus felhasználói interfészből, illetve teszt modellekből, vagy a kódból. Tesztadat előkészítő eszközök A tesztadat előkészítő eszközök adatbázisokat, fájlokat vagy adatátviteleket kezelnek a tesztek végrehajtásánál használandó tesztadatok létrehozásához, hogy az adatok anonimitásán keresztül biztosítsák a rendszer biztonságát

Teszt végrehajtás és naplózás eszközei Tesztvégrehajtási eszközök A tesztek automatikus vagy félautomatikus végrehajtását teszik lehetővé eltárolt bemenetek és elvárt eredmények segítségével, egy szkriptnyelv használatával és általában minden tesztfutást naplóznak Teszttámogató szoftverkörnyezet/egységteszt keretrendszer eszközök Elősegítheti a komponensek vagy egy rendszer részeinek tesztelését úgy, hogy szimulálja a környezetet, melyben a tesztelés tárgya futni fog. Mindezt helyettesítő objektumokkal teszik. (virtuális gépek) Teszt összehasonlító eszközök Meghatározzák a fájlok, adatbázisok vagy teszteredmények közötti különbségeket. A teszt összehasonlító eszközök általában dinamikus összehasonlító eszközöket tartalmaznak, a végrehajtás utáni összehasonlítás elvégezhető külön összehasonlító eszközzel is. Lefedettség mérő eszközök Lehetnek beavatkozók, vagy nem beavatkozók. A kód lefedettség mérő eszközök egy tesztkészlet által adott típusú kódstruktúrák végrehajtását mérik százalékosan (pl. utasítások, elágazások vagy döntések, modul- vagy függvényhívások). Biztonsági eszközök A szoftver biztonsági karakterisztikájának kiértékelésére használják. Ez magában foglalja a szoftver adatbiztonságát, adat-integritását, hitelesítését, engedélyezését, rendelkezésre állását és válaszmegtagadásait.

Teljesítmény és felügyelet eszközei Dinamikus elemző eszközök Csak a szoftver futása alatt nyilvánvalóvá váló hibákat találják meg, olyanokat, mint: időbeli függőségi viszonyok, vagy memóriaszivárgások. Általában a komponens, vagy komponens integrációs tesztnél használják, valamint köztes rétegű teszteknél. Teljesítménytesztelési/terheléses tesztelési/stressz teszt eszközök Felügyelik, hogy egy rendszer hogyan viselkedik különböző szimulált használati körülmények között majd erről jelentést készítenek. A terhelés szimulálása virtuális felhasználók létrehozásával érhető el, akik különböző tranzakciókat hajtanak végre, különböző tesztgépeken elosztva. Ezeket általában terhelés generátornak nevezik. Felügyeleti eszközök A felügyeleti eszközök folyamatosan elemzik, ellenőrzik a speciális rendszer erőforrásokat, továbbá jelentéseket készítenek róluk, illetve a lehetséges szervízelési problémáknál figyelmeztetéseket adnak.

Varga Gábor Köszönöm a figyelmet! gabor.varga@capture.hu Senior Software Test Engineer gabor.varga@capture.hu