#5 Co to jest Testowanie?


Czym jest testowanie i dlaczego jest niezbędne?


Dziś odpowiem Ci na pytanie, czym jest testowanie.

Jednak zanim przejdę do odpowiedzi, chciałbym, abyś się zastanowił, czym dla Ciebie jest testowanie i stworzył własną definicje. Weź długopis i kartkę i zapisz ją.

Kartka i długopis

 

Istnieją różne definicje testowania,  wyjaśniające ją na wiele sposobów, a każdy z autorów uważa, że tylko on ma rację. Ludzie często nie rozumieją, że każdy jest inny i może inaczej rozumieć rzeczywistość. Każda definicja jest dobra, także Twoja, jednak wraz ze wzrostem doświadczenia i wiedzy będzie się ona zmieniać. To nie znaczy, że poprzednia nie była poprawna, po prostu na tamtą chwilę tak rozumiałeś to pojęcie.

 

Testowanie oprogramowania

 

To czynność, która weryfikuje poprawność działania oprogramowania i zbiera informacje na jego temat. Tester chroni klienta przed otrzymaniem oprogramowania, które może działać niepoprawnie i spowodować straty w wizerunku klienta bądź materialne. Testerzy poszukują wyroczni, czyli punktu odniesienia do tego, jak dane oprogramowanie powinno się zachowywać. Wyrocznią może być dokumentacja czy inne podobne oprogramowanie, może być nim także doświadczony użytkownik oprogramowania bądź Product Owner. Wyrocznią testową może być również sam tester, jest to podstawa weryfikacji w testowaniu eksploracyjnym. Testowanie staje się efektywniejsze, jeśli testujemy produkt na wielu poziomach wytwarzania oprogramowania.

Możemy testować:

  • pomysł na produkt
  • dokumentację
  • kod źródłowy
  • integracje między modułami bądź systemami
  • niefunkcjonalne/funkcjonalne cechy produktu.

Wbrew wielu opiniom testowanie nie jest psuciem oprogramowania, jeśli Tester reprezentuje użytkownika i system da się uszkodzić, znaczy to, że został on źle zaprojektowany.

Definicji metodyk poziomów i typów testów jest wiele, nie starczyłoby miejsca, aby ująć to w jednym wpisie. W dalszej części kursu omówię poszczególne metodyki i typy testów.

Warto jest znaleźć własną definicję, która nas urzekła, i pracować nad nią.

Cytat Jamesa Marcusa Bacha - Czym jest testowanie i dlaczego jest niezbędne?

Mnie osobiście najbardziej przypadła do gustu definicja Jamesa Marcusa Bacha:

  • pokazuje ona, że przed testerem stoją trudne zadania do wykonania
  • nie uda nam się przetestować wszystkich zdarzeń i dochodząc do końca jeszcze mniej wiemy, pomimo tego dalej kontynuujemy naszą pracę
  • dokumentacja, która określa jak powinno działać oprogramowanie, często ma w sobie defekty i wprowadza dodatkowo więcej zamieszania
  • reprezentujemy użytkownika końcowego, a tak naprawdę nic o nim nie wiemy (albo niewiele) i trudno jest nam w pełni go zrozumieć.

 


Dlaczego testowanie oprogramowania jest niezbędne?

Każdy z nas jest człowiekiem i popełnia błędy, niektóre z nich są trywialne, ale zdarzają się też takie, które powodują duże straty bądź są niebezpieczne dla życia i zdrowia.

Samolot

26 kwietnia 1994 roku samolot chińskich linii lotniczych rozbił się z powodu błędu w oprogramowaniu, w wyniku tego zdarzenia zginęły 264 osoby, a 7 zostało ciężko rannych.

Rakieta balistyczna - Czym jest testowanie i dlaczego jest niezbędne?

Na początku lat osiemdziesiątych Stanisław Pietrow ocalił świat przez III wojną światową. Radzieckie systemy wczesnego ostrzegania wykryły, że USA odpaliło w kierunku ZSRR pięć rakiet balistycznych. Podpułkownik Pietrow postanowił sprawdzić alarm. Powiedział “Miałem przeczucie, że w przypadku ataku rakietowego Amerykanie wystrzeliliby więcej pocisków”. Okazało się, że w systemie radzieckim był błąd, przez który system wziął promieniowanie słoneczne odbijające się od chmur za rakiety.
Stanisław Pietrow – Artykuł

 

Powyższe przykłady pokazują, że błędy w oprogramowaniu mogą nieść za sobą poważne skutki. Niestety w historii było wiele podobnych przypadków. Tych wydarzeń można było uniknąć, gdyby nie dopuszczono oprogramowania do użytku. Tylko skąd wziąć wiedzę, że dane oprogramowanie nie zawiera w sobie defektów, które prowadzą do groźnych sytuacji czy kosztownych awarii? Oczywiście odpowiedzią jest testowanie oprogramowania. Jak wiesz z definicji, testowanie zbiera informacje o oprogramowaniu i na tej podstawie jesteś w stanie podjąć decyzję, czy dany produkt lub system można dopuścić do użytku.

Nie wszystkie błędy prowadzą do skrajnych skutków, na przykład błędy w aplikacji dla dzieci mogą jedynie utrudnić korzystanie z niej i obniżyć satysfakcje użytkownika.

Podsumujmy:

Testowanie oprogramowania jest ważne i będzie niezbędne tak długo, jak pisane będą kolejne programy.

 

Miłego dnia!

Polecane wpisy

Udostępnij i podziel się z innymi!
  • 14
  •  
  •  
  •  
  • 14
  •  
  •  
  •  

Dodaj komentarz

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Powiadom o