Testowanie developerskie


U mnie dzia?a!

Wydarzenia ostatnich dni natchn??y mnie, ?eby napisa? par? s??w o testowaniu aplikacji. Jako, ?e jest to blog programistyczny spodziewacie si? pewnie, ?e napisz? o testach jednostkowych lub testach integracyjnych. Poka?? narz?dzia do automatyzacji test?w. Mo?e b?d? zachwala? Cucumber i pr?bowa? Was przekona? jakim to super wynalazkiem jest BDD. Ot?? nie :). Dzi? chcia?bym napisa? o najbardziej podstawowym sposobie testowania, czyli przeklikaniu si? przez system. Nie chc? te? zgrywa? specjalisty od QA dlatego pisa? b?d? o testach wykonywanych przez developer?w, a nie specjalistyczne zespo?y testerskie.

Na pocz?tek zaczn? od postawienia do?? kontrowersyjnej tezy. Developerzy nienawidz? testowa? funkcjonalnie kodu, kt?ry napisali. Klikanie po ekranie? Sprawdzanie, czy niewype?nienie jakiego? pola spowoduje b??d? Przeklikanie jakiegokolwiek scenariusza poza happy path? Po co to komu? Przecie? pokrycie testami jednostkowymi jest na poziomie 100%, przecie? jestem genialny i napewno wszystko dzia?a :). Wiecie jaki jest rezultat wi?kszo?ci test?w funkcjonalnych wykonywanych przez developer?w? U mnie dzia?a.

Happy path to za ma?o

Developerzy dziel? si? na tych co, mimo ?e nienawidz? tego robi?, testuj? oraz na tych co …. nie testuj? (lub robi? to niewystarczaj?co dobrze).

W moim aktualnym projekcie jeste?my w?a?nie ?wie?o po pierwszej fazie smoke test’?w. Testy te obj??y tylko cztery ekrany aplikacji. Dodam tylko, ?e jest to skomplikowany system backendowy z rozbudowanymi formularzami. System ten idealnie wpasowuje si? w s?ynnego, w?r?d programist?w mema.

yourproduct

Development do momentu pierwszych test?w, wykonanych przez zesp?? QA, szed? ksi??kowo. Termin?w dotrzymywali?my. Projekt Manager by? zadowolony bo wszystko mu si? w MS Project zgadza?o. Niestety przys?owiowy kij w mrowisko wsadzili nam testerzy po wspomnianej pierwszej fazie smoke test?w.

Rezultat by? zatrwa?aj?cy. Siedemdziesi?t dwa b??dy zg?oszone do czterech ekran?w. Sze??dziesi?t pi?? procent przypadk?w testowych ze statusem FAILED.

Po spotkaniu statusowym zbiera?em szcz?k? z pod?ogi. Jak to si? mog?o sta? pyta?em? Jak ka?dy (tak mi si? wydaje) team leader w tym momencie odebra?em to bardzo osobi?cie. Zacz??em zastanawia? si?, co by?o przyczyn? takiego stanu rzeczy i jak to poprawi?? Przecie? to dopiero pocz?tek projektu. To nie mo?e si? powt?rzy? w kolejnych etapach.

Crosscheck developerski

Jednym z rozwi?za?, jakie niejeden by zastosowa?, by?oby zebranie ca?ego zespo?u i opierdzielenie bez przebierania w s?owach niczym kapitan Bednarz ze s?ynnego na youtube „Apelu wojskowego bez cenzury”. Jednak to nie s? moje metody. Jedyny efekt jaki bym tym osi?gn?? to wprowadzenie z?ej atmosfery w zespole. Podczas codziennego stand up’a przedstawi?em na spokojnie zespo?owi sytuacj?. Zaproponowa?em przeprowadzenie test?w funkcjonalnych typu „crosscheck”. Za?o?enia tych test?w by?y takie:

  1. Ekrany, kt?rych jeszcze nie oddali?my do test?w QA, a kt?re mamy sko?czone, zostan? przetestowane wewn?trznie przez innego developera
  2. Developer ma przeklika? si? przez ekran opisuj?c wszystkie przypadki, kt?re sprawdza
  3. W przypadku natrafienia na b??d developer zg?asza go w JIRA

Cele tego ?wiczenia by?y dwa. Pierwszy to wy?apa? cz??? b??d?w, zanim zrobi to zesp?? QA. Drugi, du?o bardziej dla mnie wa?ny, to zobaczy? w jaki spos?b poszczeg?lni cz?onkowie zespo?u testuj? ekran. Zak?ada?em, ?e podczas takiego zleconego crosschecku, przetestuj? go du?o dok?adniej, ni? testuj? ekran, kt?ry sami tworz? 😀 Chcia?em pozna? r??ne podej?cia do testowania developerskiego, namierzy? kto testuje dobrze, wy?apa? dobre praktyki i sporz?dzi? na ich podstawie og?lne wytyczne dla ca?ego zespo?u. Jednocze?nie dyskretnie pokaza? tym co robili ?le jak powinno to wygl?da?.

W chwili obecnej jeste?my w po?owie tego ?wiczenia. Cz??? ekran?w poddali?my ju? wewn?trznym testom i poprawiamy b??dy, kt?re znale?li?my. Pierwsza wersja wytycznych zosta?a spisana.

Z niecierpliwo?ci? czekam na oddanie kolejnych ekran?w w r?ce zespo?u QA, ?eby potem m?c powiedzie?: wyci?gn?li?my wnioski i poprawili?my nasz proces developmentu. Przecie? w ka?dej pora?ce o to w?a?nie chodzi, ?eby nauczy? si? czego? nowego na w?asnych b??dach. Mam nadziej?, ?e w tym przypadku tak w?a?nie b?dzie.