blog.testowka.pl

Archiwum wiadomości z Listopad, 2010

Automatyczny chaos to tylko szybszy chaos.

opublikowany przez 26, Lis, 2010, w kategoriach Automatyzacja, Praca, Testowanie

W tym tygodniu miałem okazję prowadzić w Warszawie dwudniowe szkolenie „Narzędzia w procesie testowym” w ramach programu szkoleń SQAM. Motywem przewodnim wspomnianego szkolenia stało się hasło będące tytułem poniższej notki.

Automatyczny chaos to tylko szybszy chaos…

Jeśli mówimy o automatyzacji testów, zarządzania testami, zarządzania konfiguracją, procedur deploymentu, zarządzania incydentami wszystko to wiąże się z wdrażaniem narzędzi. WDRAŻANIE – bardzo ciekawy termin. Według słownika języka polskiego wyraz „wdrażać” oznacza „wprowadzać coś nowego do użytku”. Ale ta notka nie będzie o samym procesie wdrażania narzędzi testowych, lecz o tym kiedy w ogóle o wdrożeniu narzędzia możemy zacząć myśleć.

Żeby zacząć planować wdrożenie narzędzia wspierającego w jakikolwiek sposób testy czy inną część procesu wytwarzania oprogramowania musi najpierw ten proces zdefiniować. Musimy mieć usystematyzowane pewne procedury, jasno określone i opisane zależności, zdefiniowany workflow etc. Jeśli zaczniemy automatyzować chaos to tylko przyspieszymy nasz marsz ku klęsce. Owszem, niektóre narzędzia służą właśnie do powstrzymywania chaosu, do porządkowania różnych elementów procesu (głównie narzędzia wspomagające zarządzanie) , niemniej jednak zanim zaczniemy używać takiego narzędzia musimy dobrze poznać jego możliwości i zaplanować sposób w jaki będziemy go używać.Powyższe wcale nie jest proste, wymaga odpowiednich przygotowań i odpowiedniego planu. Później jak już rozpoczniemy używanie narzędzia, czy to od razu w całej firmie czy w ramach jakiegoś projektu pilotażowego nadal musimy pamiętać chociażby o zapewnieniu szkoleń i wsparcia dla innych użytkowników. W dodatku musimy pilnować by przypadkiem ktoś nie zaczął używać narzędzia niezgodnie z zamierzonym workflowem.

Osobiście nie lubię narzędzi, które obsługują więcej niż jedno zagadnienie – zgodnie ze starą reklamą proszku do prania:  ” Jeśli coś jest do wszystkiego to jest do niczego”. W narzędziach cenię sobie prostotę i użyteczność, nie chcę czytać kilku tomów instrukcji by nauczyć się zgłaszania błędów, nie chcę marnować kilkunastu dni na szukanie najbardziej optymalnego sposobu używania narzędzia wspierającego zarządzanie projektem. Potrzebuje gotowych kompleksowych rozwiązań.

Bardzo często narzędzia są wdrażane w momencie, gdy pojawiają się problemy, są wdrażane po to by ratować projekt coraz szybciej zmierzający w kierunku przepaści. Wdrażanie narzędzi na miesiąc przed deadlinem to najgorsze co można zrobić. Jest już za późno by narzędzie mogło nam w czymkolwiek pomóc a wręcz przeciwnie zmarnujemy dużo czasu na jego wdrożenie etc. Później czyta się raporty mówiące o tym, że tylko 60% wdrożeń narzędzi kończy się sukcesem.

Rozpoczęcie automatyzacji testów w trakcie trwania projektu a nie na jego początku także wiąże się ze znacznym ryzykiem. Przede wszystkim w takiej sytuacji gdy testy jednostkowe i funkcjonalne nie były pisane od początku istnieje duże prawdopodobieństwo, że niektórych funkcjonalności nie da się już przetestować automatycznie. Pomysłem na rozwiązanie problemu zbyt późnego rozpoczęcia automatyzacji mógłby być refaktoring, niestety refaktoring kodu bez co najmniej 90% pokrycia kodu testami ma bardzo małe szanse powodzenia.

Błędne koło się zamyka. Nie twierdzę, że nie da się wprowadzić narzędzia do już trwającego projektu. Niemniej jednak by to zrobić, trzeba najpierw ogarnąć chaos bez narzędzi, lub przynajmniej mieć konkretny plan jak to zrobić z pomocą narzędzi.

2 komentarze więcej...