6 sposobów na zmniejszenie kosztów automatyzacji testów - Code Sprinte

6 sposobów na zmniejszenie kosztów automatyzacji testów cz. II

Część pierwszą tego artykułu znajdziesz TUTAJ.

Podczas gdy wiele organizacji zmaga się jeszcze z problemem minimalizacji kosztów testowania samego w sobie inne natrafiają często na problem wysokich kosztów automatyzacji testów, która miała być cudownym rozwiązaniem pierwszego problemu.

A przynajmniej z takimi problemami zgłaszają się do nas nasi klienci. Pozwoliłem sobie przygotować krótki poradnik dla każdego, kto automatyzuje testy lub dopiero się do tego przymierza.

4. Automatyzacja na poziomie testów akceptacyjnych to za mało

TestingPyramid-300x231A skoro już o programistach mowa to warto przypomnieć o piramidzie testów. Zbudowanie samego jej wierzchołka niewiele wniesie. Zbytnie rozszerzenie wierzchołka przy wąskiej podstawie sprawi, że będzie ona niestabilna – dosłownie. A co za tym idzie kosztowna w utrzymaniu. Wdrożenie piramidy testów jest znacznie łatwiejsze, gdy dopiero zaczynamy pracę nad produktem – w przypadku pracy z Legacy Code wymaga to znacznie większego wysiłku i działań na szeroką skalę.

Automatyzując jedynie na poziomie testów akceptacyjnych – end-to-end możemy zamiast pomóc jeszcze bardziej zaszkodzić swojej organizacji poprzez dostarczenie iluzorycznego poczucia pewności, że wprowadzanie zmian w oprogramowaniu nie obniża w zasadniczy sposób jego jakości.

Aby automatyzacja testów była efektywna potrzebne jest zbudowanie odpowiedniej kultury testowania automatycznego w całej organizacji, nie tylko w dziale kontroli jakości – dziale testów.

Jak myślisz, czy w Twojej organizacji taka kultura była by w ogóle możliwa?

5. Zamiast minimalizować koszty maksymalizuj zyski

Główną wartością testów automatycznych jest informacja zwrotna którą dostarczają. Informacja ta powinna być szybka, konkretna oraz jednoznaczna. Powinna też dotyczyć tego, nad czym aktualnie pracują developerzy. Heroiczne projekty zatytułowane: „Zautomatyzujmy wszystko” przeważnie kończą się bolesna porażką.

Klientami testów automatycznych są programiści rozwijający funkcjonalność, którzy dzięki nim mogą bezpieczniej wprowadzać zmiany i poprawiać jakość kodu na przykład poprzez wprowadzanie testów na coraz to niższych poziomach (testy jednostkowe, funkcjonalne).

Warto zatem zawsze rozpoczynać automatyzację od tego, nad czym aktualnie pracuje zespół. Na testowanie pozostałych funkcjonalności przyjdzie jeszcze czas, gdy zaczniemy je modyfikować (czy to zmieniając założenia funkcjonalne czy poprawiając bugi).

Informacja zwrotna powinna być dostarczana jak najczęściej, zatem automatyzowanie testów bez wdrożenia Continuous Integration nie zmieni zbyt wiele w naszej organizacji.

6. Nie wszystko należy automatyzować

I po piąte, ale nie ostatnie – nie wszystko należy automatyzować. Jeśli wiemy że cykl życia danej funkcjonalności nie przewiduje w niej zasadniczych zmian, to warto zastanowić się nad odizolowaniem takiej funkcjonalności od naszej domeny techniczno-biznesowej – na przykład poprzez stworzenie osobnej biblioteki, osobnego sub-produktu, usługi. Pomocne mogą okazać się tutaj założenia Domain Driven Design.

A czy Ty masz wpływ na próby automatyzowania wszystkiego? Dlaczego nie jest to oczywiste tak jak powinno być? Co mógłbyś z tym zrobić w swojej organizacji?

Sama automatyzacja testów to dopiero pierwszy krok, który otwiera drogę do czerpania dalszych korzyści wynikających z takich metod jak na przykład BDD czy Continuous Delivery. Automatyzacja testów robiona w sposób przemyślany i zgodny z powszechnymi standardami pozwala również na bardziej płynną pracę w ramach Scrum czy Kanban.

Reasumując – zmniejszanie kosztów automatyzacji wymaga przede wszystkim wiedzy osób odpowiedzialnych za automatyzację, dlatego też zapraszamy na nasze najbliższe szkolenia z Automatyzacji Testów, oraz Test-Driven Development w Javie i .Net.

 

Na naszym blogu uruchamiamy cykl porad dotyczących poszczególnych zagadnień związanych z Agile i tematyką naszych szkoleń. Teraz możecie z łatwością odnajdywać potrzebną wiedzę. Jednocześnie zachęcamy do aktywnego komentowania, zadawania pytań i proponowania tematów najbardziej was interesujących, abyśmy mogli jeszcze bardziej służyć naszą wiedzą i pomocą.

 

ulotka_reka

 

 

 

O autorze: Jakub Bażela