Narzędzia
do
testowani
a
Opracowali:
Kamil Kućka
Kamil Policht
Plan
Prezentacji
1. Na czym polega testowanie ?
2. Co testujemy ?
3. Rodzaje narzędzi testowych
4. Przykład narzędzia -
LoadRunner
Na czym polega
testowanie ?
Na czym polega testowanie ?
Proces testowania rozpoczyna się od
testowania pojedynczych jednostek
programów takich jak funkcje lub obiekty
Proces testowania rozpoczyna się od
testowania pojedynczych jednostek
programów takich jak funkcje lub obiekty
Następnie integruje się je w podsystemy
i systemy oraz testuje się ich interakcję
Następnie integruje się je w podsystemy
i systemy oraz testuje się ich interakcję
Gdy program jest gotowy, przeprowadza
się zestaw testów akceptacyjnych w
celu sprawdzenia czy system działa
zgodnie ze specyfikacją
Gdy program jest gotowy, przeprowadza
się zestaw testów akceptacyjnych w
celu sprawdzenia czy system działa
zgodnie ze specyfikacją
Co testujemy ?
Co testujemy ?
Wydajność
oprogramowania i poszczególnych jego funkcji np.
wymagania organizacyjne, jakość komunikatów ,
jakość informacji o błędach
Zabezpieczenie oprogramowania
odporność na naruszenia prywatności, tajności,
integralności, spójności i dostępności
Przenoszalność oprogramowania
poprawność działania w zróżnicowanym
środowisku, różnych rozmiarach zasobów i
rodzajach sprzętu
Odtwarzalność oprogramowania
mierzoną zwykle średnim czasem doprowadzenia
do sprawnego działania po wystąpieniu awarii (od
zgłoszenia awarii do ponownego działania)
Co testujemy ? - cd.
Jakość dokumentacji
jakość pomocy, materiałów szkoleniowych
Wykorzystanie zasobów
np. czas jednostki centralnej, pamięć operacyjna,
przestrzeń dyskowa
Modyfikowalność oprogramowania
zdolność do zmiany przy zmieniających się
założeniach lub wymaganiach
Bezpieczeństwo oprogramowania
stopień minimalizacji katastrofalnych skutków
wynikających z niesprawnego działania (np. awaria
zasilania)
Akceptowalność oprogramowania
stopień usatysfakcjonowania użytkowników
Rodzaje narzędzi
testowych
Narzędzia do debugowania i
śledzenia
Debugery
pozwalają programistom
na:
wykonanie programu linia po linii
zatrzymanie programu na dowolnym
wyrażeniu
ustawianie i sprawdzanie wartości
zmiennych
Wykorzystywane są do namierzenia
obszaru występowania defektu czyli
błędu w programie
Wykorzystywane są do namierzenia
obszaru występowania defektu czyli
błędu w programie
Przy użyciu ich programiści
powtarzają usterki i śledzą stan
programów w celu znalezienia błędu
Przy użyciu ich programiści
powtarzają usterki i śledzą stan
programów w celu znalezienia błędu
Narzędzia do posiewu i
wstrzykiwania błędów
Posiew błędów
narzędzie podobne do kompilatora
tworzy jeden lub ograniczoną liczbę
różnych usterek w kodzie
Wstrzykiwanie błędów
wstrzykuje konkretny błąd, żeby
sprawdzić czy:
oprogramowanie sobie z nim poradzi
(tolerowanie usterek)
test wzięty z zestawu testów wykrywa
specjalnie wstrzyknięty błąd
Narzędzia do analizy
statycznej
znajdowanie błędów przed
rozpoczęciem testowania
dynamicznego
wyliczanie miary złożoności
programu na podstawie kodu
Podstawowe cele:
• nadzorowanie przestrzegania
standardów kodowania
• analiza struktur i zależności (np.
połączonych stron internetowych)
• ułatwienie zrozumienia kodu
Narzędzia do analizy
dynamicznej
Używane są do:
monitorowania alokacji, użycia oraz
dealokacji pamięci w celu wykrycia
wycieków pamięci
odszukiwania niezainicjowanych
wskaźników
pokazania innych błędów trudnych
do wykrycia statycznie
Odnajdują błędy dające się
zaobserwować wyłącznie podczas
działania programu
Odnajdują błędy dające się
zaobserwować wyłącznie podczas
działania programu
Narzędzia do porównywania
wyników
(komparatory)
mogą być używane automatycznie w
określonym czasie
w skład narzędzi wchodzą najczęściej
Komparatory dynamiczne
czyli
uruchamiane podczas działania
programu , ale niekiedy porównanie
wykonuje się dopiero po zakończeniu
działania przy pomocy odrębnego
narzędzia
Narzędzia używane do określenia
różnic pomiędzy plikami, bazami danych
oraz rezultatami testów
Narzędzia używane do określenia
różnic pomiędzy plikami, bazami danych
oraz rezultatami testów
Narzędzia do testowania
wydajności
Generowanie obciążenia
obciążenie generowane jest poprzez symulowanie dużej
liczby użytkowników (wirtualnych) z konkretnymi
rozmiarami danych wejściowych
interakcje z programem następuje na poziomie protokołu
komunikacyjnego poprzez graficzny interfejs użytkownika
Pomiar i analiza odpowiedzi programu na
zadane obciążenie
liczba symulowanych użytkowników
liczna i typ transakcji generowanych przez symulowanych
użytkowników
czasy odpowiedzi na poszczególne transakcje
wykonywane przez użytkowników
raporty bazujące na logach testowych i grafy pokazujące
czasy odpowiedzi dla różnych obciążeń
Monitorują i raportują działanie programu w
różnorodnych symulowanych warunkach
użytkowania
Monitorują i raportują działanie programu w
różnorodnych symulowanych warunkach
użytkowania
Narzędzia do monitorowania
analizują, weryfikują i raportują
wykorzystanie określonych zasobów
systemowych oraz ostrzegają o
zagrożeniach systemu
przechowują dane dotyczące wersji i
build’ów oprogramowania a także
umożliwiają śledzenie powiązań
Narzędzia te nie są ściśle rzecz biorąc
narzędziami testowymi, ale dostarczają
informacji wykorzystywanej do celów
testowania niedostępnej w inny sposób
Narzędzia te nie są ściśle rzecz biorąc
narzędziami testowymi, ale dostarczają
informacji wykorzystywanej do celów
testowania niedostępnej w inny sposób
Narzędzia do testów
zabezpieczeń
służą do poszukiwania określonych
typów braku odporności i
niezabezpieczonego dostępu do
programu
wyłapują wirusy komputerowe oraz
identyfikują ataki mające na celu
przeciążenie programu
Przykład:
Zapora ogniowa
nie jest narzędziem testowym, ale może
być stosowana do testowania
zabezpieczeń
Zapora ogniowa
nie jest narzędziem testowym, ale może
być stosowana do testowania
zabezpieczeń
Narzędzia webowe
wykorzystywane są do skanowania i
sprawdzania, czy na witrynie nie
występują nieważne lub brakujące
łącza
dostarczają informacji takich jak graf
architektury (drzewo witryny),
prędkość ściągania i rozmiar
ściągniętych danych
Narzędzia testujące
hiperłącza
Narzędzia testujące
hiperłącza
Narzędzie testowania -
LoadRunner
LoadRunner
Jest narzędziem, który pozwala
przeprowadzić testy obciążeniowe.
Składa się on z 4 podstawowych
komponentów:
generator wirtualnych użytkowników
kontroler wraz z agentem procesów
moduł analizy i monitorowania
dokumentacja
LoadRunner – cd.
Działa on tak, że
emuluje setki lub
tysiące
użytkowników
jednocześnie
sprawdzając
obciążenie aplikacji.
Wyniki mogą być
następnie poddane
szczegółowej
analizie, do zbadania
przyczyn określonych
zachowań aplikacji.
Dziękujemy za
uwagę
Opracowali:
Kamil Kućka
Kamil Policht