Grzegorz Świeć

Grzegorz Świeć QA, lider zespołu
testowania
oprogramowania

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

No wlasnie, firma w ktorej pracuje chce wprowadzic role testera w projektach prowadzonych metodologia Agile Scrum. W tytule troche nieprecyzyjnie sie wyrazilem odnosnie Unit Testow - sa one dozwolone, ale nie w formie Test Driven Design. Powstaje wiec pytanie w jaki sposob zorganizowac prace testera tak by po pierwsze byl on skuteczny, po drugie - oprocz scislej komunikacji nie obciazal dodatkowa praca developerow przy tworzeniu testow.
Chetnie przyjme jakies wskazowki, opracowania lub po prostu info jak to u Was dziala:).
Ciekawe opracowanie znalazlem pod linkiem:
http://www.testingreflections.com/node/view/7378
edit: I jeszcze ten tips for agile testing

PozdrawiamGrzegorz Świeć edytował(a) ten post dnia 07.07.09 o godzinie 15:58
Krystian K.

Krystian K. Agile Coach, Autor

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Póki co z Twojej wypowiedzi wynika, że w tej firmie testowanie to zło konieczne.
Unit Testy dozwolone -wow.
Grzegorz Świeć:
nie obciazal dodatkowa praca developerow
zamknąc go w piwnicy i odłaczyć od sieci. Przecież nie chcemy, żeby developerzy pracowali obiciążeni :)

Czyli jedyna rada: na początek trzeba zmienić podejście.Krystian K. edytował(a) ten post dnia 07.07.09 o godzinie 17:11
Grzegorz Świeć

Grzegorz Świeć QA, lider zespołu
testowania
oprogramowania

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Krystian K.:
Póki co z Twojej wypowiedzi wynika, że w tej firmie testowanie to zło konieczne.
Unit Testy dozwolone -wow.
Grzegorz Świeć:
nie obciazal dodatkowa praca developerow
zamknąc go w piwnicy i odłaczyć od sieci. Przecież nie chcemy, żeby developerzy pracowali obiciążeni :)


:)
Czyli jedyna rada: na początek trzeba zmienić podejście.

OK, jestem tago samego zdania, ale bede musial zrobic to krokami. Jestem za krotko (drugi dzien) by zmienic calkowicie polityke firmy. Poza tym tester na poczatku tez bedzie tylko jeden a nie wyobrazam sobie by mogl on nadzorowac pisanie testow jednostkowych skoro bedzie poruszal sie pomiedzy teamami piszacymi w roznych jezykach, gdzie dodatkowo kazdy programista uzywa swojego ulubionego IDE - najczescie vim'a :).

Mysle, ze tester na poczatku moglby wdrozyc zautomatyzowane testy funkcjonalne, jak najwiekszego kawalka funkcjonalnosci. Takie testy latwo da sie wpisac w cykl iteracyjny (tak jak w linkach podanych powyzej). Nastepnie postara sie o wprowadzenie ujednoliconego IDE i naklonienie programistow do pisania testow jednostkowych jesli akurat trafi do teamu gdzie testy pisane sa w jezyku ktory zna.
Zastanawia mnie jeszcze kwestia tesow wydajnosciowych. A konkretnie pytanie kto i kiedy powinien je przeprowadzac?

Pozdrawiam

konto usunięte

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Jakość w sofcie ma 2 gałęzie. Jakość końcowa produktu - ważna z punktu widzenia klienta, a poprawiana dzięki dobrze zorganizowanym testom typu system, acceptance, a także testom wydajności oraz bezpieczeństwa itp. Dziedzina raczej doceniana przez wyższe instancje, ponieważ przekłada się bezpośrednio na zadowolenie klienta. Tutaj twój tester mógłby mieć pole do popisu.
Nie miałby natomiast nic do roboty przy testach jednostkowych, które najlepiej napiszą sami programiści i to zanim napiszą kod. Testy jednostkowe wpływają na jakość kodu a nie produktu. Nie mają wpływu na funkcjonalność, natomiast zazwyczaj zmniejszają tzw. coupling i gwarantują możliwość szybszego rozwoju kodu nawet bardzo rozrośniętego. Nie rozumiem dlaczego TDD jest u was niemile widziane skoro "pozwalają" wam na unit testy.
Jeżeli argumentem jest to, że programiści będą mniej wydajni, to od razu mówię, że jest to najbardziej zmyślona i najczęściej przytaczana bajka na temat TDD.
Rafał D.

Rafał D. Head of Production,
Locon Sp. z o.o.

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Grzegorz: Z ciekawości zapytam, jak programista u Was napisze kod, to skąd wie że on działa?
Grzegorz Świeć

Grzegorz Świeć QA, lider zespołu
testowania
oprogramowania

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Julian Warszawski:

Dzieki za odpowiedz.

Testy jednostkowe wpływają na jakość kodu a nie produktu.

Tu sie nie do konca zgodze, bo przeciez jedno ma wplyw na drugie, ale chyba zrozumialem przeslanie. Jakosc kodu mozna by rozpatrywac jako ilosc komantarzy, czy nazewnictwo zmiennych. Jesli natomiast za jakosc kodu przyjmiesz jego wydajnosc to nie mozesz stwierdzic ze nie ma ona wplywu na produkt.

[..]Nie rozumiem dlaczego TDD jest u was niemile widziane skoro "pozwalają" wam na unit
testy.
Jeżeli argumentem jest to, że programiści będą mniej wydajni,
to od razu mówię, że jest to najbardziej zmyślona i najczęściej przytaczana bajka na temat TDD.

Jestem tego samego zdania co Ty, ale puki co ciezko przekonac mi firme do TDD.

Rafał D.:
Grzegorz: Z ciekawości zapytam, jak programista u Was napiszekod, to skąd wie że on działa?


Do tej pory po implementacji firma zatrudniala klikacza outsurcowego. Programisci przeprowadzali jedynie testy wydajnosciowe.
Krystian K.

Krystian K. Agile Coach, Autor

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Grzegorz Świeć:
Tu sie nie do konca zgodze, bo przeciez jedno ma wplyw na drugie, ale chyba zrozumialem przeslanie. Jakosc kodu mozna by rozpatrywac jako ilosc komantarzy, czy nazewnictwo zmiennych. Jesli natomiast za jakosc kodu przyjmiesz jego wydajnosc to nie mozesz stwierdzic ze nie ma ona wplywu na produkt.

Jasne, że Unit Testy wpływają na jakość produktu, a nie kodu. Dzięki Unit Testom część bugów zostanie wychwycona przed Intergacją oraz w przypadku wprowadzenia zmian w kodzie od razu wiemy, czy nie została przypadkiem zepsuta inna, działająca do tychczas funkcjonalność, bo przecież Unit Testy mogą byc odpalana za każdym razem w Continuous Integration.
Na jakość kodu wpływają metryki takie jak checkstyle i McCabe.

[..]Nie rozumiem dlaczego TDD jest u was niemile widziane skoro "pozwalają" wam na unit
testy.
Jeżeli argumentem jest to, że programiści będą mniej wydajni,
to od razu mówię, że jest to najbardziej zmyślona i najczęściej przytaczana bajka na temat TDD.

Jestem tego samego zdania co Ty, ale puki co ciezko przekonac mi firme do TDD.

Rafał D.:
Grzegorz: Z ciekawości zapytam, jak programista u Was napiszekod, to skąd wie że on działa?


Do tej pory po implementacji firma zatrudniala klikacza outsurcowego. Programisci przeprowadzali jedynie testy wydajnosciowe.
Szczerze nie zazdroszcze Ci sytuacji. Moim zdaniem zacznij od zainstalowania CI np.: Hudson, podepnij jakiś checkstyle i Unit Testy, żeby na bieżąco pokazywać aktualną jakość kodu i problemy z Unit Testami.
Z kolei na Daily Scrum musisz "zapalać czerwone lampki" gdy ktoś ruszy zadani, które nie było przetestowane. Upewnij się że w Definition of DONE zapisane jest testowanie i/lub Unit Testy dostarczone z kodem. Jeśli to możliwe to na Agile Wall umieść po Review albo zaraz po Development fazę Testing - wtedy testowanie będzie widoczną częścią Scrum.
Grzegorz Świeć

Grzegorz Świeć QA, lider zespołu
testowania
oprogramowania

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Krystian K.:

Z kolei na Daily Scrum musisz "zapalać czerwone lampki" gdy ktoś ruszy zadani, które nie było przetestowane.

Tego zdania nie rozumiem. Chodzi Ci o Unit Testy czy o testowanie wymagan? A moze chodzi Ci o sytuacje gdy w scrumie1 napisano jakas funkcjonalnosc do ktorej testy nie zostaly jeszcze wykonane, a w daily scrumie2 chce sie rozbudowywac ta funkcjonalnosc i to wlasnie wowczas powinna byc zapalana ta "czerwona lampka"?
Krystian K.

Krystian K. Agile Coach, Autor

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Powiem Ci jak to u nas działa. Mamy w defuinition of DONE mniej więcej: coded, testeable, documented, tested, successfully integrated, task completely covered. Więc gdy ktoś mówi na daily Scrum: "Task 13 jest DONE". To Ty musisz spytać: było testowane? Są unit testy? Jeśli nie to Tester lub Developer musi takie zadanie dokończyć i oczywiście podać nową estymatę. Na początku musisz tego pilnować, potem wejdzie to w krew. Upewnij się też, że podczas Sprint Planning Meeting estymaty zadań zawierają czas na testy.
Rafał D.

Rafał D. Head of Production,
Locon Sp. z o.o.

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Grzegorz: Ale jakieś sprawdzanie pętli, prostych algorytmów, jakiś pojedynczych metod, exceptionów jakiś, nikogo to nie interesuje? Nie jest to potem problemem? Czy może tak naprawdę programiści robią unit testy sobie "na boku" tylko nikt tego nie identyfikuje jako unit testy?

Dodam że nie znam nomenklatury Skrumowej więc może coś źle przez to zrozumiałem.
Grzegorz Świeć

Grzegorz Świeć QA, lider zespołu
testowania
oprogramowania

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Rafał D.:
Grzegorz: Ale jakieś sprawdzanie pętli, prostych algorytmów, jakiś pojedynczych metod, exceptionów jakiś, nikogo to nie interesuje? Nie jest to potem problemem? Czy może tak naprawdę programiści robią unit testy sobie "na boku" tylko nikt tego nie identyfikuje jako unit testy?


Nic poza recznym uzyciem debuggera. Zadnych automatow (tzn klas napisanych do unit testow) nie stosuja.

Rafal, do czego zmierzasz?
Rafał D.

Rafał D. Head of Production,
Locon Sp. z o.o.

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Do zaspokojenia swojej ciekawości i zdobycia doświadczenia...

Temat: Jak, bez uzycia Unit Testow, zapewnic QA w Agile Scrum?

Dla mnie osobiście agile, nie ważne czy to Scrum czy TDD, nie może istnieć bez unit testów. Patrząc choćby na definicję agile w Wiki - "Each iteration is worked on by a team through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders." - można łatwo zauważyć, że testy jednostkowe i akceptacyjne mają takie samo miejsce w projekcie jak i kodowanie, a projekt bez nich nie est już projektem agilowym.
Jeśli chodzi natomiast o organizację pracy testera w zespole to przede wszystkim musisz uświadomić wszystkich, że w agilu tester jest takim samym członkiem zespoły jak programista czy analityk. Jego czas pracy musi być uwzględniany na planowaniu sprintów i on również, tak samo jak programiści, pracuje nad tym aby dostarczyć klientowi jak najbardziej spełniający jego oczekiwania i przetestowany kawałek softu. Nie może więc być tak, że tester jest postrzegany w zespole jak ktoś kto stwarza problemy i to jest pierwsza rzecz jaką musisz propagować wśród programistów i managementu. Globalnie patrząc, czas "zabrany" programiście przez testera, który pomaga w znajdowaniu błędów, zanim program pójdzie ostatecznie do klienta, zawsze "zwraca się z nawiązką". W Twoje firmie musi zapanować przekonanie, że tester to nie jest "zło konieczne" a osoba wnosząca wartość do projektu w postaci zminimalizowanej ilości błędów a co za tym idzie lepszej satysfakcji klienta. A czy nie o to właśnie chodzi, żeby przede wszystkim klient był zadowolony? :)Marcin Oleksiewicz edytował(a) ten post dnia 11.07.09 o godzinie 23:29



Wyślij zaproszenie do