Szoftverminőségbiztosítás



Hasonló dokumentumok
Kód átvizsgálás. Irodalom. (Code review) code review,smart Bear Inc., ! Jason Cohen: Best kept secrets of peer

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

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

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

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

STATIKUS TECHNIKÁK A STATIKUS TECHNIKÁK ÉS A TESZTFOLYAMAT A FELÜLVIZSGÁLAT FOLYAMATA STATIKUS ELEMZÉS ESZKÖZÖKKEL

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

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

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Szoftver újrafelhasználás

ESZKÖZTÁMOGATÁS A TESZTELÉSBEN

Szoftver értékelés és karbantartás

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

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Szoftver karbantartás

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

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

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

Funkciópont elemzés: elmélet és gyakorlat

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

MIÉRT KELL TESZTELNI?

Tartalom A verifikáció és validáció tervezése Szoftver vizsgálatok Automatizált statikus analízis Cleanroom szoftverfejlesztés

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

IRÁNYÍTÓ RENDSZER IRÁNYÍTANDÓ FOLYAMAT. Biztonsági funkciók Biztonsági integritás. Normál működés. Hibák elleni védettség Saját (belső) biztonság

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

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

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

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

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

Információ menedzsment

Szoftver karbantartási lépések ellenőrzése

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

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

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

Menetrendkezelő Rendszer

Programozás 6. Dr. Iványi Péter

Szoftverminőségbiztosítás

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Mapping Sequencing Reads to a Reference Genome

Szoftverminőségbiztosítás

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Kommunikációs rendszerek teljesítőképesség-vizsgálata

Szoftver architektúra, Architektúrális tervezés

Szoftvergyártás: gyártásvezérlés kód-figyeléssel

Pénzügyi algoritmusok

IRÁNYTŰ A SZABÁLYTENGERBEN

A szoftverellenőrzés szerepe

Nagy bonyolultságú rendszerek fejlesztőeszközei

Projectvezetők képességei

A fejlesztési szabványok szerepe a szoftverellenőrzésben

Részletes tervek ellenőrzése

Fejlesztés kockázati alapokon 2.

Szoftverminőségbiztosítás

BASH script programozás II. Vezérlési szerkezetek

(Teszt)automatizálás. Bevezető

Szoftverminőségbiztosítás

Programozás II. 2. Dr. Iványi Péter

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

30 MB INFORMATIKAI PROJEKTELLENŐR

Dr. BALOGH ALBERT: MEGBÍZHATÓSÁGI ÉS KOCKÁZATKEZELÉSI SZAKKIFEJEZÉSEK FELÜLVIZSGÁLATÁNAK HELYZETE

Minőségbiztosítás gyógyszer és növényvédő szer vizsgáló laboratóriumokban

Code review és continous integration toolok BME-MIT

IT Factory. Kiss László

Üzleti architektúra menedzsment, a digitális integrált irányítási rendszer

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

UML (Unified Modelling Language)

Az Open Data jogi háttere. Dr. Telek Eszter

Biztonsági folyamatirányító. rendszerek szoftvere

Programozás I gyakorlat. 10. Stringek, mutatók

Programozás alapjai 9.Gy: Struktúra 2.

JAVA webes alkalmazások

Socket programozás Példák

Struktúra alapú teszttervezési módszerek

Bevezetés a programozásba

Website review acci.hu

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)

Szoftver tesztelés a gyakorlatban 2

Szolgáltatás Orientált Architektúra a MAVIR-nál

Belső ellenőrzés és compliance. szolgáltatások. Cover. KPMG.hu

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

Mobil Informatikai Rendszerek

A 9001:2015 a kockázatközpontú megközelítést követi

Széchenyi István Egyetem

Vállalatirányítási rendszerek

Termékhasználat. Helyes helytelen termékhasználat. Felhasználók. Ergonómiai hagyományok. Az ergonómia integrálása a termékfejlesztés folyamatába

Több app. Egy kódbázis

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

Új kompakt X20 vezérlő integrált I/O pontokkal

Átírás:

NGB_IN003_1 SZE 2014-15/2 (6) Szoftverminőségbiztosítás Statikus tesztelés, Szoftver/kód felülvizsgálat

Műszaki teszttervezés Szoftver tesztelési technikák, megközelítések életciklus különböző fázisaiban eltérő hibadetektálási képesség eltérő hatékonyság Kategóriák Dinamikus tesztelés (kód végrehajtásával) Statikus tesztelés (kód végrehajtása nélkül) Egymást kiegészítő módszerek

Statikus tesztelés Kód és egyéb szoftver munkatermékek (artefact) ellenőrzésére Detektálható hibák fajtái: szabálytól (szabványtól) való eltérés követelmény hiányosságok inkonzisztens interfész specifikációk nehezen karbantartható részek azonosítása Inkább alkalmas tévedések (fault) mint meghibásodások (failure) kimutatására.

Statikus tesztelési módszerek Statikus elemzés adatfolyam vezérlési folyam Informális/formális felülvizsgálat (review) Átvizsgálás (walktrough) Technikai felülvizsgálat Inspekció (inspection)

Statikus elemzés (pl.) Mi a probléma ezzel a kóddal? 1 #include <stdio.h> 2 #include <string.h> 3 4 unsigned a[100] = {0}; 5 6 int main() 7 { 8 char buf[200]; 9 unsigned n = 0; 10 11 while( fgets( buf, 200, stdin ) ) 12 { 13 if( n < 100 ) a[n++] = strlen(buf); 14 } 15 while( --n >= 0 ) 16 { 17 printf( "%d\n", a[n] ); 18 } 19 return 0; 20 } Lint output: Module: bug568.cpp _ while( --n >= 0 ) bug568.cpp(15) : Warning 685: Relational operator '>=' always evaluates to 'true' bug568.cpp(15) : Warning 568: non-negative quantity is never less than zero _ printf( "%d\n", a[n] ); bug568.cpp(17) : Info 817: Conceivably negative subscript (-1) in operator '[' [Reference: file bug568.cpp: lines 9, 15, 17]

Felülvizsgálatok célja Jobb minőségű kód jobban karbantartható Kevesebb hiba a kódban rövidebb tesztelés Kóddal kapcsolatos kommunikáció javítása Kezdő programozók képzése

Felülvizsgálatok a fejlesztési folyamatban Kódolás Felülvizsg. Dinamikus tesztelés Hiba bevitel Hiba eltávolítás Hiba eltávolítás

Felülvizsgálati feladatok Magasabb szintű dokumentumok (pl. design dok.) vizsgálata Standardoknak megfelelőség vizsgálata (pl. coding standard-nek) Interfész konzisztencia vizsgálata Felhasználhatóság ellenőrzése (pl. tesztelhetőség, karbantarthatóság, biztonság)

Formális felülvizsgálatok fázisai Tervezés Kezdő lépések Felkészülés Felülvizsgálat Átdolgozás Ellenőrzés

Felülvizsgálati folyamat Tervezés Fájlok előkészítése Résztvevők meghívása Átvizsgálás Hibakeresés Megvitatás Lezárás Fájlok verzió kezelése Átdolgozás Hibajavítás Javítások érvényesítése

Felülvizsgálati szereplők Moderátor felülvizsgálati folyamat levezetése Szerző a munkatermék szerzője: hibák megértése, javítása Felülvizsgálók domén ismeretek, különböző nézőpontok Menedzser ütemezés, időbeosztás, szervezés (Jegyzőkönyvező)

Felülvizsgálatok típusai: átvizsgálás általános egyetértés kialakítása szerző vezeti lépésenkénti bemutatás a projekt résztvevőknek információ gyűjtés, megosztás (tudástranszfer) követelmények specifikálása use case-ek tisztázása

Felülvizsgálatok típusai: techn. felülvizsgálat dokumentum technikai tartalmával kapcsolatos konszenzus elérése kevésbé formális mint egy inspekció egyenrangú szereplők technikai koncepciók alternatívák értékelése következetes felhasználás és ábrázolás biztosítása formális eszközök alkalmazása (ellenőrzőlista, hibanapló)

Felülvizsgálatok típusai: inspekció a legformálisabb fekülvizsgálat (ellenőrzőlisták, szabályok) független csoportok végzik meghatározott szerepkörök felkészülés előzi meg szigorú naplózás hiba okok felderítése mérhető adatok gyűjtése

Felülvizsgálatok típusai: egyenrangú felülvizsgálat fejlesztő kollégák végzik fő cél a hiba megtalálás javítási javaslatok különböző szintű formalitás ("váll feletti" átvizsgálás.. formális peer-review)

A sikeresség tényezői profi szaktekintély mint irányító fontos munkatermékek felülvizsgálata (kockázat) explicit tervezés és nyomkövetés résztvevők képzése személyeket érintő kérdések kezelése szabályok követése, de egyszerű folyamat megfelelő eszközök alkalmazása

Kódolvasás (codereading, code review) Kódhibák korai és gyors megtalálása Kollaboratív tevékenység Elérhető, hatékony módszer könnyű súlyú módszerek támogató eszközök

A kód olvasása, megértése Kezdeti áttekintés kódsorok 80%-a header scanning 4-5 soros koncentrált vizsgálat Back-tracks deklarációk ciklusok

A kód olvasása, megértése (folyt.)

Az átvizsgálás kauzális modellje Külső tényezők 77% Külső tényezők 57% Olvasási idő 35% Hibaszám 23% 8% Kódméret

Best Practices for Peer Code R Hiba találat (sűrűség) / kódméret Figure 1: Defect density dramatically decreases

So how fast is too fast? Figure 2 shows the answer: reviewing faster tha in effectiveness. And at rates above 1000 LOC/hour, you can probably co Hiba találat (sűrűség) / átvizsg. sebesség the code at all. Figure 2: Inspection effectiveness falls off when

ically had not been studied before, so we tested it during the study at Cisco. that authors should annotate their source code before the review begins. We invented Hiba találat (sűrűség) / felkészülés vior pattern we measured during the study, exhibited by about 15% of the reviews. rough the changes, showing which files to look at first and defending the reason and cation. These e, but rather s. uthor has to uring the himself e the review w itself more ss should yield bugs remain. paration have ws without eory to at if, when the

Szociális hatások Ego effektus hatás a fejlesztési stílusra Kölcsönös tanulás reviewer is! Szisztematikus személyes fejlődés Sértődések, Big Brother effektus Tudatosítani: minél több hiba kiderül, annál jobb

Kód felülvizsgálati technikák Formális felülvizsgálat Váll feletti felülvizsgálat E-mailben átküldéses felülvizsgálat Eszközzel támogatott felülvizsgálat Páros programozás

Formális felülvizsgálat Tervezés Nyitó meeting Felülvizsgálati meetingek Átdolgozás Verifikálási meeting Lezárás Követő meetingek felülvizsgálati eljárás javítása

Váll feletti felülvizsgálat Előkészítés Felülvizsgálat fejlesztőé a vezető szerep hibák feljegyzése Átdolgozás Lezárás

E-mailes felülvizsgálat Kód elérhetővé tétele automatizált folyamat (SCM) reviewerek értesítése Átvizsgálás egyéni értékelés kérdéses helyzetek feloldása Átdolgozás követhető változtatások a fejlesztők részéről Lezárás

Eszközzel támogatott felülvizsgálat Automatizált fájl kigyűjtés Kombinált megjelenítés Változások (delta) megjelenítése Megyjegyzések, threaded kommunikáció Hiba követés (bug tracking) Automatizált metrika gyűjtés kloc/h hiba találat/h hiba/kloc Integrálás IDE-kkel

Objektum orientált technikák Ellenőrző listás átvizsgálás hibamodell alapú ellenőrzés Szisztematikus átvizsgálás osztály hierarchia alkalmas részének átvizsgálása (előkészítés) Use-case átvizsgálás átvizsgálás kód felhasználás alapján

Könnyű súlyú felülvizsgálat Review előnyök megtartása, ráfordítás csökkentése Workflow integrálás Speciális eszköz támogatás felülvizsgálati szabályok betartása metrika gyűjtés jelentés generálás tool integrálás

Könnyű súlyú felülvizsgálat (folyt.) Forrás kód előkészítés egyszerűsítése Felülvizsgálati folyamat nyomonkövetése Javítások nyomonkövetése Közvetlenül elérhető metrikák Térben és időben elosztott átvizsgálás

Speciális eszközök Code Collaborator

Speciális eszközök (folyt.) Code Collaborator