Uncategorized

Czym jest testowanie oprogramowania?

Drogi Uczestniku Cyklu Manualnego! Zapraszam Cię do lektury Wstępu Podręcznika Testera Manualnego. Celem tego artykułu jest nakreślenie tematu testowania oprogramowania. Artykuł ma charakter ogólny i poglądowy, informacje w nim zawarte zostaną rozwinięte w kolejnych rozdziałach Podręcznika. Treść artykułu będzie aktualizowana i poszerzana wraz z dalszym rozwojem Cyklu. Zapraszam do lektury!

Historia testów oprogramowania rozpoczyna się w latach 50. ubiegłego wieku. Dostrzeżono wtedy, jak ważne jest zadowolenie klienta oraz realizacja jego potrzeb. Od tego czasu do końca lat 70. testowanie oprogramowania było utożsamiane z debugowaniem. Historia testowania rozpoczyna się w 1979 roku, kiedy Glenford J. Myers zaproponował odróżnienie debugowania od testowania i trwa do dziś, wciąż się rozwija i przechodzi różne etapy.

W ostatnich latach obserwowany jest wzrost zainteresowania tematem testowania oprogramowania wśród wielu osób, niekoniecznie związanych z pracą w IT. Wraz z postanowieniem rozpoczęcia kariery w testach pojawia się szereg pytań, na które będę starała się odpowiedzieć w Poradniku Juniora oraz kolejnych rozdziałach tego podręcznika. Najczęściej zadawanymi sobie pytaniami są:

  • Czym właściwie jest testowanie oprogramowania?
  • Jakie umiejętności trzeba mieć, aby zostać testerem?
  • Jakie obowiązki wykonuje Tester w swojej codziennej pracy?
  • I wiele wiele innych!

W naszym codziennym życiu wykorzystujemy wiele systemów, których jakość jest bardzo różna. Za stworzenie tych systemów odpowiedzialna jest bardzo duża liczba osób: programistów, analityków i oczywiście testerów!

Przygotowując ten artykuł zauważyłam, że nie ma jednej definicji testowania oprogramowania, a ich interpretacje czasem są bardzo różne. Dodatkowo analizując definicje, które publikowane były na przestrzeni lat, możemy zobaczyć niesamowitą ewolucję tego pojęcia.

Testowanie oprogramowania to proces, bardzo ważne jest aby istniały w nim dwa elementy, które powinny się wzajemnie uzupełniać: weryfikacja (1) i walidacja (2). Jest to proces, który jest ściśle związany ze świadomym wytwarzaniem oprogramowania, który zaliczany jest do procesów zapewniania jakości.

Obserwując projekty testerskie możemy zauważyć, że na przestrzeni lat został wypracowany i przyjęty pewien proces testowy. Składa się on z następujących etapów: planowanie, analiza, implementacja testów, raportowanie o postępach i wynikach testów oraz dokonywanie oceny jakości przedmiotów testów (3).

Zagłębiając się w temat zasad testowania możemy zauważyć, że w wyżej wspomnianym sylabusie ISTQB wyszczególnione są ogólne zasady testowania:

  • Testowanie ujawnia usterki, ale nie może dowieść ich braku
  • Testowanie gruntowne jest niemożliwe
  • Wczesne testowanie oszczędza czas i pieniądze
  • Kumulowanie się defektów
  • Paradoks pestycydów
  • Testowanie zależy od kontekstu
  • Przekonanie o braku błędów jest błędem (4).

Warto je znać i pamiętać o nich w trakcie wykonywania zadań związanych z testami.

Kiedy możemy rozpocząć testowanie?

Jest to chyba jedno z najczęściej zadawanych pytań przez osoby, które rozpoczynają pracę w projekcie testowym. Testy możemy rozpocząć w każdym momencie cyklu wytwarzania oprogramowania, ale im szybciej rozpoczniemy testy w naszym systemie tym lepiej. Gdyż w przypadku wczesnych testów, znalezienie i usunięcie błędu jest dużo tańsze (koszt czasu, pracy, finansów i inne) niż w przypadku odkrycia błędu w późniejszym etapie życia projektu. Moment kiedy możemy rozpocząć testy, często uzależniony jest również od metody wytwarzania oprogramowania, która wykorzystywana jest w projekcie.

Po co testujemy?

Zanim rozpoczniemy testowanie systemu powinniśmy ustalić jaki jest cel naszych testów. Sylabus ISTQB wspomina poniższe cele:

  • dokonywanie oceny produktów pracy, takich jak: wymagania, historyjki użytkownika, projekt i kod;
  • sprawdzanie, czy zostały spełnione wszystkie wyspecyfikowane wymagania;
  • sprawdzanie, czy przedmiot testów jest kompletny i działa zgodnie z oczekiwaniami użytkowników i innych interesariuszy;
  • budowanie zaufania do poziomu jakości przedmiotu testów;
  • zapobieganie defektom;
  • wykrywanie defektów i awarii;
  • dostarczanie interesariuszom informacji niezbędnych do podejmowania świadomych decyzji(dotyczących zwłaszcza poziomu jakości przedmiotu testów);
  • obniżanie poziomu ryzyka związanego z jakością oprogramowania (np. ryzyka wystąpienia niewykrytych wcześniej awarii podczas eksploatacji);
  • przestrzeganie wymagań wynikających z umów, przepisów prawa i norm/standardów i/lub sprawdzanie, czy obiekt testów jest zgodny z tymi wymaganiami lub standardami (5).

Zapoznając się z powyższymi celami, widzimy, że praca testera jest bardzo odpowiedzialną pracą, kluczową w całym procesie zapewnienia jakości. Nie ogranicza się jedynie do uruchomienia systemu i sprawdzeniu efektu tego co się wydarzyło. Obowiązki mocno wykraczają poza tą popularną opinię, dzięki czemu nasza praca jest często skomplikowana, ale i wybitnie ciekawa.

W ostatnich latach wokół zawodu Testera Oprogramowania narosło wiele niebezpiecznych mitów. Poniżej chciałabym przedstawić parę przykładów, tak aby osoby, które właśnie zdecydowały się rozpocząć naukę w Cyklu Manualnym nie miały fałszywego obrazu rzeczywistości pracy testera (6).

Mity o testowaniu i dementi

  • jednym z najgroźniejszych mitów, z którym spotkałam się rozmawiając z kandydatami na testerów, jest przekonanie, że testowanie to tylko uruchamianie systemu, “przeklikiwanie go” i patrzenie co się stanie. – Testowanie to bardzo złożony proces, wymagający wiele kreatywności oraz skrupulatności. Tester Oprogramowania przez całą swoją karierę musi się rozwijać, aby dobrze wykonywać pracę.
  • patrzenie na testowanie w aspekcie czynności punktowej. – testowanie oprogramowania to proces, który powinien składać się z wielu etapów i elementów, aby był wartościowy.
  • musimy skupić się TYLKO na weryfikacji wymagań, user stories, specyfikacji itd.  – testowanie to nie tylko weryfikacja, zawsze musimy pamiętać również o walidacji.
  • testowanie to łatwy wstęp do świata IT – testowanie nie jest łatwym elementem procesu wytwarzania oprogramowania. Wymaga wiele nauki i kreatywności, ale dzięki temu to bardzo ciekawy zawód.
  • w przyszłości chcę być programistą, ale nie wiem jak zacząć to zostanę testerem – testowanie i programowanie to dwa osobne zawody. Owszem mają części wspólne, ale traktowanie testów jako trampoliny do kariery programisty jest nierozważne. Zawsze posługuję się w tym przypadku taką metaforą: “idę na studia pielęgniarskie, bo są łatwiejsze (7), a w przyszłości będę doktorem”. Również i w naszym przypadku zawód testera i programisty to dwa różniące się zawody.

Dalsze mity i ich dementi będą dopisywane w trakcie trwania cyklu!

Dobre rady

  • pamiętaj o istnieniu etapów procesów testowych, nie działaj impulsywnie, planuj testy!
  • bądź kreatywny, pamiętaj o wykonaniu zarówno działań weryfikacyjnych, jak i walidacyjnych!

Kolejne Dobre rady będą dopisywane w trakcie trwania cyklu!

Testowanie to nie tylko zawód, to sposób życia! Moim zdaniem każda osoba powinna znać podstawowe informacje o testowaniu oprogramowania i dbać o jakość otaczających nas systemów. Dlatego zachęcam do zapoznawania się z dalszymi rozdziałami podręcznika i wdrażania dobrych praktyk, aby jakość otaczających nas systemów wzrastała! 

 

Dodatkowe informacje organizacyjne, przydatne przede wszystkim Juniorom znaleźć będziecie mogli wkrótce tu:

 

ostatnia aktualizacja: 22.01.2020

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *