logo
Wyślij CVKontakt

/

logo
Background image

Blog

Testy funkcjonalne

Norbert Wieczorek 09.12.2022

W obszernym świecie tematu testowania można wymienić co najmniej kilkadziesiąt typów testów. Gdy pod uwagę weźmiemy wszystkie fazy projektowania, cały dostępny sprzęt, jak i wszelkie branże, dla których istotne jest zapewnianie jakości. Niniejszą serię zaczniemy od testów funkcjonalnych, ponieważ brzmi to najładniej, a to bardzo ważne w początkach serii.

Część z Was zapyta pewnie, czym właściwie są te testy i czy ich zbiorcze określenie tłumaczy się przez samą nazwę, czy jednak niekoniecznie. Co do tego drugiego to wnioski pozwolę wyciągnąć czytelnikowi samodzielnie.

Testy funkcjonalne pojawiają się zazwyczaj w kontekście testowania czarnoskrzynkowego tj. testowania funkcji produktu bez konieczności zapoznawania się z kodem. Prościej mówiąc: tester powinien znać dane testowe i wyjściowe i na ich podstawie wyciągać dalsze wnioski. Na warsztat weźmiemy 8 rodzajów testów funkcjonalnych, zaczynając od tych z najlepiej brzmiącą nazwą.

Smoke testy

Jeden z dwóch rodzajów testów w tym artykule, których tłumaczenie byłoby kolejno ósmym i dziewiątym grzechem głównym. Są to testy na nowym buildzie, sprawdzające podstawową funkcjonalność systemu czy programu. Głównym ich powodem jest określenie, czy rozpoczynanie dalszych testów ma sens, bo mogłoby się to wiązać z ogromnymi kosztami, których można uniknąć po prostu poprawiając ten build.

Testy regresyjne

Są to bardzo kluczowe testy, sprawdzające jak ostatnie zmiany w kodzie wpływają na działanie aplikacji. Testy te są przeprowadzane praktycznie przez cały czas cyklu tworzenia oprogramowania, głównie po to, by móc dosyć łatwo określić, która zmiana wywołała niechciany efekt. Proces ten oszczędza dużo czasu, nerwów i pieniędzy.

Sanity testy

Jest to rodzaj testów dosyć podobny do smoke testingu. Oba rodzaje są wykonywane w bardzo wcześnie, by zaoszczędzić kosztów związanych z pracą na nie działającym buildzie czy funkcji. Różnicą jest to, że celem sanity testingu jest określenie czy nowe funkcje aplikacji działają, tak jak powinny (na przykład czy kalkulator wykonując działanie 1+1 daje wynik 2) lub, czy wykryte wcześniej bugi zostały skutecznie usunięte.

Testy akceptacyjne

Jest to rodzaj testów przeprowadzany z naciskiem na bardziej biznesowe podejście. Testy te sprawdzają, czy wytworzona aplikacja lub inny produkt software spełnia oczekiwania klientów końcowych, dla których ten produkt powstał. Przeprowadzane są one pod koniec cyklu produkcji oprogramowania.

Testy alfa

Jest to rodzaj acceptance testingu, w którym to sprawdzane są najważniejsze funkcje oprogramowania, zanim zostaną one wypuszczone do klienta końcowego, jest to ważne przede wszystkim z biznesowego punktu widzenia, gdzie nie można sobie pozwolić na wypuszczenie prototypu, które źle się prezentuje, bo mogłoby to wystraszyć inwestorów.
W skrócie-zespół testerów próbuje symulować zachowania potencjalnego użytkownika.

Testy integracyjne

Służą sprawdzeniu, jak poszczególne moduły oprogramowania działają, będąc w grupie. Są one wykonywane po unit testing-u, gdzie moduły zostały już sprawdzone i jak działają, będąc wyizolowane. Łącząc ze sobą działanie poszczególnych modułów, można stopniowo zwiększać wielkość tych grup, by ostatecznie móc przeprowadzić system testing. Integracyjne testy są przeprowadzane pomiędzy początkową a końcową fazą cyklu tworzenia oprogramowania.

Testy GUI

Proces testowania produktu, w którym określa się czy interfejs graficzny działa zgodnie z oczekiwaniami. Oczekiwania te są połączeniem podejścia biznesowego i pożądanych specyfikacji. Jest to skomplikowany proces, ponieważ, mimo że łatwo jest go przetestować automatycznie w sposób pobieżny, to dokładniejsza analiza musi być przeprowadzona manualnie.

Testy beta

Jest to rodzaj testów wykonywany już przez użytkowników końcowych, którzy używając produktu dają informacje zwrotne na temat tego, czy produkt spełnia ich oczekiwania. Są to testy wykonywane na dużą skalę i mogą, w krótkim czasie wykryć bardzo dużo nieprawidłowości. Przeprowadzane są one na niedługi czas przed oficjalnym wypuszczeniem produktu na rynek.

Podsumowanie i spostrzeżenia autora

Temat rodzajów testów funkcjonalnych na pewno nie został tutaj wyczerpany, jednakże myślę, że dużo przyjemniej się piszę o tych ciekawszych rzeczach (a tym bardziej o takowych się czyta). Przeprowadzanie testów bez głębszej znajomości kodu, musi często przynosić bardzo nieoczekiwane rezultaty, o których nigdy się nie dowiemy. I dobrze, prawdopodobnie dzięki temu dużo lepiej śpimy.:)

logo
KontaktWyślij CV