DevEnv
2018-03-06 15:33

Uruchamiamy na blogu nowy dział, który tworzony będzie przez doświadczoną QA.
Na początek zapraszamy na: "Smoke, sanity, regression testy"

Czy wyobrażasz sobie, że Twoja aplikacja, przekazywana jest klientowi, bez przeprowadzenia testów? Jak ustrzec się przed sytuacją, że klient dostaje nową wersję aplikacji, po czym nie potrafi jej zainstalować czy uruchomić albo nie jest w stanie zalogować się do systemu? To chyba czarny sen każdego programisty.

http://devenv.pl/smoke-sanity-regression-testy/

#blog #technicalblog #devenv #testy #testowanie #qa

ElGato

"Czy wyobrażasz sobie, że Twoja aplikacja, przekazywana jest klientowi, bez przeprowadzenia testów" ....ooooo taaaak! Mój pierwszy komercyjny projekt był 'oparty' o takie właśnie standardy :) Klasyczna sytuacja: deadline dla release'a: poniedziałek godzina 16.30. O 16.20 lider developerów zgłasza PM'owi że może być obsuwa. PM na to: dobra to poślemy bez testów (klient z Kanady), jak coś to QA jutro poszuka baboli. W ten sposób internal-QA klienta (złożony z 14 Hindusów) niemalże co release wyłapywał co najmniej dwa razy więcej defektów od mojego 2-osobowego teamu testowego ;) ...no cóż klient się obraził, bo na demo nie mógł odpalić apki, "no bo smoke testy są proste, można je pominąć" (pozdrawiam PM'a jeśli to czyta) i projekt został przekazany do Indii :D
...cóż, dusiłem to w sobie, dzięki za kozetkę ;)

anonimowy

@DevEnv: Trochę nie ogarniam. Skoro testy regresyjne i tak muszą zostać puszczone przed wypuszczeniem aplikacji to po co testy sanity i smoke?

WhiteLightning

Z mojego doswiadczenia: Smoke to pierwsze wrazenie z uzycia aplikacji (analogia: wlaczamy prototyp urzadzenia do pradu, spalilo sie -> koniec zabawy). Sanity -> Sprawdzamy czy podstawowe funkcjonalnosci z grubsza dzialaja. (czyli mamy np TV ale dziala nam tylko jedyny sluszny program, nie dziala przyciski, generalnie nie wiele mozna z nim zrobic). Jesli to przeszlo -> bawimy sie w regresje.

Afish

@anonimowy: Szybkość. Wszystkie testy mogą działać długo, więc można rozbić proces budowania na kilka kroków, odpalać smoke testy jak najszybciej, żeby zaraz po pushu do repozytorium wiedzieć, czy kod ma jakąkolwiek szansę działać.

Janina X

Anonimowy kolego, dzięki za komentarz. Właśnie tak jak koledzy tu piszą, smoke testy / sanity testy pozwalają wyłapać błędy na wczesnym etapie. Te zestawy testów różnią się też wielkością więc, nie ma sensu wykonywać tylko regresji (choć znam projekty gdzie o zgrozo od tego się zaczynało). Dlatego na początku sprawdza się mały zestawem testów kluczowe casy, a dopiero później sprawdzamy czy aby na pewno nic się po drodze, w innych częściach aplikacji nie zepsuło.

anonimowy

@Janina X: Ale przecież testy regresyjne też pozwalają wyłapać czy nic po drodze się nie zepsuło

Janina X

A wyobrażasz sobie sytuację, że zaczysz od regresji którą robisz 3-5 dni, a w między czasie wychodzi taka ilość błędów, że wersja nadaje się tylko wyłącznie do kosza? Nie masz poczucia straconego czasu? A teraz wyobraź sobie że te same błędy wychodzą w ciągu godziny, dwóch od wypuszczenia nowej wersji? Należy sobie też zadać pytanie też, jak by to wyglądało przed klientem? Czy nie poczułby, że jego pieniądze są marnotrawione?

anonimowy

@Janina X: Nie rozumiem. Testy regresyjne odpalam i za chwilę mam odpowiedź czy wszystko działa. W Twoim przypadku jest inaczej?

Janina X

Powiem tak, to wszystko zależy. Są projekty gdzie regresja jest zautomatyzowana, są projekty gdzie nie. Czy to jest słuszne podejście czy nie to jest temat na osobną dyskusję. Należy też brac pod uwagę rozmiar projektu. Są małe projekty gdzie regresja zajmuje chwilę, a są gdzie zajmuje godziny (nawet ta automatyczna).
W sytuacji gdy regresja nie jest zautomatyzowana - to jest sprawa oczywista.
Gdy mamy smoke, sanity i regresję zautomatyzowaną możemy np. smoke testy wykonywać tuż po zbudowaniu nowej wersji. Jeśli nie przejdzie wersja w ogóle nie trafi do QA. Wyobrażasz sobie aby QA czekał na nową wersję długi czas po buildzie bo wyknuje się regresja?

anonimowy

@Janina X: No to mogliśmy od tego od razu zacząć, że przeszkodą jest technologia i architektura.