Professional Documents
Culture Documents
Wyk 2
Wyk 2
Wyk 2
Wprowadzenie do testowania
oprogramowania
Literatura
• W. Dąbrowski, K. Subieta: Podstawy inżynierii oprogramowania, Rozdział 10
Weryfikacja i atestowanie oprogramowania. Wyd. PJWSTK.
• J. Kwiatkowski, H. Łyskawa, B. Wiszniewski: Od projektu do programu. St. Szejko
(red): Metody wytwarzania oprogramowania. MIKOM, 2002, rozdział 4.
• B. Wiszniewski: Weryfikacja, walidacja i testowanie. J. Górski (red.) Inżynieria
oprogramowania w projekcie informatycznym, MIKOM, 2000, rozdział 10.
• B. Wiszniewski, B. Bereza-Jarociński: Teoria i praktyka testowania programów.
PWN, 2006
folia: 1
Budowa i integracja SI
Testowanie
Testowanie: analiza - statyczna lub dynamiczna - zachowania
produktu w celu pomiaru (oceny) jego jakości i wykrycia defektów
folia: 2
Budowa i integracja SI
Motywacje
folia: 3
Budowa i integracja SI
Motywacje (2)
VVT
testowanie (Testing) : jak dobry jest (będzie) system?
folia: 4
Budowa i integracja SI
Weryfikacja
Weryfikacja polega na upewnieniu się, że produkt będący rezultatem
danego etapu rozwoju systemu jest spójny z założeniami wejściowymi
tego etapu (także z reprezentacją utworzoną na etapie poprzedzającym)
– czy to, co robimy, jest realizowane w sposób właściwy
– przydatność metod specyfikacji formalnej
Walidacja
Walidacja polega na upewnieniu się, że to co budujemy jest tym, o co
nam chodziło
- czy robimy właściwą rzecz ? bo można robić dobrze rzeczy bezsensowne...
- uwaga: to wymagania stanowią obraz potrzeb (oczekiwań) użytkownika !
Motywacje (3)
Koszt 1 5 10 15 22 50 100+
($)
Koszt 6 min 0,5h 1h 1,5h 2,2h 5h 10h+
(czas)
folia: 7
Budowa i integracja SI
Testowanie może mieć również inne cele, np. zademonstrowanie wybranych cech programu
folia: 8
Budowa i integracja SI
Co jest testowaniem ?
folia: 9
Budowa i integracja SI
Testowanie
Scenariusze testowe
testowania
Strategie
Instrumentacja kodu Przypadki testowe
folia: 11
Budowa i integracja SI
scenariusz
testowy
strategia testowania planowanie testu
przypadek
testowy
implementacja
i instrumentacja
realizacja testu
Skrypt
testowy
wykonanie testu
log testowy
raport
ocena wyników
folia: 12
Budowa i integracja SI
Przypadki testowe
Przypadek testowy – obserwacja działania programu, związana
z interpretacją interesującego nas zdarzenia, danymi, funkcjami
Scenariusze testowe
Przykład
Testy końcowe (akceptacyjne) systemu billingowego centrali telefonicznej
zaplanowano w następującej kolejności:
AZ2 - Hasło dostępu (logowanie)
AF1 - Rejestr abonentów
AF2 - Rejestr linii telefonicznych
AF3 - Rejestracja parametrów taryfikacyjnych
AF5 - Naliczenie opłat
AW1 - Czas naliczenia należności dla wszystkich abonentów za dany miesiąc
AF4 - Rejestr faktur
AI1 - Łatwość obsługi
AZ1 - Tworzenie kopii i odtwarzanie
folia: 14
Budowa i integracja SI
Strategie doboru
scenariuszy testowych
Typowe strategie:
– testy statyczne (analiza, dowodzenie poprawności)
i dynamiczne
– wybrane ścieżki przepływu sterowania
– sekwencja logiczna, np. według
- kolejnych działań (diagramów czynności, scenariuszy biznesowych)
- przypadków użycia
– rozszerzanie obszarów testowania
- zwykle przy sprawdzaniu poprawności działania
– zawężanie obszarów testowania
- przy lokalizacji usterki
– negatywny scenariusz testowy (testy błędów)
- oparty na niewłaściwych danych testowych
folia: 15
Budowa i integracja SI
Metody testowania
Analiza statyczna
Statyczna analiza kodu to proces, w którym w oparciu
o istniejące reguły analizujemy kod źródłowy w celu
• stwierdzenia jego właściwości
• wychwycenia potencjalnych problemów związanych
z kodem aplikacji
• dowodzenia poprawności programów, produktów
etapowych
Testowanie dynamiczne
Analizujemy dynamikę, zachowanie działającego bądź
symulowanego systemu w celu stwierdzenia (nie)zgodności
z oczekiwaniami lub zademonstrowania działania
folia: 16
Budowa i integracja SI
folia: 17
Budowa i integracja SI
Ponadto…
SolDevelo: Wykład „Praktyczne
środowiska implementacyjne”
folia: 18
Budowa i integracja SI
Testowanie dynamiczne
folia: 19
Budowa i integracja SI
Testowanie na podstawie
specyfikacji
ukierunkowane na
fspec fimp
błędne wykonania operacji
błędy interfejsów
błędy w dostepie do danych
zewnętrznych
błedy wydajnościowe
błędy inicjalizacji i terminacji
we wy
x1 y1
x2 y2 fimp(x1)=y1
... ... fimp(x2)=y2
xn yn fimp(x3)=y3
...
fimp(xn)=yn
folia: 20
Budowa i integracja SI
folia: 21
Budowa i integracja SI
KLASY
1 : < MINREAL , 0), 0 , (0, MAXREAL>
2 : < MININT , 4> , < 5, 10 >, < 11, MAXINT>
PRZYPADKI TESTOWE :
( -3.75 , 3 ) ( 0, -378) (127800, -13759)
( -275.93 , 6) ( 0 ,7) ( 1.999 , 10)
( -0.093 , 12) ( 0 , 11) ( 476, 1111119)
folia: 22
Budowa i integracja SI
• operacje arytmetyczne
- liczby pierwsze, jedynka, zero, MIN i MAX wartości operandów
• konwersje typów
- podstawienia, argumenty wywołania, wartości zwracane, konwersje
niejawne, konwersje jawne
• tablice
- obiekt pusty, prawidłowe i nieprawidłowe wartości indeksów
• listy
- lista pusta, lista jednoelementowa, lista wieloelementowa
folia: 23
Budowa i integracja SI
Obserwacja:
– błędne zachowania programu częściej występują na granicach
dziedziny wejściowej
Stąd wskazówki dla doboru testów:
– jeżeli dana wejściowa przebiega zakres między X i Y, to testuj dla X, dla Y
oraz dla wartości bezpośrednio sąsiadujących z X i Y
– jeżeli dziedzina wejściowa obejmuje skończony zbiór uporządkowanych wartości,
to testuj dla wartości MAX i MIN oraz w ich bezpośrednim sąsiedztwie
– powyższe zasady należy również zastosować do wartości wyjściowych, np. aby
wyprodukować wartość MAX i MIN na wyjściu
– jeżeli zadano ograniczenia pojemności modułu (ilość danych, obciążenie), to
powinny być one również przetestowane
folia: 24
Budowa i integracja SI
folia: 26
Budowa i integracja SI
folia: 27
Budowa i integracja SI
1
7 8 5
9
10
4,5
6
R2
7 R3 8
R1 Region
C= PR + 1 Liczba cyklomatyczna jest 9
INDEPENDENT PATHS
logicznych)
P 1: 1 - 11 C=4
P 2: 1-2-3-4-5-10-1-11
P 3: 1-2-3-6-8-9-10-1-11
folia: 28 P 4: 1-2-3-6-7-9-10-1-11
12
Budowa i integracja SI
Tc = N / C*100%
folia: 29
Budowa i integracja SI
• Warunek prosty
– BOOLEAN VAR | RELATIONAL EXPRESSION
B X>7 gdzie B: BOOLEAN, X:INTEGER
• Warunek złożony
– warunki proste połączone operatorami logicznymi AND, OR
• Cel testowania
– przetestowanie każdego warunku oraz każdej ścieżki wychodzącej
z tego warunku
folia: 30
Budowa i integracja SI
Strategia testowania:
• Każdy łańcuch jest wykonany przynajmniej raz
S’:
XUSE(S’)
folia: 31
Budowa i integracja SI
folia: 32
Budowa i integracja SI
• Narzędzia
– Listingi
– Wydruki kontrolne
– Zrzut pamięci, ang. core dump (analiza post-mortem)
– Log, dziennik (ang. trace file)
– Powtórzenia akcji
– Wstawki programowe - instrumentacja kodu
folia: 33
Budowa i integracja SI
• Zawieszanie wykonania
• Wznawianie wykonania
• Sygnały
• Rejestrowanie danych
• Ślad programu
• Rejestrowanie zdarzeń
• Wymuszanie działania programu
folia: 34
Budowa i integracja SI
Sygnały
Sygnał to w systemie operacyjnym
przerwanie wskazujące, że w
środowisku programu wystąpiło
zdarzenie asynchroniczne
Sygnały krytyczne (fatal)
• sygnalizacja zdarzeń wymagających natychmiastowego przerwania działania
programu i podjęcia akcji przez system operacyjny
Obsługa sygnałów
stop / ignore / noignore
Imitowanie sygnałów
folia: 36
Budowa i integracja SI
Rejestrowanie danych
Rejestrowanie bezpośrednie
• zapisywane są rejestry maszyny (komórki pamięci)
Rejestrowanie pośrednie
• rejestrowane są zmienne programu (lub wyrażenia)
• wstawianie zmiennych śledzących przebieg
folia: 37
Budowa i integracja SI
Rejestrowanie zdarzeń
Rejestrowanie akcji
• wykorzystanie pułapek
Rejestrowanie stanów
• wykorzystanie punktów monitorujących
folia: 38
Budowa i integracja SI
Problem psychologiczny
• wytwarzanie - postawa twórcza
• testowanie - postawa destrukcyjna
• twórca nie jest zainteresowany wykazaniem własnych błędów
• strategie praktyczne - podejście mieszane
– wytwórca
– podmiot niezależny (np. opłacany za znajdowane defekty)
folia: 39
Budowa i integracja SI
Możliwe kryteria:
– nigdy, co najwyżej jest dalej kontynuowane przez użytkownika -
klienta
– wtedy, gdy skończą się pieniądze lub wyczerpie czas przeznaczony
na testowanie
– wtedy, gdy potrafimy wyliczyć, że prawdopodobieństwo poprawnego
funkcjonowania jest wystarczająco wysokie, np. 0,999 na godz.
ale jak to wyliczyć?
– gdy wykryjemy wszystkie „zasiane” defekty
technika zasiewania defektów
– gdy zrealizujemy zbudowany wcześniej i zatwierdzony plan testów
folia: 40
Budowa i integracja SI
Poziomy testowania
aplikacji
testowanie akceptacyjne
Celem jest zademonstrowanie zgodnego z wymaganiami działania systemu
testy integracyjne
Celami są:
- sprawdzenie przygotowania SYSTEM ACCEPTANCE
SYSTEM
komponentów do współpracy, ANALYSIS TEST
ich interfejsy SYSTEM AND
- sprawdzenie współpracy SOFTWARE VALIDATION TEST
scalonych komponentów REQUIREMENTS
Implemen-
Planowanie
Analiza
Testowanie
Wdrażanie
i pielęgnacja
Testowanie jednostkowe
(ang. unit, module, developer tests)
Lokalizacja i usuwanie defektów
• Techniki
– analiza kodu źródłowego Var i: int;
A: array [1..N] of 1..N;
– uruchamianie „wyizolowane” procedure p (var x: int;
– wsparcie narzędziowe begin
x := x+1;
i: = i+1;
• Wykonanie
– konstruktorzy, programiści
– testowanie koleżeńskie (80% skuteczności!)
Testowanie integracyjne
(ang. Integration testing)
• Strategie integracji
– Strategia skokowa (bezprzyrostowa, ang. big-bang
integration)
- jednoczesne scalanie wszystkich komponentów
- może przynieść spore korzyści, ale i znaczne jest
ryzyko niepowodzenia
– Integracja przyrostowa
- wstępująca (oddolnie, 4 -zstępująca (odgórnie, 1
ang. bottom-up) ang. top-down)
- symulacja,
3 2 użycie atrap 3 2
Testowanie akceptacyjne
(ang. Acceptance testing)
Ostateczna odpowiedź, czy zbudowano oczekiwany system, czy jest on gotów
do pełnienia funkcji biznesowych zamawiającego (wprowadzenia na rynek)
• Zademonstrowanie spełniania kryteriów akceptacji
– kryteria te powinien określać dokument specyfikacji wymagań (SWS)
• Zespół testujący
– klient, jego dane, ...
– udział developerów ?
praktyka: mieszane zespoły
lub nawet trzecia strona
• Środowisko testowania
– testy alfa – testy (z udziałem klienta!) w środowisku wytwórczym
– testy beta – testy u klienta – w środowisku docelowym lub, często,
laboratoryjnym
• Wynik
przyjęcie – odrzucenie – akceptacja warunkowa
folia: 46
Budowa i integracja SI
Proces testowania
folia: 48
Budowa i integracja SI
1. Wprowadzenie ....................................................................................................................... 4
1.1. Opis systemu ............................................................................................................................... 4
1.2. Cel i zakres dokumentu .............................................................................................................. 5
1.3. Powiązania z innymi planami .................................................................................................... 5
Dokumenty powiązane ............................................................................................................... 6
Plan testów –
1.4.
2. Strategia testowania .............................................................................................................. 6
2.1.
2.2.
przykładowy
Testy akceptacyjne ..................................................................................................................... 6
Testy walidacyjne ....................................................................................................................... 6
spis treści
3. dokumentu
Środowisko testowania .......................................................................................................... 6
3.1. Uczestnicy procesu testowania i ich role ................................................................................... 6
3.2. Organizacja testów ..................................................................................................................... 7
4. Opis testów ............................................................................................................................. 7
4.1. Informacja ogólna....................................................................................................................... 7
4.1.1. Klasy testów ........................................................................................................................................... 7
4.1.2. Ogólne warunki wykonania testów ........................................................................................................ 8
4.2. Zaplanowane testy ...................................................................................................................... 8
4.2.1. Testy akceptacyjne ................................................................................................................................. 8
4.2.1.1. Testy funkcjonalne: ....................................................................................................................... 8
4.2.1.2. Testy wydajnościowe:................................................................................................................... 9
4.2.1.3. Testy zabezpieczenia .................................................................................................................. 10
4.2.1.4. Testy interfejsów......................................................................................................................... 10
4.2.1.5. Harmonogram testów akceptacyjnych ........................................................................................ 11
4.2.2. Testy walidacyjne ................................................................................................................................. 11
4.2.2.1. Testy funkcjonalne: ..................................................................................................................... 11
4.2.2.2. Testy wydajnościowe:................................................................................................................. 14
4.2.2.3. Testy zabezpieczenia .................................................................................................................. 14
4.2.2.4. Testy interfejsów......................................................................................................................... 15
4.2.2.5. Testy błędów ............................................................................................................................... 15
4.2.2.6. Testy inne: .................................................................................................................................. 15
4.2.2.7. Harmonogram testów walidacyjnych .......................................................................................... 16
5. Formularz raportowania testów ......................................................................................... 17
folia: 49
Budowa i integracja SI
Planowanie testów
• Planowanie testów
– SWS a plany testów akceptacyjnych
folia: 51
Budowa i integracja SI
folia: 52
Budowa i integracja SI
1. Wyniki testów
Testowanie wykonano zgodnie z harmonogramem testów walidacyjnych. Wyniki testowania:
Liczba wykonanych przypadków testowych: 14
• Raport podsumowujacy Liczba wykonanych z negatywnym wynikiem: 4
• Dokumentacja testów
1. V.1.1 – Bill Calculation
Niepoprawne zachowanie systemu dla opóźnionych płatności – po wprowadzeniu danych
o opóźnionej płatności system nie uwzględnia zapłaconej faktury – traktuje abonenta tak,
jakby miał nadal zaległości.
2. Wnioski
folia: 53
Budowa i integracja SI
Dokumentowanie
i raportowanie testów
Id. wymagania
Przykład formatki opisu testu
Identification TF07.01 Id. testu
Tested ite ms Correctness of calculating invoices
• Raport podsumowujacy
Input specification At least three invoices calculated manually basing on the just read-
in billing data. The invoices should be calculated for subscribers
with different numbers of lines, some of them should contain
• Dokumentacja penalty.
Dokumentowanie
i raportowanie testów
• Raport podsumowujacy
• Dokumentacja IDENTYFIKATOR
F-07
testów
WYMAGANIA
OPIS
Dla bazy Oracle powinna istnieć możliwość wykonywania pełnej kopii bazy danych
• Praktyczny KRYTERIUM
AKCEPTACJI
Program poprawnie wykonuje kopie pełne, co należy sprawdzić wykonując próbę
odtworzenia bazy danych z jednej z tych kopii
PRZEBIEG TESTU
- Wykonano kopię zapasową bazy danych Oracle przy pomocy programu DB
Backup
P. Palczewski
folia: 55
Budowa i integracja SI
Użycie
oprogramowania do Automatyzacja
ustalenia warunków
początkowych
testowania, wykonania
testów, porównania
rzeczywistych
rezultatów
z oczekiwanymi, lub
w celu realizacji innych
funkcji sterowania
i raportowania testów
konfiguracja
testów
intensywność
awarii
Modelowanie Uruchamianie
cechy, np. (debugging)
niezawodności
Weryfikacja
Walidacja
poprawione
szacowana oprogramowanie
niezawodność
Testowanie oprogramowania
folia: 60