Szoftvertesztelés - Bevezető



Hasonló dokumentumok
Programtervezés. Dr. Iványi Péter

Verifikáció és validáció Általános bevezető

Szoftverminőségbiztosítás

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

A TESZTELÉS ALAPJAI A TESZTELÉS ALAPVETŐ FOLYAMATA A TESZTELÉS PSZICHOLÓGIÁJA A TESZTELÉS ETIKAI KÓDEXE

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Algoritmizálás, adatmodellezés tanítása 6. előadás

MIÉRT KELL TESZTELNI?

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK A TESZT FEJLESZTÉSI FOLYAMATA A TESZTTERVEZÉSI TECHNIKÁK KATEGÓRIÁI

cím: 6725 Szeged Bokor u. 18. telefon: Innomedio Kft Scrum módszertan 1.0 Verzió Érvényes: április 1-től

TESZTMENEDZSMENT TESZTELŐ SZERVEZET TESZTTERVEZÉS ÉS BECSLÉS

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK STRUKTÚRA ALAPÚ, VAGY FEHÉRDOBOZ TECHNIKÁK TAPASZTALAT ALAPÚ TECHNIKÁK

ORVOSTECHNIKAI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AKTÍV ORVOSI ESZKÖZÖK FEJLESZTÉSE - PEMS V&V

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

IT Factory. Kiss László

Orvostechnikai eszközök gyártmányfejlesztése Aktív orvosi eszközök fejlesztése PEMS V&V. Nagy Katinka

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK

Követelmény alapú minőségbiztosítás az államigazgatásban

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Teszt terv Új funkció implementációja meglévı alkalmazásba

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

Szoftverminőségbiztosítás

Programrendszerek tanúsítása szoftverminőség mérése

OO rendszerek jellemzői

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Specifikáció alapú teszttervezési módszerek

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

Specifikáció alapú teszttervezési módszerek

Statikus technikák: A szoftver átvizsgálása. Statikus technikák: A szoftver átvizsgálása

ESZKÖZTÁMOGATÁS A TESZTELÉSBEN

Projektterv. Projekt Neve: Ingatlan Bérbeadási Nyilvántartás Csoport: nmi

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Rubin SPIRIT TEST. Domino net provisioning tesztelése esettanulmány 1.0. Készítette: Dobó Arnold Jóváhagyta: Varga József. Rubin Informatikai Zrt.

Minőségmenedzsment és Informatika Test-Driven Development

Az átállás tervezésének feladatai. Ugrás a mélyvízbe! avagy Felkészülés a rendszer átadására Raffai Mária, dr. A szervezet-átalakítás feladatai

Mesterséges intelligencia alapú regressziós tesztelés

Integráci. ciós s tesztek. ciós s tesztek (folyt.) Integration Level Testing (ILT) Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

7. Verifikáci. ció. Ennek része a hagyományos értelemben vett szoftvertesztelés is. A szoftver verifikálásának,

Szoftvertesztelés Alapok

Szoftvertechnológia 10. előadás. Verifikáció és validáció. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Digitális eszközök típusai

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

Webprogramozás szakkör

Szoftverminőségbiztosítás

Információs rendszerek Információsrendszer-fejlesztés

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Agilis projektmenedzsment

Statikus technikák és Műszaki teszttervezési technikák

Kompetens szoftvertesztelés a gyakorlatban II. zárthelyi dolgozat

Név: Neptun kód: Pontszám:

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Információ menedzsment

Modell alapú tesztelés: célok és lehetőségek

Bevezetés. Dr. Iványi Péter

Automatikus tesztgenerálás modell ellenőrző segítségével

FMEA tréning OKTATÁSI SEGÉDLET

Fejlesztési projektek menedzselése IBM Rational CLM termékekkel. Ker-Soft Kft. Kaszás Orsolya - üzleti tanácsadó

1. SZÁMÚ FÜGGELÉK MŰSZAKI LEÍRÁS

A dokumentáció felépítése

Információtartalom vázlata

TESZTELÉS A SZOFTVER ÉLETCIKLUSÁN ÁT SZOFTVERFEJLESZTÉSI MODELLEK

Test Management Strategy Document. Deák Kristóf Lauly Viktória Kunigunda Csiki Norbert Szabó Zoltán

HELYES zárójelentése) Válasz sikeresnek vagy sikertelennek nyilvánítja a projektet HIBAS

SZOFTVER- MINŐSÉGBIZTOSÍTÁS

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK TESZTELÉSI TECHNIKÁK KIVÁLASZTÁSA

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

Összefoglaló jelentés

A DevOps-kultúra eszközei

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

A szoftver tesztelés alapjai

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Test plan Okoshaz projekt

A szoftvertesztelés fontossága, formái, eredménye, unit tesztelés a gyakorlatban

Szoftverminőségbiztosítás

6. Tesztelés (Verification and Validation Testing)

Szkriptnyelvek. 1. UNIX shell

Test Strategy. Tartalomjegyzék

Podoski Péter és Zabb László

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Tesztelési szintek Tesztautomatizálás

Minőségmenedzsment: azért felel, hogy a projekt teljesítse az elvárt feladatát és a követelményeket.

30 MB INFORMATIKAI PROJEKTELLENŐR

Programozási nyelvek (ADA)

Szoftverminőségbiztosítás

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Szoftverminőségbiztosítás

Kivételkezelés. Tesztelés, hibakeresés, kivételkezelés. Programozás II. előadás. Szénási Sándor

A klubnap fő témája: Alapozás

FORRÁSKÓD KÖVETŐ RENDSZEREK. Rajacsics Tamás BME AAIT

Projekt siker és felelősség

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék

Átírás:

Szoftvertesztelés - Bevezető Csirmaz Péter Livesoft Kft. 2010.03.13.

Bevezetés A szoftvertesztelés egy rendszer vagy program kontrollált körülmények melletti futtatása, és az eredmények kiértékelése. A hagyományos megközelítés szerint a tesztelés célja az, hogy a fejlesztés során létrejövő hibákat minél korábban felfedezze, és ezzel csökkentse azok kijavításának költségeit. Emellett lehetőséget nyújt, hogy leellenőrizzük, hogy az adott szoftver: megfelel a felé támasztott követelményeknek, mind üzleti, mind technológiai szempontból megfelelően működik Implementálható ugyanazokkal a jellemzőkkel (pl: telepítés után is megfelelően viselkedik) A klasszikus szoftvertesztelés célja a szoftverhibák felfedezése. A fejlesztésnek minél korábbi szakaszában derül fény egy hibára, annál olcsóbb annak korrigálása. Újabb keletű elvárás a szoftverminőség mérése. Főleg az Agile Programming módszertanával futó projektek esetén a tesztelés a kockázatok becslését és menedzselését is magába foglalja A tesztelési folyamat egyszerűsített modelljében a megrendelő felállítja a szoftverrel szemben támasztott elvárásait. Ezen elvárásokat a megrendelő megbízottja tolmácsolja a fejlesztők felé a fejlesztő csapat vezető programozójának műszaki segítségével. Ezen munka eredménye a megvalósíthatósági tanulmány, mely az adott üzleti problémára javasol műszaki megoldásokat. A létrejövő programot elkészültekor fejlesztők átadják a tesztelő csapatnak. Az átadásban segíthet az tesztkörnyezet felállításáért felelős csapat és az új szoftver régi környezethez illesztéséért felelős csapat. Az átadás része a funkcionális specifikáció és a technikai specifikáció. A tesztelő csapat az átadott dokumentáció alapján elkészíti a tesztelési tervezetet, valamint becslést ad a tesztelés idő- és munkaerőigényéről. Ezek elfogadása esetén létrehozza a teszt szkripteket, melyek az adott és elvárt mértékben fedik le a tesztelendő funkcionalitásokat. A teszt szkriptek vagy más néven tesztesetek összessége a test suite, ezek összessége a tesztkampány (test campaign).

Hibafeltárás Minél körültekintőbb a tesztelés, annál valószínűbb, hogy a programban nem marad hiba. Tehát célszerű végigjárni az összes lehetséges végrehajtási utat, amit a programfutás során előfordulhat. Ha ezt nem tesszük meg, akkor az esetleges hiba csak a program használata során derül ki. A hibák feltárásának módszerei: Statikus tesztelés Statikus tesztelés aklamával a programot nem futtatjuk, hanem a forráskódot elemezzük és a tervezés során írt algoritmussal összehasonlítjuk. Ellenőrizzük, hogy szintaktikusan és szemantikusan helyes-e a program. Tehát a programozási nyelv helyesírási és nyelvtani szabályait betartottuk-e. Számos fejlesztőkörnyezet, illetve a fordítóprogram ezeket észreveszi, az okot és a hiba helyét többnyire jelzi is, tehát viszonylag egyszerű a javítás. Itt beleakadhatunk olyan hibákba is, mint például egy kezdőérték nélküli változó, vagy típuskeveredés, esetleg egy végtelen ciklus. Dinamikus tesztelés A programot működés közben vizsgáljuk. Erre az esetre két módszert ismerünk. Az egyik a fekete doboz módszer. Ekkor a forráskód ismerete nélkül dolgozunk. Mivel a legtöbb esetben minden adatot nem lehet letesztelni, ezért teszt csoportokat hozunk létre, ebbe beleértve olyan csoportokat is, melyek bemenetei érvénytelenek. Ezt követi a tesztelés. Mindemellett itt történik a határeseteket elemzése. A másik eljárás a fehér doboz módszer. Ennél a variációnál ismerjük a kódot. A teszteseteket a program struktúrája alapján választjuk, annak tudatában, hogy nem lehet minden végrehajtási sorrendre kipróbálni. Kipróbálási stratégiák: Utasítás lefedés: minden utasítást legalább egyszer hajtsunk végre. Feltétel lefedés: minden feltétel legyen legalább egyszer igaz, illetve hamis. Részfeltétel lefedés: minden részfeltétel legyen legalább egyszer igaz, illetve hamis. Speciális tesztelés A biztonsági szempontok a speciális esetek közé tartoznak. Itt teszteljük, hogy a nem érvényes adatok ki tudják-e akasztani a programot, és azt is, hogy elegendő ellenőrzésünk

van-e. A hatékonyságnál a futási időt és a memóriában elfoglalt helyet vizsgáljuk. Mennyiség tesztnél a szélsőséges adat mennyiséggel teszteljük a programot. Stressz tesztnél kritikus adatokat használunk. A funkció tesztnél pedig, azt, hogy minden funkciót az előírásoknak megfelelően tud-e a programunk. Ide tartozik még annak ellenőrzése is, hogy felhasználóbarát-e az alkalmazás. Érdemes beleépíteni, egy súgó menüpontot is a programba, hogy ne csak a dokumentációban kaphasson választ a felhasználó a felmerülő kérdéseire. A tesztelésnek egy módja az is, hogy megkérünk egy barátot vagy családtagot, hogy próbálja ki a programunk, hiszen mi, készítők akaratlanul is kikerüljük a hibalehetőségeket. Aki először látja a programot, könnyen bele tud botlani annak gyenge pontjaiba. A tesztelés módszereiről, az eddigi elhangzottak mellett, érdemes még konkrét programozási nyelv, és fejlesztői környezet mellett is beszélni, hiszen a nyelvek is, és a fejlesztői környezetek is igen különböző módszereket kínálnak számunkra. Módszertan A tesztelési módszertan a vállalaton belüli tesztelési folyamatok definícióját tartalmazza, vagyis azt, hogy a tesztelés hogyan és milyen formában kapcsolódik a fejlesztési folyamatba. A módszertan segít abban, hogy a jól bevált dolgokat alkalmazzuk a következő projektekben is. Így ha valamelyik munkában új, működő megoldást vezettünk be, akkor azt célszerű beleírni a módszertanba is, hogy majd a többi projektnél is megfelelően tudjuk alkalmazni. Amennyiben több projekt fut egyszerre, akkor nagy segítségünkre válhat egy jól kialakított módszertan. Mivel ez biztosítja majd a projektek közötti könnyebb átjárhatóságot. A projekttagokat igény szerint lehet egyik munkáról a másikra csoportosítani. Az "üzleti ismeretek" betanulási ideje természetesen megmarad, de a "technikai ismeretek" betanulási ideje 0-ra csökken, mivel ugyanazokkal az eszközökkel, környezetekkel, folyamatokkal, sablonokkal kell dolgozniuk a munkatársaknak. Általános nézet, hogy a tesztvezetők, tesztelési szakértők készítik el a módszertant. Ez többnyire igaz is, azzal a kitétellel, hogy a szakértőknek együtt kell dolgozniuk a projektvezetőkkel, menedzsmenttel. Így nagyobb a valószínűsége, hogy a vállalat számára használható, a cég működését legjobban lefedő módszertant tudnak létrehozni.

A tesztkörnyezet előnyei A tesztelők és a fejlesztők munkája teljesen elkülönül egymástól. Ha ugyanazon a környezeten kell dolgozniuk a tesztelőknek és a fejlesztőknek, a tesztelők munkája gyakorlatilag semmit sem ér. Időpocséklás az egész, mivel mialatt tesztel, azalatt megváltozhat alatta az alkalmazás. Így az addig lefuttatott tesztjei érvényüket vesztik, a tesztelő kezdheti elölről a munkáját. Folyamatosan kontroll alatt lehet tartani a tesztkörnyezetre kikerült alkalmazás verziókat. Így a hibák rögzítésénél pontosan meg lehet jelölni, melyik verzió, melyik funkciójánál találtuk meg a hibát. Az új verziókat a fejlesztőknek illik dokumentálni, hogy abban milyen új funkciók kerültek bele, illetve milyen eddig ismert hibákat javítottak ki. Ez segít a tesztelőknek az adott verzió feladataira koncentrálni. A verzió számot ismerve a fejlesztőnek pofon egyszerű lesz ismét előidézni a hibát, megtalálni az okát és kijavítani. Ha egy környezeten van a fejlesztés és tesztelés, akkor az egyes verziók nem tudnak elkülönülni egymástól, egyes hibák okát nem lehet majd kideríteni. (Megjegyzem pont azok a hibák a legrosszabbak, amelyek nem reprodukálhatóak, látszólag kijavultak.) A tesztkörnyezetre célszerű stabil verziókat kitenni, hogy amíg a fejlesztés dolgozik, addig a tesztelők is tudjanak haladni a munkájukkal. Így ha a következő verzió instabil, kritikus hibákkal van teli, akkor a fejlesztés egyszerűen tovább dolgozhat anélkül, hogy a tesztelést nagymértékben hátráltatná a feladataiban. (Általában az szokott előfordulni, hogy az egyes verziókat idő hiányában nem tudják teljesen leellenőrizni a tesztelők, az új verzió már készen van, a fejlesztők már tesztelésre akarják adni. Egy hiba kijavítása legtöbbször kevesebb időbe telik, mint a teljes körű tesztelése, ellenőrzése.) Nem utolsó sorban a tesztadatok is tiszták maradhatnak. Míg a fejlesztők tesztelnek a saját adataikkal a fejlesztő környezeten, addig a tesztelők sokkal életszerűbb adatokkal dolgozhatnak. Akár az éles környezetről lehet adatokat migrálni, ezáltal is precízebb tesztelést elérni. Azt már le sem merem írni, hogy igazából több tesztkörnyezetet is lehetne egymás mellett üzemeltetni. Egyiken integrációs tesztek folyhatnak, másikon funkcionális, harmadikon terheléses, stb.

Fogalmak Végül álljon itt egy szószedet (a wikipédiáról) hogy az angol terminológiában az egyes fogalmak mit is jelölnek: business A szoftvert megrendelő szervezet business analyst, BA A megrendelő elvárásait közvetítő megbízott business requirements A megfogalmazott elvárások Software Quality Assurance, SQA Szoftverminőség-biztosítás test requirements A tesztelendő funkcionalitások listája test coverage Funkcionalitás tesztekkel való lefedésének mértéke test plan Előzetes tesztelési terv a megfelelő test coverage elérése érdekében test scenario Egy alternatív tesztelési módszertan, a scenario testing esetében és csak ott hasonló szerepet tölt be, mint a test suite. test script Ezt a kifejezést helytelenül használják az automated test case helyett. A scripted testing ellentéte nem a manual testing, hanem az exlporatory. A test script a test case szinonímája. test case Egy elvárás egy adott részének működését ellenőrző dokumentum. Nagyon pontosan leírt feltételek és inputok mellett nagyon pontosan leírt funkcionalitást és outputot vár az ellenőrzött szoftvertől. test suite Egy adott funkcionalitást leíró test case-ek összessége a test suite. validation

verification fault failure defect bug Ellenőrzés: "you built the right product" tehát a specifikáció tényleg a megrendelő elvárásait tartalmazza Ellenőrzés: "you built the product right" tehát a programozó a specifikáció szerint írta meg a szoftvert Programozási hiba, mely funkcionális hibával nem jár. Programozási hiba, mely a funkcionalitásra hatással van. Tesztelő által észlelt failure, programozó által vissza nem igazolt Defect, mely a programozó szerint is az Források: http://hu.wikipedia.org/wiki/szoftvertesztel%c3%a9s http://teszteles.blog.hu/