Řízení kvality SW produktů Jiří Sochor, Jaroslav Ráček 1

Podobné dokumenty
Testování SW produktů. Jiří Sochor, Jaroslav Ráček 1

Kvalita SW produktů. Jiří Sochor, Jaroslav Ráček 1

Chyby software. J. Sochor, J. Ráček 1

Software generické produkty - smluvní, zakázkové produkty - - udržovatelnost spolehlivost efektivita použitelnost specifikace

12 Zajištění kvality programového vybavení

12 Zajištění kvality programového vybavení

Kvalita procesu vývoje SW. Jaroslav Žáček

ZMĚNA ČESKÉHO OBRANNÉHO STANDARDU. AAP-48, Ed. B, version 1

Vývoj řízený testy Test Driven Development

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Procesní řízení. Hlavní zásady a praxe dodavatele Komix

CASE. Jaroslav Žáček

A7B36SI2 Tematický okruh SI11 Revidoval: Martin Kvetko

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

14 Úvod do plánování projektu Řízení projektu

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

14 Úvod do plánování projektu Řízení projektu

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

CASE nástroje. Jaroslav Žáček

Kvalita procesu vývoje (SW) Jaroslav Žáček

Analýza a Návrh. Analýza

Vývoj informačních systémů. Obecně o IS

Nebojte se přiznat, že potřebujete SQA

Zajištění kvality programového vybavení - testování

Modelování procesů s využitím MS Visio.

Náklady na odstranění chyby stoupají, v čím pozdější fázi životního cyklu aplikace je chyba nalezena.

5 Požadavky a jejich specifikace

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

TÉMATICKÝ OKRUH Softwarové inženýrství

Jsme firma, která už působí na trhu několik let. Za tu dobu jsme nasbírali

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

- kvalitní dokumentace k SW je vyžadovaným STANDARDEM. vzájemná provázanost SW (IS) ve velkých společnostech. aktuální přehledná srozumitelná

Testování softwaru. 10. dubna Bořek Zelinka

5 Požadavky a jejich specifikace

Design systému. Komponentová versus procesní architektura

Řízení SW projektů. Lekce 3. Projektové procesy a znalostní oblasti. přednáška pro studenty FJFI ČVUT. zimní semestr 2012

KIV/ASWI 2007/2008 Techniky zajištění kvality software. Kvalita software Techniky včasné detekce

Zlepšování softwarových procesů a sladění se strategií

10 Metody a metodologie strukturované analýzy

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Účel, použití, analýza rizik Milan Turinský Únor 2018

11 Návrh programového vybavení

Architektura softwarových systémů

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

End-to-end testování. 26. dubna Bořek Zelinka

2 Životní cyklus programového díla

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Zuzana Šochová MFF Modelování a realizace softwarových projektů

CMMI ení zralosti. Viktor Mulač. Business consultant. itsmf

Testování Java EE aplikací Petr Adámek

CMMI-DEV v.1.3 PA Integrated Project Management

Profilová část maturitní zkoušky 2017/2018

Quality assurance a testování

PLM VDM. Lístek k úspěšné implementaci

Architektury Informačních systémů. Jaroslav Žáček

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

CMMI-DEV v.1.3 PA Configuration management

Vliv podrobnosti definice procesu a úrovně CMM na charakteristiky procesu

EXTRAKT z technické normy ISO

Analytická specifikace a její zpracování

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

Architektury Informačních systémů. Jaroslav Žáček

Honeywell & Masarykova univerzita v Brně

Vysoká škola ekonomická v Praze

Aplikace IS, outsourcing, systémová integrace. Jaroslav Žáček

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

SOFTWAROVÉ INŽENÝRSTVÍ

Programování II. Modularita 2017/18

Implementace SAP. Předběžná kalkulace 8 školitelů, 500 Kč/hod Kč

Citace článku. Alena Buchalcevová, Jan Kučera. Katedra informačních technologií VŠE Praha nám. W.Churchilla 4, Praha 3

Řízení SW projektů. Lekce 1 Základní pojmy a jejich vztahy. přednáška pro studenty FJFI ČVUT. zimní semestr 2012

Profilová část maturitní zkoušky 2013/2014

Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu

zswi/pc-testování.d 10. května

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Procesní dokumentace Process Management. Pavel Čejka

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Plant-wide Automation

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Odhady, nabídky, měření a historie

MANAŽERSKÉ INFORMAČNÍ SYSTÉMY

Řízení reálných projektů, agilní metodiky

2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st

Inovace bakalářského studijního oboru Aplikovaná chemie

Základy analýzy. autor. Jan Novotný února 2007

Specifikace předmětu plnění Datová tržiště

Java/QE Akademie - Osnova

Teorie systémů TES 7. Výrobní informační systémy

Semestrální práce ke kurzu 4IT421 Zlepšování procesů budování IS Semestr LS 2014/2015

01 Teoretické disciplíny systémové vědy

Analýza a design na reálném projektu. Richard Michalský

SOFTWAROVÉ INŽENÝRSTVÍ 1

MANAŽERSKÉ INFORMAČNÍ SYSTÉMY

Účel, použití, analýza rizik Milan Turinský Únor 2019

ČESKÁ TECHNICKÁ NORMA

Nástroje pro průběžnou integraci a testování

Transkript:

Řízení kvality SW produktů 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 1

Klasický pohled na kvalitu SW Každý program dělá něco správně; nemusí však dělat to, co chceme, aby dělal. Kvalita: Dodržení explicitně stanovených funkčních a výkonových požadavků, dodržení explicitně dokumentovaných vývojových standardů a implicitních charakteristik, které jsou očekávány u profesionálně vyrobeného software. Aspekty kvality: - odchylky od požadavků na software - nedodržení standardů - odchylky od běžných zvyklostí (implicitních požadavků) 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 2

Nový pohled - spojité chápání kvality 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 3

Kvalita - IEEE Std. 610.12-1990 Stupeň, do jaké míry systém, komponenta nebo proces splňuje specifikované požadavky. Stupeň, do jaké míry systém, komponenta nebo proces splňuje zákazníkovy nebo uživatelovy potřeby nebo jeho očekávání. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 4

Faktory kvality software Přímo měřitelné faktory - #chyb/kloc/čas Pouze nepřímo měřitelné faktory - použitelnost, udržovatelnost Kategorie faktorů kvality: - operační charakteristiky - schopnost akceptovat změny - adaptibilita na nové prostředí 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 5

Faktory kvality - McCall 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 6

Faktory kvality - McCall 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 7

Relativní cena odstranění závady Zdroj: Barry W. Boehm, 1981, COCOMO 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 8

IBM ortogonální klasifikace defektů (ODC) Funkce - chyba ovlivňující schopnosti, rozhraní uživatelů, rozhraní výrobku, rozhraní s HW architekturou nebo globální datovou strukturou. Rozhraní - chyba při interakci s ostatními komponentami nebo ovladači přes volání, makra, řídící bloky nebo seznamy parametrů. Ověřování - chyba v logice programu, která selže při validaci dat a hodnot před tím, než jsou použity. Přiřazení - chyba při inicializaci datové struktury nebo bloku kódu. Časování/serializace - chyba, která zahrnuje časování sdílených a RT prostředků. Sestavení/balení/spojování - chyba související s problémy s repozitory projektu, změnami vedení, nebo správou verzí. Dokumentace - chyba, která ovlivňuje publikace a návody pro údržbu. Algoritmus - chyba, která se týká efektivity nebo správnosti algoritmu nebo datové struktury, ne však jejich návrhu. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 9

Typ defektu a asociace s etapou Typ defektu funkce rozhraní ověřování přiřazení časování/serializace sestavení/balení/spojování dokumentace algoritmus Vývojová etapa návrh návrh na nízké úrovni návrh na nízké úrovni nebo kód kód návrh na nízké úrovni knihovní nástroje publikace návrh na nízké úrovni Chillarege et al 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 10

Funkční selhání podle etapy Chillarege et al 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 11

Rozložení druhů chyb při testování Chillarege et al 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 12

SQA - Software Quality Assurance 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 13

Produkty podle etap Possible Deliverables by Phase Concept Document Statement of Work (SOW) Project Charter RFP & Proposal Software Concept Requirements Document (Software Requirements Specification) Work Breakdown Structure (WBS) Requirements Functional Specification ( Top Level Design Specification) Entity Relationship Diagram Data Flow Diagram Project Development Plan (Software Development Plan ) Baseline Project Plan Quality Assurance Plan Configuration Management Plan Risk Management Plan Analysis Integration Plan Detailed SQA Test Plan SQA Test Cases Design Coding and Debugging Detailed Design Specification Object Diagrams Detailed Data Model Systems Testing Coding Standards Working Code Unit Tests Acceptance Test Procedures Tested Application Maintenance Specification Deployed Application User Documentation Training Plan Deployment & Maintenance 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 14

Přínos SQA Etapa Cena nalezení a opravy Požadavky 0.75 Návrh 1.0 Kódování 1.5 Testování 3.0 Systémové testy 10.0 Provoz 60-100.0 Pozn.: Cena normalizovaná vzhledem k ceně v etapě návrhu 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 15

Přezkoušení SW Méně formální Více formální Konverzace Přezkoušení mezi spolupracovníky Neformální prezentace Formální prezentace Prohlídka Recenze, inspekce V literatuře je argumentováno (např. Pressman), že efektivita roste se zvyšující se formálností. Probíhá v období tvorby kódu, odstranění nalezených nedostatků je relativně levné. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 16

Typy formálního přezkoušení TYP METODY TYPICKÉ CÍLE TYPICKÉ VLASTNOSTI Prohlídky Odborné recenze Inspekce Minimální náročnost Školení vývojářů Krátká doba Zjištění požadavků Rozlišení nejednoznačností Školení Účinné a efektivní zjištění a odstranění všech defektů Malá/žádná příprava Neformální proces Žádné měření Žádné FTR (Formal Technical Review) Formální proces Představení autora Rozsáhlá diskuze Formální proces Kontrolní seznam Měření Fáze přezkoušení 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 17

Cíle formálního přezkoušení Odhalit chyby ve funkci, logice a implementaci software. Ověřit, že zkoumaná položka splňuje požadavky (odpovídá požadavkům). Zajistit, že položka byla prezentována s použitím předdefinovaných standardů. Zajistit jednotný vývoj. Zvýšit řiditelnost projektů. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 18

Co je testování? Testování je proces spuštění programu s cílem nalézt chyby. Dobrý testovací případ má vysokou pravděpodobnost nalezení dosud nenalezené chyby. Úspěšný test je takový, který odhalí dosud neodhalenou chybu. - Myers 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 19

V - procesní model Project Requirements and Planning Non-functional Requirements Load & Performance Test Production, Operations, and Maintenance Product Requirements and Specification Analysis User Interface Design Usability Test System Testing and Acceptance Testing High-Level Desig Integration and Testing Detailed Design Unit Testing Coding 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 20

V - procesní model 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 21

Co testování ukazuje? Testování nemůže ukázat nepřítomnost defektů, může pouze ukázat, že v softwaru jsou chyby. Testování také ukazuje funkce a výkon. A je také ukazatelem kvality software. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 22

Verifikace &Validace Každý inženýrský výrobek může být testován dvěma způsoby: test proti specifikovaným funkcím = Validace Dělat správné věci test proti vnitřní činnosti = Verifikace Dělat věci správně 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 23

Testování v týmu Testování je destruktivní činnost! Programátor není dobrým testerem vlastního výtvoru. Detailní znalost struktury programu usnadňuje hledání a opravu chyb. Je nutná spolupráce dvou nezávislých, organizačně samostatných týmů. Tým kvality Realizační tým 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 24

Černé a bílé skříňky FUNKCE - test činnosti každé funkce - test ČERNÉ SKŘÍŇKY VNITŘNÍ PRÁCE - test, zda všechny motory pracují - test BÍLÉ SKŘÍŇKY 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 25

Testování bílá skříňka Zohledňuje strukturu programu Pokrývá provedené příkazy cesty průchodu kódem 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 26

Testování bílá skříňka 1. výpočet cyklomatické složitosti: počet rozhodnutí + 1 (predikátové uzly) nebo počet ploch (oblastí) nebo hrany uzly + 2 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 27

Testování bílá skříňka 1 2. Nalezneme nezávislé cesty. 4 2 3 5 6 7 8 Protože cyklomat. složitost = 4 existují 4 nezávislé cesty: cesta 1: 1,2,3,6,7,8 cesta 2: 1,2,3,5,7,8 cesta 3: 1,2,4,7,8 cesta 4: 1,2,4,7,1,2,4,...7,8 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 28

Testování jednotek, modulů Typ testování bílá skříňka - někdy ale jako černá skříňka Kdo testuje jednotky? - vývojáři - testy jednotek jsou programovány stejný jazyk jako moduly alt.název Testovací drivery Individuální testy mohou být seskupeny - Kolekce testů (Test suites) Kdy se testují jednotky? - postupně během vývoje - po dokončení individuálních modulů 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 29

Integrace & Testování Vývoj/integrace/testování - nejčastější místo, kde dochází k překrývání aktivit Někdy je integrace/testování považováno za jednu etapu Postupně propojuje funkcionalitu QA tým pracuje souběžně s vývojovým týmem 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 30

Integrační postupy Shora dolů Nejprve je implementováno jádro (kostra) systému. Zkombinováno do minimální skořápky systému. Pro doplnění neúplných částí se použijí protézy nahrazované postupně aktuálními moduly. Zdola nahoru Začne s individuálními moduly a sestavuje zdola. Individuální jednotky (po testování jednotek) jsou kombinovány do subsystémů. Subsystémy jsou kombinovány do celku. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 31

Testování shora-dolů, zdola-nahoru Shora-dolů (TDT): použití stubs (pahýly, protézy) - jednoduché náhražkové objekty se shodným rozhraním. Zdola-nahoru(BUT): klasický testovací proces s nadřazenými testovacími objekty - drivers. Testování shora-dolů odhaluje chyby analýzy a návrhu, je v souladu s prototypováním. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 32

Integrační testování A B C D Testování modulů A C B D Integrační testování Kde je chyba? Inkrementální integrace a testování 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 33

Klasifikace metrik Metriky produktu - Explicitní výsledky vývoje SW - Kód, výstupy, moduly, dokumentace Metriky procesu - Činnosti spojený s vývojem SW Metriky zdrojů - Zdroje (vstupy) procesu vývoje SW - Hardware, znalosti, lidé 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 34

Měření složitosti LOC velikost kódu je funkcí složitosti SW Závisí na programovacím jazyce a schopnostech programátorů Halstead s Software Science n 1 : počet odlišných operátorů n 2 : počet odlišných operandů N 1 : počet všech operátorů N 2 : počet všech operandů 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 35

Příklad if (k < 2) { if (k > 3) x = x*k; } Odlišné operátory: if ( ) { } > < = * ; Odlišné operandy: k 2 3 x n 1 = 10 n 2 = 4 N 1 = 13 N 2 = 7 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 36

Halsteadovy metriky Délka: N = N 1 + N 2 Slovník: n = n 1 + n 2 Odhadnutá délka: Ñ = n 1 log 2 n 1 + n 2 log 2 n 2 - Odhad pro dobře strukturované programy Poměr čistoty: PR = Ñ / N 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 37

Cyklomatická složitost Množina nezávislých cest grafem V(G) = E N + 2 - E je počet hran - N je počet uzlů V(G) = P + 1 - P je počet větvení (na 2 cesty) 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 38

Cyklomatická složitost - Flow Graph 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 39

Cyklomatická složitost V(G) je počet oblastí grafu. Počet oblastí roste s počtem větvení a cyklů. Kvantitativní metrika obtížnosti testování. Indikátor spolehlivosti. Praxe ukazuje, že hodnota V(G) by neměla překročit 10, jinak bude testování velmi složité. 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 40

Metriky návrhu Složitost struktur Složitost dat Složitost systému Složitost struktur S(i) modulu i - S(i) = f out2 (i) - f out (i) počet přímo podřízených (volaných) modulů 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 41

Metriky návrhu Složitost dat D(i) - D(i) = v(i) / [ f out (i) +1] - v(i) množství vstupů a výstupů modulu i Složitost systému C(i) - C(i) = S(i) + D(i) 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 42

Připojení modulů Datové a řídící toky - d i - vstupní datové toky do modulu - c i - vstupní řídící toky do modulu - d o - výstupní datové toky z modulu - c o - výstupní řídící toky z modulu Globální struktury - g d - globální datové proměnné - g c - globální řídící proměnné Okolí - w - počet volaných modulů - r - počet modulů, které volají modul 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 43

Metriky propojení M c = k/m (k =1) m = d i + ac i + d o + bc o + g d + cg c + w + r a, b, c, k jsou nastaveny na základě aktuálních dat (zkušeností) 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 44

Globální hodnocení kvality výroby SW Vyspělost organizace: model CMM Systémy kvality: norma ISO 9001 Ocenění kvality: cena MBNQA 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 45

CMM - Capability Maturity Model také SEI model (Software Engineering Institute, Carnegie-Mellon Univ. ), revize 1993 Úroveň 1: Výchozí Chaotický proces, nepředvídatelná cena, plán a kvalita. Úroveň 2: Opakovatelný Intuitivní; cena a kvalita jsou vysoce proměnlivé, plán je pod vědomou kontrolou, neformální metody a procedury. Klíčové prvky : - řízené požadavky - plánování softwarového projektu - řízené subkontrakty na software - zajištění kvality software - řízení softwarových konfigurací 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 46

CMM - Capability Maturity Model Úroveň 3: Definovaný Orientován na kvalitu; spolehlivé ceny a plány, zlepšující se, ale dosud nepředvídatelný přínos (výkon) systému kvality. Klíčové prvky: - zlepšování organizačního procesu - definice organizačního procesu - školicí program - řízení integrovaného software - aplikace inženýrských metod u softwarového produktu - koordinace mezi pracovními skupinami - detailní prověrky a oponentury 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 47

CMM - Capability Maturity Model Úroveň 4: Řízený Kvantitativní; promyšlená statisticky řízená kvalita produktu. Klíčové prvky: - měření a kvantitativní řízení procesu výroby - řízení kvality Úroveň 5: Optimalizující Kvantitativní základ pro kontinuální investice směřující k automatizaci a zlepšení výrobního procesu. Klíčové prvky: - prevence chyb - inovace technologie - řízené změny výrobních procesů 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 48

Vztah mezi MBNQA a ISO 9001 MBNQA ISO 2. 12. 2013 Jiří Sochor, Jaroslav Ráček 49