Kto powinien testować oprogramowanie i dlaczego nie programista?

Opublikowane: 2023-08-03
Autor: Michał Zaczyński

Testowanie aplikacji to nieodłączny element całego procesu wytwarzania oprogramowania. Jednak zdarzają się jeszcze sytuacje, w których potrzeba testowania systemów jest kwestionowana. Czy deweloper może testować aplikacje? Tak, może. Czy powinien? Zdecydowanie tak. Czy wystarczy, że system przetestują programiści? Odpowiedź jest bardzo prosta i krótka: nie, nie wystarczy. Dlaczego? O tym poniżej słów kilka od Michała Zaczyńskiego, naszego eksperta w dziedzinie testowania oprogramowania.

Po pierwsze: obiektywizm w testowaniu

Człowiek z natury ma problem z obiektywną oceną efektów swojej pracy, a gdy dodatkowo wchodzi w grę ograniczony czas na realizację zadania, to taka ocena kończy się przeważnie bardzo powierzchowną analizą. I tak też czasem bywa z testowaniem własnego kodu przez programistów. Często pokrywają one tylko główne, najważniejsze i pozytywne ścieżki użytkownika w aplikacji, pomijając to, co się stanie, kiedy coś pójdzie nie tak. Takie podejście nie wynika zwykle z braku wiedzy czy chęci do testowania, nie śmiałbym nawet tak sugerować. Wynika ono przede wszystkim z braku czasu na głębsze zastanowienie się nad problemami, które mogą się pojawić, a czasem z sentymentu do stworzonego kodu. W przypadku roli dedykowanego do zadania testera, nie ma tutaj żadnej więzi z testowaną aplikacją, a postawiony przed nim cel jest zupełnie inny niż w przypadku dewelopera. Zadaniem testera jest sprawdzenie poprawności działanie aplikacji i jego w tym głowa, żeby znaleźć każdy, najdrobniejszy nawet szczegół wpływający na jej działanie. Programista, który dzieło stworzył, może być nie do końca obiektywny, nawet mimo szczerych chęci.

Po drugie: nikt nie jest omnibusem

Większość deweloperów nie ma wiedzy, czym są i jak zastosować takie techniki jak pair-wise testing, decision table czy classification tree. I nie ma nic w tym dziwnego! Nie są to bowiem zagadnienia związane z rozwojem aplikacji, ale z jej testowaniem. Należy pamiętać, że testowanie to nie tylko przeklikanie aplikacji, ale cały proces wymagający bardzo konkretnej wiedzy i doświadczenia oraz polegający na zastosowaniu odpowiednich technik, tych mniej lub bardziej formalnych. Testowanie oprogramowania to odrębna i pełnoprawna specjalizacja w świecie IT. Tworzone systemy są coraz bardziej skomplikowane, więc żeby móc je przetestować, trzeba posiadać obszerną wiedzę w tym zakresie, którą na bieżąco trzeba uzupełniać. Nasi testerzy certyfikowani są przez ISTQB, organizację wyznaczającą najwyższe standardy w dziedzinie testowania oprogramowania, a Solwit od niemal 12 lat, jako jedna z dwóch firm w Polsce jest jej Platynowym Partnerem.

 

Po trzecie: każdy ma swoją rolę w procesie testowania

Podział ról między testerem a deweloperem nie jest wynikiem jedynie posiadanej wiedzy. Każdy z nich ma swoje miejsce na innym etapie procesu wytwarzania oprogramowania – i nie ma tu mowy o lepszym czy gorszym punkcie. Ważna jest współpraca, bez której nawet najlepiej przygotowana aplikacja nie będzie kompletna.

Dla zobrazowania: w momencie zbierania wymagań, kiedy deweloper jest odpowiedzialny za przygotowanie architektury, tester ma przeanalizować, czy będzie można sprawdzić poprawność implementacji poszczególnych zadań. Kiedy programista implementuje kolejne etapy aplikacji, tester w tym samym czasie sprawdza jej jakość przez testowanie gotowych modułów. Na sam koniec, gdy deweloper kończy realizację swoich zadań, bardzo często to właśnie tester musi potwierdzić, że aplikacja jest gotowa do releasu. I choć nie ma oczywiście decydującego zdania w tym zakresie, to jego doświadczenie oraz opinia o testowanym systemie często mają fundamentalny wpływ na zielone bądź czerwone światło.

Współpraca między programistami i testerami jest niemal mityczna. Na szczęście większość opowieści można wsadzić między bajki, a na co dzień tworzymy zgrane, interdyscyplinarne zespoły, które wiedzą, że jedynie połączenie kompetencji daje efekt w postaci działającej i przetestowanej aplikacji.

Po czwarte: testowanie się opłaca

Na koniec zostaje aspekt finansowy. Chociaż na rynku IT widać, że stawki testerów i programistów zaczynają się wyrównywać, to jednak nadal koszt godziny pracy testera jest niższy niż dewelopera. To powinno być ostatecznym argumentem, szczególnie dla osób decyzyjnych, że czas deweloperów należy wykorzystać w 100% na zadania związane z rozwojem aplikacji, a testowanie powierzyć testerom. Jeśli zajmą się tym specjaliści, będzie to nie tylko optymalne, ale również po prostu tańsze.

Warto wspomnieć również jeszcze o jednej rzeczy, którą trudno zakwalifikować bezpośrednio do któregoś z powyższych obszarów, a która niewątpliwie jest bardzo ważna, jeśli nie najważniejsza. Deweloperzy (przeważnie, ale nie zawsze!) po prostu nie lubią testować, a przypisywanie im tego zadania kończy się pobieżnym jego wykonaniem, a bywa, że i frustracją, która skutkuje zmianą pracy. Mając na uwadze dobro zespołu deweloperskiego oraz wyżej wymienione punkty, warto oddać testowanie oprogramowania specjalistom, którzy w należyty sposób zadbają o jakość wytworzonej aplikacji.

Jeśli poszukujesz partnera technologicznego, który zadba o jakość twojej aplikacji – zaplanuje proces testowy, dobierze typ i rodzaj testów, skonfiguruje framework, przygotuje środowisko testowe, to dobrze trafił_ś!

Przygotowaliśmy zestaw odpowiedzi na 10 pytań najczęściej zadawanych przez naszych klientów odnośnie testowania oprogramowania Jeśli nie znajdziesz tam odpowiedzi na te, które Cię nurtują – napisz do nas i umów się na bezpłatną konsultację z naszymi ekspertami od testowania oprogramowania!

Autor: Michał Zaczyński,
Ekspert ds. Testów Automatycznych

Ekspert ds. Testów Automatycznych z Solwitem związany od ponad 10 lat. Tester z krwi i kości – jego doświadczenie obejmuje działania Quality Assurance, pracę z normami IEEE/ISO i nadzór nad projektami testowymi. Wierzy, że na dobrego specjalistę składa się wiedza praktyczna poparta znajomością części teoretycznej, doprawiona kroplą “tego czegoś”, co po prostu trzeba mieć.

SKONTAKTUJ SIĘ
Wypełnij
formularz.
Skontaktujemy się z Tobą,
żeby umówić rozmowę
w dogodnym dla Ciebie terminie.