Ta strona wykorzystuje pliki cookies. Korzystanie z serwisu bez zmiany ustawień przeglądarki dotyczących cookies oznacza, że będą one zapisane w pamięci urządzenia.

Biznes

“Dziwne, u mnie działa” - czyli dlaczego testowanie oprogramowania to ważne ogniwo w procesie tworzenia systemu

Użytkownik końcowy systemu IT wymaga od niego wiele. Rozwiązanie ma być stabilne, bezawaryjne i spełniać standardy bezpieczeństwa. Rola testerów oprogramowania ma więc ogromne znaczenie dla komfortu użytkownika końcowego. Ale nie tylko. “Gra” toczy się także o reputację firmy, lojalność klienta a często - o naprawdę duże pieniądze. 





 



 

Choć dziś wydajemy się być w pełni świadomi otaczających nas technologii (nawet jeśli aktywnie z nich nie korzystamy), to nadal jednak lwia część aplikacji i systemów pozostaje w cieniu; cicho i skutecznie wykonując swoją pracę przy zakupach online, nauce języków obcych czy umawianiu wizyty lekarskiej. Dziesiątki systemów IT wymieniają między sobą dane, analizują je i przeliczają. Użytkownik końcowy widzi zaś jedynie atrakcyjny front-end i tylko w momencie gdy COŚ nie zadziała, zastanawia się nad technologią, która stoi za całą usługą.

Cel testowania - minimalizacja ryzyk

My - tj. użytkownicy - jesteśmy przyzwyczajeni do wysokiego standardu i bezawaryjnego działania aplikacji (niezależnie od tego czy gramy na giełdzie czy zamawiamy sushi). Wszelkie wyskakujące błędy, zwłaszcza poważne, powodują, że stopniowo tracimy do niej zaufanie, a w dłuższej perspektywie - zwłaszcza przy powtarzających się błędach - rezygnujemy z jej użytkowania.

Jednak powszechność produktów programistycznych nie spowodowała, że są one bezawaryjne. Aplikacje tworzą ludzie, którzy z natury są omylni, ponadto na sam proces ich tworzenia składają się tysiące i miliony zmiennych, które w efekcie mogą generować  usterki w funkcjonowaniu. Jeśli więc nie możemy się przed błędami ustrzec, musimy minimalizować ryzyko ich powstania. I tutaj z pomocą przychodzi testowanie oprogramowania.

Testowanie systemów IT czy aplikacji przede wszystkim minimalizuje ryzyko ewentualnej poważnej awarii. Zatrzymanie systemu, utrata danych… mogą przynieść ogromne straty finansowe; liczone nawet w milionach złotych. Stąd do dokładnych testów, jako partner w zakresie software, przykładamy ogromną wagę - mówi Maria Zagożdżon, CEO w Programa™.

Testowanie oprogramowania: próba definicji

Testy oprogramowania najprościej nazwać “sprawdzeniem” czy wytworzony kod działa poprawnie. To jednak definicja mocno spłycająca ten proces. Testy nie są jednorazową czynnością: są procesem. Program testów jest starannie zaplanowany w czasie, planowanym obciążeniu i budżecie. Testów nie wykonuje się raz (np. tuż przed uruchomieniem produkcyjnym systemu), ale praktykuje się je kilku- lub nawet kilkudziesięciokrotnie w zależności od stopnia złożoności projektu.

Im więcej “bramek” testowych, tym więcej szans dla zespołu developerskiego na naprawienie ewentualnych błędów, a także na poprawienie jakości wytwarzanego oprogramowania i wyników wydajności aplikacji czy systemu. Co więcej, solidne testy to też gwarancja wyeliminowania możliwych usterek często zanim tak naprawdę powstaną.

testowanie oprogramowania - programa software house

W zależności do specyfiki projektu, testy oprogramowania powinny odbywac się na możliwie największej liczbie i rodzaju urządzeń, na których ma działać system

Ciężko uspójnić definicję testowania w IT tak, aby w jednym zdaniu oddać całą jego złożoność. My w Programie patrzymy na to jak na wieloetapowy i powtarzalny proces, którego celem jest zniwelowanie ryzyk projektowych poprzez zróżnicowane i dokładne testy kodu i dokumentacji. Szczególnie ważne jest dla nas wdrażanie testów od jak najwcześniejszych etapów tworzenia aplikacji. Przeprowadzenie procesu testów zgodnie ze zdefiniowanymi na początku pracy standardami pozwala osiągnąć maksymalny możliwy poziom bezpieczeństwa i audytu kodu przy założonym czasie i budżecie - Rafał Capiński, Software Tester w Programa™.

Rodzaje testowania

Pod pojęciem “testów oprogramowania” kryje się wiele rodzajów procesów, których celem jest sprawdzenie różnych obszarów pod wpływem różnych warunków.

Podstawowy podział dzieli testy na:

Warte wspomnienia są też inne podziały, jak choćby podział ze względu na wprowadzane zmiany, gdzie wyróżniamy:

I wreszcie testy oprogramowania możemy podzielić na:

Jak szacować budżet na testy?

Zabudżetowanie testów jest wyzwaniem, ponieważ trudno dokładnie przewidzieć ilość pracy, jaka zostanie wykonana. W trakcie projektu może się okazać, że system jest bardziej złożony, niż pierwotnie oszacowano i tym samym estymowane wartości zostaną przekroczone.

Budżet na testy estymuje się biorąc pod uwagę trzy najważniejsze czynniki:

Ważna jest także formuła pracy: czy dostawca działa kaskadowo, czy pracuje na metodykach zwinnych. W pierwszym przypadku trzeba możliwie dokładnie zaplanować całość kosztów (co często bywa poprzedzone ogromną pracą analityczną), w drugiej zaś - elastycznie zarządzać budżetem, planując tylko najbliższe kroki.

quality assurance - programa software house

Określenie budżetu na testowanie oprogramowania to bardzo złożony proces

Czasem budżet nie pozwala wykonać testów w wersji “de luxe”. Wtedy dostawca oprogramowania wspólnie z klientem planują np. położenie nacisku na moduł x, zaś moduł y proponują przetestować w minimalnym wymaganym zakresie.

Oczywiście sytuacją idealną jest możliwość wykonania wszystkich wskazanych form testowania, ale czasem trzeba ograniczyć rozmach procesu. Niemożliwym jest jednak nie przeprowadzić go w ogóle. To skazuje projekt IT na porażkę już przy samym starcie - mówi Rafał Capiński.

Changes-challenges, czyli rola testowania w tworzeniu i utrzymaniu oprogramowania

Przy podejmowaniu decyzji o stworzeniu nowego projektu IT warto powiedzieć jasno: żaden, nawet najdoskonalszy kod, nie jest dziełem skończonym i kompletnym. To żywy organizm, który z jednej strony może ( i powinien) ewoluować, z drugiej zaś - poddaje się upływowi czasu. Na cykl życia oprogramowania mają wpływ czynniki zewnętrzne (np. nowe wersje systemów operacyjnych czy technologii, na których opiera się system - w tym hardware) i wewnętrzne (potrzeba rozwoju, usprawnień, przystosowania do nowych oczekiwań biznesu). Wszystko to sprawia, że kod poddawany jest częstym zmianom, a te z kolei wymagają… testów.

W praktyce może się okazać, że z pozoru drobna zmiana generuje nieprawidłowe działanie systemu. Implementacja zmiany bez dokładnych testów np. na  środowisku testowym i stabilnym mogłaby mieć poważne konsekwencje dla systemu klienta - mówi Rafał Capiński.

Testom poddajemy więc produkt zarówno w procesie tworzenia,  jak i utrzymania.

Skąd biorą się usterki?

Każdą linijkę kodu tworzą ludzie. I choć współpracujemy z najlepszymi w swoim fachu specjalistami, zawsze może zdarzyć się błąd w kodzie, który wymusi na systemie wykonanie niewłaściwego działania. Jednak wiedząc o tym, możemy się przed tym uchronić. Poprawne działanie systemu gwarantuje czuwający nad projektem zespół testerów.

Praca z bardzo złożonym kodem, w nowej technologii i nowym środowisku opartym o liczne integracje - to tylko niektóre z przyczyn tzw. “błędów ludzkich”.

zespół testerów oprogramowania - programa software house

Ważnym ogniwem w procesie testowania są... sami testerzy. 

Do listy możemy dopisać też te mniej oczywiste, ale nie mniej prawdziwe: presja czasu, stres czy braki merytoryczne. Kod to złożony, żywy organizm i jednocześnie - zespół naczyń połączonych.

Testowanie to świadectwo jakości

Z pojęciem testowania wiąże się hasło Quality Assurance (ang. Zapewnienie jakości). Im lepiej przetestowany system, im więcej “bugów” odnotowali testerzy, a developerzy usunęli - tym większą pewność odnośnie jakości końcowego produktu ma klient.

Otrzymując aplikację lub system po wnikliwych i wieloetapowych testach może organizować jej start bez obaw o niemiłe technologiczne niespodzianki, które - w zależności od charakteru prowadzonego biznesu - mogą przynosić straty liczone w milionach użytkowników lub/i złotych. Dobra jakość testów to także wizytówka software house’u, który dzięki temu gwarantuje wysoką jakość usług.

Słowem podsumowania: testów nigdy dość. To bardzo ważna dziedzina wytwarzania, rozwoju i utrzymania oprogramowania IT, bez której  żaden projekt nie mógłby skończyć się powodzeniem. Nie pomijajmy zatem testów, bo to one gwarantują bezpieczne i poprawne funkcjonowanie systemów.

 

kontakt do doświadczonego zespołu testerów - programa software house

 


Udostępnij:
[] []