Optymalizacja Automatycznych Testów Regresywnych



Podobne dokumenty
Testujemy dedykowanymi zasobami (ang. agile testers)

Dlaczego testowanie jest ważne?

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Testowanie i walidacja oprogramowania

Opis metodyki i procesu produkcji oprogramowania

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Testy poziom po poziomie

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Testowanie oprogramowania. Piotr Ciskowski

Maciej Oleksy Zenon Matuszyk

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Zawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik

Testowanie oprogramowania. Testowanie oprogramowania 1/34

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

UPEDU: Testowanie (ang. Testing discipline)

Zasady organizacji projektów informatycznych

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Launch. przygotowanie i wprowadzanie nowych produktów na rynek

Programowanie zespołowe

Szczegółowy plan szkolenia

ZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager.

Piotr Ślęzak. Gdzie się podziała jakość

Usługa: Audyt kodu źródłowego

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Szkolenie: Testowanie wydajności (Performance Testing)

Leszek Dziubiński Damian Joniec Elżbieta Gęborek. Computer Plus Kraków S.A.

Michał Olejnik. 22 grudnia 2009

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Metodyki zwinne wytwarzania oprogramowania

Zarządzanie jakością w logistyce ćw. Artur Olejniczak

Etapy życia oprogramowania

System Kontroli Bazy Danych Topograficznych (SKBDT) zawód kartografa?

Dwuwymiarowy sposób na podróbki > 34

Wstęp do testowania : Szymon Ramczykowski

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Porównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Cele oraz techniki tworzenia prototypów systemów infromatycznych. Inżynieria Oprogramowania

Zarządzanie Zapasami System informatyczny do monitorowania i planowania zapasów. Dawid Doliński

BIM jako techniczna platforma Zintegrowanej Realizacji Przedsięwzięcia (IPD - Integrated Project Delivery)

Jak opisać wymagania zamawiającego wybrane elementy

Zagadnienia. Inżynieria Oprogramowania

Bezpieczeństwo aplikacji WWW. Klasyfikacja zgodna ze standardem OWASP. Zarządzanie podatnościami

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Lean Six Sigma poziom Green Belt

Programowanie zwinne

Możliwe strategie tworzenia niezawodnego oprogramowania:

Certyfikowany tester Pytania przykładowe do poziomu podstawowego

MSF. Microsoft Solution Framework

Przypadek testowy. Teoria i praktyka

Odchudzamy serię danych, czyli jak wykryć i usunąć wyniki obarczone błędami grubymi

Zapewnienie bezpieczeństwa w całym cyklu życia aplikacji (czyli dlaczego lepiej zapobiegać chorobom, niż leczyć je w zaawansowanym stadium)

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Zarządzanie konfiguracją produktu w całym cyklu Ŝycia. Aleksandra Grzywak-Gawryś Warsztaty Rola IRIS w branŝy kolejowej

Rozdział 4 Planowanie rozwoju technologii - Aleksander Buczacki 4.1. Wstęp 4.2. Proces planowania rozwoju technologii

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Overlord - Plan testów

Session Based Testing Czyli eksploracyjne testowanie w sesjach. Karolina Bilewska PapryQArz

Bezpieczeństwo aplikacji i urządzeń mobilnych w kontekście wymagań normy ISO/IEC oraz BS doświadczenia audytora

Przypadki bez przypadków. Jak dobierać scenariusze testowe.

Kwestia procesu / podziału odpowiedzialności w zakresie odpowiedzialności za księgi pomocnicze

Opis systemu zarządzania, w tym systemu zarządzania ryzykiem i systemu kontroli wewnętrznej w Banku Spółdzielczym w Ropczycach.

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

Metody testowania oprogramowania w cyklu wytwarzania aplikacji. Milena Sobolewska. Rule Financial - Software Test Engineer

Agile Project Management

OD MONOLITU DO MIKROUSŁUGI MICROSERVICES

AGENDA NASZEGO WEBINARIUM

Autor: Artur Lewandowski. Promotor: dr inż. Krzysztof Różanowski

Jak patrzymy na testy czyli Jak punkt widzenia zależy od punktu siedzenia. Click Piotr Kałuski to edit Master subtitle style

Akademia Audytora III AUDYTY SPECJALISTYCZNE agenda szkolenia

Reforma regulacyjna sektora bankowego

Sukces vs porażka. Sukces. Porażka

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

ŚCIEŻKA KRYTYCZNA. W ścieżkach krytycznych kolejne zadanie nie może się rozpocząć, dopóki poprzednie się nie zakończy.

Kontekstowe wskaźniki efektywności nauczania - warsztaty

Wykład 7. Projektowanie kodu oprogramowania

Usługa: Testowanie wydajności oprogramowania

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Plan Testów Systemu SOS

Inżynieria oprogramowania (Software Engineering)

SLA ORAZ ZASADY ŚWIADCZENIA WSPARCIA I HELPDESK. Wykonawca zobowiązuje się do świadczenia Usług Wsparcia i Helpdesk w odniesieniu do Systemu.

Wybór ZSI. Zakup standardowego systemu. System pisany na zamówienie

Najwyżej ocenione raporty dla Mr Buggy 4

Kurs Projektowanie i programowanie z Distributed Safety. Spis treści. Dzień 1. I Bezpieczeństwo funkcjonalne - wprowadzenie (wersja 1212)

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Źródła dumy zawodowej testera oprogramowania

Goal Question Metrics. Jarosław Kuchta Jakość Systemów Informatycznych

Idea Bezpiecznej Maszyny w prostym podejściu. użyj Safety Evaluation Tool. Safety Integrated.

Zarządzanie ryzykiem projektu

Modularny system I/O IP67

UPEDU: Implementacja (ang. Implementation discipline)

Testowanie hipotez statystycznych

Dobre wdrożenia IT cz. I Business Case.

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Model Matematyczny Call Center

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Transkrypt:

Optymalizacja Automatycznych Testów Regresywnych W Organizacji Transformującej do Agile Adam Marciszewski adam.marciszewski@tieto.com

Agenda Kontekst projektu Typowe podejście Wyzwania Cel Założenia Opis metody krok po kroku Testy jako analogia do próbkowania sygnałów Odkrycia Wynik Optymalizacji Materiały źródłowe Pytania i Odpowiedzi

Kontekst projektu Rozproszony geograficznie projekt, realizowany na rzecz globalnego klienta. Projekt przejęty od innego wykonawcy. Klient podjął decyzję by transformować do Scrum Bardzo złożony produkt (kilkanaście podsystemów, kilka różnych technologii) Wymagania dostępne tylko dla nowych cech

Typowe podejście Analiza Strategii Testów i Planu testów Konfrontacja wymagań i przypadków testowych Ocena pokrycia wymagań/funkcjonalności testami Ocena ryzyka Optymalizacja wydawałoby się: bułka z masłem a tu jednak Lipa!

Wyzwania Brak wymagań Brak wiedzy na temat pokrycia systemu testami Czas wykonania automatycznej regresji > 30h Duża ilość przypadków testowych (>1000) Duże ryzyko przedostania się błędów do środowiska klienta Brak wiedzy na temat skuteczności testowania Niska skuteczność detekcji błędów

Cel Czas wykonania regresji < 12 h Skrócenie czasu regresji nie może obniżyć skuteczności wykrywania błędów Skrócenie czasu regresji nie może zredukować pokrycia systemu testami Obszary obarczone większym ryzykiem będą testowane intensywniej Obszary kluczowe dla klienta będą testowane intensywniej Zmienna granulacja przypadków testowych

Założenia Przystępując do optymalizacji przyjęto następujące założenia: Klient otrzymał wszystkie wymagane cechy Jeśli nie dostarczono jakiejś cechy, a klient tego nie zauważył od kilku lat to tak naprawdę nie potrzebował tej funkcjonalności ;) Dostarczone cechy spełniają wymagania funkcjonalne Walidacja była poprawna Problemy po stronie weryfikacji

Opis metody - krok po kroku Faza 1 Analiza i Optymalizacja zbioru testów regresywnych Faza 2 Optymalizacja techniczna Faza 3 Monitorowanie i dostrajanie (minimalizacja ryzyka) Faza 4 Start!

Opis metody Faza 1 Faza 1 Analiza i Optymalizacja zestawu testów regresywnych Identyfikacja funkcjonalności sytemu metodą (White-box, Statycznie) Ocena pokrycia systemu testami (Veryfikacja testów) Ocena rozkładu błędów w testowanym systemie Identyfikacja krytycznych obszarów systemu Ocena Efektywności testów (ang. Defect Detection Percentage) Obliczenie Miary Błędu (ang. Defect Measure) Dobór zestawu testów w oparciu o: Testy w oparciu o ryzyko (Risk-Based Testing) Testy w oparciu o korzyści klienta (Benefit-Based Testing) Zmienną granulację przypadków testowych

Ilość Błędów Faza 1 - Rozkład błędów (1/2) 70 Ilość błędów dla każdego podsystemu 60 50 40 30 20 10 0 Podsystemy

Ilość Błędów Faza 1 - Rozkład błędów (2/2) 35 Ilość błędów w podsystemach podział wg. ważności błędu 30 25 20 15 10 5 0 A - Critical B - Major C - Minor Podsystemy

Faza 1 - Efektywność testowania Efekt pestycydów Efektywność testów regresywnych, jako skuteczność wykrywania błędów Skuteczność wykrywania błędów (ang. DDP Defect Detection Percentage) DDP = Ilość błędów wykrytych przez nasze testy Ilość wszystkich wykrytych błędów x 100 %

DDP Faza 1 - Efektywność testowania 120.0% Skuteczność wykrywania błędów dla każdego podsystemu 100.0% 80.0% DDP (Defect Detection Percentage) 100.0% 96.8% 60.0% 40.0% 20.0% 0.0% 14.3% 6.7% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% A B C D E F G H I J K L M N O P Podsystemy

Faza 1 - Miara Błędu (1/2) Wiedza o ilości i rozkładzie błędow jest niewystarczająca Ryzyko oraz koszt wystąpienia błędu łatwiej jest oszacować wprowadzając Miarę Błędu Miara błędu (ang. DM Defect Measure) Wagi błędu w zależności od ważności błędu, np.: Krytyczny = 10 Średni = 5 Niski = 1 DM = 10*H + 5*M + L H ilość błędów krytycznych M ilość błędów o średniej ważności L ilość błędów o niskiej ważności

Defect Measure Faza 1 - Miara Błędu (2/2) 350 300 250 316 Miara Błędu dla każdego podsystemu DM (Defect Measure) 200 150 100 50 0 119 102 99 70 51 56 25 24 18 0 0 1 0 0 0 A B C D E F G H I J K L M N O P Podsystemy

DDP DM DDP - a - DM 350 300 250 200 316 DM dla każdego Podsystemu DM (Defect Measure) 150 100 50 0 119 102 99 70 51 56 25 24 18 0 0 1 0 0 0 A B C D E F G H I J K L M N O P Podsystemy 120.0% 100.0% 80.0% 60.0% DDP (Defect Detection Percentage) DDP dla każdego Podsystemu 100.0% 96.8% 40.0% 20.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 6.7% 14.3% A B C D E F G H I J K L M N O P Podsystemy

Poziom Ryzyka Granulacja przypadków testowych Testy jako analogia do próbkowania sygnałów analogowych. Pewność co do zachowania systemu Brak pewności Wielkość ryzyka Przypadki testowe Rozmawiając z udziałowcami lub menadżerami o testowaniu warto przedstawiać informację w formie ryzyka związanego z daną decyzją.

Odkrycia Skuteczność wykrywania błędów = 25% 25% defektów było wykryte przez 6% z 1000 przypadków testowych Pozostałe 94% z 1000 przypadków testowych nigdy nie wykryło żadnego błędu co nie oznacza, że tych błędów tam nie było Czas potrzebny na wykonanie pojedynczej kampanii regresji > 31h 40% tego czasu zajmowały testy tylko 1-go podsystemu W tym czasie znaleziono tylko 7% błędów dotyczącego tego podsystemu Regresja wykrywała błędy tylko w 4 z kilkunastu podsystemów Brak kontroli wersji testów regresywnych (brak powtarzalności procesu) Część funkcjonalności w ogóle nie była testowana Część funkcjonalności interfejsu posiadało fałszywą implementację lub jej brak

Opis metody Fazy 2, 3 i 4 Faza 2 Optymalizacja techniczna Automatyzacja brakujących przypadków testowych Optymalizacja skryptów testowych Usprawnienia narzędzi testowych Zrównoleglenie wykonania testów Faza 3 Monitorowanie i reagowanie (minimalizacja ryzyka) Okres pilotażowy dla zoptymalizowanych testów Zoptymalizowana regresja (dzienna) Stara regresja (weekendowa) Porównywanie wyników i skuteczności Faza 4 Start (wypływamy na głęboką wodę) Wdrożenie zoptymalizowanej regresji Poprzedni zestaw testów regresywnych odchodzi na zasłużoną emeryturę

Wynik Optymalizacji Czas regresji po optymalizacji 8h Zrównoleglenie skróciło czas do 3h Wzrost skuteczność detekcji błędów (25% 70%) Wzrost wydajności testowania Krótszy czas dostarczania informacji zwrotnej Więcej funkcjonalności testowana w krótszym czasie Mniej przypadków testowych przy wyższym pokryciu systemu testami

Materiały źródłowe 1. Lee Copeland A Practicioner s Guide to Software Test Design 2. Tom Gilb Competitive Engineering 3. Hans Shäfer Risk and Benefit Based Testing 4. Juile Gardiner Testing that Serves the Project

Pytania i Odpowiedzi