Testowanie oprogramowania



Podobne dokumenty
Testowanie oprogramowania. Wykład 8 testowanie niefunkcjonalne (testowanie charakterystyk jakościowych) testowanie z użyciem narzędzi

Zespół: Agata Chrobak Kornel Jakubczyk Tomek Klukowski Przemek Kosiak. Projekt SZOP Plan testów

Testowanie oprogramowania

Dlaczego testowanie jest ważne?

Kwestionariusz dotyczący działania systemów teleinformatycznych wykorzystywanych do realizacji zadań zleconych z zakresu administracji rządowej

Testowanie wymagań KAROLINA ZMITROWICZ, RADOSŁAW SMILGIN

Maciej Oleksy Zenon Matuszyk

Praktyka testowania dla początkujących testerów

Plan. Zapewnienie jakości produktu informatycznego. Zarządzanie jakością i metryki oprogramowania. Podstawowe parametry mierzalne

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP The OWASP Foundation

Sukces vs porażka. Sukces. Porażka

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

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Problematyka użyteczności serwisów internetowych

Szablon Planu Testów Akceptacyjnych

Web frameworks do budowy aplikacji zgodnych z J2EE

Kontrola jakości artefaktów

Model jakości McCalla

Modelowanie i analiza systemów informatycznych Spis treści

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 9 Strukturyzacja modelu przypadków użycia

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

Cele przedsięwzięcia

Tom 6 Opis oprogramowania

Dokumentacja projektu QUAIKE Architektura oprogramowania

PORTAL KLIENTA I OBSŁUGA ZGŁOSZEŃ.V01. VULCAN Innowacji

Etapy życia oprogramowania

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

Testowanie oprogramowania. Testowanie oprogramowania 1/34

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

Inżynieria oprogramowania II

Dobór systemów klasy ERP

Od pomysłu do podpisania umowy. Izabela Adamska

Aktualizacja modemu LTE Speed 1000

Wykład 7. Projektowanie kodu oprogramowania

Program RMUA. Instrukcja konfiguracji i pracy w programie. (Wersja 2)

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

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Usprawnienie procesu zarządzania konfiguracją. Marcin Piebiak Solution Architect Linux Polska Sp. z o.o.

Wymagania pozafunkcjonalne - projektowanie interfejsu użytkownika

Dokumentacja techniczna

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Najwyżej ocenione raporty dla Mr Buggy 4

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Instrukcja instalacji usługi Sygnity Service

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

Zasady bezpiecznego korzystania z bankowości elektronicznej

Określanie wymagań. Cele przedsięwzięcia. Kontekst przedsięwzięcia. Rodzaje wymagań. Diagramy przypadków użycia use case diagrams

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

Wprowadzenie do systemów informacyjnych

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

Pytania próbne ISTQB CTFL

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

SHOPER INTEGRATOR BY CTI INSTRUKCJA

VIRTUEMART INTEGRATOR BY CTI INSTRUKCJA

Tworzenie przypadków testowych

Instrukcja instalacji usługi Sygnity SmsService

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

Instrukcja instalacji usługi Sygnity Service

REFERAT PRACY DYPLOMOWEJ

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym RedCart (plugin dostępny w wersji ecommerce)

INSTRUKCJA OBSŁUGI SERWISU INTERNETOWEGO DLA KLIENTÓW. Open Life Towarzystwo Ubezpieczeń Życie S.A.

Prezentacja wyłącznie do użytku służbowego w Banku

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce)

WooCommerce (WordPress) Integrator by CTI. Instrukcja

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

Mini Produkcja by CTI. Instrukcja

BEZPIECZEŃSTWO BANKOWOŚCI DETALICZNEJ

PRZEWODNIK TECHNICZNY DLA KART PŁATNICZYCH

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

Jakość oprogramowania część 2 Zapewnianie jakości oprogramowania

Dni: 3. Opis: Adresaci szkolenia

Metodyka projektowania komputerowych systemów sterowania

Galileo - encyklopedia internetowa Plan testów

ibcslabel v2 Instrukcja instalacji systemu

CEMEX Go. Katalog zamówień i produktów. Wersja 2.1

Modelowanie testów. czyli po co testerowi znajomość UML

emszmal 3: Automatyczne księgowanie przelewów w menadżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

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

Dokumentacja panelu Klienta

Podstawy programowania III WYKŁAD 4

Która z wymienionych czynności powinna być wspierana przez narzędzie do zarządzania testami?

Inżynieria oprogramowania wykład IV Faza określenia wymagań

Zasady organizacji projektów informatycznych

Tom 6 Opis oprogramowania

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Rubik s Manager - Plan testów

Systemy zabezpieczeń

Skrócona instrukcja pracy z Generatorem Wniosków

Wstęp. Inżynieria wymagań. Plan wykładu. Wstęp. Wstęp. Wstęp. Schemat procesu pozyskiwania wymagań

HOTSPOT. [ konfiguracja, rejestracja, użytkowanie ]

Aplikacja Mobilna. Platformy B2B Kompanii Biurowej

Transkrypt:

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

Testowanie oprogramowania 2/30 Norma ISO ISO 9126 Norma dotycząca zagadnień jakości oprogramowania wprowadza podział na testy funkcjonalne i niefunkcjonalne. Norma podzielona jest na cztery częśći: 9126 1: model jakości opisujący 6 kategorii jakości 9126 2: metryki dla zewnętrznych (dynamicznych) pomiarów charakterystyk jakości 9126 3: metryki dla wewnętrznych (statycznych) pomiarów charakterystyk jakości 9126 4: metryki dla quality in use (pomiary dla gotowego produktu będącego w użyciu)

Testowanie oprogramowania 3/30 Kategorie i podkategorie jakości funkcjonalność: dopasowanie dokładność współdziałanie zgodność bezpieczeństwo niezwodność: odporność na błędy odtwarzalność dojrzałość użyteczność: zrozumiałość łatwość nauki łatwość obsługi

Testowanie oprogramowania 4/30 Kategorie i podkategorie jakości (2) efektywność: efektywność czasowa zużycie zasobów pielęgnowalność: analizowalność testowalność modyfikowalność stabilność przenaszalność adaptowalność zgodność instalowalność zastępowalność

Testowanie oprogramowania 5/30 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 6/30 Testowanie atrybutów jakościowych Atrybuty jakościowe 1 testowanie dziedzinowe 2 testowanie techniczne

Testowanie oprogramowania 7/30 Testowanie dziedzinowe Testowanie dziedzinowe dokładność dopasowanie współdziałanie użyteczność dostępność funkcjonalne bezpieczeństwo

Testowanie oprogramowania 8/30 Testowanie techniczne Testowanie dziedzinowe bezpieczeństwo niezawodność efektywność pielęgnowalność przenaszalność

Testowanie dziedzinowe Testowanie oprogramowania 9/30

Testowanie oprogramowania 10/30 Dokładność Dokładność Zdolność systemu do dostarczania rezultatów jego działania na odpowiednim 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 11/30 Dokładność a poziomy testowania sprawdzenie poprawności danych przechowywanych w pamięci sprawdzenie, czy precyzja nie jest tracona przy transferze danych pomiędzy modułami sprawdzenie dokładności na poziomie systemowym (zwykle dostępna specyfikacja) klient powinien być zadowolony z rezultatów scenariuszy, raportów i zapytań

Testowanie oprogramowania 12/30 Dopasowanie Dopasowanie Zdolność systemu do dostarczania odpowiedniego zbioru funkcji dla okreś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 13/30 Dopasowanie przykład (1) Zakup w sklepie e-commerce: normalny proces 1 Klient umieszcza jeden lub więcej produktów w koszyku 2 Klient wybiera checkout 3 System pobiera od Klienta adres, formę płatności i formę dostawy 4 System wyświetla w/w informacje dla potwierdzenia przez Klienta 5 Klient potwierdza Systemowi zamówienie Wyjątki: Klient próbuje zrobić checkout z pustym koszykiem system zwraca 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; System wylogowuje Klienta po 10 minutach nieaktywności

Testowanie oprogramowania 14/30 Dopasowanie Testowanie typowego przypadku L.p. Krok testowy Oczekiwany wynik 1 Włóż 1 produkt do koszyka Produkt w koszyku 2 Kliknij checkout Ekran checkoutu 3 Wpisz poprawny adres, formę płatności (przelew) Ekrany wyświetlone prawidłowo i formę dostawy i wejścia zaakceptowane 4 Weryfikuj informację o zamówieniu Wyświetlone jak podano 5 Potwierdź zamówienie Zamówienie w systemie 6 Powtórz 1-5, ale z 2 produktami, kartą Visa Tak jak w 1-5 i zamówienie międzynarodowe 7 Powtórz 1-5, ale z max liczbą produktów Tak jak w 1-5 i kartą MasterCard

Testowanie oprogramowania 15/30 Dopasowanie Testowanie przy wyjątkowych przypadkach L.p. Krok testowy Oczekiwany wynik 1 0 produktów w koszyku Koszyk pusty 2 Kliknij checkout Komunikat o błędzie 3 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 eranu potem złą inf. o dostawie dopóki dane nie są poprawne 4 Zweryfikuj info o zamówieniu Wyświetlone jak podano 5 Potwierdź zamówienie Zamówienie w sytemie 6 Powtórz 1-3, ale zatrzymaj i przerwij Użytkownik wylogowany po po włożeniu produktu 10 minutach nieaktywności 7 Powtórz 1-3, ale zatrzymaj Jak w 6 i przerwij po każdym ekranie 8 Powtórz 1-4, nie potwierdzaj zamówienia Jak w 6

Testowanie oprogramowania 16/30 Współdziałanie Współdziałanie Zdolność systemu do interakcji z jednym lub wieloma komponentami systemu Testowanie poprawności funkcjonalności we wszystkich zamierzonych środowiskach (hardware, software, middleware, infrastruktura sieciowa, systemy bazodanowe, systemy operacyjne). Dotyczy też komponentów dla których współdziałanie jest niebezpośrednie

Testowanie oprogramowania 17/30 Współdziałanie Silny nacisk na element testowania konfiguracji Ważny typ testów w przypadku tworzenia lub integracji oprogramowania z półki (COTS) oraz systemów systemów (systems of systems) Ważny typ w fazie testów integracyjnych Stosowane techniki: 1 use-case y, scenariusze testowe 2 podział na klasy równoważności 3 pair-wise, techniki kombinacyjne 4 drzewa klasyfikacji

Testowanie oprogramowania 18/30 Użyteczność Użyteczność Zdolność systemu do bycia zrozumiałym, łatwym do nauczenia, użycia i atrakcyjnym dla użytkownika. Testowanie skupiające się na użytkownikach. Często wymaga wiedzy psychologicznej, socjologicznej oraz wiedzy z zakresu ergonomii; również narodowych/lokalnych standardów dot. dostępności Chcemy obserwować efekty testowania na prawdziwych, końcowych użytkownikach (a nie testerach)

Testowanie oprogramowania 19/30 Podcharektyrystyki użyteczności Zrozumiałość jak łatwo zrozumieć co program robi i dlaczego mielibyś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 20/30 Techniki testowania użyteczności inspekcja (ewaluacja, przegląd) 1 efektywne w wykrywaniu błędów wcześnie 2 można wykorzystać końcowych użytkowników walidacja aktualnej implementacji może zawierać uruchamianie scenariuszy testów użyteczności ankieta/kwestionariusz/obserwacja 1 obserwowanie użytkowników podczas użytkowania oprogramowania 2 standardowe ankiety typu SUMI

Testowanie oprogramowania 21/30 Software Usability Measurement Inventory SUMI opiera się na badaniu ankietowym w sześciu obszarach mających decydujący wpł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 wprowadzania modyfikacji; użyteczność łatwość obsługi, komfort pracy; znajomość nauka obsługi, intuicyjność rozwiązań; wydajność transakcyjna szybkość i niezawodność, wykonywanie powtarzalnych zadań. Badanie polega na wypełnieniu ankiet przez użytkowników systemu. Pytania w poszczególnych obszarach tworzone są w oparciu o scenariusze użycia, które odzwierciedlają realną pracę z systemem. Muszą one odpowiadać uprawnieniom i zakresom obowiązków użytkowników.

Testowanie oprogramowania 22/30 Dostępność Dostępność Zdolność systemu do bycia używalnym przez użytkowników z różnymi formami inwalidztwa. Wymagania często wynikają z jakichś standardów lub wymogów prawnych. Standardy narzucają wykorzystanie technologii asystujących (np. text to speech, lupa, zmiana kontrastu itp.)

Testowanie techniczne Testowanie oprogramowania 23/30

Testowanie oprogramowania 24/30 Bezpieczeństwo Bezpieczeństwo Atrybuty oprogramowania umożliwiające ochronę przed nieautoryzowanym dostępem do programu i danych. Często zagrożenia związane z bezpieczeństwem są ukryte, niejawne i niewidoczne. Błędy bezpieczeństwa często nie mają widocznych symptomów (nawet po włamaniu)

Testowanie oprogramowania 25/30 Obszary związane z bezpieczeństwem Nieautoryzowany dostęp do danych SQL injection, hasła, pliki tymczasowe, 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 26/30 Niezawodność Niezawodność Zdolność oprogramowania do bezbłędnego działania przez określony czas lub przez określoną liczbę operacji. Zawsze ważna, ale kluczowa w systemach krytycznych Testy niezawodności wykorzystują profile operacyjne. 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 27/30 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 monitorowania można użyć tzw. modeli wzrostu niezawodności

Testowanie oprogramowania 28/30 Pielęgnowalność Pielęgnowalność Ławtość modyfikowania oprogramowania w celu naprawy defektów, dostosowania do nowych wymagań, ułatwienia przyszłego utrzymywania lub 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 29/30 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 30/30 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 podczas instalacji lub usunięcie dzielonych plików przy deinstalacji