Systematyczne testowanie systemów klient/serwer: metodyka SQA Process

Co na to rynek?

Dostawcy narzędzi wspomagających produkcję oprogramowania nie przeoczyli potrzeby (dla nich będącej szansą), o której była mowa wyżej. O ile jednak sama koncepcja klient/serwer i wszystko co się z nią wiąże są wciąż jeszcze dość nowe, to szczególnie rynek narzędzi wspomagających testowanie tego typu systemów ma typowe cechy rynku "wschodzącego", będącego w początkowej fazie bardzo dynamicznego rozwoju. Warto zatem wiedzieć, komu w tak ważnej kwestii można zaufać.

Jednym z producentów narzędzi do zautomatyzowanego testowania systemów klient/serwer jest firma SQA Inc. (Software Quality Automation). Może się ona obecnie poszczycić 15 tys. sprzedanych licencji, co daje jej 65% udział w rynku. Firma ma techniczne i handlowe porozumienia z takimi software'owymi potentatami jak: Borland, Corporate Computing, Gupta, Informix, LBMS, Microsoft, Oracle, Powersoft i Symantec. Dostarczany przez nią pakiet SQA TeamTest uważany jest za jedno z najlepszych narzędzi wspomagających testowanie systemów klient/serwer, wykorzystujących GUI w środowisku Windows. Zdobył on więcej prestiżowych nagród (m.in. nagrody Analyst Choice Award czasopisma PC Week, DBMS Readers' Choice Award, PowerBuilder Developer's Journal Product Excellence Award, Software Developement Productivity Award) niż jakikolwiek produkt konkurencji.

Jednak tym, co zadecydowało o powstaniu tego artykułu, jest fakt, że firma SQA jest twórcą i dostawcą jedynej formalnej metodyki zautomatyzowanego testowania aplikacji klient/serwer. Dostępna jest ona także w postaci elektronicznej jako szablon procesu dla pakietu ProcessEngineer firmy LBMS, w ramach zainicjowanego przez tę firmę programu Processware. Omówieniu (siłą rzeczy bardzo pobieżnemu) tej właśnie metodyki poświęcona jest pozostałość tego tekstu.

Metodyka SQA

Metodyka firmy SQA, nazywana SQA Process, oparta jest na cyklu RAD (Rapid Application Developement) tworzenia aplikacji. Poszczególnym (iterowanym) fazom cyklu życia oprogramowania wg RAD, takim jak: definiowanie wymagań, projektowanie aplikacji, tworzenie aplikacji, pielęgnacja, odpowiadają pewne (także iterowane) fazy prac nad testowaniem. Kolejnym prototypowym wersjom systemu odpowiadają właściwe dla nich testy.W ten sposób testowanie jest obecne w procesie tworzenia systemu od samego początku jego powstawania i pozostaje właściwie aż do jego naturalnej "śmierci", czyli wycofania z użytku. Techniki testowania systemu rozwijane są równolegle z jego rozwojem.

Szczególny nacisk kładzie się w metodyce SQA na planowanie testowania i projektowanie testów. Punktem wyjścia jest określenie ogólnej strategii testowania i wymagań, nieodzownych w celu wyczerpującego przetestowania aplikacji klient/serwer. Poza weryfikacją realizacji wymagań funkcjonalnych systemu, metodyka uwzględnia testowanie wydajności systemu, jego reakcji na obciążenie, konfiguracji i instalacji. Wymagania do testowania są zorganizowane hierarchicznie, z priorytetami przypisanymi zgodnie z oszacowaniem ryzyka związanego z ich niespełnieniem.

W procesie tworzenia i stosowania testów wg metodyki SQA wyróżnia się sześć głównych faz (czynności), których sekwencje mogą być wykonywane wielokrotnie w sposób iteracyjny. Są to fazy planowania testów, projektowania testów, tworzenia testów, wykonywania testów, oceny testów i śledzenia błędów. Każdej z nich poświęcimy obecnie nieco uwagi.

Planowanie testów to pierwsza i jedna z najważniejszych faz wyróżnionych w metodyce SQA Process. Rzetelnie opracowany plan testów zapewnia dobre pokrycie przez nie różnych funkcji testowanej aplikacji. Na podstawie specyfikacji oprogramowania, metodyka prowadzi użytkownika przez etapy definiowania strategii testowania (w tym kryteria zakończenia testów), formułowanie wymagań do testowania i określenie potrzebnych do przeprowadzenia testów zasobów. Podstawowe kroki w planowaniu testów wg SQA to:

- określenie projektu

- zdefiniowanie strategii testowania

- opracowanie na podstawie specyfikacji systemu wymagań do testowania

- określenie zasobów potrzebnych dla testów

- stworzenie harmonogramu

- napisanie planu testowania.

Projektowanie testów to kolejna faza omawianej metodyki. Jest to proces definiowania procedur i przypadków testujących służących do zweryfikowania spełnienia przez testowany system wymagań funkcjonalnych. Spośród wielu możliwych projektów testów, SQA rekomenduje te, które są łatwe do zaimplementowania, łatwe do pielęgnacji i najbardziej efektywne w weryfikowaniu wymagań. W fazie projektowania testów metodyka SQA Process wyróżnia kroki:

- opracowanie raportu na temat wymagań do testowania

- wyspecyfikowanie procedur testujących

- wyspecyfikowanie przypadków testujących

- przegląd pokrycia wymagań przez projekt testów.


TOP 200