Karol Rástočný karol.rastocny@stuba.sk Testovanie softvéru Karol Rástočný karol.rastocny@stuba.sk 15.4.2019.

Slides:



Advertisements
Podobné prezentácie
Vkladanie diakritiky s využitím štatistickej analýzy textu
Advertisements

Vyhľadávanie informáci
Centrálny Dátový Archív
Osnova prednášky Synchronizácia v Jave
Využívanie metódy meraní ložísk u výťahoch
Agilné plánovanie Techniky a princípy plánovania v Scrum Frameworku
Algorithmic Chemistry in Genetic Programming Informatics and Information Technologies Student Research Conference, 2006 Vojtech Szöcs Vedúci projektu:
Ďalšie sekvenčné obvody
OBJAVOVANIE VZOROV POHĽADU PRI NAVIGAČNÝCH ÚLOHÁCH NA WEBE
7., 8. Signalizácia realizovaná LED - diódou
3D Technológie Michal Kubaľa III.A.
Základné ukazovatele vývoja národného hospodárstva
ŠTATISTICKÁ INDUKCIA.
Školiteľ: Ing. Helena Fidlerová, PhD.
MANAŽMENT ĽUDSKÝCH ZDROJOV
Riešenie krízových situácií
Spracovanie postupnosti pohľadu pravdepodobnostnými modelmi
COMPANY PRESENTATION COMPETENT ENGINEERING FOR YOUR BUSINESS SUCCESS.
Market – trh Ing – dej, činnosť
Vedúci práce: RNDr. Peter Gurský, PhD. Autor: Patrik Sedlák
Podmienky súladu žiadosti s princípom 3D
Ústav výrobných technológií
Metódy inžinierskej práce Prednáška 11: Projekty v IT
Cisco a Internetové siete
Ing. Alexandra Vašašová
Microsoft Engineering Excellence
Základné pojmy spojené s BIOS
FP7: Výskum v prospech MSP
Bioelektronika a organická elektronika Úvod
Tvorba a manažment projektov
INFORMAČNÁ BEZPEČNOSŤ 9
Integrované riešenia EPM (Enterprise Project Management)
Databázové systémy.
Technická prezentácia
EU project guidelines Mgr. Mária Tunová
Plán na zvyšovanie spokojnosti zákazníkov
9/4/2019 Firemná knižnica 2000 Nadežda Andrejčíková N. Andrejčíková.
Manažér a jeho funkcie Predmet: Manažment športu – 2. prednáška
Ing. Alojz ANDROVIČ, PhD. – PhDr. Jana MATÚŠKOVÁ Bratislava, máj 2016
Tvorba a manažment projektov
Testovanie štatistických hypotéz
ORGANIZAČNÝ VÝVIN VO VEREJNOM SEKTORE Robert Golembiewski
Katalóg dát = systémový katalóg = data dictionary
Analýza aktivity na počítači v pracovnom prostredí
Migrácia, utečenci – podpora samospráv
Študijný program Kvalita produkcie strojárskej techniky I. stupeň.
Vedúci diplomovej práce: prof. Ing. Stanislav Marchevský, Csc.
All-Hands Meeting Pezinok 2.0 Porada zamestnancov MsÚ
Implementácia a zabezpečenie prevádzky systému ARL – spolupráca knižnice a firmy Dobrý den, vážení a milí, dovolte mi aby som Vam v mene svojom i v mene.
JUDr. Miroslava Benediková
Dopady aktívnych opatrení trhu práce na zvyšovanie zamestnanosti
Ponuka DP pre informatikov - UPJŠ
Posudky.
Európsky sociálny fond
Kognitívne schopnosti a ich špecifiká u detí s intelektovým narušením
ZNALOSTNÉ SYSTÉMY prednáška č. 1
Prehľad projektu Oblasti vzdelávania Veková skupina Vzdelávacie ciele
Bregmanove divergencie Využitie indexovacích štruktúr pre efektívne podobnostné vyhľadávanie Lukáš Holecy Bregmanove divergencie.
Počítačové siete Simona Diškanová III.D.
Bez našej bagety nechoď do roboty!
OPTIMALIZÁCIA KAPITÁLOVEJ SKLADBY INVESTÍCIE
VYHĽADÁVANIE LETECKÝCH ZÁJAZDOV
Testovanie štatistických hypotéz v programe Excel
PREPOJENIE EURÓPSKYCH
Štandardy v procese spracovania bibliografických informácií i u nás.
Výhody štandardizácie v prostredí Pro|ENGINEER
Rozpoznávanie obrazcov a spracovanie obrazu
Kapowtech RoboSuite Team10.
Slovenská poľnohospodárska univerzita v Nitre
Ako vybrať správne CRM riešenie pre vašu spoločnosť?
Prepis prezentácie:

Karol Rástočný karol.rastocny@stuba.sk Testovanie softvéru Karol Rástočný karol.rastocny@stuba.sk 15.4.2019

Testovanie softvéru Proces verifikácie pre určenie a zlepšenie kvality softvéru [Friedman&Voas, 1995] Verifikácia vyhodnocuje či produkt spĺňa požiadavky Validácia vyhodnocuje či produkt zodpovedá jeho plánovanému použitiu Verifikácia Validácia Problém Špecifikácia Návrh Implementácia Systém

https://www. easterbrook https://www.easterbrook.ca/steve/2010/11/the-difference-between-verification-and-validation/

ISO/IEC/IEEE 29119 Štandardy pre testovanie softvéru Koncepty, definície, procesy, dokumentácia, techniky návrhu testov, ... http://www.softwaretestingstandard.org/ 4.92 testovanie – skupina aktivít vykonávaných za účelom určenia a/alebo vyhodnotenia vlastností jedného alebo viacerých testovaných prvkov [ISO/IEC/IEEE 29119-1:2013] Note 1 to entry: Testing activities could include planning, preparation, execution, reporting, and management activities, insofar as they are directed towards testing. 4.68 test item - work product that is an object of testing EXAMPLE A system, a software item, a requirements document, a design specification, a user guide. 4.69

Kde to začalo? Výber daní v Japonsku – prvý štatistický model kvality (1950) Výroba automobilov (1950-1970) Monopoly – kvalita nebola prvoradá Prepájanie trhov – súperenie v kvalite Najskôr Japonci potom USA (Ford, GM) Modely kvality výroby Testovanie ako overenie kvality

1822–1956: Ladenie 1951: Prvé modely kvality SW 1952: Prvý univerzálny počítač (IBM) – testovanie konfigurácií http://www.testingreferences.com/testinghistory.php Difference engine (Babbage)

1957–1988: Splnenie požiadaviek 1957: Charles L. Baker; Program testing vs debugging 1958: Prvý tím testerov SW (projekt Merkúr) 1961: Weinberg, Leeds – testovanie má overiť adaptovateľnosť programu a nie schopnosť spracovať informáciu 1967: IBM; Evaluation of the Functional Testing of Control Programs – potreba testovanie plánovať 1968: Bauer; Software crisis – potreba písať verifikovateľný a znovupoužiteľný kód 1969: Dijkstra; Testing shows the presence, not the absence of bug 1970: Royce, Vodopádový model

Vodopádový model Benington, 1956 / Royce, 1970

W-Model Špecifikácia systému Implementácia systému Zostavenie softvéru Návrh systému Zostavenie systému Špecifikácia požiadaviek Nasadenie systému Testovanie návrhu Testovanie špecifikácie Testovanie požiadaviek Akceptačné testovanie Systémové testovanie Testovanie integrácie Testovanie jednotiek (Paul Herzlich, 1993)

Testovanie čiernej skrinky Testovanie bielej skrinky Požiadavky Špecifikácia požiadaviek Akceptačné testovanie Požiadavky/špecifikácia systému Špecifikácia systému Systémové testovanie Požiadavky/štruktúra systému Návrh systému Testovanie integrácie Štruktúra jednotky Implementácia systému Testovanie jednotiek Testovanie bielej skrinky

Testovanie jednotiek/komponentov Testovanie izolovanej jednotky programu

Jednotka programu Kúsok kódu spustiteľný z vonkajšieho prostredia jednotky Implementuje nízkoúrovňovú funkcionalitu Závisí na úrovni abstrakcie a technológii Procedúra Funkcia Metóda Trieda Aspekt Modul Komponent

Izolácia jednotky Samostatné testovanie Chyby sú izolované v jednotke Bez integračných závislostí Znižuje množstvo testovacích prípadov Napr. stupeň vetvenia Chyby sú izolované v jednotke Jeden test – jedna potenciálna chyba Jednoduché prešetrenia výsledkov testovania Jednoduchá oprava chyby

Vykonávatelia testovania jednotiek Programátor jednotky Pozná vnútorné detaily jednotky Demonštruje korektnosť a kvalitu riešenia Demonštruje pripravenosť na integráciu Zvyšuje zapojenie programátora do kvality Inžinier testovania Nezávislé potvrdenie Vyžaduje pochopenie funkcií a štruktúry jednotky

Fázy Statické testovanie jednotiek Dynamické testovanie jednotiek Kód je skúmaný voči všetkým prípadom správania sa Jednotka je validovaná voči požiadavkám Dynamické testovanie jednotiek Spúšťanie jednotky Vstupné dáta sú vyberané na základe štrukúty Výstupy sú validované voči očakávaným výstupným dátam

Statické testovanie jednotky Kód nemusí byť kompletný Nájdi chyby hneď ako je to možné Techniky Inšpekcia Peer review voči preddefinovaným kritériám Automatizácia: Statická analýza Prechod Simulácia preddefinovaných scenárov s vysvetlením

Dynamické testovanie jednotiek Izolované spustenie testovanej jednotky: Jednotka je vyňatá z jej exekučného prostredia Exekučné prostredie je emulované a skompilované spolu s jednotkou Kompilát je spustený s vybranými vstupmi, pričom sú zozbierané jednotlivé výstupy Výstupy sú porovnané voči očakávaným výstupom – rozdiel znamená zlyhanie

Prostredie testovania jednotky Ovládač testu Výstupy Volanie a vstupné parametre Výstupné parametre Testovaná jednotka Volanie Pot. Vol. Potvrdenie Stub Stub Log Log

Rámce pre testovanie jednotiek Skriptovanie a spúšťanie ovládačov testov Ovládač testu Vykonávač testov (test runner) IDE integrácie CI integrácie Samostatne stojace aplikácie Kód testu jednotky Vstupné dáta Tvrdenia (assertions)

Rámce pre atrapy Skriptovanie stub-ov Atrapa (mock) Nahradená jednotka Imitácia vykonania when – šablóna volania nahradenej jednotky then – návratová hodnota Monitorovanie spustenia Počítadlo spustenia Vstupné dáta spustenia

Fixture: Skupina testov Fixture set-up Nastavenie prostredia pre celú skupinu testov Test case set-up Nastavenie prostredia pre jeden testovací prípad Spustené pred vykonaním každého testovacieho prípadu Test cases Testy jednotiek Test case tear down Vyčistenie prostredia po vykonaní jedného testovacieho prípadu Spustené po vykonaní každého testovacieho prípadu Fixture tear down Vyčistenie prostredia po vykonaní celej skupiny testov

Fixture set-up Test case set-up Test case i Test case tear down [Next test case] [All test cases executed] Fixture tear down

Štruktúra testu jednotky (AAA) Príprava (Arrange) Input data preparation Mocks set-up Vykonanie (Act) Execution of an unit under test Potvrdenie (Assert) Validácia vykonania atráp Validácia výstupných dát

NUnit + Moq + Shoudly (C#) [TestFixture] public class RestServiceTest { private Mock<Core> core; private Mock<AnonymizationCore> anoymizationCore; private RestService service; [SetUp] public void SetUp() core = new Mock<Core>() { CallBase = true }; anoymizationCore = new Mock<AnonymizationCore>() { CallBase = true }; service = new RestService(core.Object, anoymizationCore.Object); } [Test] public void PingTest() service.Ping().Result.ShouldBe("OK");

[Test] public void GenerateTestsTest() { var request = new GenerateTestsRequest() RootAstNode = new Common.AST.AstNode(), Author = "author", }; var testSuites = new CloneableList<ITestSuite>(1) new TestSuiteTestData() { Name = "Name 1", SourceCode = "Code 1“ } var jobData = new JobData(); jobData.SetTestSuites(testSuites); core.Setup(x => x.GenerateTests(It.IsNotNull<AstNode>()) .Returns(Task.FromResult(jobData)); var response = service.GenerateTests(request).Result; response.JobId.ShouldNotBe(Guid.Empty); response.TestSuites.ShouldNotBeNull(); response.TestSuites.Count().ShouldBe(1); }

Sú jednotkové testy postačujúce?

Testovanie integrácie Technika systematického zostavovania softvérového systému počas vykonávania testov zameraných na odhalenie chýb spojených z rozhraniami.

Testovanie integrácie Cieľ: Zostaviť primerane stabilný systém v laboratórnom prostredí Dôvody Rôzne moduly sú vytvorené rôznymi vývojármi Testy jednotiek volajú atrapy a nie reálne jednotky prostredníctvom hardvérových a programových rozhraní

Úrovne testovania integrácie Vnútrosystémové testovanie Nízkoúrovňové testovanie integrácie s cieľom zostaviť súdržný systém Medzisystémové testovanie Vysokoúrovňové testovanie rozhraní samostatne testovaných systémov End-to-end testovanie zamerané na špecifickú vlastnosť Testovanie párov Testovanie integrácie dvoch systémov

Techniky integrácie Integrácia relevantných jednotiek čiastočne naprogramovaného systému Inkrementálna Zhora dole Zdola hore Sandwich Big bang

Inkrementálna integrácia Systém je zostavený inkrementálnou integráciou v cykloch Integruj novú otestovanú a schválenú jednotku Spusti testy Analyzuj výsledky testov Oprav chyby

Integrácia zhora nadol Inkrementálna hierarchický integrácia smerom od volajúcich jednotiek Jednotky z nižších úrovní sú nahradené atrapami A C B D

Top down integration Nahraď atrapu implementovanou jednotkou Otestuj rozhranie voči implementácii Spusti regresné testovanie A B C D E F

Bottom up integration Inkrementálna hierarchický integrácia smerom od volaných jednotiek Vyššie úrovne sú nahradené ovládačom Ovládače testov z vyšších úrovní sú nahrádzané implementovanými jednotkami Test driver Test driver B C D E F

Zhora nadol vs. zdola nahor Validácia hlavných návrhových rozhodnutí Dekompozícia problému z hora nadol Sledovanie funkcií na systémovej úrovni Rozhrania systému sú na najvyššej úrovni Zložitosť návrhu testovacích prípadov Vysoké úrovne vyžadujú veľa atráp Techniky zdola nahor vyžadujú iba tvrdenia Znovupoužiteľnosť testovacích prípadov Regresné testovanie v technikách z hora nadol

Big bang integrácia Všetky jednotky sú testované samostatne Všetky jednotky sú naraz integrované Všetky rozhrania sú testované na celom systéme

Sandwich integrácia Kombinácia techník zhora nadol, zdola nahor a big bang Použi techniku zhora nadol na najvyšších úrovniach Použi techniky zdola nahor na najnižších úrovniach Použi techniku bing bang na stredné úrovne

Systémové testovanie Komplexné testovanie vykonávané s cieľom validovať celý systém a jeho charakteristiky vychádzajúce z požiadaviek a návrhu.

Systémové testovanie Validuje integráciu celého systému (HW aj SW jednotky) voči funkcionálnym a nie funkcionálnym požiadavkám Špecializované typy testov na meranie kvalitatívnych vlastností

Úroveň testovania vs. typ testu Vývojové fázy Kvalitatívne vlastnosti

Testy komunikácie Verifikujú komunikáciu medzi (pod-)systémami Základné testy spojenia Naviazanie základného spojenia Testy schopností Sledovateľnosť statických schopností, napr. časové limity, rozsahy hodnôt Testy správania Verifikujú dynamické požiadavky na komunikáciu

Testy modulov Verifikujú, že všetky individuálne funkcie modulov systému zodpovedajú očakávaniam Testy sú navrhnuté tak, aby verifikovali špecifickú funkciu konkrétneho modulu Správnosť je verifikovaná prostredníctvom Systémových log-ov Poskytnutých výstupov

Testy vlastností Verifikujú správnosť systémových procesov Scenáre biznisu Skriptovanie vstupov používateľských rozhraní a porovnanie výstupov používateľského rozhrania Veľa manuálnej práce Ťažké na údržbu Nahraj a pusť Zmeny GUI vyžadujú nové nahrávky

Testy použiteľnosti Verifikujú používateľské rozhrania voči potrebám používateľov Nezameriavajú sa na programové chyby Alpha testovanie Simulovaná prevádzka potenciálnymi používateľmi na strane vývojára Beta testovanie Marketingová beta – zabezpečenie skorého povedomia a záujmu o produkt Technická beta – získanie spätnej väzby od používateľov v reálnom prostredí Akceptačná beta – ubezpečenie, že produkt zodpovedná akceptačným kritériám

Testy bezpečnosti Verifikujú charakteristiky bezpečnosti Očakávané správanie Negatívne scenáre a scenáre zneužitia Neočakávané správanie Penetračné testovanie Systémové zlyhania, exploidy, integrácie, ošetrenie chýb, …

Testy hraničných hodnôt Verifikujú robustnosť oproti hraničným podmienkam a špeciálnym a základným hodnotám Podporované hodnoty Pozorovanie správnej funkčnosti Nepodporované hodnoty Pozorovanie definovaných chybových správ a procesov spracovania chýb

Testy spolupráce Verifikujú spoluprácu s produktami tretích strán Testovanie konfigurácií Kontroluje spoluprácu medzi rôznymi HW a SW komponentmi Testovanie kompatibility Kontroluje funkčnosť systému v rôznych prostrediach

Testovanie výkonu Verifikuje výkon systému voči požiadavkám Merania Zaťaženie vs. merateľné charakteristiky Merania End-to-end response time CPU time Network connection time Database access time Waiting time

Testovanie škálovateľnosti Verifikovanie, že je možné systém škálovať smerom k jeho projektovaným limitom Identifikuje limity kedy systém dosiahne požiadavky na oneskorenie a priepustnosť Limitácie Veľkosť dátového úložiska Šírka sieťového pásma Rýchlosť

Stress testy Vyhodnocujú a zisťujú správanie systému po prekonaní očakávanej kapacity systému Inkrementálne zvyšovanie limitov pokiaľ systém nezlyhá Zlyhanie po presiahnutí limitu by malo viesť k spusteniu mechanizmov zotavenia zo zlyhania Odhaľujú problémy s Únikmi pamäti Alokáciou a rozdrobením vyrovnávacej pamäte Proces Otestuj individuálne moduly – kapacita modulov Otestuj individuálne prepojenia medzi modulmi – kapacita prepojení Otestuj celý systém – kapacity všetkých prepojení a modulov

Testy zaťaženia a stability Uistenie, že systém zostane stabilný po dlhšiu dobu plnej záťaže Simulácia situácií z reálneho života Problémy dlhodobej záťaže Spomalenie systému Problémy s funkcionalitou Tiché zlyhania Komplexné zlyhania systému

Testy spoľahlivosti Merajú schopnosť systému zostať funkčným počas dlhšej doby MTTF – mean time to failure / priemerná doba zlyhania MTTR – mean time to repair / priemerná doba opravy MTBF – mean time between failures / priemerná doba medzi zlyhaniami Techniky náhodného testovania TTR1 TTR2 TTR3 TTR4 TTF1 TTF2 TTF3 TTF4 TBF1 TBF2 TBF3 TBF4

Regresné testy Verifikujú nové verzie systému voči charakteristikám predchádzajúcich verzií Overenie, že neboli zavedené nové chyby Vybraná množina testovacích prípadov Maximalizácia pravdepodobnosti odhalenia novej chyby Zníženie nákladov na testy

Prieskumné testovanie Celkové testovanie kvality za súčasného Učenia Návrhu testov Vykonávania testov Analýzy výsledkov Pre Náklady na prípravu Skoré odhalenie kritických chýb Deduktívne uvažovanie Proti Testy nie je možné skontrolovať Malá miera automatizácie Kvalita je závislá na skúsenostiach

Akceptačné testovanie Formálne testovanie vykonávané na určenie či systém zodpovedá akceptačným kritériám.

Akceptačné testovanie Vykonávané zákazníkmi na základe ich očakávaní Používateľské akceptačné testovanie Uistenie sa, že systém zodpovedá zmluvným akceptačným kritériám Biznisové akceptačné testovanie Uistenie sa, že systém zodpovedám požiadavkám podnikania – obchodná stratégia, štandardy, ...

Akceptačné kritériá Merateľné kritériá Preferované sú kvantitatívne Vybrané a prioritizované zákazníkom Zamerané na kvalitatívne atribúty z rôznych uhlov pohľadu Transcendentálny pohľad – ťažké na definovanie Používateľský pohľad – zdroj uspokojenia Výrobný pohľad – vyhovenie špecifikácii Produktový pohľad – vnútorné vlastnosti Hodnotový pohľad – cena, ktorú je zákazník ochotný zaplatiť

Priebeh akceptačného testovania Systémový inžinier testovania na staane zákazníka Asistuje zákazníkovi v príprave testovacieho prostredia Trénuje inžinierov akceptačného testovania v používaní systému Poskytuje výsledky predchádzajúcich systémových testov inžinierom akceptačného testovania Asistuje inžinierom akceptačného testovania pri vykonávaní akceptačných testov

Priebeh akceptačného testovania Zistené chyby sú reportované dodávateľovi Chyby sú opravené, nová zostava je pretestovaná a dodaná zákazníkovi Inžinieri akceptačného testovania opakujú testy, ktoré zlyhali Rozdiely v akceptačných kritériách, ktoré vychádzajú z ich chybného definovania, sú zadokumentované

Testovanie integrácie vs. Systémové testovanie

Granularita Testovanie integrácie Systémové testovanie Rozhrania medzi jednotkami Komunikujú jednotky správne? Systémové testovanie Systém ako celok Zodpovedá systém požiadavkám?

Požiadavky Testovanie integrácie Systémové testovanie Funkcionálne požiadavky Sú správne implementované vnútorné systémové scenáre? Systémové testovanie Funkcionálne aj nie funkcionálne požiadavky Sú správne implementované scenáre interakcie systému s okolím? Vyhovuje systém kvalitatívnym požiadavkám?

Techniky návrhu testov Testovanie integrácie Techniky založené na štruktúre a špecifikácii Testovanie čiernej aj bielej skrinky Systémové testovanie Techniky založené na špecifikácii Testovanie čiernej skrinky

Účastníci Testovanie integrácie Systémové testovanie Vývojári a inžinieri testovania Systémové testovanie Inžinieri testovania

Typy testov Testovanie integrácie Systémové testovanie Techniky integrácie Zhora nadol, zdola nahor, big-bang, ... Systémové testovanie Testovanie kvalitatívnych vlastností Testovanie výkonu, škálovateľnosti, bezpečnosti, použiteľnosti, ….

Výsledky Testovanie integrácie Systémové testovanie Integrovaný systém Verifikovaný systém

Príklad: Filter playlistu Používateľ zadá playlist Systém vyfiltruje skladby dlhšie než 3 minúty Systém vyfiltruje klasickú hudbu Systém vyfiltruje skladby z nižšou kvalitou než 128kbps Systém spustí multimediálny prehrávač s prefiltrovaným playlistom Kvalitatívna požiadavka: Systém musí prefiltrovať 10000 skladieb do 1s

Príklad: Architectúra Playlist Duration filter Genre filter Quality filter

Príklad: Testovanie jednotiek Arrange: Nahraď Quality filter atrapou Act: Zavolaj Genre filter s jednou klasickou a jednou jazzovou skladbou v playliste Assert: Atrapa Quality filter bola spustená s jednou jazzovou skladbou IDE Playlist Duration filter Genre filter Quality filter

Example: Test integrácie Arrange Nahraď Quality filter atrapou Act: Zavolaj Genre filter s jednou klasickou (2,5 min) a dvomi jazzovými skladbami (2,2 a 3,01 min) Assert: Atrapa Quality filter bola spustená s jednou jazzovou skladbou (2,2 min) Android emulator / IDE Playlist Duration filter Genre filter Quality filter

Example: System (performance) test Arrange Priprav playlist s 10000 skladbami Aktivuj stopky Act: Spusti filter playlistu s pripraveným playlistom Zastav stopky Assert: Stopky odmerali menej než 1s Samsung Galaxy S8, Oreo Playlist Duration filter Genre filter Quality filter

Nové Trendy

Agilný vývoj softvéru Veľké množstvo zmien Častá integrácia Automatizácia akceptačného testovania Funkčných požiadavky – scenáre Testovanie akceptačných testov Použiteľnosť Častá integrácia Overenie spätnej kompatibility Rozsiahle regresné testovanie Efektívne vykonávanie CI

Agilný vývoj softvéru Vývojár = analytik + návrhár + programátor + TESTER Testovanie priamo integrálnou súčasťou vývoja DevOps Analytik – potreba skorej testovateľnosti wireframes, scenáre -> zdrojový kód Návrhár – potreba simulácie Testovanie prototypov Programátor – rýchle identifikovanie chýb Generovanie testov, testovanie v reálom čase, údržba a konzistentnosť testov

Potrebuje agilný svet Testerov? Bezpečnosť a robustnosť Plán testovania Potrebné vytvoriť a udržiavať Sledovanie aktuálnych zraniteľností Testovateľnosť ako požiadavka Testovanie testov Review, mutačné testovanie Exploratívne testovanie Cielené hľadanie chýb v produkte

BigData Testovanie výkonnosti Testovanie paralelných procesov Škálovateľnosť – spracujeme terabajty dát? Zdroje – koľko RAM/CPU/... potrebujeme? Testovanie paralelných procesov Testovanie kvality dát Extrakcia a vyhodnotenie charakteristík Dátová analytika, počítačové učenie Náklady na vykonanie testov

IoT Testovanie použiteľnosti Testovanie kompatibility a konfigurácií Je konfigurácia použiteľná pre bežného používateľa Čo sa stane po pridaní a odobratí zariadenia Testovanie kompatibility a konfigurácií Bezpečnosť BigData

Literatúra ISO/IEC/IEEE 29119-1:2013 NAIK, K. – TRIPATHY, P. Software Testing and Quality Assurance: Theory and Practice. Wiley-Spektrum, 2015. 648 s. ISBN 978-1-119-09518-7 http://www.testingreferences.com/testinghistory.php