Smoke testing i sanity testing

Wszystko o testach dymnych, czyli co wspólnego ma testowanie z paleniem urządzeń.

5/7/2024

Nie ma co ukrywać - w branży testowania oprogramowania da się znaleźć przedziwne nazewnictwo. Testy dymne, testy kondycji... Co się za tym kryje? Zapraszam do przeczytania krótkiego wpisu.

Pali się czy nie?

Rozpocznijmy od smoke testingu, czyli praktyki nawiązującej do już nieco archaicznej metody oceny sprzętu elektronicznego. Polega ona na podłączeniu urządzenia do zasilania, a następnie obserwowaniu czy wydobywa się z niego dym. Gdy tak się stanie, kontynuacja testowania traci sens. W przypadku oprogramowania scenariusz wygląda analogicznie. Testy dymne skupiają się na weryfikacji fundamentalnych funkcji aplikacji. Odpowiedzialność testera obejmuje zatem kontrolę kluczowych obszarów programu.

Zaznaczę jeszcze, że nie dąży się tu do szczegółowej analizy, lecz jedynie do sprawdzenia głównych ścieżek funkcjonalnych. W przypadku awarii kluczowych funkcji, kontynuacja testowania byłaby stratą czasu. Idea sprowadza się więc do unikania testowania uszkodzonego oprogramowania, co przekłada się na redukcję kosztów związanych z testami.

testy dymne na podstawie aplikacji pogodowej
testy dymne na podstawie aplikacji pogodowej

Testy dymne na podstawie aplikacji pogodowej

Jako przykład weźmy aplikację aplikację pogodową. Jej główny interfejs prezentuje aktualną temperaturę, warunki atmosferyczne (takie jak deszcz, słońce, czy zachmurzenie) oraz lokalizację, do której odnoszą się przedstawiane dane. Dodatkowo, w zakładkach możemy sprawdzić wilgotność powietrza, kierunek i prędkość wiatru, a także udostępnić dane pogodowe na naszych profilach społecznościowych.

W kontekście testów dymnych skupiamy się na głównym interfejsie aplikacji, czyli prezentacji aktualnej pogody w określonej lokalizacji. Na tym etapie nie ma potrzeby analizowania wilgotności powietrza czy możliwości udostępniania informacji na profilach społecznościowych. Jeżeli prezentacja aktualnej pogody zawodzi lub jest błędna, nie przechodzimy do testowania pozostałych części aplikacji, lecz czekamy na poprawę bugów. Dopiero gdy kluczowe funkcje działają poprawnie, rozpoczynamy bardziej zaawansowane, szczegółowe testy.

Sanity testing, czyli testy kondycji

Z kolei sanity testing, czyli testy kondycji, koncentrują się na ocenie jednej konkretnej (najczęściej nowej) funkcjonalności. Pozostając przy aplikacji pogodowej. Załóżmy, że dodajemy do niej nową funkcję: wyświetlanie prognozy opadów, czyli procentowej szansy na deszcz w danej godzinie. Po dodaniu nowej zakładki, przechodzimy do testowania. Sanity testing polega na szybkiej, powierzchownej weryfikacji nowych elementów. Jeśli nowa zakładka spełnia wymagania i założenia, przechodzimy do bardziej szczegółowych testów.

Mam nadzieję, że udało mi się wyjaśnić różnice między smoke a sanity testingiem. Temat ten często pojawia się na rozmowach rekrutacyjnych i jest kluczowym elementem codziennej pracy testerów oprogramowania. Choć nazewnictwo może się różnić, to stosowane metody pozostają popularne, bo pozwalają ograniczyć czas spędzony na mało efektywnych testach.

Chcesz być na bieżąco? Zapisz się do newslettera!

W każdy czwartek o 10:00 wyślę Ci wiadomość o moich nowych wpisach. Oprócz tego, dorzucę ciekawe artykuły, filmy czy inne materiały ze świata IT - oczywiście, związane głównie z testowaniem oprogramowania. To świetny sposób na naukę i ciągłe zdobywanie wiedzy.

Dziękuję, że czytasz mojego bloga!

Masz jakieś pytania? Z chęcią odpowiem :)

Radosław Wasik
Radosław Wasik