Zarz¹dzanie Testowaniem Oprogramowania
Transkrypt
Zarz¹dzanie Testowaniem Oprogramowania
Zarządzanie Testowaniem Oprogramowania Prowadzący: Remigiusz Gadecki Rafał Potocki Agenda 1. Planowanie zadań • • • • • 2. 3. 4. 5. 6. 7. Plan testów Podział zadań Planowanie zasobów Harmonogram Produkty w procesie testowania Przeprowadzanie testów Kontrola postępu prac Zarządzanie zgłoszeniami defektów Zarządzanie środowiskami Szef testów Testalia 1 Cel planowania testów • Określenie zakresu, metodyki, zasobów i harmonogramu testowania • Zidentyfikowanie przedmiotów testowania, funkcji do przetestowania, czynności, które trzeba wykonać oraz osób odpowiedzialnych za kaŜdą z nich • Zidentyfikowanie ryzyka związanego z planem IEEE 829 (Standard for Software Test Documentation) Plan testów • Plan testów to waŜny dokument kształtujący proces testowania w projekcie – stanowi podstawę do organizacji testowania w projekcie • Jest to dokument podrzędny wobec Planu projektu oraz informacji dotyczących jakości • Nie moŜe być dokumentem oderwanym od rzeczywistości 2 Podział zadań • • • • • • • Przygotowanie Test Planu Projektowanie testów Przygotowanie środowiska testowego Wykonanie testów Wykonanie retestów Zarządzanie defektami Przygotowanie raportu z testów Przykład: wykonanie testów • Testy integracyjne • Testy integracyjne modułu SprzedaŜ i Zarządzanie klientami • Testy integracyjne modułu Magazyn i SprzedaŜ • … • Testy funkcjonalne • Testy modułu „Zarządzanie klientami” • testy funkcji „dodawanie klienta” • testy funkcji „edycja klienta” • … • Testy modułu „SprzedaŜ” • … • … • Testy niefunkcjonalne • testy wydajnościowe • przegląd interfejsu uŜytkownika • … 3 Szacowanie pracochłonności testowania • • Testy stanowią 10 – 30% pracochłonności całego projektu informatycznego Średnio stanowią 50% pracochłonności etapu implementacji pracochłonność = czas * ilość zasobów jednostka: osobogodzina, osobomiesiąc, … Przykład: budŜet projektu: 800 osobogodzin maksymalny czas wykonywania testów: 1 miesiąc (176 godzin) pracochłonność testowania: 352 osobogodziny Wymagane zasoby = pracochłonność / czas = 352 / 176 = 2 Planowanie potrzebnych zasobów Do planowania zasobów wykorzystuje się jedną z metod szacowania kosztów wytwarzania oprogramowania. Najbardziej popularne metody: • metoda delficka – nazywana panelem ekspertów, bazuje na wiedzy i doświadczeniu osób, które zetknęły się juŜ z danym problemem • metoda punktów funkcyjnych - oparta na szacowaniu pracochłonności testowania róŜnych elementów projektowanej aplikacji 4 Planowanie czasu / harmonogram Tworzenie harmonogramu: • Polega na określeniu dat podstawowych działań w ramach czasowych projektu • NaleŜy pamiętać o określeniu kamieni milowych: Przykład: rozpoczęcie i zakończenie etapu testowania, testy akceptacyjne, itp.. Harmonogram testów Harmonogram – w postaci wykresu Gantta – powinien mieć trend liniowy. 5 Harmonogram testów Dobrze przygotowany harmonogram testów powinien być zbliŜony do wodospadu: • Na początku leniwy • W środkowym okresie gwałtowny • Na końcu powinien się uspokajać W praktyce ostatnie z etapów testów wymagają (w około 95% przypadków) zaangaŜowania maksymalnej liczby zasobów. Produkty procesu testowania • Testowanie jako proces • Produkty • wejściowe • wyjściowe Proces testowania 6 Produkty wejściowe • ZaleŜne od cyklu produkcyjnego • Stanowią podstawę do oceny jakości • Przykłady: • Specyfikacja wymagań • Modele i diagramy wg stosownych metodyk (strukturalnych, obiektowych) • Specyfikacje i opisy • Kod oprogramowania • Środowisko testowe Produkty wyjściowe • Zarządcze • Plan testów • Protokoły • Merytoryczne • • • • Projekty testów Dane testowe Dzienniki Raporty 7 Plan testów Cel: organizacja testów Zakres: • • • • • Struktura organizacyjna zespołu testów Wymagane kompetencje członków zespołu Rodzaje testów Zadania testowe Harmonogram • • • • • • Środowisko testowe Zarządzanie błędami Standardy i normy Techniki i Narzędzia MoŜliwe ryzyka Kryteria i Metryki IEEE 829 (Standard for Software Test Documentation) Projekt testów Cel: uporządkowane przygotowanie testów Projekt testów – zawartość: Procedury i przypadki testowe: • • • • • • • • • • Cel i zakres testów Rodzaje testów Metody i kryteria oceny testów Procedury i przypadki testowe Cel procedury Parametry środowiska testowego Scenariusz testowy Sprawdzenie wyników Przypadki testowe Dane testowe IEEE 829 (Standard for Software Test Documentation) 8 Dziennik testów Cel: zapis prac i wyników Zawartość: • • • • Testowany produkt Osoby przeprowadzające test Data i miejsce przeprowadzenia testu Zapis zdarzeń (Numer procedury i przypadku testowego, wynik testu, informacje o znalezionych błędach, załączniki) Protokół testów Cel: Podsumowanie wyników testów / zakończenie etapu testowania w projekcie Zawartość: • • • • Testowany produkt Końcowy raport z testów Wynik testów (pozytywny/negatywny, błędy) Decyzja: • Odbiór • Odbiór warunkowy • Niedopuszczenie produktu IEEE 829 (Standard for Software Test Documentation) 9 Przeprowadzenie testów Motto: Testowanie jest procesem wykonywania oprogramowania z intencją znalezienia błędów. Proces wykonania testów • Wykonanie przypadków testowych • • • • • • weryfikacja/ustawienie warunków początkowych wykonanie testu weryfikacja wyników testu zaraportowanie ewentualnych defektów zapisanie wykonania testu w dzienniku testów ustawienie środowiska testowego do stanu z przed warunków początkowych • Przygotowanie raportu z testów • Przygotowanie protokołu z testów 10 W skład wyniku testów wchodzą: • • • • Znalezione i zgłoszone defekty Wypełniony dziennik testów Przygotowany raport z testów Przygotowany protokół z testów Kontrola postępu prac - cel • Sprawdzenie stanu wykonania zaplanowanych prac • Sprawdzenie stanu zasobów 11 Kroki kontroli postępu prac • • • • • Zgromadzenie informacji o stanie wykonania i jakości prowadzonych prac Oszacowanie zaangaŜowania zasobów podczas analizowanego okresu Sprawdzenie czy zaplanowane prace mogą być zakończone na czas i w zaplanowanym budŜecie Uaktualnienie planu testów (planu projektu) Zidentyfikowanie spraw, które wymagają szczególnej uwagi Jak dobrze kontrolować? • • • • • Dostosować poziom i częstotliwość kontroli do faz projektu i wykonywanych prac Dostosować formę kontroli do złoŜoności projektu Sprawdzić, czy posiadane informacje są aktualne, uŜyteczne i dokładne Obiektywnie oceniać ilość czasu i pracy jaka została do zakończenia zadania Nie raportować więcej niŜ faktycznie jest wykonane 12 Zarządzanie zgłoszeniami problemów (defektów) Pomyłka (błąd człowieka, maszyny) Usterka, Defekt (wadliwy kawałek kodu źródłowego lub sprzętu) Awaria (wadliwy kawałek kodu jest wykonany i prowadzi do niepoprawnego działania systemu) 13 Zainteresowani zgłoszeniami defektów • • • • • Testerzy Programiści Kierownik/Szef testów Kierownik projektu Klient Po co śledzenie defektów? • • • • • • Przekazywanie informacji Podstawa do podejmowania decyzji Informacja o stanie projektu/produktu Wczesna identyfikacja zagroŜeń Dane do analizy projektowej Dane do udoskonalania funkcjonalności 14 Zarządzanie defektami Skuteczne zarządzania defektami zaleŜy od: • Decyzji jakiego narzędzia uŜywamy • • • • • śledzenie przy uŜyciu „papieru i ołówka” istniejącego w firmie (czy pasuje ?) zakupionego (dostrojonego do potrzeb) wyprodukowanego w ramach projektu Odpowiedzialności kierownika projektu czy szefa testów Typowe problemy • • • • • • • • Brak procedur: ogólny chaos Czy Testerzy są „łowcami programistów” ? Niejasny status: „Co teraz z tym błędem” ? Brak wsparcia dla potrzebnych statystyk Nieznajomość narzędzi lub procedur Procedury/narzędzia niedostosowane do potrzeb i wielkości projektu Brak odpowiedniego forum decyzyjnego Problemy na styku produktu – środowiska 15 Cykl Ŝycia zgłoszenia defektu Odrzucony Znaleziony Przydzielony Naprawiony Zamknięty OdłoŜony Krytyczność defektu 1/3 Definicja krytyczności defektu: Jest to klasyfikacja defektu na podstawie oceny stopnia wpływu tego defektu na działanie SUT (Software Under Testing – Aplikacja w fazie testów). IEEE Std 729 W wielu opisach pokrywa się to z pojęciem dokuczliwości defektu. 16 Krytyczność defektu 2/3 Określenie poziomu krytyczności defektu dokonuje się na podstawie odpowiedzi na kilka pytań: • Czy moŜna ominąć defekt i kontynuować testowanie ? • Czy aplikacja moŜe pracować niezawodnie z defektem? • Który fragment aplikacji jest odpowiedzialny za wystąpienie defektu? • JeŜeli defekt został usunięty, co zmieniono podczas jego usuwania? Krytyczność defektu 3/3 Określa się następujące poziomy defektu: • Krytyczny (dokuczliwość skrajna) • PowaŜny (dokuczliwość duŜa) • Średni (dokuczliwość średnia) • Mały (dokuczliwość niewielka) • Uwaga (dokuczliwość nieznana) 17 Krytyczność defektu (opis) • • • • • Krytyczny – defekt powoduje niewłaściwe działanie całego systemu lub uniemoŜliwia jego działanie. UŜytkownik nie moŜe go wykorzystać, PowaŜny – defekt nie właściwego działania aplikacji, ale powoduje podawanie przez system błędnych, niekompletnych lub niespójnych wyników, albo utrudnia wykorzystywanie/testowanie aplikacji. UŜytkownik moŜe wykonywać niektóre funkcje, Średni – pewien fragment całego systemu nie działa w ogóle lub nie działa prawidłowo. UŜytkownik nie moŜe wykonywać niektórych funkcji, Mały – defekt nie powoduje niewłaściwego działania całego systemu ale utrudnia wykorzystanie/testowanie. PoŜądane wyniki działania są łatwo uzyskiwane w inny sposób. MoŜna wykonywać większość operacji. Uwaga – defekt jest wynikiem nie zastosowania się do standardu, albo jest związany z estetyka systemu lub jest Ŝądaniem ulepszenia systemu itp. Priorytet defektu 1/2 Z klasyfikacji poziomu dokuczliwości (krytyczności) defektu powinien wynikać priorytet defektu (poziom odpowiedzialności) w celu określenia terminu poprawy. Istnieją jednak uzasadnione wyjątki, dlatego teŜ priorytet powinien być określany osobno, podczas analizy powstałych defektów. 18 Priorytet defektu 2/2 Poszczególne poziomy priorytetów: • Natychmiast – dalsze testowanie nie jest moŜliwe bez usunięcia błędu. Systemu nie moŜna uŜywać bez usunięcia błędu. NaleŜy wykonać nową wersję, • Jak najszybciej – błąd musi zostać usunięty jak najszybciej poniewaŜ utrudnia budowę i/lub testowanie. Testowanie aplikacji będzie znacznie utrudnione dopóki błąd nie zostanie usunięty. Błąd powinien być usunięty w najbliŜszej wersji, • Normalny – błąd naleŜy usunąć w zwykłym trybie podczas dalszej budowy. MoŜe on zostać usunięty w następnej wersji, • Niski – błąd utrudnia pracę i powinien zostać usunięty w miarę moŜliwości, • OdłoŜony – poprawa błędu moŜe zostać odłoŜona w czasie. Typowe raporty • Lista defektów • • • • • Według statusów Według krytyczności Według priorytetów Według produktów Według testerów • Raporty czasowe 19 Narzędzia do zarządzania defektami Podstawowe funkcje: • • • • • Śledzenie defektów Klasyfikacja Filtrowanie/Grupowanie Raporty Śledzenie zmian w oprogramowaniu Funkcje dodatkowe • • • • Notyfikacje e-mailowe Dołączanie zrzutów ekranowych Dołączanie plików Profilowany dostęp dla uŜytkownika Podstawowe elementy zgłoszenia • • • • • • • • • • • Id Krótki opis DłuŜszy opis Moduł/Wersja oprogramowania Autor zgłoszenia Aktualny właściciel zgłoszenia Status Historia zmian Załącznik Powiązania z innymi błędami inne 20 Przykładowe narzędzia Najbardziej znane i najczęściej uŜywane narzędzia do zarządzania zgłoszeniami: • BUGZILLA – www.bugzilla.org • GFORGE – www.gforge.org Komercyjne: • IBM Rational Clear Quest • HP Test Director HP Quality Center - Test Director 21 Zarządzanie środowiskami RóŜnice między środowiskami • Środowisko produkcyjne Celem istnienia środowiska produkcyjnego jest uruchomienie i udostępnienie na nim aplikacji z rzeczywistymi danymi oraz obsługa uŜytkowników. • Środowisko rozwojowe/testowe Celem istnienia środowiska rozwojowego jest produkcja oprogramowania oraz naprawianie defektów. • Środowisko programistyczne Celem istnienia środowiska programistycznego jest prowadzanie na nim róŜnego typu testów oraz prac prowadzonych przez programistów. 22 Utrzymanie środowisk • Sprzęt • Podobieństwo do środowiska produkcyjnego • BudŜet, odpowiedzialność, utrzymanie między projektami • Utrzymanie • Zarządzanie konfiguracją • Instalowanie narzędzi, sterowników • Prawa dostępu, dostęp do danych (wiele projektów) • Bezpośredni dostęp • Programiści, testerzy – co i na jakich zasadach („logi”) ? Szef testów Kierownik Testów, Test Manager 23 Szef testów • Szef testów to człowiek odpowiedzialny nie tylko za „obsługę” problemów testowych • Często szef testów jest równorzędnym partnerem dla szefa projektu, a nie tylko jego „pomocnikiem” • Powinien on mieć autonomię w zakresie swoich zadań Szef testów – spojrzenie z zewnątrz • Opiekun jakości • Ktoś kto pilnuje, Ŝeby testy przeprowadzone były na czas, ograniczonymi zasobami i aby były wykryte „wszystkie” błędy • W konsekwencji eliminuje kryzysy, opóźnienia itd. Zadania szefa testów W uproszczeniu jego zadania i zakres odpowiedzialności to: • • • • Planowanie testów Pozyskiwanie właściwych zasobów Ocena skuteczności wykonania testów Jest „rzecznikiem” konieczności testowania Będąc kierownikiem testów jesteśmy partnerem Project Managera, dlatego powinniśmy: • • • • Dobrze rozumieć podstawowy cel projektu Mieć dobrą komunikację wewnątrz i poza zespołem Być elastycznym wobec róŜnych aspektów procesu projektowego Mieć umiejętności techniczne, interepersonalne, koncepcyjne, analityczne, polityczne 24 Testalia • Dokumentacja (plany, specyfikacje, raporty, logi, zgłoszenia) • Dane testowe (wejściowe i oczekiwane poprawne wyniki) • Pliki konfiguracyjne • Programy do testów automatycznych • Platforma testowa (sprzęt, inne oprogramowanie, sieć) Literatura • The Art of Software Testing – Glenford J. Meyers • Metodyka wprowadzania oprogramowania na rynek – Michael E. Bays • http://en.wikipedia.org/wiki/Test_management_approach • Metoda punktów funkcyjnych: www.ploug.org.pl/konf_01/materialy/pdf/magiera.pdf • SJSI: www.sjsi.org 25 Dziękujemy 26