Poniżej przedstawiono niektóre poziomy niezależności testowania (w kolejności od najniższego do najwyższego):
- brak niezależnych testerów (jest to jedyna forma testowania dostępna w sytuacji, w której programiści testują własny kod);
- niezależni programiści lub testerzy pracujący w ramach zespołu programistów (w tym przypadku programiści, mogą np. testować produkty tworzone przez współpracowników);
- niezależny zespół testowy działający w ramach organizacji, podlegający kierownictwu projektu lub dyrekcji;
- niezależni testerzy będący przedstawicielami działów biznesowych lub społeczności użytkowników oraz testerzy specjalizujący się w określonych typach testów, takich jak: testowanie użyteczności, testowanie zabezpieczeń, testowanie wydajnościowe, testowanie zgodności czy testowanie przenaszalności;
- niezależni testerzy spoza organizacji pracujący u klienta (on-site) lub poza siedzibą firmy (outsourcing).
W większości typów projektów zazwyczaj najlepiej sprawdza się uwzględnienie wielu poziomów testowania i powierzenie wykonywania części testów niezależnym testerom. W testowaniu (zwłaszcza na niższych poziomach testów, np. testowaniu modułowym), powinni również uczestniczyć programiści, ponieważ w ten sposób mogą kontrolować jakość swojej pracy. Sposób zapewnienia niezależności testowania zależy od wybranego modelu cyklu życia oprogramowania. W przypadku zwinnego wytwarzania oprogramowania, testerzy mogą zostać przydzieleni do pracy w ramach zespołu programistów, a w niektórych organizacjach stosujących metody zwinne mogą być uznawani za członków szerszego niezależnego zespołu testowego. Ponadto w takich organizacjach właściciele produktu mogą wykonywać na zakończenie każdej iteracji testowanie akceptacyjne mające na celu walidację historyjek użytkownika.
Wśród potencjalnych korzyści wynikających z niezależności testowania należy wymienić:
- prawdopodobieństwo wykrycia przez niezależnych testerów innego rodzaju awarii, niż te wykryte przez programistów, ze względu na różne doświadczenia, techniczne punkty widzenia i błędy poznawcze;
- możliwość zweryfikowania, zakwestionowania lub obalenia przez niezależnych testerów założeń przyjętych przez interesariuszy na etapie specyfikowania i implementowania systemu.
Potencjalne wady niezależności testowania to między innymi:
- izolacja od zespołu programistów może prowadzić do braku komunikacji, opóźnień w dostarczaniu informacji zwrotnych dla zespołu wytwórczego i złych relacji z zespołem wytwórczym;
- niebezpieczeństwo utraty przez programistów poczucia odpowiedzialności za jakość;
- niebezpieczeństwo potraktowania niezależnych testerów jako wąskiego gardła i obciążenia ich odpowiedzialnością za nieterminowe przekazanie produktu do eksploatacji;
- ryzyko, że niezależni testerzy nie będą dysponowali ważnymi informacjami (np. na temat przedmiotu testów).
Wiele organizacji jest w stanie osiągnąć korzyści z niezależnego testowania jednocześnie unikając wpisanych w nie wad.
Tekst w całości pochodzi z sylabusa ISTQB 2018. Zostały z niego usunięte nagłówki, odesłania i został przeedytowany. choć jako źródło wiedzy sylabus może być postrzegany jako zbyt "ciężki", w małych dawkach jest to bardzo wartościowe kompendium wiedzy.
Całość można pobrać ze strony.