Mocno wzrasta rola złożonych i odpowiednio realizowanych testów.
Czy ktoś, kto poważnie myśli o eksploatowanych przez siebie systemach informatycznych, może pozwolić sobie na zaniechanie procesu testowego? Współcześnie systemy informatyczne bardzo często funkcjonują w rozproszonym środowisku i składają się z wielu komponentów. Poprawne i bezpieczne funkcjonowanie całości wymaga dokładnego zweryfikowania wielu aspektów. Oczywiście ktoś może wysunąć argument, że np. otwarte oprogramowanie łatwo rozwiązuje kwestię testów. Wszak powszechnie wykorzystywane są komponenty open source, które zostały przetestowane (i nadal są testowane) przez milionowe rzesze użytkowników, którzy – chcąc nie chcąc – zetknęli się z tymi komponentami w swoich systemach i zgłosili autorom wykryte błędy. Reusability, czyli powtórne wykorzystanie komponentów – bo o tym mowa – to bardzo pożądane działanie. Nie może ono jednak zwolnić nas z testowania oprogramowania, gdyż w naszym systemie komponent może pracować w nietypowej konfiguracji, mógł być źle użyty, nieodpowiednio zintegrowany lub zawiera niewykryte błędy. Dodatkowo warto zauważyć, że historia zna przypadki włamań do repozytoriów uznanych komponentów, w wyniku czego komponenty zostały wzbogacone o dodatkowe funkcjonalności, które np. wykradały dane lub umożliwiały dostęp do systemów nieuprawnionym osobom. W znaczący sposób obniżało to poziom bezpieczeństwa całych systemów. Warto także pamiętać o skutkach, w tym o kosztach usuwania błędów w systemach, które zostały zainstalowane i uruchomione w milionach środowisk.
Prowadzenie uporządkowanego procesu wytwarzania oprogramowania, w tym testowania ze szczegółowym rejestrowaniem wyników testów, pozwala na oszacowanie liczby i wagi błędów oraz skutków ich pozostawienia w systemie. W takiej sytuacji osoba odpowiedzialna za produkt może podjąć ryzyko zaniechania wykonywania dalszych testów i udostępnienia produktu użytkownikowi. Na takie działanie pozwoliły sobie firmy, które chciały zaistnieć na rynku z produktem, którego jeszcze nikt przed nimi nie udostępnił. W znaczącej większości przypadków firmy te odniosły sukces, bo zaistniały w świadomości użytkowników i ich produkty bądź marki stały się symbolami na lata. Dodatkowo firmy te wykorzystały świeżo upieczonych użytkowników jako armię testerów, która informowała o wykrytych błędach. Kolejne firmy, które chcą wypuszczać produkty o podobnej funkcjonalności, nie mogą już pozwolić sobie błędy w oprogramowaniu, bo ich rozwiązanie na starcie będzie musiało być co najmniej tak samo dobre jak pierwowzór. Bez przeprowadzenia gruntownych testów proces wdrożenia oprogramowania zakończy się porażką.
Oczywiście w przypadku zaawansowanych testów istnieje wiele możliwości wspierania się dedykowanymi aplikacjami, które automatycznie sprawdzają wybrane aspekty kodu. To bardzo ważne, ponieważ inaczej testy byłyby żmudne i nie do wykonania przez mały zespół pracowników. Automatyczne aplikacje wręcz muszą być zastosowane w przypadku testów regresji, gdzie mają miejsce liczne powtórzenia danej operacji, a w przypadku testów wydajnościowych praca bez sztucznie wygenerowanego obciążenia byłaby niemożliwa. Należy jednak pamiętać, że żadne automatyczne rozwiązanie nie zastąpi kontrolującego je człowieka, który będzie mógł odpowiednio przeanalizować wyniki testu.
W praktyce testowanie systemów IT musi odbywać się na wielu płaszczyznach: kodu (testy jednostkowe), funkcjonalności, integracji z innymi systemami, wydajności, bezpieczeństwa. Przez wiele lat testowanie skupiało się w głównej mierze wokół funkcjonalności, gdyż funkcjonalność to coś, nad czym klient skupiał się w pierwszej kolejności i od niej zależało, czy produkt zostanie zaakceptowany. Dziś klienci świadomie wybierają produkty, kierując się nie tylko ceną czy oferowanymi funkcjonalnościami, ale także ich wydajnością i poziomem bezpieczeństwa. A na te cechy wpływa prowadzenie testów równolegle z wytwarzaniem, co jest nie bez znaczenia dla jakości systemów. Obecnie wraz z udostępnianiem systemów w Internecie najbardziej rośnie znaczenie testów bezpieczeństwa. Należy pamiętać jednak, że za sukcesem testów stoi ich kompleksowość. Szczególnie w przypadku coraz popularniejszych systemów webowych testy stały się równie ważnym procesem co samo tworzenie kodu. Zjawisko to mocno przekłada się na planowanie samego procesu produkcji oraz na rosnącą w nim rolę testerów.
Paweł Żal, lider zespołu Testów Unizeto Technologies - doświadczony tester bezpieczeństwa i uczestnik projektów związanych z systemami rozproszonymi oraz systemami wykorzystującymi infrastrukturę klucza publicznego. Inżynier Oracle, audytor systemów zarządzania jakością, systemów bezpieczeństwa informacji, posiadacz certyfikatu Certified Ethical Hacker.
Pobierz ebook "Social media marketing dla firm i agencje się w nim specjalizujące"
Zaloguj się, a jeśli nie masz jeszcze konta w Interaktywnie.com - możesz się zarejestrować albo zalogować przez Facebooka.
Pomagamy markom odnosić sukces w Internecie. Specjalizujemy się w pozycjonowaniu stron, performance marketingu, social …
Zobacz profil w katalogu firm
»
Projektujemy i wdrażamy strony internetowe - m.in. sklepy, landing page, firmowe. Świadczymy usługi związane …
Zobacz profil w katalogu firm
»
Pozycjonujemy się jako alternatywa dla agencji sieciowych, oferując konkurencyjną jakość, niższe koszty i większą …
Zobacz profil w katalogu firm
»
1stplace.pl to profesjonalna agencja SEO/SEM, specjalizująca się w szeroko pojętym marketingu internetowym. Firma oferuje …
Zobacz profil w katalogu firm
»
W 1999 roku stworzyliśmy jedną z pierwszych firm hostingowych w Polsce. Od tego czasu …
Zobacz profil w katalogu firm
»