Po pierwsze, jak zauważa większość respondentów, jeśli facet nie widzi wartości w testowaniu, niewiele można z tym zrobić, a już wskazałeś, że nie możesz go zwolnić. Jednak porażka nie wchodzi w grę, więc co z kilkoma rzeczami, które możesz zrobić?
Jeśli Twoja organizacja jest wystarczająco duża, aby mieć ponad 6 programistów, zdecydowanie zalecam posiadanie działu kontroli jakości (nawet jeśli jest to tylko jedna osoba na początek). Najlepiej byłoby, gdyby stosunek 1 testera do 3-5 programistów. Rzecz w programistach jest taka, że ... są programistami, a nie testerami. Nie rozmawiałem jeszcze z programistą, który został formalnie nauczony prawidłowych technik zapewniania jakości.
Większość organizacji popełnia fatalny błąd, przypisując role testerów nowozatrudnionemu, osobie z NAJMNIEJSZYM kontaktem z Twoim kodem - najlepiej byłoby, gdyby starsi programiści zostali przeniesieni do roli QA, ponieważ mają doświadczenie w kodzie i (miejmy nadzieję) rozwinęli szósty zmysł wyczuwania zapachów kodu i punktów awarii, które mogą się pojawić.
Co więcej, programista, który popełnił błąd, prawdopodobnie nie znajdzie usterki, ponieważ zwykle nie jest to błąd składniowy (są one wychwytywane podczas kompilacji), ale błąd logiczny - i ta sama logika działa, gdy piszą testuj tak, jak podczas pisania kodu. Nie pozwól, aby osoba, która opracowała kod, testowała ten kod - znajdzie mniej błędów niż ktokolwiek inny.
W twoim przypadku, jeśli możesz sobie pozwolić na przekierowany wysiłek w pracy, uczyń tego nowego faceta pierwszym członkiem zespołu kontroli jakości. Niech przeczyta „Testowanie oprogramowania w prawdziwym świecie: ulepszanie procesu”, ponieważ oczywiście będzie potrzebował przeszkolenia w nowej roli. Jeśli mu się to nie spodoba, zrezygnuje, a twój problem nadal zostanie rozwiązany.
Nieco mniej mściwym podejściem byłoby pozwolenie tej osobie na zrobienie tego, w czym jest dobra (zakładam, że ta osoba została zatrudniona, ponieważ faktycznie jest kompetentna w części programistycznej pracy) i zatrudnienie testera lub dwóch do wykonania testów ( Studenci uniwersytetów często mają warunki dotyczące praktyki lub współpracy, chcieliby się ujawnić i są tani)
Uwaga boczna: Ostatecznie będziesz chciał, aby zespół kontroli jakości zgłosił się do dyrektora kontroli jakości lub przynajmniej nie do menedżera programisty, ponieważ przekazanie zespołu kontroli jakości raportu do menedżera, którego głównym celem jest ukończenie produktu, jest konfliktem między zainteresowanie.
Jeśli Twoja organizacja ma mniej niż 6 osób lub nie możesz uciec z utworzeniem nowego zespołu, polecam programowanie w parach (PP). Nie jestem całkowitym konwerterem wszystkich ekstremalnych technik programowania, ale zdecydowanie wierzę w programowanie w parach. Jednak obaj członkowie sparowanego zespołu programistów muszą być oddani, inaczej po prostu nie działa. Muszą przestrzegać dwóch zasad: inspektor musi w pełni zrozumieć, co jest zakodowane na ekranie lub poprosić programistę o wyjaśnienie; koder może zakodować tylko to, co potrafi wyjaśnić - żadne „zobaczysz”, „zaufaj mi” ani machanie ręką nie będą tolerowane.
Polecam PP tylko wtedy, gdy twój zespół jest w stanie to zrobić, ponieważ, podobnie jak testowanie, żadna ilość wiwatowania lub grożenia nie przekona kilku pełnych ego introwertyków do współpracy, jeśli nie czują się komfortowo. Jednak stwierdzam, że między wyborem pisania szczegółowych specyfikacji funkcjonalnych i przeglądaniem kodu a programowaniem w parach, PP zazwyczaj wygrywa.
Jeśli PP nie jest dla Ciebie, to TDD jest najlepszym rozwiązaniem, ale tylko wtedy, gdy jest brane dosłownie. Programowanie sterowane testami oznacza, że piszesz testy NAJPIERW, uruchamiasz testy, aby udowodnić, że faktycznie zawodzą, a następnie piszesz najprostszy kod, aby działał. Kompromisem jest to, że teraz (powinieneś) mieć kolekcję tysięcy testów, które są również kodem i są tak samo prawdopodobne, jak kod produkcyjny, który zawiera błędy. Będę szczery, nie jestem wielkim fanem TDD, głównie z tego powodu, ale działa to dla wielu programistów, którzy wolą pisać skrypty testowe niż dokumenty przypadków testowych - trochę testowania jest lepsze niż żadne. Połącz TDD z PP, aby uzyskać większe prawdopodobieństwo pokrycia testu i mniej błędów w skrypcie.
Jeśli wszystko inne zawiedzie, poproś programistów o równoważność słoika przekleństw - za każdym razem, gdy programista zepsuje kompilację, musi włożyć 20, 50, 100 USD (cokolwiek jest umiarkowanie bolesne dla twojego personelu) do słoika, który trafia do twojego ulubionego ( zarejestrowana!). Dopóki nie zapłacą, unikaj ich :)
Odkładając na bok żarty, najlepszym sposobem nakłonienia programisty do pisania testów jest nie pozwalanie mu programować. Jeśli chcesz programistę, zatrudnij programistę - Jeśli chcesz testów, zatrudnij testera. Zaczynałem jako młodszy programista 12 lat temu, przeprowadzając testy, które zmieniły się w moją ścieżkę kariery i nie zamieniłbym tego na nic. Solidny dział kontroli jakości, który jest odpowiednio pielęgnowany i ma uprawnienia i uprawnienia do ulepszania oprogramowania, jest tak samo cenny, jak programiści piszący oprogramowanie.