Continuous Testing a nowa era w jakości oprogramowania Grzegorz Leopold, Michał Błaszak
Michał Błaszak Od 10 lat pracuję w branży IT (Testowanie, zarządzanie testami, zarządzanie projektami i serwisami, doradztwo w zakresie QA) Prywatnie multihobbysta
Secorda Zajmujemy się analizą i doradztwem w zakresie procesów wytwarzania oprogramowania, testowaniem bezpieczeństwa, testami funkcjonalnymi i wdrażaniem zaawansowanych narzędzi wspierających te zadania.
The Digital Disruption Businesses must continuously exploit digital technologies to both create new sources of customer value and increase operational agility in service of customers. Forrester, March 2014, The Future Of Business Is Digital
Ciągłe Testowanie jest konieczne Realia DevTestOps
Waterfall lata - miesiące Wymagania Projektowanie Implementacja Testowanie Akceptacja Wydanie
RationalUnifiedProcess miesiące - tygodnie Inception Elaboration Construction Transition Requirements Design Implementation Testing Deployment
Agile tygodnie - dni Oooops Ooops!!!
Dev(Test)Ops dni -minuty Collaborative Development Continuous Release& Deployment Continuous Integration Continuous Feedback Continuous Testing Continuous Monitoring
Długość cyklu dostawy IoT Big Bang Dziś Inkrementacyjna Iteracyjna Zwinna DevOps Poziom złożoności Robotyka
80% 10% 67% 40% testowanie ręczne automatyzacji testów to automatyzacja API przeciętna ilość zbędnych przypadków testowych przeciętne pokrycie ryzyka 8 problemów wpływających negatywnie na zwinność testowania 55% 56% 30% 50% systemów tylko częściowo dostępnych dla testerów wkładu w testowanie zajmuje utrzymywanie portfolio testowego błędów odkrywanych w fazie akceptacji lub na produkcji czasu na testy manualne jest poświęcane na tworzenie i utrzymanie danych testowych
80% manual testing 10% 67% average level of redundancy of all test automation is API test automation 40% average risk coverage Największą siłą DevOpsnie jest rozwiązywanie problemów, tylko ich uwidacznianie. 55% 56% 30% 50% of systems only partially accessible by Testers of overall test effort of bugsfound in of manual testing goes goes into acceptance into test test case maintenance& production stage datapreparation & organization Picture from Star Wars: Episode IV A New Hope
Testuj to, co ważne Skupiaj testy na ryzyku biznesowym
? Limit czasu na aktywności testowe Niskie Ryzyko biznesowe Nowe przypadki testowe Średnie Wysokie Iteracje cyklu wytwarzania 1 2 3 4 5 ToscaOptimize
Skup się na najważniejszych kryteriach nie tonąc w przypadkach testowych. Przypisuj unikalny cel każdemu z przypadków testowych. 4 zasady by sprostać tej sytuacji Spraw, by analiza źródła problemu była prosta. Reaguj na zmiany produktu niezwłocznie. ToscaOptimize
Kluczem do sukcesu jest osiągnięcie maksymalnego pokrycia ryzyka możliwie najmniejszą ilością znaczących przypadków testowych 100% Pokrycie ryzyka 80% 60% 40% 20% Metodyka Intuicja 0% 0% 20% 40% 60% 80% Utworzone przypadki testowe 100% ToscaOptimize
Co, jeśli raportowanie oprzemy na ilości wykonanych przypadków testowych? Version x.x 422 108 9 Jaka jest jakość dostarczonego oprogramowania? Czy możemy wypuścić wersję? Co tak naprawdę oznacza ilość przypadków testowych? ToscaOptimize
A gdyby raportowanie oprzeć na pokryciu ryzyka [%]? Version x.x 66% 9% 15% 10% To powinna być nowa waluta w testowaniu. ToscaOptimize
Podejście do pokrycia testami w oparciu o ryzyko W = 2 [F] * 2 [D] W Weigth, F Frequency, D -Damage ToscaOptimize
Odwrócenie dwóch piramid Automatyzuj i testuj API. Skup się na tym, co umożliwia zwinne testy.
100 % Wzrost wydajności API 4x 6x 20x Tworzenie Utrzymanie Egzekucja % Ukończenia UI 0 % Czas cyklu dostaw
15% Testy ręczne 80% Testy ręczne The reliance on Automatyzacja manual nie tylko testing ułatwia, is the ale w ogóle? top umożliwia technical testowanie challenge in app development. World Quality Report, 2015/16 API UI 85% Testy automatyczne 20% Testy automatyczne UI API Dziś Jutro ToscaAutomate
Przeciętnie w organizacjach wymagany jest dostęp developerów i testerów do 33 systemów WELCOME TO TESTER S HELL 18 Przeciętna liczba systemów do których jest pełny dostęp Designed by Freepik
Zorkiestrowana Wirtualizacja Serwisów Designed by Freepik ToscaOrchestrate
Dystrybuowana Egzekucja Testów Portfolio testów Egzekucja Designed by Freepik ToscaIntegrate
Ciągła Integracja Designed by Freepik ToscaIntegrate
Testerzy manualni zostają specjalistami ds. automatyzacji Programiści testów skupiają się na technologicznych wyzwaniach i stają się mentorami
Testerzy manualni 15% Testy ręczne UI 80% Testy ręczne Ratio 10 Specjaliści d.s. automatyzacji Przekwalifikowani testerzy manualni? 85% Testy automatyczne : API 20% Testy automatyczne UI API 1 Inżynierowie testów Dziś Jutro ToscaAutomate
Generacje narzędzi do automatyzacji Record/ Replay Test Development Framework Model-Based Test Automation Poziom automatyzacji + 10% 30% 90% Potrzeby programistyczne Czytelność dla biznesu ToscaAutomate
Automatyzacja w oparciu o model systemu Wygenerowanie modelu systemu Tworzenie przypadków testowych Testowany system Designed by Freepik Automatyzacja Zasilenie danymi ToscaAutomate
Czytelność. Nie wymaga umiejętności programistycznych. Możliwość ponownego wykorzystania w innych technologiach 4 zasady Łatwość utrzymania zarówno testów UI, jak i API. automatyzacji testów w przyszłości Minimalizacja nakładów na utrzymanie. ToscaAutomate
Przykład z życia Testerzy Optymalizacja Automatyzacja Integracja 11 Testy Wartościowe Przypadki testowe Automatyzacja w oparciu o model systemu Ciągła Integracja 4755 1193 Redundancja 75% Poziom automatyzacji Dystrybuowane Smoke-testy Pozom automatyzacji Smoke-testów Nieznane pokrycie 37% ryzyka 89% 92% 34 Minutes 100% Nakłady na dane testowe 50% 10 Tygodni 2.5 Tygodnia 48 Godzin 8 Godzin 7% przypadków testowych 53% Egzekucja Zarządzanie Dane testowe Pojedyncza Regresja Dystrybuowana Regresja Pokrycie ryzyka Smoke-testami
Dziękuję za uwagę! Michał Błaszak michal.blaszak@secorda.com