Blog

31 lipca 2015 Michał Kaczmarski

Czy jest miejsce dla Smoke i Sanity testów w erze automatyzacji?

Czy jest miejsce dla Smoke i Sanity testów w erze automatyzacji?

Czym jest Smoke Test?

Termin Smoke Test został zapoczątkowany w innych dziedzinach niż Inżyniera Oprogramowania, jednakże obecnie jest wykorzystywany szeroko w procesach software developmentu. Pierwsze Smoke Testy polegały na tym, aby włączyć produkowane urządzenie elektryczne i sprawdzić czy dosłownie nie wydobywa się z niego dym. Chodzi zatem o to, aby sprawdzić oczywistą funkcjonalność produktu, nie tracąc na test dużo czasu oraz o to, aby test był prosty do wykonania. Szukać błędów raczej w szerz a nie w głąb. Często taki test opiera się na oczywistej ścieżce użytkownika i jest bardzo łatwy do powtórzenia, tak jak: czy można dokonać rezerwacji?, czy można dokonać płatności?, czy jest widoczne ubezpieczenie?, czy można wyszukać loty?. Celem Smoke Testów jest szybkie sprawdzenie jak największej liczby kluczowych funkcjonalności aplikacji bez zbędnego zagłębiania się w szczegóły.

Czym jest Sanity Test?

Sanity Test koncentruje się na przetestowaniu konkretnej funkcjonalności i powinien dawać odpowiedź na pytanie czy logika aplikacji jest zgodna z wymaganiami biznesowymi. Sanity Test jest bardziej szczegółowy niż Smoke Test gdyż nie określa tylko czy dana część systemu działa lub nie, lecz sprawdza zgodność testowanej funkcjonalności z wymaganiami. Z reguły nie przeprowadza się Sanity Testów, jeżeli nie przechodzą Smoke Testy.

Dlaczego potrzebne są nam Smoke i Sanity Testy?

Testowaniu w oparciu o automatyzację może towarzyszyć testowanie manualne. Często w produkcie nie wdrożonym jeszcze na rynek bądź młodym, suity testowe mają dobre pokrycie w głąb ale nie wszerz. Zdarza się, że nie istnieje możliwość napisania automatów symulujących ludzkie zachowania lub koszt implementacji rozwiązań automatycznych dotykających ogrom funkcjonalności systemu jest duży. Smoke i Sanity Test może przeprowadzić osoba z bardzo małą wiedzą o systemie lub niebędąca testerem. Seria opisanych Smoke i Sanity Testów powinna pomóc nam utrzymać jakość produktu a przede wszystkim wykluczyć oczywiste regresje bardzo szybko.

Kiedy robić Smoke i Sanity Testy a kiedy nie?

Smoke i Sanity Testy mają sens w fazie developmentu młodego produktu, pozwalają zapewnić “sito” bez konieczności wysokiego pokrycia produktu testami automatycznymi, co niejednokrotnie nie jest możliwe w młodym produkcie lub gdy młody produkt zmienia się na tyle często, że utrzymanie testów automatycznych o wysokim poziomie pokrycia byłoby zbyt wysokim kosztem. W miarę dojrzewania produktu Sanity i Smoke Testy powinny być zastępowane przez testy automatyczne lub sondy monitorujące pracę systemu, chyba że modelowanie i oprogramowanie mechanizmu naśladującego akcje użytkownika w wystarczającym stopniu jest zbyt wysokim kosztem lub jest niemożliwe. Jest to sytuacja częsta w branży gier, gdzie charakterystyczną cechą programu jest nieprzerwana interakcja w czasie rzeczywistym z użytkownikiem. Smoke Testy są przeprowadzane z perspektywy użytkownika, więc pozwalają przetestować złożone funkcjonalności wielu systemów składających się na produkt i wartość biznesową w krótkim czasie i w prosty sposób.

Przykładowy Smoke i Sanity Test

Przykładowy Smoke Test #1:

  • Wejdź na stronę produktu
  • Wybierz lot w jedną stronę i 2 pasażerów
  • Jako kierunek początkowy i startowy wybierz: Katowice i Barcelona
  • Ustaw datę wylotu dzień odległy o miesiąc w przyszłość od dzisiejszego
  • Kliknij “Szukaj”
  • Czy zostałeś przeniesiony na stronę wyników wyszukiwania?

Przykładowy Sanity Test #1 po przejściu powyższego Smoke Testu #1:

  • Czy loty posegregowane są według cen w kolejności rosnącej?

Przykładowy Sanity Test #2 po przejściu powyższego Smoke Testu #1:

  • Czy na stronie wyników widoczny jest baner “Kup bilet online i otrzymaj 7% zniżkę na rezerwację hotelu”?
  • Czy baner po kliknięciu przekierowuje do właściwej kampanii?
  • Czy baner wyświetla komunikt “Wygraj już dziś” kiedy kursor znajdzie się w jego obszarze?

Zobacz na blogu

09.09.2022
Marcin Jahn
It’s Not Just HTTP It’s Not Just HTTP

In today’s world of cloud-based solutions, distributed systems, and microservices-based architectures, network communication is a...

23.08.2022
Adam Mrowiec
Konferencja IPC 2022 Berlin Konferencja IPC 2022 Berlin

Pandemia wreszcie się kończy, dlatego w tym roku postanowiliśmy wrócić do naszych wyjazdów na konferencje....