Czym zatem jest walidacja? Walidacja to testowanie zgodności systemu z rzeczywistymi potrzebami użytkownika – walidacja ma odpowiedzieć na pytanie czy zrobiliśmy dobry produkt. Weryfikacją natomiast jest testowanie zgodności systemu z wymaganiami określonymi w specyfikacji - weryfikacja ma odpowiedzieć na pytanie czy produkt wykonaliśmy dobrze.
Testowanie manualne to przede wszystkim testowanie wykonywane w oparciu o model czarnej skrzynki i, polega ono głównie na testowaniu funkcjonalnym oraz niefunkcjonalnym bez odniesienia do wewnętrznej struktury modułu lub systemu. Rola testera testów manualnych polega na tym, że otrzymuje on dekoder STB, pendrive ze zbudowaną wersją oprogramowania, które ma przetestować. Ma przygotować sobie środowisko testowe tzn. połączyć dekoder z odtwarzaczem strumienia audio-video, zainstalować oprogramowanie, które ma testować – w żargonie testersko-developerskim mówi się, że ma „sflaszować” STB. Następnie korzystając z pilota zdalnego sterowania oraz przycisków - już w samym STB - ma wykonać uprzednio przygotowane scenariusze testowe. Tester nie wnika w to co dzieje się z kodem programu. Jeżeli, któryś ze scenariuszy kończy się porażką czyli oczekiwane wyniki różnią się od rzeczywistych, zgłasza to w specjalnie dedykowanym programie śledzenia błędów (np. Bugzilla, Jira) jako błąd podając dokładny scenariusz zreprodukowania błędu.
Jak już wcześniej wspomniano, dekoder musi przejść szereg różnych testów zanim uzna się, że jest on zdatny do sprzedaży. Najważniejsze z nich zostały opisane poniżej. Definicje zostały zaczerpnięte ze słownika testerskiego [4]. I tak, testy wymagań nazywane również testowaniem opartym na wymaganiach, jest to podejście do testów, w którym przypadki testowe są projektowane w oparciu o cele testów i warunki testowe zawarte w wymaganiach np. testy sprawdzające konkretne funkcje lub badające niefunkcjonalne wymagania systemu takie jak niezawodność lub użyteczność. Wśród przykładów wymienić można:
- użytkownik powinien mieć możliwość włączenia i wyłączenia wyświetlenia napisów;
- użytkownik powinien mieć możliwość wyboru języka wyświetlanych napisów: hiszpański, portugalski, niemiecki, angielski;
- użytkownik powinien mieć możliwość usunięcia ręcznego swoich lub automatycznie ustawionych nagrań.
Kolejne testy to testy regresyjne, nazywane również testowaniem regresywnym. Polega ono na ponownym przetestowaniu uprzednio testowanego programu po dokonaniu w nim modyfikacji, w celu upewnienia się, że w wyniku zmian nie powstały nowe defekty lub nie ujawniły się defekty w niezmienionej części oprogramowania. Zazwyczaj tego typu testy przeprowadzane są po zmianach oprogramowania lub jego środowiska pracy. Przykłady takich testów:
- zmiana w funkcji dotyczącej kontroli rodzicielskiej spowodowała/ujawniła defekty w funkcji dotyczącej nagrywania;
- zmiana w funkcji dotyczącej napisów (ang. subtitles) spowodowała/ujawniła defekty w funkcji dotyczącej wyboru języka audio (lektor);
- zmiana w funkcji ustawiania obrazu w formacie 16:9 (ang. aspect ratio) spowodowała/ujawniła defekty dotyczące ustawienia obrazu w formacie 4:3.
Następny typ testów to retesty, czyli testowanie polegające na uruchomieniu przypadków testowych, które podczas ostatniego uruchomienia wykryły błędy w celu sprawdzenia poprawności naprawy. Równie ważne jak wymienione powyżej są testy instalowalności, nie jest to nic innego jak proces testowania instalowalności oprogramowania. Następnie będą to testy integracji modułów, tzn. testy wykonywane w celu wykrycia usterek w interfejsach oraz interakcjach pomiędzy integrowanymi modułami. I ostatnie, testy kompatybilności, polegające na testowaniu współdziałania, w celu określenia współdziałania oprogramowania. Jako przykład może tu posłużyć testowanie dekodera STB z różnymi modelami telewizorów.
Zanim jednak tester wykona wyżej wymienione testy, wcześniej przygotować musi odpowiednie przypadki testowe, o czym jest mowa w następnej części niniejszej pracy.
- arkusz kalkulacyjny MS Excel- wykorzystywany przy pisaniu scenariuszy, prowadzenia metryk;
- Bugzilla – wykorzystywana to raportowania i śledzenia zgłaszanych błędów;
- DekTec StreamXpress – do odtwarzania strumieni audio-video;
- TeraTerm – narzędzie do monitorowania przebiegu testów – zbierania logów z testów, wykorzystywanych przez developerów w procesie naprawy błędów;
- RedRat – narzędzie do testów automatycznych – pilot zdalnego sterowania z pakietem sygnłów sterujących, np. podgłaszanie i ściszanie dźwięku, przłączanie programów.
O Autorze:
Sylwia Bartman z wykształcenia informatyk i chemik. Obecnie zatrudniona w firmie Mobica (http://www.mobica.com/index.php) jako Młodszy Tester. Na co dzień zajmuje się wykonywaniem testów aplikacji na urządzenia mobilne oraz testami oprogramowania na urządzenia wbudowane. Do głównych obowiązków należy: projektowanie przypadków testowych i raportowanie wyników testów. Interesuje się zarządzaniem testami, modelami i metrykami w jakości oprogramowania oraz automatyzacją testów.
Była uczestniczką konferencji: Forum Jakości Systemów Informatycznych – Maj 2013; PMD Project Management Days – Kwiecień 2012; Socjalno-ekonomiczne problemy społeczeństwa informacyjnego – Maj 2011.
Jest autorką publikacji poświęconej miejscu testowania w modelach cyklu tworzenia oprogramowania – debiut.