Czas czytania: 10 min
Testowanie towarzyszy ludzkości od najdawniejszych czasów, jest źródłem postępu całego społeczeństwa a także rozwoju każdego człowieka. Większość wynalazków jest efektem testów przy realizacji jakiegoś pomysłu a czasami zwykłego przypadku w trakcie testów czegoś innego. Dzieci od chwili narodzin poznają świat testując co mogą, czego nie, co jest smaczne, co się da zrobić i w ilu próbach. Nic więc dziwnego, że wykonywanie testów jest podstawowym elementem wprowadzania wszelkiej maści wytworów przemysłu zarówno w zakresie dóbr materialnych jak i usług. Proces testowania jest niczym innym jak próbą weryfikacji hipotez, sprawdzenia jakości i potwierdzenia, że coś działa zgodnie z oczekiwaniami, jest skuteczne i bezpieczne zarówno dla użytkownika jak i biznesu, który produkt na rynek wprowadził.
Zapytaj o rozwiązania DSR 4FACTORY dla Twojej firmyW naukach przyrodniczych testy służą do potwierdzania hipotez. Eksperymenty laboratoryjne można potraktować jako testowanie oparte na właściwościach – sprawdzamy, czy zachodzą określone zjawiska w danych warunkach. W inżynierii z kolei stosuje się testy wydajnościowe i testowanie przeciążające, np. obciążając mosty, silniki czy materiały, aby sprawdzić ich granice wytrzymałości.
W medycynie testy mają charakter diagnostyczny i prewencyjny. Wyniki testów krwi, obrazowania czy testów klinicznych decydują o diagnozie i terapii. Można je porównać do testów akceptacyjnych zgodności – organizm albo reaguje zgodnie z oczekiwaniami na lek, albo nie.
W edukacji testy są narzędziem pomiaru wiedzy. Mamy tu testowanie porównawcze (porównanie wyników ucznia z grupą), testowanie losowe (pytania wybierane z puli), a także testy funkcjonalne wiedzy, które sprawdzają, czy ktoś potrafi zastosować teorię w praktyce.
W przemyśle i produkcji testy odgrywają rolę gwarancji jakości. Produkty przechodzą testy zgodności z normami i certyfikatami, zanim trafią do klientów. Samochody poddaje się testom zderzeniowym, a elektronika przechodzi testowanie konfiguracji i testowanie systemu w warunkach zbliżonych do rzeczywistego użytkowania.
Niezależnie od dziedziny, testy mają wspólny cel: zmniejszyć ryzyko błędu i zwiększyć zaufanie do badanego obiektu, systemu czy procesu. Nie dziwi więc, że tak powszechnie stosowane narzędzie, może być wykorzystywane błędnie, w niewłaściwym kierunku lub niedostatecznie dokładnie. Dlatego o procesie testowania należy wiedzieć więcej – jak, kiedy i w jakim celu go stosować.
Przeczytaj również: Testy akceptacyjne w projektach wdrożeń systemów IT
W świecie IT testowanie oprogramowania to proces o krytycznym znaczeniu. Systemy są dziś niezwykle złożone, a oczekiwania użytkowników – wysokie. Dlatego omawianie procesów testowania wykonam na bazie tej branży.
Określenie celu wykonywania testu jest najważniejszym elementem przygotowań do jego wykonania – decyduje o sposobie, warunkach brzegowych, wykorzystanych narzędziach i ocenie czy test wypadł pozytywnie czy nie.
Zazwyczaj wykonanie testów ma za zadanie:
W ramach procesu testowania oprogramowania wyróżniamy wiele technik:
W szczególności etapy testów akceptacyjnych są kluczowe: planowanie, przygotowanie środowiska, wykonanie testów, analiza i akceptacja. Testy akceptacyjne użytkownika decydują o tym, czy produkt może zostać wdrożony do użytku.
Niezwykle ważnym elementem jest tutaj określenie użytkownika, który ma dokonać akceptacji. Doświadczenia pokazują, że na tym etapie dochodzi do wielu nieporozumień, np. oprogramowanie akceptuje zarząd lub menedżer, który nie ma wiedzy o szczegółach działania natomiast z oprogramowania będzie korzystał niższy szczebel pracowników, zwracając uwagę na całkowicie inne aspekty.
Testowanie oprogramowania obejmuje różne środowiska:
Odpowiada to przygotowaniu dowolnego produktu – testy pojedynczych elementów, testy gotowego produktu przed wypuszczeniem na rynek, testy produkcyjne w trakcie użytkowania produktu.
I to właśnie testowanie na produkcji (production testing, live testing) staje się coraz ważniejszym etapem cyklu życia systemu/wyrobu.
Przeczytaj również: Automatyzacja produkcji – co to oznacza dla producentów?
Testowanie w środowisku produkcyjnym oznacza uruchamianie testów, eksperymentów i weryfikacji bezpośrednio w systemie produkcyjnym, czyli tym, z którego korzystają użytkownicy. Mimo ryzyka, daje ono nieporównywalnie bardziej wiarygodne informacje niż testy jedynie w środowisku testowym (staging).
Testy produkcyjne weryfikują m.in.:
Przykładem są produkcyjne testy akceptacyjne, gdzie końcowa akceptacja systemu odbywa się już po wdrożeniu, na małej grupie klientów.
Zapytaj o rozwiązania DSR 4FACTORY dla Twojej firmyW produkcji prowadzi się testy wydajnościowe, które sprawdzają, czy system spełnia wymagania w realnych warunkach. Testowanie przeciążające pozwala zobaczyć, jak system reaguje na skok ruchu, np. testowanie obciążenia w czasie Black Friday.
Testowanie A/B to klasyczny przykład testowania w produkcji – część użytkowników dostaje wersję A, część wersję B, a różnice w zachowaniach pozwalają podjąć decyzję. Jest to forma testowania porównawczego, która dostarcza empirycznych dowodów, zamiast opierać się na intuicji projektantów.
W ukrytym wdrożeniu (dark launch) nowa funkcja działa w tle, ale użytkownik jej nie widzi. W shadow traffic ruch użytkowników kopiowany jest równolegle do nowego systemu, co umożliwia testy zgodności bez wpływu na klientów.
Testowanie integracyjne na produkcji bywa realizowane przez stopniowe wypuszczanie nowej wersji tylko do niewielkiej liczby użytkowników. Wyniki tych testów decydują o kontynuacji lub wycofaniu zmian (rollback).
Pochodzenie terminu canary release sięga lat XIX wieku, gdy górnicy pracujący w kopalniach na dużych głębokościach zabierali ze sobą kanarki. Tempo przemiany materii u kanarków jest kilka razy wyższe niż u człowieka. Ich szybszy rytm oddechowy powoduje, że jako pierwsze reagują na obecność trujących gazów takich jak metan i tlenek węgla w powietrzu. Zjawisko to zaczęto wykorzystywać w górnictwie pod koniec XIX wieku – kanarki zabierano do kopalń i systematycznie obserwowano ich zachowanie. Gdy ptaki wykazywały oznaki zatrucia, górnicy natychmiast opuszczali zagrożony obszar. Podczas ewakuacji kanarki zabierano razem z ludźmi, korzystając z butli tlenowej. Dzięki dostępowi do tlenu zatrute ptaki mogły odzyskać siły i po przewietrzeniu chodników ponownie wrócić do pracy.
Na szczęście dziś metafora kanarka funkcjonuje w znacznie mniej dramatycznym kontekście — w testowaniu oprogramowania i systemów IT.
Nic nie zastąpi obserwacji prawdziwego użytkownika. Testy UI/UX w systemie produkcyjnym pozwalają mierzyć zachowania i sprawdzać hipotezy projektowe. To właśnie testy UI/UX pozwalają ograniczyć większość błędów wprowadzanych przez użytkownika do systemu ponieważ wychwytują miejsca, gdzie intuicja użytkownika (user) w obsłudze oprogramowania rozmija się z zamierzeniami programisty.
To świadome wywoływanie awarii – czyli testowanie chaotyczne – w celu weryfikacji, czy system utrzymuje się w ryzach.
W ramach testowania produkcyjnego można wykonywać ograniczone testy penetracyjne na produkcji, aby zweryfikować odporność systemu.
Przeczytaj również: Produkcja – na czym polega? Jakie są sposoby zarządzania produkcją i cyfryzacji produkcji?
Testowanie na produkcji nie oznacza chaosu ani braku profesjonalizmu – to świadome rozszerzenie procesu testowania o najbardziej realistyczne środowisko: system produkcyjny. Dzięki technikom takim jak testy akceptacyjne użytkownika, testy wydajnościowe, testowanie A/B, testy penetracyjne czy testowanie chaotyczne, organizacje mogą szybciej wykrywać błędy, poprawiać jakość i budować odporność.
Testowanie produkcyjne to naturalna ewolucja – od laboratoriów i testowania w pre-produkcji do rzeczywistego świata, w którym liczy się stabilność i doświadczenie użytkownika.
Autor:
Waldemar Ścigała
Konsultant ERP 4FACTORY
Zapytaj o rozwiązania DSR 4FACTORY dla Twojej firmy
Przeczytaj również:
Jak optymalizować fabrykę dzięki predictive maintenance?
Zlecenie produkcyjne – fundament planowania i realizacji procesów wytwórczych
System DRP: jak planowanie zapotrzebowania dystrybucji rewolucjonizuje łańcuchy dostaw
Wykres Gantta: wizualne serce planowania produkcji i łańcucha dostaw