Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to...

30
Testowanie oprogramowania Testowanie niefunkcjonalne dr inż. Grzegorz Michalski 27 października 2015 Testowanie oprogramowania 1/30

Transcript of Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to...

Page 1: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie oprogramowaniaTestowanie niefunkcjonalne

dr inż. Grzegorz Michalski

27 października 2015

Testowanie oprogramowania 1/30

Page 2: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Norma ISO

ISO 9126Norma dotycząca zagadnień jakości oprogramowania wprowadza podziałna testy funkcjonalne i niefunkcjonalne. Norma podzielona jest na czteryczęśći:

9126–1: model jakości opisujący 6 kategorii jakości

9126–2: metryki dla zewnętrznych (dynamicznych) pomiarówcharakterystyk jakości

9126–3: metryki dla wewnętrznych (statycznych) pomiarówcharakterystyk jakości

9126–4: metryki dla quality–in–use (pomiary dla gotowego produktubędącego w użyciu)

Testowanie oprogramowania 2/30

Page 3: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Kategorie i podkategorie jakości

funkcjonalność:dopasowaniedokładnośćwspółdziałaniezgodnośćbezpieczeństwo

niezwodność:odporność na błędyodtwarzalnośćdojrzałość

użyteczność:zrozumiałośćłatwość naukiłatwość obsługi

Testowanie oprogramowania 3/30

Page 4: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Kategorie i podkategorie jakości (2)

efektywność:efektywność czasowazużycie zasobów

pielęgnowalność:analizowalnośćtestowalnośćmodyfikowalnośćstabilność

przenaszalnośćadaptowalnośćzgodnośćinstalowalnośćzastępowalność

Testowanie oprogramowania 4/30

Page 5: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie niefunkcjonalne

1 Testowanie funkcjonalne =⇒ Co system robi.2 Testowanie niefunkcjonalne =⇒ Jak (jak dobrze) system to robi.3 Główne techniki testowania niefunkcjonalnego to techniki

czarnoskrzynkowe.4 Testowanie niefunkcjonalne może zależeć od wymagań, ale często

zależy od nich niejawnie!

Testowanie oprogramowania 5/30

Page 6: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie atrybutów jakościowych

Atrybuty jakościowe1 testowanie dziedzinowe2 testowanie techniczne

Testowanie oprogramowania 6/30

Page 7: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie dziedzinowe

Testowanie dziedzinowedokładność

dopasowanie

współdziałanie

użyteczność

dostępność

funkcjonalne bezpieczeństwo

Testowanie oprogramowania 7/30

Page 8: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie techniczne

Testowanie dziedzinowebezpieczeństwo

niezawodność

efektywność

pielęgnowalność

przenaszalność

Testowanie oprogramowania 8/30

Page 9: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie dziedzinowe

Testowanie oprogramowania 9/30

Page 10: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dokładność

DokładnośćZdolność systemu do dostarczania rezultatów jego działania naodpowiednim poziomie precyzji.Synonim: poprawność (correctness)

Przypadek idelany: dokładność wynika ze specyfikacji.Wykorzystywane techniki:

analiza wartości brzegowych

tablice decyzyjne (gdy wartość wynika z wielu wejść)

Testowanie oprogramowania 10/30

Page 11: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dokładność a poziomy testowania

sprawdzenie poprawności danych przechowywanych w pamięci

sprawdzenie, czy precyzja nie jest tracona przy transferze danychpomiędzy modułami

sprawdzenie dokładności na poziomie systemowym (zwykle dostępnaspecyfikacja)

klient powinien być zadowolony z rezultatów scenariuszy, raportów izapytań

Testowanie oprogramowania 11/30

Page 12: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dopasowanie

Dopasowanie

Zdolność systemu do dostarczania odpowiedniego zbioru funkcji dlaokreślonych zadań i celów użytkownika.Inaczej: czy system potrafi rozwiązać zadany problem?Konieczna u testera wiedza dziedzinowa.Typ testów posiadający charakter walidacyjny

Wykorzystywane techniki

use case’y

wywiady

scenariusze testowe

testy eksploracyjne

Testowanie oprogramowania 12/30

Page 13: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dopasowanie – przykład (1)

Zakup w sklepie e-commerce: normalny proces1 Klient umieszcza jeden lub więcej produktów w koszyku2 Klient wybiera „checkout”3 System pobiera od Klienta adres, formę płatności i formę dostawy4 System wyświetla w/w informacje dla potwierdzenia przez Klienta5 Klient potwierdza Systemowi zamówienie

Wyjątki:

Klient próbuje zrobić „checkout” z pustym koszykiem – systemzwraca odpowiedni komunikat o błędzie

Klient wpisuje błędny adres, formę płatności lub formę dostawy –system zwraca odpowiedni komunikat o błędzie

Klient przerywa transakcję przed lub w trakcie checkoutu; Systemwylogowuje Klienta po 10 minutach nieaktywności

Testowanie oprogramowania 13/30

Page 14: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dopasowanie – Testowanie typowego przypadku

L.p. Krok testowy Oczekiwany wynik1 Włóż 1 produkt do koszyka Produkt w koszyku2 Kliknij checkout Ekran checkoutu3 Wpisz poprawny adres, formę płatności (przelew) Ekrany wyświetlone prawidłowo

i formę dostawy i wejścia zaakceptowane4 Weryfikuj informację o zamówieniu Wyświetlone jak podano5 Potwierdź zamówienie Zamówienie w systemie6 Powtórz 1-5, ale z 2 produktami, kartą Visa Tak jak w 1-5

i zamówienie międzynarodowe7 Powtórz 1-5, ale z max liczbą produktów Tak jak w 1-5

i kartą MasterCard

Testowanie oprogramowania 14/30

Page 15: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dopasowanie – Testowanie przy wyjątkowychprzypadkach

L.p. Krok testowy Oczekiwany wynik1 0 produktów w koszyku Koszyk pusty2 Kliknij checkout Komunikat o błędzie3 Włóż produkt, kliknij checkout, wpisz Komunikaty o błędach; nie da

zły adres, potem złą formę płatności, się przejść do następnego eranupotem złą inf. o dostawie dopóki dane nie są poprawne

4 Zweryfikuj info o zamówieniu Wyświetlone jak podano5 Potwierdź zamówienie Zamówienie w sytemie6 Powtórz 1-3, ale zatrzymaj i przerwij Użytkownik wylogowany po

po włożeniu produktu 10 minutach nieaktywności7 Powtórz 1-3, ale zatrzymaj Jak w 6

i przerwij po każdym ekranie8 Powtórz 1-4, nie potwierdzaj zamówienia Jak w 6

Testowanie oprogramowania 15/30

Page 16: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Współdziałanie

Współdziałanie

Zdolność systemu do interakcji z jednym lub wieloma komponentamisystemu

Testowanie poprawności funkcjonalności we wszystkich zamierzonychśrodowiskach (hardware, software, middleware, infrastruktura sieciowa,systemy bazodanowe, systemy operacyjne). Dotyczy też komponentów dlaktórych współdziałanie jest niebezpośrednie

Testowanie oprogramowania 16/30

Page 17: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Współdziałanie

Silny nacisk na element testowania konfiguracji

Ważny typ testów w przypadku tworzenia lub integracjioprogramowania z półki (COTS) oraz „systemów systemów” (systemsof systems)

Ważny typ w fazie testów integracyjnychStosowane techniki:1 use-case’y, scenariusze testowe2 podział na klasy równoważności3 pair-wise, techniki kombinacyjne4 drzewa klasyfikacji

Testowanie oprogramowania 17/30

Page 18: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Użyteczność

Użyteczność

Zdolność systemu do bycia zrozumiałym, łatwym do nauczenia, użycia iatrakcyjnym dla użytkownika.

Testowanie skupiające się na użytkownikach.

Często wymaga wiedzy psychologicznej, socjologicznej oraz wiedzy zzakresu ergonomii; również narodowych/lokalnych standardów dot.dostępności

Chcemy obserwować efekty testowania na prawdziwych, końcowychużytkownikach (a nie testerach)

Testowanie oprogramowania 18/30

Page 19: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Podcharektyrystyki użyteczności

Zrozumiałość – jak łatwo zrozumieć co program robi i dlaczegomielibyśmy go używać?

Łatwość nauki – łatwość zrozumienia jak program działa

Łatwość obsługi – czy obsługa programu jest intuicyjna?

Atrakcyjność – czy użytkownik chętnie używa programu?

Testowanie oprogramowania 19/30

Page 20: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Techniki testowania użyteczności

inspekcja (ewaluacja, przegląd)1 efektywne w wykrywaniu błędów wcześnie2 można wykorzystać końcowych użytkowników

walidacja aktualnej implementacji – może zawierać uruchamianiescenariuszy testów użytecznościankieta/kwestionariusz/obserwacja1 obserwowanie użytkowników podczas użytkowania oprogramowania2 standardowe ankiety typu SUMI

Testowanie oprogramowania 20/30

Page 21: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Software Usability Measurement Inventory

SUMI opiera się na badaniu ankietowym w sześciu obszarach mających decydującywpływ na wydajność pracy. Badane obszary to:

współpraca – łatwości współpracy i komunikacji pomiędzy użytkownikami

dostęp do danych – tworzenie zestawień, raportów, wyszukiwanie informacji,wymiana informacji;

elastyczność – obsługa nietypowych problemów i zadań, możliwości wprowadzaniamodyfikacji;

użyteczność – łatwość obsługi, komfort pracy;

znajomość – nauka obsługi, intuicyjność rozwiązań;

wydajność transakcyjna – szybkość i niezawodność, wykonywanie powtarzalnychzadań.

Badanie polega na wypełnieniu ankiet przez użytkowników systemu. Pytania wposzczególnych obszarach tworzone są w oparciu o scenariusze użycia, któreodzwierciedlają realną pracę z systemem. Muszą one odpowiadać uprawnieniom izakresom obowiązków użytkowników.

Testowanie oprogramowania 21/30

Page 22: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Dostępność

Dostępność

Zdolność systemu do bycia używalnym przez użytkowników z różnymiformami inwalidztwa. Wymagania często wynikają z jakichś standardówlub wymogów prawnych. Standardy narzucają wykorzystanie technologiiasystujących (np. text–to–speech, lupa, zmiana kontrastu itp.)

Testowanie oprogramowania 22/30

Page 23: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Testowanie techniczne

Testowanie oprogramowania 23/30

Page 24: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Bezpieczeństwo

Bezpieczeństwo

Atrybuty oprogramowania umożliwiające ochronę przed nieautoryzowanymdostępem do programu i danych. Często zagrożenia związane zbezpieczeństwem są ukryte, niejawne i niewidoczne. Błędy bezpieczeństwaczęsto nie mają widocznych symptomów (nawet po włamaniu)

Testowanie oprogramowania 24/30

Page 25: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Obszary związane z bezpieczeństwem

Nieautoryzowany dostęp do danych – SQL injection, hasła, plikitymczasowe, fizyczna lokalizacja serwera

Przepełnienie bufora

DoS (denial of service)

Przechwycenie transferu danych

Łamanie zabezpieczeń (kryptologia)

Bomby logiczne/wirusy/robaki

Przypadki testowe to zwykle ataki na oprogramowanie

Testowanie oprogramowania 25/30

Page 26: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Niezawodność

NiezawodnośćZdolność oprogramowania do bezbłędnego działania przez określony czaslub przez określoną liczbę operacji. Zawsze ważna, ale kluczowa wsystemach krytycznych Testy niezawodności wykorzystują profileoperacyjne.3 cechy niezawodności:1 dojrzałość (zdolność do bezawaryjnego działania przy występowaniu

usterek)2 tolerancja na błędy (wyjątki i ich obsługa)3 odtwarzalność (zdolność działania po awarii)

Testowanie oprogramowania 26/30

Page 27: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Metryki niezawodności

Metryki wykorzystywane do pomiaru niezawodności:

MTTF (mean time to failure)

MTTR (mean time to repair)

MTBF (mean time between failures)

gęstość defektów

złożoność cyklomatyczna

liczba modułów

liczba określonych konstrukcji programistycznych

Wartości metryk porównuje się z odpowiednim modelem do monitorowaniamożna użyć tzw. modeli wzrostu niezawodności

Testowanie oprogramowania 27/30

Page 28: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Pielęgnowalność

Pielęgnowalność

Ławtość modyfikowania oprogramowania w celu naprawy defektów,dostosowania do nowych wymagań, ułatwienia przyszłego utrzymywanialub dostosowania do zmian zachodzących w jego środowisku.Oprogramowanie się nie zużywa, ale staje się przestarzałe. Zatem będąpojawiać się nowe funkcjonalności, patche, update’y, nowe środowiska itp

Testowanie oprogramowania 28/30

Page 29: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Pielęgnowalność (2)

Testowanie pielęgnowalności nie polega na pisaniu skryptów testowych;większość defektów jest niewidoczna dla testowania dynamicznego.Defekty pielęgnowalności powodowane są m.in.:

trudnym do zrozumienia kodem

zależnościami środowiskowymi

ukrytymi informacjami i stanami

zbytnią złożonością

Stosowane techniki: testowanie statyczne

Testowanie oprogramowania 29/30

Page 30: Testowanie oprogramowania - Testowanie niefunkcjonalneicis.pcz.pl › ~michalski › download › to › w04.pdf · na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest

Przenaszalność

PrzenaszalnośćŁatwość, z jaką oprogramowanie może być przeniesione z jednegośrodowiska do innego.Najczęstsze przyczyny problemów z przenaszalnością:

zależności środowiskowe

zajmowanie zasobów

niestandardowe interakcje systemu operacyjnego

np. klasyczne dla Windows: zmiana w dzielonym rejestrze podczasinstalacji lub usunięcie dzielonych plików przy deinstalacji

Testowanie oprogramowania 30/30