Kontrolowanie systemu na potrzeby testowania

Kontrolowanie systemu na potrzeby testowania
  Czy jesteś w stanie zdiagnozować i kontrolować system, który testujesz? Czy wiesz, w jakim jest stanie? Jeśli TAK to znaczy, że Twoje testy osiągają wyższy poziom dojrzałości.

Kiedy testujemy system, widoczność statusu jest krytycznie ważna. System może zachowywać się różnie w zależności od wcześniejszych wymuszeń oraz ich kolejności. Zazwyczaj testy wykonujemy na tzw. czystej konfiguracji. Restart systemu jest przygotowaniem do większości przypadków testowych. Błędy mogą jednak wynikać z działań wykonywanych przez system lub użytkownika w czasie poprzedzającym samo wykonanie testu. Doskonale to widać w testach niezawodności, gdzie test wykonywany jest w przedziale czasu i przy zadanej ilości działań. Nikt nie oczekuje, że awaria wystąpi zaraz po uruchomieniu oprogramowania. Drugim przykładem może być realne użycie aplikacji. Od użytkowników nie oczekuje się, że przed każdym działaniem będą restartowali system. Wyobraź sobie jak w takim wypadku musiałaby wyglądać instrukcja obsługi np. telefonu: "Jeśli chcesz wykonać połączenie telefoniczne najpierw zrestartuj telefon (...). W innym przypadku wytwórca nie gwarantuje poprawności działania."

Na podobny problem natrafiamy przy próbie odtworzenia niektórych błędów. Testujemy. Pojawia się błąd. Próbujemy reprodukcji i ... działa. Restartujemy system, powtarzamy działania i ... działa. Kluczem do zrozumienia problemu jest więc analiza czynności poprzedzających wystąpnie problemu.

Co zrobić więc, aby nasze testy były możliwie najbardziej realne? Musimy wiedzieć w jakim stanie aktualnie znajduje się system i co wydarzyło się do tego momentu.

Możliwości jest kilka:

1) zapis wideo wcześniejszych działań - metoda skuteczna jedynie dla widocznych na ekranie działań i czasochłonna w odtwarzaniu nagrania i jego analizowaniu

2) logowanie działań w systemie w oparciu o logowania zachowań użytkownika / testera - narzędzi i metod jest wiele w zależności od typu platformy jaką testujemy, od prostego logowania klawiszy i kliknięć po generowanie kodu bezpośrednio z działań użytkownika (rejestruj - odtwórz)

3) pozyskiwanie statusu systemu bezpośrednio z testowanego systemu - część aplikacji zapisuje każde ze zdarzeń w logu, czym więcej informacji jest przechowywanych tym łatwiej określić zdarzenia poprzedzające wystąpienie awarii, ale i sam log staje się wtedy mnie czytelny.

Uzyskanie informacji o statusie systemu lub też automatyczne "doprowadzenie" systemu do danego stanu podnosi efektywność testowania i procesu zarządzania zdarzeniami. Warto o tym pamiętać kiedy mamy wpływ na to jak budowana jest aplikacja i jak projektowana jest środowisku samego wykonania testów.

 

6615

Powiązane szkolenia

05-06
czerwca
2023
Jarosław Hryszko
online
Praktyka testowania
1 750PLN
Testowanie aplikacji internetowych
12
Wolnych miejsc
Rezerwuj
06-07
marca
2023
Arnika Hryszko
online
Praktyka testowania
1 770PLN
Testowanie użyteczności
9
Wolnych miejsc
Rezerwuj
20-21
kwietnia
2023
Rafał Stańczak
online
Dobre praktyki testowania
1 700PLN
Testowanie w metodykach Agile
12
Wolnych miejsc
Rezerwuj
23-24
marca
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
1 770PLN
Testowanie aplikacji mobilnych - Android
9
Wolnych miejsc
Rezerwuj
12-13
czerwca
2023
Krzysztof Skarbiński
online
Automatyzacja testowania
1 800PLN
Testowanie REST API dla początkujących w języku python
11
Wolnych miejsc
Rezerwuj
27-28
lutego
2023
Krzysztof Kołodziejczyk
online
Języki programowania dla testerów
1 800PLN
JavaScript dla testerów oprogramowania
9
Wolnych miejsc
Rezerwuj
10-12
kwietnia
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
3 000PLN
Tester gier
11
Wolnych miejsc
Rezerwuj
13
marca
2023
-09
kwietnia
2023
Krzysztof Kołodziejczyk
online
Automatyzacja testowania
5 500PLN
Praktyka automatyzacji testowania
5
Wolnych miejsc
Rezerwuj

To powinno Cię zainteresować