SDA / Dlaczego testowanie jest takie ważne? #ęśąćż

Dlaczego testowanie jest takie ważne? #ęśąćż

Co to jest testowanie oprogramowania?

Testowanie oprogramowania to proces i zbiór czynności, związany z użytkowaniem danej aplikacji mobilnej, strony WWW lub programu, który ma na celu zebranie informacji o produkcie i wszelkich możliwych ścieżkach użytkownika oraz zdiagnozowanie i wskazanie programistom błędów oprogramowania.

Tester oprogramowania jest swego rodzaju ambasadorem ostatecznego użytkownika aplikacji i zleceniodawcy, ponieważ chroni ich przed negatywnymi skutkami niedopatrzeń programistów. To on jako jedna z pierwszych osób sprawdza, jak działa dane oprogramowanie. To on odpowiada za testowanie manualne, czyli ręczne sprawdzenie i przeklikanie każdej ścieżki i każdego scenariusza użytkownika.

Ostateczny użytkownik apki, podobnie jak Klient software house’u mają wysokie oczekiwania. Oprogramowanie powinno być stabilne, bezpieczne i bezawaryjne. Tester, pracując nad projektem, musi być gwarantem spełnienia tych wyma

Pytania i odpowiedzi dla testerów oprogramowania

Testowanie oprogramowania to poszukiwanie odpowiedzi na pytania, czy:

  • produkt spełnia cele biznesowe i wymagania technologiczne, które określał brief, wymagania i specyfikacje projektowe lub umowa, zawarta z Zamawiającym, czy zlecenie od Klienta?
  • oprogramowanie działa tak, jak zakładał Zamawiający i jego Twórcy i czy ma wszystkie funkcjonalności, które były ustalone na etapie koncepcji?
  • produkt IT odpowiada na założenia wyroczni – doświadczonego użytkownika produktu, product managera, dokumentacji projektu lub podobnego, konkurencyjnego oprogramowania?
  • potencjalny przyszły użytkownik może bez trudu uruchomić i poruszać się po aplikacji lub stronie WWW?
  • potrzebne jest stworzenie instrukcji, tutoriala, szkoleń lub dodatkowych materiałów dla przyszłych użytkowników oprogramowania?

Co można testować?

  • W ramach testowania oprogramowania możemy sprawdzić:
  • Dokumentację oprogramowania,
  • Kod źródłowy oprogramowania,
  • Możliwość integracji między systemami lub widgetami i funkcjonalnościami oprogramowania,
  • Efekty działań odpowiednich funkcji oprogramowania,
  • A nawet sam pomysł na aplikację mobilną, stronę WWW lub oprogramowanie.

Proces testowania oprogramowania

  1. Planowanie i przygotowanie, czyli projektowanie i wybór odpowiednich testów oraz rozpisanie test case’ów.
  2. Testowanie statyczne, czyli weryfikacja kodu źródłowego i dokumentów projektu (tzw. testy białoskrzynkowe – white box testing).
  3. Testowanie dynamiczne, czyli walidacja i sprawdzenie kodu oprogramowania, testowanie systemu i integracji z innymi systemami (tzw. testy czarnoskrzynkowe – black box testing):
  4. Zalecenia dla programistów, czyli wskazówki dla koderów od ich PM’a, co należy poprawić.
  5. Ewaluacja, czyli weryfikacja, czy poprawki wykluczyły wskazane błędy i ustalenie kryteriów ukończenia testów – czy produkt przeszedł testy pomyślnie? To czas na debugowanie, retesty (czy aplikacja działa lepiej po poprawkach) i testy regresyjne (czy przypadkiem nie działa gorzej, niż przed poprawkami).

Po co testować oprogramowanie?

Testuj, ponieważ jesteśmy tylko ludźmi

Na początek coś zaskakującego. Każdy program, aplikację mobilną lub stronę WWW koduje… człowiek. Front-end lub back-end developer, który naturalnie ma prawo się pomylić. Jak mówi znany cytat: “Człowiek, który nie robi błędów, zwykle nie robi nic”. Być może programista nawet sam sprawdzał swoją wykonaną pracę (np. metodą gumowej kaczuszki), ale mimo wszystko to może być zawodne – w końcu najtrudniej sprawdzić samego siebie i spojrzeć na swój produkt obiektywnie, “z zewnątrz”.

Testuj, aby uniknąć wpadek

Takie wtopy, jak wymieniony we wstępie “wypadek przy pracy” w mBank lub wcześniejszej przygody w Alior Bank, to wynik nieodpowiedniego testowania oprogramowania lub nawet zaniechania i nieprzeprowadzenia na czas niezbędnych testów IT. W 1996 roku błąd oprogramowania kosztował First National Bank of Chicago920 milionów dolarów. O wiele bardziej skrajnymi i tragicznymi w skutkach przykładami będą choćby wybuch elektrowni jądrowej w Czarnobylu, co mogliśmy przypomnieć sobie dzięki świetne zrealizowanemu serialowi “Chernobyl”, a także katastrofa lotu China Airlines 140 z 1994 roku. Tam też, oprócz człowieka, zawiodło oprogramowanie. Testy walidacyjne wykluczą takie przypadki. Minimalizacja ryzyka to klucz do sukcesu testowania oprogramowania.

Testuj, aby dopełnić formalności

Jeśli bierzesz udział w przetargach lub projektach unijnych, lub Twój Klient bardzo wyraźnie precyzuje to w umowie, będziesz zobowiązany do przeprowadzenia odpowiedniej ilości testów oprogramowania.

Testuj, aby tworzyć projekty z naprawdę dobrym UX i UI

Testerzy oprogramowania weryfikują doświadczenia, związane z aplikacją i interfejs użytkowników. To Oni powinni mieć najświeższą w branży wiedzę z zakresu UX i UI.

Testuj, aby być wiarygodnym w oczach Klientów

Dobrą relację z Klientem, także tym, który szuka dobrego software house’u, buduje się na zaufaniu. Jeśli Twój Klient będzie czuł, że Twoje produkty IT są rzetelnie i gruntownie przetestowane przez profesjonalny zespół testerów, chętniej zamówi u Ciebie kolejną stronę lub apkę, albo chociaż usługę help desk. Wysoka jakość oprogramowania = większa wiarygodność.

Testuj, aby minimalizować koszty posprzedażowe

Jeśli coś nie będzie działać, Klient wróci do Ciebie z reklamacją, a to oznacza dodatkowe godziny web developerów, za które niekoniecznie będzie chciał dopłacać. Więc finalnie dopłaci Twoja firma, lub, jeśli jesteś programistą – freelancerem, dopłacisz mu swoim czasem, który mógłbyś poświęcić na kolejne projekty IT i pozyskiwanie nowych zleceń.

Testuj, aby zapewnić wysoki poziom SLA

SLA, czyli Service Level Agreement, to standardowa w branży IT umowa między Klientem a dostawcą, precyzująca gwarantowany czas reakcji i dostępności zasobów. Czyli w skrócie i bardziej po polsku: umowa, mówiąca o tym, jakie jest prawdopodobieństwo, że aplikacja lub serwis internetowy działa przez 24 godziny 7 dni w tygodniu (zwykle wszyscy dążą do 99,9% skuteczności) oraz czy dany produkt jest obserwowany, rozwijany i analizowany przez developerów po zakończeniu produkcji. Im więcej testów oprogramowania przed oddaniem produktu, tym wyższa jakość i skuteczność oprogramowania oraz większa szansa na wysoki wynik SLA w przyszłości. Każda awaria to dodatkowe koszty – dla Ciebie lub dla Klienta.

Testowanie oprogramowania to podstawa w branży IT

Manualnych testerów oprogramowania z roku na rok w wielu firmach, nie tylko z branży IT, potrzeba coraz więcej. Jeśli chcesz zostać jednym z nim, ukończ kurs dla testerów oprogramowania w Software Development Academy ze szkoleniem z Cybersecurity i warsztatami Scrum. Zajęcia odbywają się stacjonarnie w kilkunastu polskich miastach lub zdalnie online. W kilka miesięcy możesz poszerzyć kwalifikacje zawodowe i zmieniać oblicze polskiej branży IT. Pomagać wprowadzać naprawdę dobre produkty i projekty w życie. Pracować nad aplikacjami i ich aktualizacjami, które zobaczysz jako pierwszy przed premierą. Brzmi interesująco?

Sprawdź nasze aktualne kursy i dowiedz się więcej