Dlaczego testowanie jest ważne?

Podobne dokumenty
Maciej Oleksy Zenon Matuszyk

Testowanie oprogramowania

Testowanie oprogramowania. Piotr Ciskowski

Usługa: Testowanie wydajności oprogramowania

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

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

Testujemy dedykowanymi zasobami (ang. agile testers)

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Testowanie i walidacja oprogramowania

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Etapy życia oprogramowania

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

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Optymalizacja Automatycznych Testów Regresywnych

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

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

Wykład 7. Projektowanie kodu oprogramowania

Szablon Planu Testów Akceptacyjnych

Overlord - Plan testów

Zasady organizacji projektów informatycznych

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

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

Sukces vs porażka. Sukces. Porażka

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Tworzenie przypadków testowych

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

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

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

Galileo - encyklopedia internetowa Plan testów

Plan testów. Robert Dyczkowski, Piotr Findeisen, Filip Grzdkowski. 4 czerwca 2006

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

REFERAT PRACY DYPLOMOWEJ

Praktyka testowania dla początkujących testerów

Certyfikowany tester Pytania przykładowe do poziomu podstawowego

Plan Testów Systemu SOS

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

Nazwa Projektu. Plan testów. Wersja N.NN

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

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Dni: 3. Opis: Adresaci szkolenia

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Dwuwymiarowy sposób na podróbki > 34

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

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

Wstęp do testowania : Szymon Ramczykowski

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

Serwis rozdzielnic niskich napięć MService Klucz do optymalnej wydajności instalacji

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

Testy poziom po poziomie

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

Rubik s Manager - Plan testów

Priorytetyzacja przypadków testowych za pomocą macierzy

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Studium wykonalności

Jakość w procesie wytwarzania oprogramowania

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

Najwyżej ocenione raporty dla Mr Buggy 4

Wybór ZSI. Zakup standardowego systemu. System pisany na zamówienie

Projektowanie systemów informatycznych

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

TESTOWANIE APLIKACJI KORPORACYJNYCH

Wstęp do zarządzania projektami

Analityk i współczesna analiza

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Podpis elektroniczny dla firm jako bezpieczna usługa w chmurze. mgr inż. Artur Grygoruk

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

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

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

Pytania próbne ISTQB CTFL

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

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

Testy automatyczne. Korzystające z junit

Zapewnienie bezpieczeństwa w całym cyklu życia aplikacji (czyli dlaczego lepiej zapobiegać chorobom, niż leczyć je w zaawansowanym stadium)

Usługi analityczne budowa kostki analitycznej Część pierwsza.

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

Modularny system I/O IP67

produkować, promować i sprzedawać produkty, zarządzać i rozliczać przedsięwzięcia, oraz komunikować się wewnątrz organizacji.

Programowanie zespołowe

ZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager.

Piotr Ślęzak. Gdzie się podziała jakość

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

Inteligentne projektowanie systemów rozdziału energii Łatwo, szybko i bezpiecznie. simaris design

t e s t o w a n i e j e s t ł a t w e

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

Zarządzanie jakością

Microsoft Test Manager

Opis Przedmiotu Zamówienia

Zarządzanie tożsamością i uprawnieniami

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

RAPORT. Gryfów Śląski

PRZEWODNIK PO PRZEDMIOCIE

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Szczegółowy plan szkolenia

Fuzzing OWASP The OWASP Foundation Piotr Łaskawiec J2EE Developer/Pentester

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

Transkrypt:

Testowanie

Dlaczego testowanie jest ważne? Oprogramowanie które nie działa poprawnie może doprowadzić do: straty czasu, pieniędzy utraty reputacji uszkodzeń ciała a nawet śmierci

Definicja błędu Oprogramowanie nie robi czegoś co zostało wymienione w jego specyfikacji Oprogramowanie wykonuje coś czego według specyfikacji nie powinno robić Oprogramowanie robi coś o czym specyfikacja nie wspomina Oprogramowanie nie wykonuje czegoś o czym specyfikacja nie wspomina mimo że powinno to być wymienione jako istotna część systemu. Oprogramowanie jest trudne do zrozumienia, powolne lub skomplikowane.

Przyczyny błędów oprogramowania błędy ludzkie: natura ludzka, presja czasu duże skomplikowanie kodu źródłowego duże skomplikowanie infrastruktury zmiany technologii zmiany wymagań interakcje z wieloma innymi systemami złe zarządzanie projektem korzystanie z niesprawdzonych narzędzi Copy paste

Rola testowania oprogramowania zmniejsza ryzyko wystąpienia awarii w czasie użytkowania oprogramowania podnosi jakość oprogramowania konieczne do spełnienia wymagań kontraktu, wymagań prawnych, wymagań standardów przemysłowych

Zasady testowania Testowanie udowadnia istnienie błędów Testy wyczerpujące są niemożliwe Testować jak najwcześniej Kumulowanie się błędów Mylne przekonanie o braku błędów Programu nie da się przetestować całkowicie

Cele testów Znalezienie defektów Uzyskanie informacji o poziomie jakości oprogramowania (zbudowanie zaufania) Zapobieganie defektom: projektowanie testów jak najwcześniej

Rodzaje testów testy developerskie znalezienie i eliminacja jak największej liczby błędów testy akceptacyjne potwierdzenie, że oprogramowanie spełnia wymagania testy utrzymaniowe sprawdzenie czy nowe defekty nie zostały wprowadzone testy operacyjne sprawdzenie charakterystyk niefunkcjonalnych oprogramowania test regresji zapewnienie że nowe błędy w częściach nie zmienionych przez poprawki nie zostały wprowadzone/odkryte

Rodzaje testów testy integracyjne wykonywane są w celu wykrycia błędów w interfejsach i interakcjach pomiędzy modułami testy wydajnościowe sprawdzenie czy poszczególne akcje wykonywane są przez aplikację w akceptowalnym czasie testy obciążeniowe jak wiele zapytań jest w stanie obsłużyć system w określonym przedziale czasu. testy jednostkowe

Podstawowy proces testowy Planowanie i kontrola Analiza i projektowanie Implementacja i wykonanie Obliczanie kryteriów wyjścia i raportowanie Zakończenie testów

Planowanie i kontrola Planowanie testów: Weryfikacja misji testowania Zdefiniowanie strategii testowania Zdefiniowanie celów testowania Określenie aktywności testowych mających spełnić cele i misję testowania Kontrola testów: Porównywanie aktualnego postępu w stosunku do założonego planu Raportowanie statusu (szczególnie odchyłek od założonego planu) Podejmowanie kroków niezbędnych do spełnienia założonej misji i celów testów

Analiza i projektowanie Przegląd bazy testów: wymagania, architektura, projekt systemu, projekt interfejsów Oszacowanie testowalności bazy testów i celów testów Identyfikacja i priorytetyzacja warunków testowych na podstawie analizy bazy testowej Projektowanie i priorytetyzacja przypadków testowych Identyfikacja koniecznych danych testowych Projekt środowiska testowego, identyfikacja wymaganej infrastruktury i narzędzi

Implementacja i wykonanie Implementacja przypadków testowych poprzez projektowanie i prioretyzację procedur testowych Wybór danych testowych Przygotowanie automatycznych skryptów testowych Stworzenie zestawów testów z procedur testowych dla wygodniejszego wykonywania testów Weryfikacja przygotowania środowiska testowego.

Obliczanie kryteriów wyjścia i raportowanie Oszacowanie kryteriów zakończenia testów i porównanie ze zdefiniowanymi celami: Porównanie wyników testów z kryteriami wyjścia zdefiniowanymi na etapie planowania Oszacowanie czy konieczna jest kontynuacja testów Przygotowanie Raportu Podsumowującego

Zakończenie testów Zebranie informacji z zakończonych testów w celu zgromadzenia doświadczeń, produktów testów, potrzebnych statystyk Dostarczenie dokumentacji z testów Zamknięcie błędów Archiwizacja pełnej dokumentacji testowej Analiza wniosków w celu ulepszenia procesu testów w przyszłych dostawach

Co podlega testowaniu? Kompletność i jakość złożonych funkcji systemu Interfejsy systemu Zabezpieczenie systemu odporność systemu na naruszenie prywatności, tajności, integralności Przenaszalność oprogramowania poprawność działania w zróżnicowanym środowisku Niezawodność oprogramowania zwykle mierzona średnim czasem pomiędzy błędami Odtwarzalność oprogramowania mierzona średnim czasem doprowadzenia do poprawnego działania po awarii

Co podlega testowaniu? Bezpieczeństwo oprogramowania stopień minimalzacji katastrofalnych skutków wynikających z niesprawnego działania Testy zużycia zasobów nie przekraczanie ograniczeń np. na zużycie pamięci, obciążenie procesora Obciążalność oprogramowania zdolność do poprawnej pracy przy dużych obciążeniach Skalowalność systemu spełnienie warunków np. czasowych przy wzroście obciążenia Akceptowalność systemu stopień usatysfakcjonowania użytkownika Jakość dokumentacji

Podział testów Ze względu na widzialność kodu: Białoskrzynkowe Czarnoskrzynkowe

Testy białoskrzynkowe Zalety: ponieważ wymagana jest znajomość struktury kodu, łatwo jest określić jaki typ danych wejściowych/wyjściowych jest potrzebny, aby efektywnie przetestować aplikację pomaga zoptymalizować kod aplikacji pozwala dokładnie określić przyczynę i miejsce w którym znajduje się błąd Wady: ponieważ wymagana jest znajomość struktury kodu, do przeprowadzenia testów potrzebny jest tester ze znajomością programowania co podnosi koszty

Testy czarnoskrzynkowe Zalety: testy są powtarzalne : zainwestowany wysiłek może być użyty wielokrotnie Wady: nie wszystkie właściwości systemu mogą zostać przetestowane przyczyna błędu nie jest znana

Kiedy zakończyć testy Zbliża się deadline Przypadki testowe przechodzą z zadawalającym prawdopodobieństwem Budżet na testy się kończy Pokrycie kodu, funkcjonalności i wymagań osiągnęło wymagany poziom

Niezależność testowania Ryzyko związane z testowaniem własnego kodu Korzyści: Wzrost efektywności znajdowania błędów Spojrzenie na oprogramowanie pod innym kątem Specjalistyczna wiedza o testowaniu Brak powiązania z produktem Wady: Izolacja w stosunku do zespołu programistów Niezależni testerzy mogą stanowić wąskie gardło jako ostatni punkt sprawdzenia oprogramowania Programiści mogą stracić poczucie odpowiedzialności za jakość oprogramowania

Poziomy niezależności Testy projektowane przez autora kodu (Programistę) brak niezależności Testy projektowane przez inną osobę z zespołu Programistów Testy projektowane przez osoby z odrębnego zespołu w organizacji (np. zespołu testowego) Testy projektowane przez inną organizację lub firmę (outsourcing) Testy projektowanie przez testerów z organizacji klienta bądź użytkowników Niezależni specjaliści testowi do wybranych typów testów np. testów użyteczności, wydajności

Konserwacja oprogramowania Inne używane terminy to pielęgnacja lub utrzymanie (ang. maintenance) Konserwacja polega na zapewnieniu poprawnego i efektywnego funkcjonowania systemu poprzez wprowadzenie niezbędnych modyfikacji. Istnieją trzy główne klasy wprowadzanych w oprogramowaniu modyfikacji: poprawiające polegają na usuwaniu z oprogramowania wykrytych podczas normalnej pracy błędów (nie zostały one wykryte podczas testowania) a popełnionych w czasie analizy wymagań, projektowania lub najczęściej implementacji ulepszające polegają na poprawie jakości oprogramowania, dostosowujące polegają na dostosowaniu oprogramowania do zmian zachodzących w wymaganiach użytkownika lub w środowisku pracy oprogramowania

Koszty konserwacji oprogramowania Występuje tendencja, aby zbyt nisko oceniać koszt konserwacji; okazuje się jednak, że koszty te mogą być bardzo duże, zwłaszcza w przypadku organizacji funkcjonujących w zmiennym środowisku

Obiektywne czynniki wpływające na koszty konserwacji Stabilność środowiska w którym pracuje system zmiany zachodzące w przepisach prawnych, zmiany struktury organizacyjnej i sposobów działania po stronie klienta prowadzi do zmian wymagań wobec systemu; Stabilność platformy sprzętowej i oprogramowania systemowego wymiana sprzętu może skutkować koniecznością dostosowania systemu; Czas użytkowania systemu całkowite koszty konserwacji oczywiście rosną, gdy system jest eksploatowany przez dłuższy czas.

Czynniki redukcji kosztów konserwacji Znajomość dziedziny problemu Jeżeli analitycy pracujący nad systemem dobrze znają dziedzinę problemu, mają mniej trudności z właściwym zebraniem wymagań oraz budową oddającą rzeczywistość modelu; możliwe jest również przewidzenie i uwzględnienie potencjalnych kierunków rozwoju. Wysoka jakość modelu i projektu Wysoka jakość dokumentacji technicznej Powinna w pełni odpowiadać systemowi, być szczegółowa i zgodna ze standardami przyjętymi w firmie. Stabilność personelu Najlepiej jakby ludzie tworzący system byli dostępnie, choćby w formie konsultantów. Środowisko implementacji Zaawansowane narzędzia skracają czas poprawek. Niezawodność oprogramowania Zmniejsza liczbę modyfikacji.