Nie robimy tego w naszej firmie, ale jeden z moich przyjaciół mówi, że jego kierownik projektu poprosił każdego programistę o dodanie umyślnych błędów tuż przed przejściem produktu do kontroli jakości. Tak to działa:
- Tuż przed przejściem produktu do kontroli jakości zespół programistów dodaje umyślne błędy w przypadkowych miejscach w kodzie. Tworzą kopię zapasową oryginalnego, działającego kodu, aby mieć pewność, że błędy nie zostaną wysłane z produktem końcowym.
- Testerzy są również o tym informowani. Będą więc ciężko testować, ponieważ wiedzą, że obecne są błędy i że ich nie znalezienie może być uważane za przejaw niekompetencji.
- Jeśli zostanie znaleziony błąd (umyślny lub inny), zostanie zgłoszony do naprawy przez zespół programistów. Następnie zespół programistów dodaje kolejny celowy błąd w powiązanej sekcji kodu tuż przed przejściem produktu do kontroli jakości drugiego poziomu. Kierownik projektu mówi, że tester powinien myśleć jak programista i powinien spodziewać się nowych błędów w sekcjach, w których wprowadzono zmiany.
Tak to wygląda. Mówią, że takie podejście ma następujące zalety.
- Testerzy będą zawsze na nogach i będą testować jak szaleni. Pomaga im to także znaleźć ukryte (niezamierzone) błędy, aby programiści mogli je naprawić.
- Testerzy żywią się błędami. Nie znalezienie żadnych błędów wpłynie na ich morale. Łatwe do znalezienia pomoże im morale.
Jeśli zignorujesz scenariusz, w którym jeden z tych umyślnych błędów zostanie dostarczony z produktem końcowym, jakie inne wady należy wziąć pod uwagę, zanim pomyślisz o przyjęciu takiego podejścia?
Kilka wyjaśnień:
- Odpowiednio tworzą kopię zapasową oryginalnego kodu w kontroli źródła.
- Gdy tester znajdzie zamierzony błąd, zespół programistów po prostu go ignoruje. Jeśli tester wykryje niezamierzony (oryginalny) błąd, zespół programistów najpierw sprawdza, czy jest to spowodowane celowymi błędami. Oznacza to, że zespół programistów najpierw próbuje odtworzyć to na oryginalnym działającym kodzie i próbuje to naprawić, jeśli to możliwe.
- Po prostu zignoruj problemy z relacjami między QA a zespołem programistów. Zadałem to pytanie konkretnie programistom , a nie miejscu pracy . Weź pod uwagę, że istnieje dobry stosunek między QA a zespołem programistów, którzy imprezują razem po godzinach pracy. Kierownik projektu to miły, stary dżentelmen, który jest zawsze gotowy wspierać oba zespoły (Godsend).