UPEDU: Testowanie (ang. Testing discipline)



Podobne dokumenty
UPEDU: Rozpoznanie wymagań (ang. requirements discipline)

Testowanie oprogramowania. Piotr Ciskowski

Maciej Oleksy Zenon Matuszyk

Rozpoczęcie, inicjacja (ang. inception

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

UPEDU: Implementacja (ang. Implementation discipline)

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Szablon Planu Testów Akceptacyjnych

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Opis metodyki i procesu produkcji oprogramowania

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

UPEDU: Zarządzanie projektem (ang. Project Management Discipline)

Inżynieria oprogramowania (Software Engineering)

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

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

Wstęp do zarządzania projektami

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

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

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

PRZEWODNIK PO PRZEDMIOCIE

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Strategia testów mająca doprowadzić do osiągnięcia pożądanych celów

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

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

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Załącznik nr 19 do Umowy nr... z dnia... Plan Testów Systemu. Projekt ZEFIR 2

Weryfikacja i walidacja. Metody testowania systemów informatycznych

Sukces vs porażka. Sukces. Porażka

Inżynieria Programowania Zarządzanie projektem

Optymalizacja Automatycznych Testów Regresywnych

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Wstęp do zarządzania projektami

Metodyka wdrożenia. Bartosz Szczęch. Starszy Konsultant MS Dynamics NAV

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

Wytwórstwo oprogramowania. michał możdżonek

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

Metodyka Sure Step. Agenda:

Wykład 1 Inżynieria Oprogramowania

Testowanie i walidacja oprogramowania

OD JAKOŚCI DO TRWAŁOŚCI REZULTATÓW W PROJEKTACH ERASMUS+

Testowanie oprogramowania. Testowanie oprogramowania 1/34

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

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

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

Projektowanie systemów informatycznych. wykład 6

Inżynieria oprogramowania II

REFERAT PRACY DYPLOMOWEJ

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Testy poziom po poziomie

Kuchta Jarosław Jakość Oprogramowania. Modele dojrzałości procesu wytwarzania oprogramowania CMM/CMMI

KARTA MODUŁU KSZTAŁCENIA

Metodyka projektowania komputerowych systemów sterowania

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Overlord - Plan testów

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Nowoczesne aplikacje mobilne i ich rola w podnoszeniu jakości danych

Praktyka testowania dla początkujących testerów

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

Etapy życia oprogramowania

Wstęp do zarządzania projektami

Procesowa specyfikacja systemów IT

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

Tworzenie przypadków testowych

Testowanie oprogramowania

Usługa: Testowanie wydajności oprogramowania

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

RUP. Rational Unified Process

Dlaczego testowanie jest ważne?

PRZEWODNIK PO PRZEDMIOCIE

Zapewnij sukces swym projektom

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Nowe Systemy Notujące na TGE

Cykle życia systemu informatycznego

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

Projektowanie oprogramowania

Konwerter Plan testów. Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008

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

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

Plan Testów Systemu SOS

INSTRUKCJA ZARZĄDZANIA RYZYKIEM W PROJEKTACH I PROGRAMACH STRATEGICZNYCH

Modelowanie i analiza systemów informatycznych

INŻYNIERIA OPROGRAMOWANIA Wykład 6 Organizacja pracy w dziale wytwarzania oprogramowania - przykład studialny

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

Programowanie zespołowe

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

Testujemy dedykowanymi zasobami (ang. agile testers)

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Tester oprogramowania 2014/15 Tematy prac dyplomowych

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Wprowadzenie do Behaviordriven

Nie o narzędziach a o rezultatach. czyli skuteczny sposób dokonywania uzgodnień pomiędzy biznesem i IT. Władysławowo, 6 października 2011 r.

Jan Sabak Szkoła Główna Handlowa października 2011

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Microsoft Test Manager

Transkrypt:

Wydział Informatyki PB Wprowadzenie Inżynieria oprogramowania II Marek Krętowski e-mail: mkret@wi.pb.edu.pl http://aragorn.pb.bialystok.pl/~mkret Wykład 9: UPEDU: Testowanie (ang. Testing discipline) Dwa najbardziej powszechne (a zarazem kosztowne) błędy związane z testowaniem: traktowanie testowania jako końcowego zadania procesu wytwórczego wprowadzanie niezależnego zespołu testującego, gdy implementacja jest na ukończeniu, tuż przed dostarczeniem aplikacji do klienta Co więcej w wielu projektach w końcowej fazie realizacji brakuje czasu (lub zasobów), co wymusza ograniczenie nawet takich testów W procesie opartym o iteracje testowanie jest częścią procesu i tak jak inne czynności musi być zaplanowane, zaprojektowane, zaimplementowane a następnie wykonane przez członków zespołu Testowanie przeprowadzane powinno być podczas tworzenia oprogramowania, jedynie testy akceptacyjne wykonywane są podczas fazy przekazania (ang. transition) Na podstawie podręcznika: Software Engineering Process with the UPEDU P. Robillard, P. Kruchten, P. d'astous, Addison- Wesley, 2003 IO2 (wyk. 9) Slajd 2 z 24 (Kiedy) testowanie czas zacząć... Ocena jakości poprzez testowanie Odpowiednio wczesne rozpoczęcie testowania oraz jego poprawne przeprowadzenie pozwala na znaczącą redukcję kosztów ukończenia i utrzymywania oprogramowania Właściwie przemyślane testy redukują ryzyka oraz problemy związane z dostarczeniem oprogramowania niskiej jakości (niska produktywność użytkowników końcowych, błędy wprowadzania danych i obliczeń, nieakceptowalne dysfuncjonalne zachowania,...) Iteracyjność narzuca pewne wymagania na opracowywanie testów, które muszą rozwijać się w odpowiedzi na zmiany zachodzące w tworzonym oprogramowaniu Koszt Tworzenie Wdrożenie Jednym z celów testowania jest sprawdzenie kompletności wykonania iteracji poprzez zweryfikowanie czy dodatkowe lub rozszerzone wymagania są już spełnione Planowanie i projektowanie testów może prowadzić do wykrycia błędów lub słabych punków w wymaganiach IO2 (wyk. 9) Slajd 3 z 24 Choć często widziane jako sposób na poprawę jakości oprogramowania w rzeczywistości powinno być raczej traktowane jako sposób pomiaru jakości osiągniętej w procesie wytwórczym Jakość oprogramowania i testy są powiązane w takim sensie, że testowanie pozwala na potwierdzenie jakość, lecz samo jej nie tworzy Atrybuty jakości, które mogą być oceniane podczas testowania funkcjonalność - typowe czynności testowania, w oparciu o utworzone testy dla poszczególnych scenariuszy niezawodność, solidność (ang. reliability) - nie w oparciu o przypadki użycia, raczej przy użyciu narzędzi kompilacji i analizy osiągi aplikacji (ang. application performance) - zachowanie się aplikacji uruchomionej samodzielnie osiągi systemu (ang. system performance) - zachowanie się aplikacji w ramach całego systemu IO2 (wyk. 9) Slajd 4 z 24

Atrybuty jakości Type Why? How? IO2 (wyk. 9) Slajd 5 z 24 Rodzaje testowania Testy integracyjne (ang. integration testing) - wykonywane w celu sprawdzenia czy komponenty współpracują ze sobą poprawnie np. podczas realizacji przypadku użycia; służy do wychwycenia niekompletności lub błędów w specyfikacjach interfejsów pakietów Testy systemu (ang. system testing) - rozpoczynają się gdy oprogramowanie jako całość lub jego jasno określona część jest funkcjonalna (sprawna) Testy akceptacyjne (ang. acceptance testing) -celem jest sprawdzenie czy oprogramowanie jest gotowe i może być przekazane użytkownikowi, aby realizować postawione wymagania ALFA - wykonywane w środowisku wytwórczym przez wytwórców oraz klientów, aby sprawdzić czy stworzony system jest akceptowalną implementacją wymagań BETA - wymaga dostarczenia systemu do pewnej liczby potencjalnych klientów, którzy zgodzili się wykorzystywać system i przekazywać pojawiające się problemy IO2 (wyk. 9) Slajd 6 z 24 Poziomy testowania Czynności dyscypliny testowania IO2 (wyk. 9) Slajd 7 z 24 IO2 (wyk. 9) Slajd 8 z 24

Planowanie i projektowanie testów IO2 (wyk. 9) Slajd 9 z 24 Planowanie i projektowanie testów Celem jest rozpoznanie wymagań, które będą testowane, wskazanie zakresu testowania oraz ustalenie zasobów niezbędnych do przeprowadzenia testów Dowolne aspekty zachowania oprogramowania mogą być badane pod warunkiem, że uzyskiwane są obserwowalne i mierzalne wyniki Wymagania do testów są najczęściej wyprowadzane z istniejących list wymagań, przypadków użycia, ich modeli i realizacji, dodatkowych specyfikacji, wymagań projektowych, rozmów z użytkownikami oraz przeglądów istniejących systemów Niezbędne jest odpowiednie zrównoważenie ryzyka z ograniczeniami zasobów w celu maksymalizacji efektywności testów i minimalizacji wysiłku związanego z testowaniem; zwykle powiązane z przypisaniem priorytetów, które określają sekwencję testów Strategia testów (kolejne kroki, planowanie i wykonanie, czas i zasoby), stosowane podejście (różne wykorzystywane techniki: biała i czarna skrzynka) oraz kryteria (obiektywne wyrażenia określające zakończenie i sukces testu) powinny być zdefiniowane i przedstawione członkom zespołu IO2 (wyk. 9) Slajd 10 z 24 Planowanie i projektowanie testów (2) Implementacja testów Celem projektowania testu jest rozpoznanie i opisanie akcji aktora, gdy wchodzi on w interakcję z systemem => tworzone są przypadki testowe Przypadek testowy jest opisem konkretnego przeprowadzanego testu; składają się z specyficznych danych niezbędnych do przeprowadzenia testu oraz spodziewanych rezultatów; ponadto macierz zawierająca warunki testu, dane, stany systemu tworzące warunki, które są testowane Procedury testowe mogą być wykonywane ręcznie lub zaimplementowane w celu zautomatyzowanego wykonania; tworzone są skrypty testowe Testy powinny być rygorystycznie zaplanowane, wyznaczone, udokumentowane i śledzone. Wykonywane ad hoc (spontanicznie) wiążą się zwykle ze stratą zasobów (czasu) IO2 (wyk. 9) Slajd 11 z 24 IO2 (wyk. 9) Slajd 12 z 24

Implementacja testów Wykonanie testów Rodzaje komponentów testowych: jednorazowy (ang. throwaway)- wykorzystywane jeden raz, tylko w celu testowania określonej funkcjonalności skrypt (ang. script) - wykorzystywany wielokrotnie, zwykle zautomatyzowany w celu zapewnienia łatwości wykorzystania żywy trup (ang. zombie) - stworzony aby symulować rzeczywisty komponent; jedynie minimalna funkcjonalność (driver lub stub) Dwa rodzaje pełnomocników (stub): proste - zwracają jedynie określoną wartość, może być ich potrzebnych wiele złożone - wykonują pewne przetwarzanie i zwykle symulują bardziej złożone systemy lub zachowania Dwa rodzaje driver-ów: symulujące i kontrolujące wszystkie zewnętrzne interakcje z aplikacją dostarczające GUI, który nie został jeszcze zaimplementowany IO2 (wyk. 9) Slajd 13 z 24 IO2 (wyk. 9) Slajd 14 z 24 Wykonanie testów Aby wykonać testy, wszystkie niezbędne elementy (sprzęt, oprogramowanie, narzędzia, dane,...) muszą być przygotowane i dostępne w środowisku testowym Ważne jest aby dokonać oceny testów, aby stwierdzić czy zostały one przeprowadzone kompletnie i tak jak zaplanowano; w przypadku anomalii podczas czynności testowych, odpowiednie akcje poprawiające powinny być przedsięwzięte Testy mogą zakończyć się przedwcześnie wskutek problemów z wykonaniem lub ograniczeń czasowych Testowanie regresyjne (ang. regression testing) - po wprowadzeniu zmian do oprogramowania wykonywane w celu zapewnienia, że defekty nie zostały wprowadzone jako rezultat zmian; ten typ testów porównuje aktualną z poprzednią wersją i identyfikuje różnice jako potencjalne defekty (przy założeniu, że zachowanie nie powinno ulec zmianie) Nacisk na tego typu testowanie jest kładziony podczas kolejnych iteracji, gdy większość z testów z n-tej iteracji jest wykorzystywana w n+1 iteracji jako testy regresyjne (ponadto każdorazowo dodawane są jednak nowe testy, które nie Iteration n Testowanie regresyjne (ang. regression testing) Iteration n+1 Każdy nowy przypadek testowy może być potencjalnie włączony do testów regresyjnych; pamiętać trzeba jednak o kosztach utrzymania i wykonywania testów w odniesieniu do korzyści z ich przeprowadzenia Wykorzystanie narzędzi automatyzacji testów znacząco poprawia stosunek korzyści do kosztów w testowaniu regresyjnym Iteration n+2 muszą być regresyjne) IO2 (wyk. 9) Slajd 15 z 24 IO2 (wyk. 9) Slajd 16 z 24

Różnorodność artyfaktów Artefakty Przypadek testowy (ang. test case) - podstawowy artefakt, zawiera opis wszystkich informacji niezbędnych do wykonania testu Skrypt testowy - pozwala na automatyzację przypadków testowych, wykorzystywane przede wszystkim podczas testów regresyjnych Model testowy - zbiór przypadków testowych wraz z odpowiadającymi im skryptami Plan test - identyfikuje strategię testów oraz określa niezbędne zasoby Rezultat testów - wyjście wszystkich czynności testowych Defekty - listuje anomalie znalezione w wyniku testów Zapotrzebowanie na zmiany (ang. request for change) - zawiera anomalie powstałe podczas testów Ocena testów (ang. test evaluation) - prezentuje wykresy i inne dane dotyczące niezawodności, solidności (ang. reliability) czynności testowych Klasy i komponenty testowe IO2 (wyk. 9) Slajd 17 z 24 IO2 (wyk. 9) Slajd 18 z 24 Przypadki testowe (ang. test cases) Plan testów Tworzone dla każdego przypadku użycia (scenariusza) związanego z iteracją, w przypadku zbyt dużej liczby wprowadza się priorytety (co najmniej standardowy i alternatywne przepływy podczas normalnego użytkowania) Kolejne przypadki testowe mogą być tworzone jako warianty już istniejących (taki sam przebieg testu, ale inne dane wejściowe i wyniki) Drugim ważnym źródłem przypadków testowych są wymagania niefunkcjonalne nie manifestujące się w przypadkach użycia (np. obciążenie - zdolność przetwarzanie dużych danych) Akceptacyjne przypadki testowe - podzbiór wzajemnie uzgodnionych przez klienta i dostawcę przypadków testowych na bazie których dokonywany jest test akceptacyjny (wykonywany w określonych warunkach, np. obecność eksperta - świadka) IO2 (wyk. 9) Slajd 19 z 24 Strategia testów - zarysowuje ogólne podejście, cele (w ramach danej iteracji) oraz harmonogram czynności testowych IO2 (wyk. 9) Slajd 20 z 24

Defekty Zawiera dokładny opis anomalii oraz sposób w jaki może być on odtworzony status - otwarty, poprawiany, zamknięty,... priorytet - natychmiastowe wykonanie, wysoki priorytet, normalna kolejka, niski istotność (ang. severity), krytyczność (ang. criticality) - błąd fatalny (ang. fatal error), podstawowa funkcja nie została wykonana, pomniejsza niedogodność źródło - wymagania, architektura, moduł N, biblioteka Standardy opisywania anomalii np. taksonomia z IEEE 10444 Należy uważać na sygnalizowane defekty, które mogą być w rzeczywistości dodatkowymi wymaganiami rozbudowy funkcjonalności; ponadto mogą pojawiać się powtórzenia Niezbędna jest dokładna analiza zebranych defektów - raporty oceny defektów (ang. defect evaluation report) oraz śledzenie ich losu: wykorzystanie specjalizowanego oprogramowania IO2 (wyk. 9) Slajd 21 z 24 Raporty oceny defektów (ang. defect evaluation reports) DDR -Defect distribution reports Defect density reports DTR - Defect trend reports IO2 (wyk. 9) Slajd 22 z 24 Raport trendu (ang. defect trends report) Raport gęstości defektów (ang. defect density report) Defect density by Use-Case Flow and Severity IO2 (wyk. 9) Slajd 23 z 24 IO2 (wyk. 9) Slajd 24 z 24