49
TESTER.PL Strona 1 z 49 Rozpoczął się nowy rok, który winien przynieść nowe pomysły i perspektywy. Każdy z nas stawia sobie kolejne cele i wyzwania. Podobnie SJSI postawiło sobie cele na ten rok. Pod koniec lutego wspólnie z IIR organizujemy II edycję warsztatów Certyfikowany Test Manager. W drugiej połowie maja mamy zamiar zorganizować II edycję konferencji SJSI. Jesteśmy partnerem dla dużej i prestiżowej konferencji ICSTEST, która odbędzie się w dniach 6-8.04.2005 w Dusseldorfie. W Państwa ręce oddajemy trzeci numer kwartalnika TESTER.PL. Wszystko wskazuje na to, że ukażą się kolejne. Spójrzmy przez chwilę na to, co udało się nam osiągnąć w ubiegłym roku. Aktualnie w szeregach Stowarzyszenia jest prawie 100 „zadeklarowanych” członków, przy czym stale korespondujemy z ponad 200 osobami. Kilka dużych firm jest naszymi członkami wspierającymi. Kolejnych kilka zadeklarowało chęć współpracy. Cześć członków Stowarzyszenia aktywnie uczestniczy w pracach International Software Testing Qualification Board. Co miesiąc spotykamy się na ciekawych wykładach na Politechnice Warszawskiej. Z sukcesem zorganizowaliśmy I konferencję SJSI (sprawozdanie na www.sjsi.org oraz w niniejszym wydaniu kwartalnika). Korzystając z okazji, wszystkim członkom, współpracownikom i naszym „dobrodziejom” składam w imieniu Zarządu Stowarzyszenia życzenia sukcesów i wszelkiej pomyślności w 2005 roku. Z pozdrowieniami W imieniu Zarządu Wojciech Jaszcz Prezes SJSI

Tester.pl - Numer 3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Tester.pl - Numer 3

TESTER.PL

Strona 1 z 49

Rozpoczął się nowy rok, który winien przynieść nowe pomysły i perspektywy. Każdy z nas stawia sobie kolejne cele i wyzwania.

Podobnie SJSI postawiło sobie cele na ten rok. Pod koniec lutego wspólnie z IIR organizujemy II edycję warsztatów Certyfikowany Test Manager. W drugiej połowie maja mamy zamiar zorganizować II edycję konferencji SJSI.

Jesteśmy partnerem dla dużej i prestiżowej konferencji ICSTEST, która odbędzie się w dniach 6-8.04.2005 w Dusseldorfie. W Państwa ręce oddajemy trzeci numer kwartalnika TESTER.PL. Wszystko wskazuje na to, że ukażą się kolejne.

Spójrzmy przez chwilę na to, co udało się nam osiągnąć w ubiegłym roku.

Aktualnie w szeregach Stowarzyszenia jest prawie 100 „zadeklarowanych” członków, przy czym stale korespondujemy z ponad 200 osobami. Kilka dużych firm jest naszymi członkami wspierającymi. Kolejnych kilka zadeklarowało chęć współpracy. Cześć członków Stowarzyszenia aktywnie uczestniczy w pracach International Software Testing Qualification Board. Co miesiąc spotykamy się na ciekawych wykładach na Politechnice Warszawskiej. Z sukcesem zorganizowaliśmy I konferencję SJSI (sprawozdanie na www.sjsi.org oraz w niniejszym wydaniu kwartalnika).

Korzystając z okazji, wszystkim członkom, współpracownikom i naszym „dobrodziejom” składam w imieniu Zarządu Stowarzyszenia życzenia sukcesów i wszelkiej pomyślności w 2005 roku.

Z pozdrowieniami

W imieniu Zarządu

Wojciech Jaszcz

Prezes SJSI

Page 2: Tester.pl - Numer 3

TESTER.PL

Strona 2 z 49

Od redaktora

Wraz z początkiem Nowego Roku (w połowie lutego ☺) dostajecie kolejny – już trzeci - numer kwartalnika TESTER.PL.

W tym numerze cztery pozycje:

1. Bogdan Bereza Jarociński o certyfikatach w testowaniu, ich rodzajach, zaletach i wadach

2. Wywiad z James Bachem, guru lekkich metodyk testowania - dzięki uprzejmości Mariusza Janczewskiego

3. Piotr Kałuski o narzędziu L- Report, open source’owym projekcie ułatwiającym prace testerom

4. Robert Rzeszotek o BadBoy’u – kolejny artykuł o automatach wspomagających testowanie Numer otwiera sprawozdanie Wojciecha Jaszcza z I Konferencji Stowarzyszenia

Jakości Systemów Informatycznych, która odbyła się w Zegrzu, w dniach 18 – 19 listopada 2005. Jako jej uczestnik, pozwolę sobie stwierdzić, że była to bardzo udana impreza i z radością witam informację o kolejnej jej edycji.

W numerze także zaproszenie na System & Software Quality Conferences w Dusseldorfie. Jeśli ktoś ma tylko możliwość, by tam być na początku kwietnia, gorąco polecamy. Nasze Stowarzyszanie jest jedną z organizacji wspierających dla tej bardzo ciekawej konferencji, a właściwie trzech konferencji przeprowadzanych równocześnie. Jeżeli ktoś z Państwa będzie uczestniczył w System & Software Quality Conferences, będziemy wdzięczni za przekazanie nam swych wrażeń, wskazania nowych kierunków w teorii i praktyce zwiększania jakości oprogramowania.

Chciałbym także zwrócić uwagę na informację o konferencji (z warsztatami) Certyfikowany Test Manager, które nasze Stowarzyszenie przeprowadza wspólnie z IIR. Szkolenie odbędzie się w Warszawie, w drugiej połowie lutego.

Chciałbym gorąco zachęcić wszystkich czytelników tego periodyku do aktywnej współpracy. Cały czas czekamy na Państwa uwagi, artykuły, felietony – wszystko, co Was interesuje, co chcielibyście przeczytać, czego się dowiedzieć. Jeżeli tylko będziemy mogli, postaramy się zrealizować Państwa postulaty.

Na „pokładzie” redakcyjnym witamy równocześnie nowego członka, p. Kamilę Dec z Poznania. Dzięki jej istotnemu wkładowi w działalność redakcyjną dostajecie dziś, Drodzy Czytelnicy, ten numer TESTERA.PL

Page 3: Tester.pl - Numer 3

TESTER.PL

Strona 3 z 49

I Konferencja

Stowarzyszenia Jakości Systemów Informatycznych

W dniach 18-19 listopada 2004, nad Zalewem Zegrzyńskim koło Warszawy odbyła się I konferencja SJSI. Pomimo, że pogoda nie rozpieszczała (przypomnę – był pierwszy atak zimy i jazda przez Warszawę trwała do 2godziny), to w Hotelu 500 w Zegrzu zebrało się prawie 70 osób.

Pierwszym punktem programu był panel o wiele mówiącej nazwie „good enough quality”, który poprowadziła Lilianna Wierzchoń. Debata trwała prawie dwie godziny, co świadczy z jednej strony o burzliwej dyskusji wśród uczestników konferencji, a z drugiej o rzeczywistej potrzebie dialogu w tej materii. W „komisji” panelowej, obok prowadzącej Lilianny Wierzchoń, zasiedli: Tomasz Byzia, Wojciech Jaszcz, Lucjan Stapp oraz Piotr Wąsikowski.

Pomimo jesienno-zimowej, ponurej aury, wykłady, które odbyły się pierwszego dnia wzbudziły niemałe zainteresowanie. Wśród tematów, jakie zostały poruszone warto wymienić prelekcje dotyczące najnowszej normy ISO/IEC 90003:2004 (Bolesław Szomański), wdrożeń standardów jakości w organizacji (Maciej Bodych), metody wyboru miar GQM (Joanna Nowakowska), sposobu projektowania przypadków testowych przy wykorzystaniu analizy biznesowej w UML (Lucjan Stapp) oraz warsztaty z organizacji procesu zarządzania zespołem QA (Marcin Stachura). Pierwszy dzień zakończyła uroczysta kolacja, dyskusje kuluarowe zaś trwały do późnych godzin nocnych.1

Drugi dzień konferencji był w większości poświęcony narzędziom związanym z automatyzacją procesu testowania. Swoje rozwiązania przedstawiła firma Compuware (Główny Sponsor konferencji). Sposób, w jaki skutecznie i opłacalnie wykorzystać profesjonalne narzędzia w dużej korporacji, zaprezentowała firma ComputerLand S.A.

Kolejne, niezwykle ciekawe wykłady dotyczyły sposobu na integrację nazywanego Continuous Integration (Jan Topiński), narzędzi do automatycznego tworzenia dokumentacji (Michał Rowicki, Piotr Krachel), sposobów generowania danych testowych (Jan Sabak), sposobu przeprowadzania testów wydajnościowych aplikacji (Tomasz Wodziński, Wawrzyniec Żurowski) oraz narzędzi do raportowania wyników zapytań – LReport (Piotr Kałuski).

Wszystkim uczestnikom, prelegentom i sponsorom, bez których zorganizowanie tej konferencji byłoby niemożliwe, chcielibyśmy bardzo podziękować.

Liczymy na Waszą obecność i wsparcie kolejnych inicjatyw Stowarzyszenia Jakości Systemów Informatycznych!

Zarząd Stowarzyszenia Jakości Systemów Informatycznych

1 Jako uczestnik Konferencji, pozwolę sobie stwierdzić, że jest to pewne niedomówienie – dyskusje

kuluarowe trwały do wczesnych godzin rannych (Redaktor)

Page 4: Tester.pl - Numer 3

TESTER.PL

Strona 4 z 49

Sponsorzy:

- Sponsor Główny

- Sponsor

- Patron medialny

Prelegenci: Bodych Maciej, Premium Technology Sp. z o.o.

Byzia Tomasz, Premium Technology Sp. z o.o.

Dróżdż Marek, Compuware

Jaszcz Wojciech, ComputerLand S.A.

Kałuski Piotr, CGI

Krachel Piotr, Polkomtel S.A.

Mazur Michał, ComputerLand S.A.

Michalik Sławomir, Projekty Bankowe POLSOFT Sp. z o.o.

Nowakowska Joanna, Rodan Systems S.A.

Rowicki Michał Polkomtel S.A.

Sabak Jan, Infovide S.A.

Stachura Marcin, K2 Consulting Sp. z o.o.

Stapp Lucjan, Politechnika Warszawska

Szomański Bolesław, Politechnika Warszawska

Topiński Jan, Infovide S.A.

Wąsikowski Piotr, Sollers Consulting Sp. z o.o.

Wierzchoń Lilianna, ComputerLand S.A.

Wodziński Tomasz, Polkomtel S.A.

Żurowski Wawrzyniec, Polkomtel S.A.

Page 5: Tester.pl - Numer 3

TESTER.PL

Strona 5 z 49

Podziękowania: Szczególne podziękowania należą się Joannie Nowakowskiej, Wojciechowi

Jaszczowi, Adamowi Suskiewiczowi i Jankowi Sabakowi, bez których zaangażowania, profesjonalnego podejścia i niezwykłej umiejętności radzenia sobie w sytuacjach kryzysowych ta konferencja nie doszłaby do skutku, a także Joannie Wiśniewskiej i Sylwii Wicik oraz wszystkim życzliwym tu niewymienionym za pomoc w organizacji konferencji.

Zapraszamy na drugą edycję konferencji, która odbędzie się w dniach 20 – 21 maja 2005 roku.

Wszystkich chętnych zapraszamy do nadsyłania propozycji tematów referatów na adres: [email protected].

Page 6: Tester.pl - Numer 3

TESTER.PL

Strona 6 z 49

Certyfikowany Test Manager

23-24-25 lutego 2005 r., hotel Bristol, Warszawa

Program seminarium Dzień pierwszy

Wprowadzenie Ogólne zasady budowy systemu informatycznego

Przykładowe metodyki stosowane przy realizacji projektów informatycznych

Klasyczna metodyka "kaskadowa"

Metoda "spirali"

Lekkie metodyki na przykładzie XP

Zasady i praktyka budżetowania projektów informatycznych - Jak powstaje budżet projektu

Zarządzanie wymaganiami

Współpraca niezbędnym czynnikiem sukcesu

Zarządzanie ryzykiem

Testowanie w różnych metodykach wytwarzania oprogramowania

Związek testów z etapami realizacji projektu: modele V i W

Test Driven Development

Zakres, przygotowanie oraz metody prowadzenia podstawowych poziomów testów

Testy modułów

Testy integracyjne "małe"

Testy systemowe

Testy integracyjne "duże"

Testy akceptacyjne

Testy pielęgnacyjne

Zakres, przygotowanie oraz metody testów właściwości

Testy wydajnościowe

Testy architektury i koncepcji

Testy użyteczności

Testy bezpieczeństwa

Inne

Testy regresji i ich rola w procesie testowania

Przeglądy

Przegląd wybranych norm związanych z jakością i testowaniem

Page 7: Tester.pl - Numer 3

TESTER.PL

Strona 7 z 49

Dzień drugi

Zarządzanie procesem testowym

Planowanie prac

Szacowanie pracochłonności

Struktura dokumentacji testowej

Przeprowadzenie testów

Rejestrowanie wyników testów

Kontrola postępu prac

Zarządzanie zgłoszeniami problemów i zmian

Zarządzanie wersjami oprogramowania i danych

• Definicja testware ("testaliów")

• Zarządzanie wersjami

• Metody opisu i przechowywania przypadków i scenariuszy testowych

Dzień trzeci

Zarządzanie procesem testowym - cd

Zarządzanie środowiskami o Struktura środowiska testowego o Testy w projekcie rozproszonym

Testowanie a zmiany wymagań

Jakość procesu testowego

Kryteria oceny jakości systemu informatycznego

Narzędzia

Egzamin

Kierowanie zespołem testów

Budowanie zespołu

Role w zespole

Cechy dobrego testera

Zadania szefa zespołu

Przywództwo

Zarządzanie konfliktem

Sztuka kompromisu

Podsumowanie

Wręczenie certyfikatów

Page 8: Tester.pl - Numer 3

TESTER.PL

Strona 8 z 49

Page 9: Tester.pl - Numer 3

TESTER.PL

Strona 9 z 49

Międzynarodowe i krajowe certyfikaty w dziedzinie zapewnienia jakości i testowania oprogramowania

Bogdan Bereza-Jarociński

bbjTest

Bogdan Bereza-Jarociński

Psycholog z Uniwersytetu Warszawskiego i Londyńskiego, informatyk z uniwersytetu w Lund. Testował, zarządzał, automatyzował, koordynował lub ulepszał procesy testowe zarówno w zastosowaniach wbudowanych (telekomunikacja – Ericsson, sygnalizacja kolejowa – Bombardier), jak i otwartych (bazodanowe, Java). Lubi udzielać się na międzynarodowych konferencjach i prowadzić szkolenia z dziedziny testowania. Od 2002 roku prowadzi w Polsce szkolenia m. in. na certyfikat ISEB.

Page 10: Tester.pl - Numer 3

TESTER.PL

Strona 10 z 49

Międzynarodowe i krajowe certyfikaty w dziedzinie zapewnienia jakości i testowania oprogramowania

Bogdan Bereza-Jarociński

Niniejszy artykuł zawiera sporo informacji szczegółowych na temat certyfikatów w dziedzinie zapewnienia jakości i testowania oprogramowania, takich jak: wymagania na poszczególne certyfikaty, ich dostępność w Polsce itp. Są to dane, które mogą się zmieniać w czasie. Informacje zawarte w artykule odpowiadają stanowi na maj 2004 roku.

„Many software vendors, training companies and vendor-independent groups have created their own brand of certification since the 1960s. When the rapidly emerging field of computer technology began to experience exponential growth in the 1980s more than 200 different certifications emerged. Computing professionals now face a complex and confusing array of choices for determining and demonstrating competence.” (IEEE Computer Society)

Sens certyfikacji w przemyśle informatycznym

Informatyka: duża zmienność w czasie i w przestrzeni W wielu branżach – nie tylko w informatyce – istnieją – oprócz dyplomów uczelni –

rozmaite formy certyfikatów, potwierdzających określone zawodowe umiejętności.

W informatyce i produkcji oprogramowania certyfikaty mają do spełnienia rolę szczególną, a to z dwóch powodów.

Po pierwsze, zmiany w tej branży dokonują się szybciej i dynamiczniej niż w większości przemysłów „tradycyjnych”, toteż dyplom uczelni sprzed – powiedzmy – 20 lat potwierdza kwalifikacje o treści raczej historycznej niż aktualnej. Stąd nieustanne kształcenie się i nabywanie nowych umiejętności stało się koniecznością dla każdego programisty, analityka systemów czy kierownika informatycznych projektów.

Po drugie, między produkcją oprogramowania a innymi branżami konstrukcyjnymi czy produkcyjnymi istnieje pewna zasadnicza różnica. Branże tradycyjne wytwarzają pewne dobrze zdefiniowane, niezbyt - w porównaniu z oprogramowaniem - zróżnicowane produkty: na przykład domy, mosty albo samochody. Proces wytwórczy daje się tam zdefiniować względnie precyzyjnie i "testowanie" - wszelkie czynności kontrolno-weryfikacyjne - są z tym procesem w sposób ścisły zintegrowane, zrośnięte.

Inżynierię oprogramowania można zaś nazwać "inżynierią robienia wszystkiego", tyle, że przy użyciu - zamiast betonu czy stali - "materii" instrukcji wykonywanych przez mikroprocesory komputerów. System bazodanowy, rozbudowany portal internetowy, gra komputerowa, oprogramowanie sterujące centralą telefoniczną, system wbudowany kierujący silnikami samolotu, hamulcami ABS czy pralką, system operacyjny, kompilator - to wszystko jest "oprogramowaniem". Stąd wyniesione z uczelni ogólne umiejętności rychło muszą zostać uzupełnione nowymi, dostosowanymi do zakresu wykonywanej pracy, co powoduje zasadność istnienia potwierdzających takie umiejętności certyfikatów.

Page 11: Tester.pl - Numer 3

TESTER.PL

Strona 11 z 49

Certyfikacja w dziedzinie zapewnienia jakości i testowania Zapewnienie jakości i test są w informatyce o tyle szczególne, że nie do końca są

dziedziną skodyfikowaną, gdzie umiejętności mają charakter precyzyjnych, dających się wyuczyć zasad i algorytmów. Mówi się niekiedy, że test oprogramowania to w jednej trzeciej dająca się sprawdzić i przeegzaminować wiedza, w jednej trzeciej – nabywane wraz z doświadczeniem umiejętności rzemieślnicze, a w jednej trzeciej – po prostu sztuka.

Nie wnikając, na ile powyższa definicja jest precyzyjna, przyznać trzeba, że wiele istotnych do zapewnienia jakości i skutecznego testowania programów umiejętności nabywa się raczej w praktyce projektowej niż w uczelnianej ławce. Widać to zresztą wyraźnie, kiedy przyjrzymy się programom studiów informatycznych: niezależnie od profilu, zapewnienie jakości (podobnie jak – z analogicznych powodów – np. zarządzanie projektami) zajmuje w nich marginalną pozycję. Zagadnienia zapewnienia jakości pojawiają się w szerszym zakresie dopiero w ramach prowadzonych przez niektóre uczelnie podyplomowych studiów z inżynierii oprogramowania.

Ta sytuacja powoduje, że np. „dyplomowanych testerów” po prostu nie ma i przypuszczalnie nie będzie, co oczywiście stanowi dodatkowe uzasadnienie dla istnienia certyfikatów.

Rodzaje certyfikatów Każdy szanujący się producent narzędzi - sprzętowych i programowych – służących

do budowy systemów komputerowych, sieci i oprogramowania lub wspierających projektowanie i wytwarzanie sprzętu i oprogramowania, wystawia własne certyfikaty. Taki certyfikat poświadcza, że jego posiadacz jest fachowcem od określonego programu lub narzędzia.

W tym opracowaniu nie będziemy się tego rodzaju certyfikatami zajmować, a to z dwóch powodów. Po pierwsze, jest ich wielka obfitość i różnorodność, a po drugie – ich tematyka i zakres są jednoznaczne i precyzyjnie określone.

Natomiast interesujące są certyfikaty o szerszym zakresie, mające przynajmniej deklarowane ambicje obiektywności i ogólności, pozwalającej na zastosowanie potwierdzonej certyfikatem wiedzy w wielu różnorodnych sytuacjach. Nie ma ich tak wiele. „Zapewnienie jakości”, a zwłaszcza „testowanie”, choć w rzeczywistości wykonywane, a nawet opisywane w podręcznikach informatyki od co najmniej 40 lat, jako odrębne i świadome swej odrębności dziedziny są znacznie młodsze, co najwyżej 15-letnie. Toteż zawodowa certyfikacja w tych dziedzinach także jest zjawiskiem względnie nowym.

Pożytki z certyfikatów Dla zawodu testera czy specjalisty w zakresie zapewnienia jakości istnienie

certyfikatów podkreśla odrębność tej dziedziny i umiejętności, co z kolei przyczynia się do podniesienia jej statusu – z którym, jak wiemy, nie zawsze jest najlepiej.

Stworzenie certyfikatu wymaga uprzedniego usystematyzowania i ujednoznacznienia wiedzy w danej dziedzinie, z czego korzyści są niezaprzeczalne. Przy okazji powstaje również zdefiniowana terminologia. W ten sposób ułatwia się komunikację między uczestnikami projektu informatycznego, a także między klientami a dostawcami i producentami.

Dla pracodawców certyfikat może ułatwić proces rekrutacji pracowników z określonym profilem umiejętności. Oczywiście, wymaga to zarówno znajomości certyfikatu, jak i poprawnego zrozumienia przez obie strony procesu rekrutacji jego treści

Page 12: Tester.pl - Numer 3

TESTER.PL

Strona 12 z 49

i roli. Jeśli np. pracodawca poszukuje doświadczonego kierownika zespołu testowego, a zatrudnia początkującego testera, mającego 4-miesięczne doświadczenie i legitymującego się świeżo uzyskanym dyplomem „ISEB Software Testing Foundation Certificate” [patrz poniżej], to oczywiście popełnia poważny błąd.

Dla osób wykonujących pracę w danej branży poprzedzające egzamin certyfikacyjny szkolenia mogą stać się znakomitą okazją do usystematyzowania swej wiedzy i doświadczenia, a także do uzupełnienia wiadomości tam, gdzie zakres certyfikatu wykracza poza dotychczasową praktykę. Ponadto certyfikacja stanowi niejednokrotnie formę drogowskazu, wskazującego możliwy kierunek dalszego zawodowego rozwoju. Niekiedy może się także przydać w trakcie negocjacji płacowych...

Zagrożenia Certyfikat to kawałek papieru, którego zdobycie poprzedził trwający 1-3 godziny

egzamin (zwykle testowy), a ten z kolei poprzedził okres dość intensywnej zwykle nauki. Certyfikat nie jest więc gwarancją doświadczenia, ani nie zapewnia umiejętności sprawnego wykorzystania nabytej wiedzy w praktyce. I na pewno nie zastąpi myślenia i umiejętności organizacyjnych!

Nie wszyscy są zgodni, jakie umiejętności dany certyfikat powinien obejmować. Np. popularny „ISEB Software Testing Foundation Certificate” krytykowany jest przez niektórych znawców przedmiotu za zbyt szeroki zakres, (po co „zwykłemu” testerowi szczegółowa wiedza na temat różnych typów inspekcji i przeglądów oraz na temat zarządzania testami, mówią krytycy) i niedostateczne uwzględnienie wielu konkretnych, dobrych praktyk projektowania i wykonywania testów.

Dobrze, jeśli certyfikat opiera się na znanej i dostępnej normie, międzynarodowej lub krajowej. Kiedy tak nie jest, programowi certyfikatu zagraża chaotyczność i niespójność. Z drugiej strony, tworzenie norm jest bardzo czasochłonne, zaś certyfikat będący egzaminem z zakresu normy przypuszczalnie stanie się zbyt obszerny, zbyt sformalizowany i teoretyczny.

Sporo zarzutów kierowanych jest pod adresem form egzaminu. Wiele egzaminów certyfikacyjnych to egzaminy testowe, co budzi niekiedy wątpliwości, na ile umiejętność rozwiązania w krótkim czasie kilkudziesięciu czy kilkuset pytań-zagadek jest trafnym miernikiem czyichś faktycznych umiejętności?

Jak już zostało powiedziane wyżej, mówi się niekiedy, że zapewnienie jakości i test to w 33% dająca się zweryfikować wiedza, w 33% to rzemiosło i w 33% - sztuka. Podobnie, skuteczny tester czy szef testów musi, owszem znać metody i techniki testowe, ale ponadto również dziedzinę, w której działa testowany system (np. bankowość, ubezpieczenia, zarządzanie przedsiębiorstwem) oraz platformę systemu. Tych umiejętności, odmiennych dla różnych produktów i projektów, żaden certyfikat nie potwierdzi.

ASQ Certified Reliability Engineer American Society for Quality (ASQ) jest właścicielem rozpowszechnionego

w Stanach od wielu lat certyfikatu ”Certified Reliability Engineer”. Tłumacząc tę nazwę na język polski, chyba zręczniej będzie brzmiało określenie ”Certyfikowany Inżynier Jakości” niż ”Certyfikowany Inżynier Niezawodności”.

Egzamin na certyfikat jest testowy, składa się ze 150 pytań, trwa 4 godziny. Dostępny wyłącznie w języku angielskim.

Egzamin certyfikacyjny obejmuje następujące dziedziny.

Page 13: Tester.pl - Numer 3

TESTER.PL

Strona 13 z 49

Zarządzanie niezawodnością (zarządzanie strategiczne, zarządzanie procesem kontroli niezawodności, bezpieczeństwo produktów i odpowiedzialność prawna).

Teoria prawdopodobieństwa i statystyka (podstawowe pojęcia, wnioskowanie statystyczne).

Niezawodność w projektowaniu i programowaniu (techniki projektowania niezawodności, dobór materiałów, zarządzanie komponentami i systemem).

Modelowanie i przewidywanie niezawodności.

Testowanie niezawodności (planowanie testów niezawodności, testowanie w procesie wytwarzania, testowanie ukończonego produktu).

Utrzymanie i dostępność systemu (zarządzanie utrzymaniem i dostępnością, analiza łatwości i skutków zmian).

Pozyskiwanie i wykorzystanie pomiarów (pozyskiwanie danych, analiza i wykorzystanie danych, narzędzia i metody do analizy danych).

IEEE Certified Software Development Professional Organizacja IEEE (Institute of Electrical and Electronics Engineers) powstała w 1884,

początkowo nosiła nazwę AIEE (American Institute of Electrical Engineers). Obecnie zrzesza ponad 380 000 członków w 150 krajach, jest jedną z największych na świecie organizacji standaryzujących: wyprodukowała prawie 900 aktywnych standardów, prowadzone są prace nad ponad 700 nowymi.

IEEE składa się z 37 stowarzyszeń. Największe z nich to IEEE Computer Society, założone w 1946 roku. Liczy 100 000 członków.

Koncepcja, na której opiera się certyfikat CSDP (Certified Software Development Professional), przedstawiona jest na poniższej ilustracji.

CSDP jest pierwszym z serii przygotowanych przez IEEE CS certyfikatów, których celem będzie stworzenie społeczności profesjonalnych twórców oprogramowania (Leading Software Development Professionals and Practitioners). Na razie jest to jedyny tego typu certyfikat przyznawany przez IEEE Computer Society. Certyfikat jest dostępny od połowy 2002 roku.

W celu otrzymania certyfikatu trzeba spełnić następujące warunki:

• wykazać się doświadczeniem zawodowym (minimum 9000 godzin przepracowanych w przynajmniej 6 z 11 obszarów wiedzy, w przeciągu ostatnich 4 lat co najmniej 2 lata przepracowane z inżynierią programowania)

Rozwój jednostki

Edukacja początkowa

Pełny status profesjonalny

Doskonalenie

Doskonalenie umiejętności

Certyfikaty, licencje

Kodeks etyczny

Page 14: Tester.pl - Numer 3

TESTER.PL

Strona 14 z 49

• posiadać odpowiednie wykształcenie: co najmniej tytuł licencjata z informatyki lub dziedziny pokrewnej

• zobowiązać się do przestrzegania Software Engineering Code of Ethics and Professional Practice

• zdać egzamin potwierdzający opanowanie Body of Knowledge (11 obszarów wiedzy, 180 pytań testowych, 3 godziny)

Tematyka CSDP obejmuje dziedziny:

Inżynieria oprogramowania i społeczeństwo („kryzys oprogramowania”, ekonomika inżynierii oprogramowania, normy inżynierii oprogramowania, profesjonalne praktyki).

Proces inżynierii oprogramowania (znaczenie procesów, modele procesów, model CMM dla oprogramowania).

Wymagania dla oprogramowania (proces inżynierii wymagań, pozyskiwanie i analiza wymagań, specyfikacja wymagań oprogramowania, zarządzanie wymaganiami oprogramowania).

Projektowanie oprogramowania (główne pojęcia, strategie projektowania oprogramowania, architektura oprogramowania, metodyki specjalne).

Konstruowanie oprogramowania (komponenty konstrukcji, projekt – organizacja – dokumentacja, integracja i wdrożenie systemu).

Testowanie oprogramowania (przegląd tematyki, projektowanie testów, poziomy testów).

Pielęgnacja oprogramowania (co to jest pielęgnacja, proces pielęgnacji oprogramowania, pomiary łatwości pielęgnacji, zarządzanie i dokumentacja pielęgnacji).

Zarządzanie inżynierią oprogramowania (funkcje i tryby zarządzania, proces zarządzania, planowanie projektu, zarządzanie projektem – proces, monitorowanie, zmiany).

Pomiary w produkcji oprogramowania (podstawy, wybór miar, pozyskiwanie danych).

Procesy wspierające inżynierii oprogramowania (zarządzanie konfiguracją, weryfikacja i walidacja, zapewnienie jakości, przeglądy i audyty).

QAI Certified Quality Analyst oraz Certified Software Test Engineer

QAI (Quality Assurance Institute) QAI rozpoczął działalność w roku 1980, zrzeszając osoby zajmujące się

zapewnieniem jakości w branży informatycznej. Prace nad wprowadzeniem certyfikatów rozpoczęto w roku 1985, a pierwsze egzaminy odbyły się w 1990 roku. Dziś na świecie działa ok. 10 000 osób mających (jeden z trzech) certyfikatów QAI w krajach głównie pozaeuropejskich (Australii, Belgii, Brazylii, Kanadzie, Indiach, Izraelu, Korei, Meksyku, Nowej Zelandii, Arabii Saudyjskiej, Singapurze, RPA, Wielkiej Brytanii i w USA).

Certified Quality Analyst Wymogi certyfikacyjne: minimum licencjat i dwa lata doświadczenia w branży

informatycznej (lub – jeśli ktoś nie ma licencjatu – minimum sześć lat doświadczenia

Page 15: Tester.pl - Numer 3

TESTER.PL

Strona 15 z 49

zawodowego), referencja – rekomendacja od innej osoby z branży oraz zobowiązanie do przestrzegania kodu etyki zawodowej. Ponadto trzeba oczywiście zdać egzamin z zakresu Body of Knowledge (podstawy jakości, procesy wytwarzania, zakupu i użytkowania oprogramowania, modele jakości, ocena jakości, zarządzanie jakością, zapewnienie jakości, monitorowanie jakości, metody definiowania, konstruowania, wdrażania i usprawniania procesów, metody ilościowe).

Certified Software Test Engineer Wymogi pozamerytoryczne takie same jak dla CQA (z tym, że wymagane

doświadczenie musi dotyczyć branży testowej).

Body of Knowledge: podstawowe zasady i pojęcia testowe, rola testerów w wytwarzaniu i zakupie oprogramowania, zarządzanie testami, konstrukcja środowiska testowego, analiza ryzyka, planowanie testów, projektowanie testów, wykonywanie testów, śledzenie i naprawianie błędów, testy akceptacyjne, śledzenie statusu testów, raportowanie testów.

BCS/ISEB: SW Testing Foundation Certificate, SW Testing Practitioner Certificate

BCS (British Computer Society) jest brytyjską organizacją o profilu podobnym do PTI (Polskiego Towarzystwa Informatycznego). BCS składa się z wielu grup zainteresowań (Interest Groups). Osoby zajmujące się testowaniem oprogramowania i systemów informatycznych zrzeszone są w prężnie działającej grupie testerów (Special Interest Group In SW Testing, SIGIST).

BCS jest merytorycznie odpowiedzialne za szereg certyfikatów z różnych dziedzin branży elektronicznej, komputerowej i informatycznej. Praktyczną realizacją tych certyfikatów (administracja, publikowanie i archiwizacja materiałów merytorycznych, akredytacja dostawców szkoleń, przygotowanie materiałów egzaminacyjnych, przeprowadzanie i sprawdzanie egzaminów, dystrybucja certyfikatów) zajmuje się firma ISEB (Information Systems Examination Board), w której radzie nadzorczej zasiada przedstawiciel ISEB.

Najnowszym produktem BCS/ISEB jest seria trzech certyfikatów w dziedzinie testowania oprogramowania:

SW Testing Foundation Certificate (dostępny od 1998 roku, egzamin poprzedzony 3-dniowym - nieobowiązkowym – szkoleniem, ponad 18 000 certyfikowanych testerów w całej Europie oraz w Australii, Izraelu i Meksyku).

SW Testing Professional Certificate (dostępny od 2002 roku, poprzedzony minimum 8-dniowym – nieobowiązkowym – szkoleniem, dotąd uzyskało go kilkaset osób, głównie w Wielkiej Brytanii oraz w Irlandii).

SW Testing Professional Diploma (trwają prace nad jego przygotowaniem).

Certyfikat podstawowy ISEB (SW Testing Foundation Certificate) „wstrzelił” się w istniejące zapotrzebowanie idealnie – tym należy tłumaczyć jego ogromną popularność, także poza Wielką Brytanią i Irlandią. Jednocześnie ta popularność spowodowała rozpoczęcie prac nad międzynarodową wersją certyfikatu - patrz poniżej.

Tematyka certyfikatu podstawowego:

Page 16: Tester.pl - Numer 3

TESTER.PL

Strona 16 z 49

Wprowadzenie (typy i cele certyfikatów, organizacja procesu certyfikacji, przebieg i taktyka egzaminu, organizacja materiału szkoleniowego)

Podstawowe zasady testowania (terminologia, dlaczego testowanie jest konieczne, podstawy procesu testowania, psychologia testowania, testowanie regresyjne, wyniki testów)

Testowanie w różnych fazach cyklu wytwarzania oprogramowania (modele procesu wytwarzania oprogramowania, ekonomika testowania, planowanie testowania, testowanie komponentów, testowanie integracyjne, testowanie systemu, testowanie właściwości, testowanie akceptacyjne, testowanie pielęgnacyjne)

Dynamiczne techniki testowania (techniki "czarnej skrzynki", techniki "szklanej skrzynki", zgadywanie błędów)

Testowanie statyczne (udział przeglądów w procesie testowania, rodzaje przeglądów i inspekcji, analiza statyczna)

Podstawy zarządzania testowaniem (organizacja, zarządzanie konfiguracją, kontrolowanie testowania, śledzenie błędów, normy w dziedzinie testowania)

Narzędzia stosowane do testowania oprogramowania (podstawowe typy narzędzi, elementy procesu wdrożenia automatycznego wykonywania testów).

Egzamin trwa 1 godzinę i składa się z 40-stu pytań testowych.

ISTQB: certyfikaty międzynarodowe Popularność certyfikatu ISEB w wielu krajach spowodowała działania mające na celu

przekształcenie go w certyfikat międzynarodowy. Jesienią 2001 roku podczas konferencji „EuroSTAR 2001”, odbywającej się wówczas w Sztokholmie, zebrała się grupa przedstawicieli z 9 europejskich krajów i w ciągu kilku godzin wypracowano podstawy działania ISTQB – International SW Testing Qualifications Board.

Począwszy od jesieni 2003 roku działania nabrały rozmachu – wcześniej przeszkodę stanowił konflikt między ISEB a niemieckim stowarzyszeniem ASQF („Association for Software Quality Frankonia”). Po zlikwidowaniu tego konfliktu sytuacja i cele ISTQB wyglądają następująco:

W ramach ISTQB współpracują organizacje z USA, Austrii, Danii, Holandii, Finlandii, Niemiec, Indii, Izraela, Norwegii, Polski, Portugalii, Szwecji, Szwajcarii i Wielkiej Brytanii.

ISTQB stawia sobie za cel udoskonalenie treści dotychczasowego certyfikatu ISEB.

W przyszłości powstanie jeden, wspólny międzynarodowy certyfikat ISTQB. Jego wersja podstawowa będzie w języku angielskim, zaś organizacje wszystkich krajów, które sobie tego życzą, będą mogły przetłumaczyć materiały i pytania na język krajowy. W ten sposób certyfikat ISTQB będzie pierwszym międzynarodowym certyfikatem w tej branży, mającym wiele – merytorycznie w 100% równoważnych – wersji językowych.

Organizacje krajowe wezmą na siebie akredytację kandydatów na dostawców szkoleń w swoich językach.

Przeprowadzanie egzaminów organizacje krajowe będą mogły albo organizować we własnym zakresie (przestrzegając wymogów ISTQB w celu uniknięcia nadużyć) lub zlecić organizację działającym obecnie instytucjom akredytacji i certyfikacji, tj. ISEB lub ASQF.

Page 17: Tester.pl - Numer 3

TESTER.PL

Strona 17 z 49

PSTB (Polish SW Testing Board) i jego rola w ISTQB Latem 2003 roku zostało zarejestrowane pierwsze w Polsce zrzeszenie osób

zajmujących się zapewnianiem jakości oraz testowaniem: Stowarzyszenie Jakości Systemów Informatycznych (SJSI). W ramach SJSI działa Polish SW Testing Board (PSTB), które reprezentuje Polskę w ISTQB, a w przyszłości przekształci się w organizację odpowiedzialną za akredytację podmiotów, które będą chciały prowadzić szkolenia zakończone egzaminem ISTQB w języku polskim.

Dobiegają końca prace nad tłumaczeniem wspólnego słownika terminologii z dziedziny testowania oprogramowania na język polski. Ten słownik będzie stanowił podstawę zarówno do tłumaczenia na język polski pytań egzaminacyjnych, jak i do produkcji materiałów szkoleniowych.

Dostępność certyfikatów w Polsce W Polsce certyfikat SW Testing Foundation Certificate dostępny jest od lipca 2002

roku (szkolenie w języku polskim, materiały i ćwiczenia w języku angielskim, egzamin w języku angielskim). Dotychczas w szkoleniach wzięło udział około 250 osób, z czego 180 przystąpiło do egzaminu na certyfikat, a około 75% zdało egzamin i uzyskało certyfikat. Szkolenia otwarte prowadzone są regularnie co 2 miesiące w Warszawie przez współpracujące firmy bbjTest i Software Konferencje. Możliwe jest także przeprowadzenie szkoleń zamkniętych w firmach.

Certyfikat SW Testing Professional Certificate na razie nie jest w Polsce dostępny. Możliwe jest zorganizowanie egzaminu eksternistycznego, jeśli znajdzie się co najmniej kilka osób zainteresowanych.

Szkolenia na IEEE Certified Software Development Professional organizowane są przez Software Konferencje.

Źródła 1. BCS, Information Systems Examination Board, SW Testing (tamże dostępne

szczegółowe dane nt. zakresu tematyki, egzaminów, akredytowanych dostawców szkoleń itp.): www.bcs.org.uk/iseb/st

2. IEEE Computer Society, CSDP: www.computer.org/certification 3. Yahoo CSDP Study Group: groups.yahoo.com/group/ieee_csdp 4. IEEE: www.ieee.org 5. SWEBOK, IEEE SW Engineering Body of Knowledge: www.swebok.org 6. QAI, Certified SW Quality Analyst: www.softwarecertifications.com/qai_cqa.htm 7. QAI, Certified SW Tester: www.softwarecertifications.com/qai_cste.htm 8. Certyfikaty QAI: www.softwarecertifications.com/ 9. QAI: www.qaiusa.com 10. ASQ, Certified Reliability Engineer: www.asq.org/cert/types/cre/ 11. ASQ Certified Reliability Engineer Body of Knowledge:

www.asq.org/cert/types/cre/bok.html 12. ISTQB: www.istqb.org/vision.php

Page 18: Tester.pl - Numer 3

TESTER.PL

Strona 18 z 49

13. ASQF: www.asqf.de 14. Stowarzyszenie Jakości Systemów Informatycznych, Polish SW Testing Board:

www.sjsi.org/pstb 15. bbjTest (informacje na temat certyfikacji, realizacja szkoleń, w tym na SW Testing

Foundation Certificate): www.bbj.com.pl 16. Software Konferencje (realizacja szkoleń otwartych na SW Testing Foundation

Certificate oraz CSDP): www.software.com.pl/konferencje 17. International SW Quality Institute ISQI (ISTQB is part of it): www.isqi.org

Page 19: Tester.pl - Numer 3

TESTER.PL

Strona 19 z 49

CENTRA TESTOWANIA I OPTYMALIZACJI SYSTEMÓW IT

Rynek dostawców aplikacji do optymalizacji jakości stał się jednym z najważniejszych i najbardziej strategicznych obszarów inwestycyjnych dla przemysłu informatycznego. Firmy porzucają strategię testowania poszczególnych projektów i przekształcają się w przedsiębiorstwa dostarczające aplikacje kompleksowo.

Od ponad 15 lat firma Mercury pomaga tysiącom klientów optymalizować jakość i wydajność ich aplikacji. W swoim raporcie Gartner Magic Quadrant for Distributed Testing firma Gartner ocenia firmę Mercury jako lidera rynku. Według instytutu IDC firma Mercury jest najlepszym na świecie dostawcą aplikacji, posiadającym 55,6% udział w rynku zautomatyzowanych produktów testowania jakości i wydajności oprogramowania (ASQ). IDC z optymizmem wyraża się o perspektywie wzrostu rynku dostawców aplikacji i przewiduje, że całościowy dochód rynku ASQ osiągnie 1,3 miliarda USD w 2008 r.

Wyniki najnowszych badań przeprowadzonych przez Economist Intelligence Unit (EIU) i obejmujących ponad 750 dyrektorów z branży IT potwierdzają trzy największe wyzwania stojące przez europejskimi firmami IT:

• Poprawa jakości IT (69%) • Pomiar i wykazanie wartości IT dla biznesu (63%) • Obniżenie kosztów (56%)

Centra Optymalizacji Mercury – Każde z czterech centrów optymalizacji Mercury

oferuje zintegrowane oprogramowanie, usługi i najlepszą praktykę.

• Centrum jakości i wydajności Mercury - dla działów testów pre-produkcyjnych aplikacji

• Centrum zarządzania IT - do zarządzania całym działem IT • Centrum dostępności biznesowej systemów IT - do zarządzania aplikacjami

Centrum jakości Mercury skupia główne zadania związane z dostarczaniem

aplikacji, m.in. zarządzanie testami, testy procesów biznesowych i testy funkcjonalne, co ma na celu poprawę jakości oprogramowania strategicznego. Centrum jakości pozwala klientom scentralizować funkcjonowanie ich firm, co zapewnia oszczędność czasu, obniżenie kosztów i powoduje poprawę wydajności krytycznych zadań IT.

Zalety Centrum jakości Mercury:

• Szybsza dostawa i poprawa jakości na poziomie produkcji • Konsekwentny, wielokrotny i sprawdzony proces testowania

Page 20: Tester.pl - Numer 3

TESTER.PL

Strona 20 z 49

• • Centralne raportowanie (przez przeglądarkę internetową, portale lub konsole

kierownicze) o statusie bieżących projektów, projektów nadchodzących i wynikach poprzednich zadań

• Technologia automatyzacji i testowania oraz wiedza specjalistyczna w zakresie wykorzystania technologii

• Skalowalność od poziomu departamentu do zastosowań globalnych dla aplikacji rozproszonych

• Konsola zarządzająca dla widoku w czasie rzeczywistym procesów testowania jakości i wydajności

• Zarządzanie centrum jakości (Usługi zarządzania Mercury) na żądanie Centrum wydajności Mercury skupia główne zadania związane z dostarczaniem

aplikacji, m.in. testy obciążenia, diagnostyka aplikacji oraz planowanie wydajności wszystkich strategicznych aplikacji biznesowych. Centrum wydajności umożliwia poszczególnym zespołom IT wykonywanie zadań w sposób scentralizowany, co oszczędza czas, ogranicza koszty i powoduje znaczny wzrost wydajności krytycznych zadań IT.

Zalety Centrum wydajności Mercury:

• Szybsza dostawa i poprawa jakości na poziomie produkcji • Zoptymalizowana infrastruktura poprzez analizę, testy i lepszą wydajność • Centralny widok (przez przeglądarkę internetową, portale lub konsole kierownicze)

statusu bieżących projektów, projektów nadchodzących i wyników poprzednich zadań • Skalowalność od poziomu departamentu do zastosowań globalnych dla aplikacji

rozproszonych • Kompleksowy widok zapewniający optymalizację aplikacji lub procesu biznesowego

przed wprowadzeniem go na rynek i wymaganych dla niego zasobów • Odpowiednio wczesne wykrywanie „wąskich gardeł” pozwalające zwiększyć

wydajność aplikacji • Planowanie wydajności, m.in. symulacja hipotetycznych scenariuszy. • Skrócenie średniego czasu naprawy, dzięki zastosowaniu rozwiązań diagnostycznych • Konsola kierownicza dla widoku w czasie rzeczywistym przebiegu procesu jakości

i wydajności • Zarządzanie centrum wydajności (Usługi zarządzania Mercury) na żądanie

Page 21: Tester.pl - Numer 3

TESTER.PL

Strona 21 z 49

Wywiad z Jamesem Bachem2

James Bach, współautor książki "Czego dowiedziałem się testując oprogramowanie" (tytuł oryginału "Lessons Learned in Software Testing"), to osoba dosyć popularna w świecie testów ze względu na swoje niekonwencjonalne idee. Jego strona internetowa jest dostępna w sieci pod adresem www.satisfice.com.

Witryna WhatIsTesting przeprowadziła z nim wywiad. Mam nadzieję, że wywiad Was zainteresuje i okaże się użyteczny.

James, proszę powiedz nam coś o sobie, o swoim wykształceniu i dotychczasowej pracy. Co najbardziej interesuje Ciebie poza testowaniem i co porabiasz w wolnym czasie?

Urodziłem się w stanie Iowa w USA. Dziecięce lata spędziłem w cichej, wiejskiej miejscowości Vermont.

W szkole nie było łatwo, szczególnie po piątej klasie. Przeczytałem w konstytucji Stanów Zjednoczonych, że "Nie będzie w Stanach Zjednoczonych lub jakimkolwiek miejscu podległym ich władzy ani niewolnictwa, ani przymusowych robót, chyba jako kara za przestępstwo, którego sprawca został prawidłowo skazany". Na podstawie tego fragmentu podjąłem postanowienie, że nie będę już odrabiał zadanych prac domowych. Odmowa ta przekształciła się w generalne odrzucenie całej szkolnej biurokracji i niechęć do władzy w ogóle. Dzisiaj wydaje się to absurdalne. Ale kiedy miałem 16 lat - w roku 1982 - mój ojciec (który napisał książkę pod tytułem "Jonathan Livinston Seagull" mówiącą o dorastaniu i kierowaniu swoim życiem) doradził mi, abym rzucił szkołę. Tak zrobiłem i kontynuowałem naukę na swój sposób.

Dostałem pracę w sklepie komputerowym, gdzie przez sześć miesięcy nic nikomu nie sprzedałem, ale wkrótce zostałem zatrudniony przez inna firmę, w której pisałem gry komputerowe na Apple i Commodore 64. Po kilku latach pracy na stanowisko kierownika testów zatrudniła mnie firma Apple Computer. Jestem przekonany, że byłem wtedy najmłodszym kierownikiem w firmie. Nie miałem żadnego przygotowania z zakresu zarządzania ani związanego z testowaniem, ale to nie stanowiło problemu. Niewiele osób miało w ogóle pojęcie o testowaniu. Postanowiłem zostać ekspertem od spraw testowania, dlatego spędzałem całe godziny w kafejce naprzeciwko mojej pracy czytając książkę za książką i próbując odkryć tajemnice testowania.

2 Wywiad został zamieszczony dzieki Mariuszowi Janczewskiemu, który jest także tłumaczem tego wywiadu. Mariusz Janczewski jest współpracownikiem Tester.PL, aktualnie pracuje w Gdansku, w firmie Atena, Usługi informatyczne i finansowe, Sp. z.o.o. www.atena.pl

Page 22: Tester.pl - Numer 3

TESTER.PL

Strona 22 z 49

Ponieważ mam "antyestabliszmentowe" korzenie, nigdy nie czułem się zobligowany do ograniczenia się do tylko jednej dziedziny. Miało to swoje wady, jak i zalety. Nigdy nie byłem częścią systemu, który przekonywał ludzi, że pewien guru odnalazł prostą i skuteczną metodę wytwarzania oprogramowania. Nie wierzę takim osobom. Nie ma prostych przepisów, poza tą jedną, najbardziej prostą regułą wymagającą wielkiej umiejętności skorzystania z własnego rozumu ("use your mind"!).

Mam szczególne uznanie dla dwóch rzeczy: metod naukowych oraz szczęścia zwykłych ludzi. W innych sprawach jestem bardzo sceptyczny.

Twoja strona internetowa nosi nazwę "satisfice", jakie jest znaczenie tego słowa? Co oznaczają słowa "epistemologia dla każdego", na które możemy trafić na Twojej stronie?

"Satisfice" oznacza dążenie do rozwiązania wystarczająco dobrego. Zostało ono po raz pierwszy użyte przez Herberta Simona, który otrzymał Nagrodę Nobla za swoje badania dotyczące sposobu, w jaki organizacje podejmują decyzję. Skomplikowane decyzje, takie jak odpowiedzi na pytania czy produkt jest gotowy do wypuszczenia na rynek, nie są podejmowane wyłącznie na podstawie oczywistych racjonalnych przesłanek, ale w wyniku procesu, który bywa czasem "mglisty". Proces ten Simon nazwał ograniczonym racjonalizmem. To, czym się zajmuję, cała moja praca, polega na określeniu, w jaki sposób mogę podejmować najlepsze decyzje w sytuacji, kiedy nie znam wszystkich faktów, kiedy jestem przez to niedoskonały. To jest to, co tak bardzo interesuje mnie i moich Klientów.

Epistemologia jest dziedziną filozofii zajmującą się teorią poznania, określeniem sposobu, w jaki poznajemy. Cała dziedzina nauki zajmuje się tym zjawiskiem. "Epistemologia dla każdego" jest nawiązaniem do dawnego hasła firmy Apple Computer "komputery dla każdego". Podobnie jak Apple, staram się przekazać coś ze świata specjalistów do codziennego użycia. Taka jest moja filozofia testowania i wytwarzania oprogramowania.

James, to może być krótkie pytanie i długa odpowiedź. Czy możesz opisać Twój związek ze szkołą "context-driven testing"? W jaki sposób szkoła ta powstała? Jak dojrzewała? Proszę opowiedz o historii i o tym jak widzisz przyszłość tej szkoły.

Termin "context-driven testing" powstał podczas wspólnej kolacji w dniu 21 listopada 1999. W spotkaniu braliśmy udział Cem Kaner, Brian Marick i ja. Było to w drodze na ósme warsztaty z testowania oprogramowania w Los Altos. Dwa tygodnie później założyliśmy grupę dyskusyjną na Yahoogroups poświęconą "context driven testing". W roku 2001 wraz z Cem'em, Bret'em Pettichord sformułowaliśmy siedem zasad testowania "context-driven" i opublikowaliśmy pierwszą książkę na ten temat pod tytułem "Lessons Learned in Software Testing".

Chociaż termin nie był stosowany przed rokiem 1999, to grupa, którą nazwaliśmy społecznością "context-driven" wyrosła na rozpoznawalne zjawisko jeszcze przed naszym spotkaniem podczas wcześniejszego LAWST w roku 1997. Spotkanie to stanowiło przełom. LAWST to skrót od "Los Altos Workshops on Software Testing". LAWST to nie komercyjne, tygodniowe dyskusje, w których biorą udział małe grupy osób, żeby dzielić się swoim doświadczeniem w dziedzinie testów. Pierwsze LAWST zostało zorganizowane przez Cem'a Kaner'a i Brian'a Lawrence'a. Odbyło się już czterdzieści spotkań tych oraz innych związanych z LAWST spotkań.

Page 23: Tester.pl - Numer 3

TESTER.PL

Strona 23 z 49

Podczas spotkań LAWST, żaden prelegent nie jest chroniony przed wnikliwymi pytaniami i krytycyzmem. Podejście krytyczne wymaga od uczestników umiejętności i wiedzy, w jaki sposób uzasadniać swoje racje i przedstawiać argumenty. Osoby trafiające na LAWST w poszukiwaniu "najlepszych praktyk" są często rozczarowane, ponieważ znajdują więcej pytań niż odpowiedzi i więcej kontrowersji niż zgody. Wiele osób uczestniczy w kilku spotkaniach, a następnie rezygnuje z kolejnych, ale osoby, które uczestniczą we wszystkich spotkaniach pozyskują cenne umiejętności w zakresie sztuki testowania. Dzięki temu LAWST i inne bliźniacze konferencje są odpowiedzialne za wzrost nowej wrażliwości, która mówi, że żadna praktyka może być dobrą praktyką i że żadna praktyka może być złą praktyką, w zależności od kontekstu, a kontekst jest zawsze zależny od ludzi, którzy go tworzą.

Zatem „context-driven testing” nie jest techniką, jest raczej profesjonalnym sposobem podejścia do technik. Aby prowadzić „context-driven testing” należy ustalić świadome, jasne, samokrytyczne relacje pomiędzy procesem testowym i środowiskiem (czyli kontekstem), w którym testy są prowadzone. Tester prowadzący testy zgodnie z „context-driven testing” dąży do pełnej odpowiedzialności za swój własny proces testowania.

Metodę „context-driven testing” spostrzegam w przyszłości jako rozwijającą się powoli w atmosferze spotkań zbierających się w małych grupach myślicieli, próbujących pisać wnikliwe artykuły o testowaniu. Nie sądzę, że kiedykolwiek będzie ich więcej niż kilka procent wśród całego środowiska testerów. Tak jak niewiele jest entuzjastów "ham radio"3

w porównaniu z liczbą użytkowników zwykłych telefonów komórkowych. Wierzę, że w nie tak odległej przyszłość (za jakieś 30 lat) wartość "context-driven testing" zostanie doceniona i będzie ono stanowiło wartościowe uzupełnienie innych metod testowania oraz będzie rozpoznawane po prostu jako "wykwalifikowane testowanie". Etykieta "context-driven" nie będzie już konieczna, ponieważ doświadczeni testerzy będą traktowali w oczywisty sposób, że to kontekst dominuje praktykę.

Jest jeszcze jeden fragment historii, na który pragniemy rzucić nieco światła. Proszę opowiedz nam o testowaniu eksploracyjnym i Twoim związku z nim. W jakim kierunku będzie rozwijało się testowanie eksploracyjne? W jaki sposób szkoła "context-driven" przyjmuje elementy testowana eksploracyjnego?

Testowanie eksploracyjne jest szczególną rodziną praktyk testowych zdefiniowanych jako "równoczesna nauka, projektowanie testów i wykonywanie testów". Może ono być traktowane jako mentalna sztuka walki. Sam termin został wymyślony (w każdym razie na polu oprogramowania) przez Cema Kanera w późnych latach osiemdziesiątych, ale nie został wówczas opublikowany i niewiele osób korzystało z niego. Podjąłem ten termin w roku 1994 po nieudanych próbach przekonania ludzi, że testowanie ad hoc jest umiejętnością, której można uczyć, która stanowi wyrafinowaną formę testowania. Ad hoc nie oznacza "byle jaki", ale wielu ludziom wydaje się, że taki właśnie jest, zatem uznałem, że na moje potrzeby termin testowanie eksploracyjne będzie lepszy. Dzisiaj jest to relatywnie dobrze znany termin, zarówno Cem jak i ja jesteśmy znani z działalności na tym polu.

3 ham - someone who receives and sends radio messages for fun rather than as their job

Page 24: Tester.pl - Numer 3

TESTER.PL

Strona 24 z 49

Także Elisabeth Hendrickson wykonała z nami znaczną pracę w tym zakresie, podobnie jak James Whittaker. Niezbyt wiele osób w aktywny sposób pracowało nad rozwojem i opisem tej praktyki, co przypomina sytuację związaną z pracami nad testowaniem eksploracyjnym na innym polu.

Eksploracja jest z natury czynnością, którą trudno jest opisać za pomocą prostego, konkretnego przepisu, tak wielu kierowników obawia się jej. Myślę, że testowanie eksploracyjne stanowi podstawowe podejście do testowania. Innymi słowy, według mnie tester staje się wykwalifikowany wtedy, kiedy dobrze przeprowadza testy eksploracyjne, jest to pierwsza umiejętność, której uczę nowych testerów, którzy dla mnie pracują. Podstawowy fenomen testowania eksploracyjnego można poznać studiując kontekst medyczny, inżynierię, filozofię nauki, ekonomię, wodzenie teorii, teorię gier, kreatywne myślenie, sztukę, nawigację, edukację, i sztuczną inteligencję. To wskazuje na listę książek, które musiałem przeczytać.

Eksploracja jest rdzeniem lekkiego sposobu wytwarzania oprogramowania. Według mnie nikt nie może uważać się za osobę wyedukowaną w zakresie testowania, utrzymując, że eksploracja jest dodatkowym luksusem, który można przeprowadzać tylko wtedy, kiedy wszystkie skrypty testowe zostaną wykonane. W tej sytuacji według mnie trudno jest traktować poważnie autorów i konsultantów określających testowanie eksploracyjne jako proces nieuporządkowany, którego nie można nauczać, którym nie można zarządzać. Mam nadzieję, że spostrzegą oni to, że rok 1985 już minął i nasze rzemiosło nieco się rozwinęło.

Jakie jest miejsce testowania skryptowego w szkole kontekstowej? Jak spostrzegasz zmiany zachodzące w testowaniu skryptowym w ostatnim czasie?

Szkoła testowania kontekstowego nie ma jakichkolwiek preferencji w zakresie stosowanych praktyk, tak długo jak praktyki te nie są sprzeczne z jedną z siedmiu zasad stojących u podstaw tej szkoły, podanych na stronie www.context-driven-testing.com. Oznacza to, że testowanie skryptowe należy do szerokiej rodziny praktyk testowych: tester kontekstowy zadaje sobie trud pojęcia dynamiki testowania skryptowego i poszukuje sposobu, w jaki praktyka ta może pomóc mu w rozwiązania problemu, nad którym pracuje.

Tester kontekstowy stosuje te sposoby testowania, które najlepiej odpowiadają bieżącym wyzwaniom. Na przykład jako tester kontekstowy, zwracam uwagę na dziewięć powodów, dla których powinienem powtórzyć test i to wpływa na wybraną przeze mnie formę dokumentowania przypadków testowych. Bez względu na kwestię powtarzalności czynności testowych występują także inne ważne powody decydujące o przygotowywaniu skryptów testowych. Mimo to nadal jestem zdania, że w przypadku bardziej skomplikowanych projektów, jeśli Twoim głównym celem jest znalezienie ważnych błędów, testowanie nie powinno być zbytnio oparte na przygotowanych skryptach. Zadaniem testowania eksploracyjnego jest lokalizacja możliwie największej liczby błędów, w możliwie krótkim czasie.

Testowanie skryptowe oznacza, że tworzysz test zanim go przeprowadzisz i nie zmieniasz go podczas realizacji testu ani w jego wyniku. Ten sposób podejścia do testowania stanowi oczywistą opozycję względem testowania eksploracyjnego, ale spostrzegam także, że testowanie zwykle zawiera elementy obydwóch podejść - pewne elementy testowania skryptowego oraz eksploracyjnego realizowane bywają równocześnie. Właśnie to, że testowanie zawiera elementy obydwóch stylów, stanowi największą zmianę mojego sposobu myślenia na temat testowania w ostatnich kilku latach.

Page 25: Tester.pl - Numer 3

TESTER.PL

Strona 25 z 49

Jaka jest Twoja rada dla firm, które utkwiły w "modelu testowania starego typu"? Jakie kroki powinny one podjąć, aby otrzymać lepsze oprogramowanie?

Moja rada to bądźcie uważni. Uczcie się widzieć, co się naprawdę dzieje. Bądźcie samokrytyczni.

Tak wiele firm kontynuuje swoje oparte o teorie produktywności i jakości podejście do testowania, które rozpada się w pył, gdy okazuje się, że np. 85% błędów (to oszacowanie oparte na moim doświadczeniu z klientami) jest lokalizowanych dzięki technikom eksploracyjnym lub kiedy orientują się, że dokumentacja testowa przygotowana przez nich już nie pomaga im w poprawie testów, a raczej stała się powodem utraty mnóstwa czasu i energii. Wiele osób zakłada, że nowi testerzy zyskają dzięki zapoznaniu się ze starą dokumentacją, ale wystarczy obserwować nowych testerów, aby zorientować się, że takie założenie zwykle jest kompletnie błędne. Testerzy uczą się poprzez eksplorację oraz poprzez udział w projektach z innymi ludźmi.

Warto czytać książki Gerald'a M. Weinberg'a. Szczególne jego serię o zarządzaniu jakością oprogramowania.

W jaki sposób powstało: "Czego nauczyłem się testując oprogramowanie"?

Cem Kaner i ja braliśmy udział w konferencji poświęconej tworzeniu "wzorców" testowych i zaczęliśmy frustrować się, kiedy zaczęto zadawać nam pytania dotyczące "zakręconych" i mało użytecznych formatów. Wówczas to Cem wpadł na pomysł, aby spisać zestaw prostych idei, każda z bardzo interesującym i wdzierającym się w pamięć tytułem. Idee te stanowiły nasz zbiór wzorców. Przekazaliśmy szkic naszego opracowania Bretowi Pettichord, który dołączył do projektu i ruszyliśmy do pracy.

Początkowo, podobnie jak we wszystkich projektach, w których brałem udział, niewiele się działo. Ale wkrótce Cem zawarł umowę dotyczącą publikacji naszego opracowania, co stanowiło znak, że należy szybko ruszyć do pracy. Zebraliśmy się razem w moim laboratorium i w wyniku burzy mózgów zebraliśmy 522 idee dotyczące testowania, którymi chcieliśmy podzielić się z innymi, kiedy zabieraliśmy się za to rzemiosło. Potem podzieliśmy je na rozdziały i zabraliśmy się za nie.

Pisanie książki polegało na pisaniu mnóstwa email'i pomiędzy nami. Założeniem było napisanie książki, która trafi do zapracowanego testera i z której będzie mógł korzystać bez potrzeby czytania jej w określonym porządku.

Jaka jest według Ciebie najważniejsza lekcja, którą każdy tester powinien poznać czy to na podstawie doświadczenia innych, czy też własnego?

Page 26: Tester.pl - Numer 3

TESTER.PL

Strona 26 z 49

Oto ona: Testowanie jest w Twojej głowie4. To znaczy, że najważniejsze w testowaniu jest to jak myślisz, co myślisz, co widzisz i co zapamiętujesz. Czynnik ludzki w testowaniu jest fundamentalny i nie może być zastąpiony przez automatyzację tego procesu.

Jestem przekonany, że większość książek o testowaniu została napisana przez ludzi, którzy nie mają zbyt dużego pojęcia o tym temacie. Mają pewne doświadczenie i dlatego myślą, że wiedzą o co chodzi. Ale testowanie jest zagadnieniem bardzo wymagającym. Podobnie jak psychologia wymyka się prostym opisom i analizom. Stąd kolejna lekcja: "Większość książek o testowaniu nie mówi prawdy o testach".

Należy zatem uczyć się następujących umiejętności:

• w jaki sposób obserwować to co się dzieje, • jak stosować metody naukowe, • jak myśleć systematycznie, • jak współpracować z ludźmi, • jak stać się częścią społeczności samokrytycznej.

Czy pracujesz nad kolejną książką?

Co pewien czas przygotowuję materiał do kolejnego wydania książki Kaner'a "Testing Computer Software" i stale pracuję nad książką o niekonwencjonalnym poznaniu.

Co miałeś na myśli określając indyjskich testerów swoim blogu mianem "Śpiącego Giganta"? W jaki sposób mogą się oni "przebudzić"?

Nie widzę znaczących przeciwskazań stojących na drodze Indii ku staniu się międzynarodowym centrum wykształconych testerów, jeśli oczywiście mieszkańcy Indii będą chcieli zajmować się testami.

Zanim nie odwiedziłem Indii myślałem, że istnieją bariery edukacyjne i kulturowe. Myliłem się. Proszę testerów z Indii o przyjęcie moich przeprosin.

Nie wiem, co powoduje ludźmi, że budzą się rano. Zastanawiam się jak to możliwe, że budzę się każdego ranka. W jednym momencie śpię, a w następnym budzę się. To zaś, co mogę stwierdzić, to fakt, że początkowo myślałem, że ludzie z którymi pracowałem i których uczyłem w dwóch firmach w Bangalore nie interesują się testowaniem i mają ograniczone pojęcie o nim. Ale grupa szybko robiła postępy i mogłem obserwować znaczącą poprawę w ich zdolności do stawiania czoła zadaniom, które przed nimi stawiałem. W niektórych grupach spostrzegłem też bardzo wiele chęci i entuzjazmu do nauki testowania. Sądzę, że czynnikiem, który wpływa na pracowników indyjskiej społeczności technicznej, to dążenie do uzyskania przewagi konkurencyjnej. Ci ludzie pragną stać się liderami światowego społeczeństwa testerów, nie chcą być tymi słabszymi. Obecnie nie znam nikogo, kto wypowiada się o Indiach jako kraju wiodącym prym w jakimkolwiek intelektualnym

4 Testing Is In Your Head

Page 27: Tester.pl - Numer 3

TESTER.PL

Strona 27 z 49

zagadnieniu dotyczącym testowania. Tak pozostanie tak długo aż niektórzy z nich nie pokażą się "online" oraz w ramach różnych społeczności, i to nie jako nieśmiali "podsłuchiwacze", czy osoby powtarzające historyczne idee z lat osiemdziesiątych (ciągle jest sporo takich osób), ale jako praktycy wspierający rozwój najnowszych idei dotyczących testowania.

Te najnowsze idee, to według mnie lekkie wytwarzanie, usprawnianie procesu oparte na umiejętnościach, testowanie heurestyczne oraz wyrafinowane psychologiczne teorie związane z testowaniem.

Gdybyś przeprowadzał wywiad sam ze sobą, jakie pytania byś sobie zajął?

Oto one:

Co zajmuje Ci najwięcej czasu?

Przez większość czasu jestem w drodze, prowadzę kursy szybkiego testowania5 i testowania opartego na ryzyku6, biorę udział w konferencjach. Czasami pracuję jako ekspert lub biegły w sprawach sądowych.

Co najbardziej lubisz robić?

Chciałbym więcej testować, jestem zmęczony ciągłym mówieniem o tym przez cały czas. Projekt, który dał mi najwięcej radości, to testowanie Windows XP Embedded podczas sprawy przeciwko firmie Microsoft w roku 2002. To wielki wstyd, że nie mogę napisać co wówczas wykryłem podczas testowania, ani jakiej metody użyłem. Może kiedyś zostanę zwolniony z umowy dotyczącej tajemnicy zawodowej.

5 rapid software testing 6 risk-based software testing

Page 28: Tester.pl - Numer 3

TESTER.PL

Strona 28 z 49

Page 29: Tester.pl - Numer 3

TESTER.PL

Strona 29 z 49

LReport – narzędzie do prezentacji i weryfikacji wyników zapytań bazodanowych

Piotr Kałuski

CGI

Piotr Kałuski

Jest absolwentem Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej, kierunek informatyka. Od 1995 uczestniczył w wielu projektach informatycznych jako programista analityk, projektant i kierownik zespołu. Obecnie jest pracownikiem firmy CGI i jako konsultant jest członkiem zespołu System Test w firmie Polkomtel. Dziedzina jego zainteresowań to sposoby usprawnienia procesu testowania i wykorzystanie narzędzi Open Source w procesie wytwarzania i testowania oprogramowania. Szczegóły można znaleźć pod adresem www.piotrkaluski.com.

Page 30: Tester.pl - Numer 3

TESTER.PL

Strona 30 z 49

LReport – narzędzie do prezentacji i weryfikacji wyników zapytań bazodanowych

Piotr Kałuski

CGI

Streszczenie

W artykule tym zaprezentuję narzędzie do czytelnej prezentacji wyników zapytań i automatycznego porównywania tych wyników z oczekiwaniami. Spróbuję przekonać, że czytelna dokumentacja wyników testów nie tylko cieszy oko, ale jest ważnym elementem procesu wytwarzania i wdrażania oprogramowania wysokiej jakości. Będę też bronił tezy, że w wielu sytuacjach skuteczna automatyzacja testów wcale nie musi obejmować automatyzacji akcji na GUI. Podstawowe tezy przedstawione poniżej były prezentowane na I Konferencji Stowarzyszenia Jakości Systemów Informatycznych.

Dokumentowanie testów – odwieczny problem testerów Myślę, że większość testerów w swojej codziennej pracy, często staje przed

dylematem

– czy powinniśmy więcej czasu poświęcić na stworzenie rzetelnej, czytelnej dokumentacji testów, które już wykonaliśmy

– czy też powinniśmy, kosztem jakości dokumentacji, postarać się wykonać jak największą ilość scenariuszy.

W większości przypadków decydujemy się na drugie wyjście. Dokumentujemy gorzej bądź wcale, aby móc przetestować jak najwięcej funkcjonalności. Bądź co bądź, najważniejszym zadaniem testera jest jak najdokładniej przetestować powierzone mu oprogramowanie.

Jednak posiadanie czytelnej dokumentacji testów ma pewne zalety, wobec których nie powinniśmy przechodzić obojętnie. W procesie wytwarzania oprogramowania wysokiej jakości, odgrywa ona dosyć ważną rolę w przepływie dokumentacji i wiedzy w firmie. Dobra dokumentacja:

• Pozwala szybko i sprawnie weryfikować wyniki testów To oczywiste. Łatwiej jest wyłowić błędne dane, jeżeli są one podane w

sposób przejrzysty i czytelny.

• Jest bazą wiedzy o testowanej funkcjonalności. Ten drugi punkt chciałbym trochę rozwinąć. W firmach, w których proces

wytwarzania oprogramowania jest na wysokim poziomie, dla każdego modułu jest tworzony zestaw dokumentacji – wymagania, specyfikacja funkcjonalna, architektura. Jednak praktyka uczy, że te dokumenty, jakkolwiek niejednokrotnie kompletne i rzetelne, nie są najlepszą lekturą dla osób, które chcą szybko zrozumieć szczegóły działania systemu. Do wielu najlepiej przemawiają dobrze zilustrowane przykłady. Stąd taka popularność tutoriali. Czytelny opis przebiegu testu jest właśnie takim

Page 31: Tester.pl - Numer 3

TESTER.PL

Strona 31 z 49

tutorialem. W związku z tym może być cennym źródłem wiedzy o tym jak działa testowana aplikacja. Źródłem wiedzy zarówno dla osób doświadczonych, jak i dla osób nowych, które dopiero system poznają.

Niestety, tworzenie czytelnej dokumentacji testów zajmuje czas. Różnica w czasie potrzebnym do starannego i niedbałego opisu rezultatów jest znaczna. Dlatego decyzję o przykładaniu dużej wagi do jakości dokumentacji trzeba dobrze przemyśleć, z pełną świadomością jej kosztów. Lub też mieć pomysł jak te koszty zmniejszyć.

Niektórzy nie mają wyboru. Kontrakt wymusza na nich tworzenie kompletnej dokumentacji wyników testów. Wtedy ich problemem nie jest czy tworzyć dokumentację tylko raczej – jak to robić najbardziej efektywnie.

Niezależnie od tego czy jesteśmy do tego zobligowani kontraktem czy nie, skorzystanie z narzędzia, które usprawni proces dokumentacji i weryfikacji rezultatów testów może przynieść nam znaczne korzyści. LReport jest właśnie takim narzędziem.

LReport LReport jest narzędziem do prezentacji wyników zapytań i ich weryfikacji.

Jakkolwiek nie wszystkie scenariusze testowe zawierają w sobie operacje na bazie danych, to w większości aplikacji komercyjnych modyfikacje w bazie danych są jednym z głównym efektów wykonania większości operacji. Jeżeli więc usprawnimy dokumentowanie tego aspektu zachowania aplikacji, korzyści mogą być znaczne.

Co konkretnie LReport robi? Najłatwiej będzie mi to zilustrować przykładem.

Przykład Wyobraźmy sobie, że testujemy aplikację dla firmy usługowej. Testujemy dodawanie

nowej usługi klientowi. Wiemy, że dodanie nowej usługi spowoduje modyfikację w 3 tabelach – CUSTOMERS, SERVICES, INVOICES. Scenariusz testu jest następujący – dodaj nową usługę dla konta 12345. Rzetelne wykonanie tego testu wymaga abyśmy sprawdzili i udokumentowali stan bazy danych przed wykonaniem testu, wykonali test i sprawdzili i udokumentowali stan bazy danych po teście. W naszym przykładzie oznacza to umieszczenie w dokumencie rezultatów następujących zapytań:

select * from CUSTOMERS where CUSTOMER_ID = 12345 select * from SERVICES where CUSTOMER_ID = 12345 select * from INVOICES where CUSTOMER_ID = 12345

Najszybszym sposobem udokumentowania zawartości bazy danych jest skorzystanie z narzędzia typu RapidSQL, OraTool czy SQLPlus do wykonania zapytania i następnie skopiowanie wyników zapytań do dokumentu. W naszym przypadku wyglądałoby to tak:

Select * from CUSTOMERS where CUSTOMER_ID = 12345

Page 32: Tester.pl - Numer 3

TESTER.PL

Strona 32 z 49

CUSTOMER_ID LAST_NAME FIRST_NAME FISCAL_NUMBER TAX REGION BANK_ACCOUNT EMPLOYER LAST_KNOWN_SALARY PHONE ADDRESS PREFFERED_TIME_TO_CONTACT PROFESSION CREDIT_CARD_NUMBER FATHERS_NAME MOTHERS_NAME MOTHERS_MAIDEN_NAME MAIDEN_NAME DATE_OF_BIRTH CUSTOMER_SEGMENT VIP BAD_DEBTS IN_COLLECTION LAST_NOTE DATE_OF_CREATION NUMBER_OF_SERVICES DISCOUNT_PLAN STATUS EDUCATION RESPONSIBLE_PERSON ELIGIBLE_FOR_PROMOTIONS REASON_OF_DEACTIVATION DEACTIVATION_DATE COMMENTS

12345 Green Marjorie 345-348-34-34 VAT22 Warsaw 12356232-238923-239238 Kaluski&Kaluski 10000 415 986-7020 309 63rd St. #411 Afternoon Programmer 2562-2389-2376-2321 Jan Anna Kowalska 14-07-1984 INDIVIDUAL N N N 01-03-2003 2 HJ-KDISC AC MSC Jan Nowak Y Moved to our company from competitors

Select * from SERVICES where CUSTOMER_ID = 12345

CUSTOMER_ID SERVICE_NUMBER SERVICE_TYPE START_DATE SERVICE_CHARGE STATUS COMMENTS ADDRESS DEACTIVATION_REASON DEACTIVATION_DATE ON_HOLD LAST_COMPLAINT LEVEL_OF_SATISFACTION DISCOUNT

12345 1 SUPPORT 19-09-2004 24.5 AC First service activated for the customer. 309 63rd St. #411 N 31-09-2004 7 30

12345 2 QUICK_DELIVERY 29-09-2004 4.0 AC On customer's request. 235 3rd St. #89 N 10 0

Select * from INVOICES where CUSTOMER_ID = 12345

CUSTOMER_ID INVOICE_ID ISSUES_DATE PAYMENT_DATE PAYMENT_TYPE PAYED_ON_TIME AMOUNT AMOUNT_NOT_PAID DISCOUNTS ALTERNATE_ADDRESS PAYMENT_DELAY TOTAL_TAX TOTAL_NET ISSUED_BY IN_SAP REVIEWED_BY REVIEWED_ON REJECTION_REASON

12345 12345/1 01-09-2004 11-09-2004 CD Y 1238.57 0.00 23.80 200.00 1038.57 pkaluski N lkowalski 02-09-2004

12345 12345/2 08-09-2004 18-09-2004 CD N 57.45 3.00 0.00 7.45 50.00 pkaluski N lkowalski 09-09-2004

Page 33: Tester.pl - Numer 3

TESTER.PL

Strona 33 z 49

12345 12345/3 15-09-2004 25-09-2004 CS Y 500.00 300 5.00 200.00 300.00 pkaluski Y lkowalski 16-09-2004

12345 12345/4 22-09-2004 01-10-2004 CD Y 5000.00 0 250.14 2000.00 3000.00 pkaluski N zjankowsk 02-10-2004

Jak widać, dane są kompletne, ale trudno je nazwać czytelnymi. Jeżeli ktoś ciągle sądzi, że te dane są czytelne to mam dla niego prosty test. Proszę w ciągu 10 sekund określić, jaka jest wartość pola LAST_NOTE w wierszu z tabeli CUSTOMERS.

Jakkolwiek można trochę nad tymi danymi popracować i ich prezencję upiększyć, to wyraźnie widać pewną sprzeczność między czytelnością a kompletnością raportu. Im bardziej kompletne dane zamieszczamy w raporcie (zapytania na wszystkich zmodyfikowanych tabelach, wszystkie kolumny) tym raport staje się mniej czytelny ze względu na natłok danych. Z drugiej strony, wybiórcze umieszczanie danych w raporcie ma 2 wady:

• jest czasochłonne (zawsze jest łatwiej napisać “select *” niż select z nazwami poszczególnych kolumn)

• selekcjonując dane, możemy nie udokumentować wierszy, kolumn, których zawartość na początku wydawała się nieważna a potem okazała się mieć duże znaczenie.

LReport radzi sobie z tą sprzecznością, co zademonstruję w tym przykładzie.

Oto jak wygląda raport, wygenerowany przez LReport dla stanu sprzed testu:

Rysunek 1 - Stan bazy danych przed wykonaniem testu

Page 34: Tester.pl - Numer 3

TESTER.PL

Strona 34 z 49

Jak widać nie wszystkie kolumny są uwzględnione w dokumencie. Co więcej, niektóre są pokolorowane, dzięki czemu łatwiej jest zidentyfikować, do jakich kolumn należą dane wartości. Powyższy raport jest utworzony w formacie RTF. Dzięki temu łatwo jest go skopiować i wkleić do dokumentu w formacie Word. Poza tym, LReport tworzy we wskazanym katalogu pliki tekstowe CSV, w których znajdują się pełne rezultaty wszystkich interesujących nas zapytań. Dzięki temu, z jednej strony mamy czytelny raport a jednocześnie mamy zapisany komplet danych, do którego możemy się odwołać w przypadku, gdy będzie potrzebna dokładniejsza analiza.

Po wykonaniu scenariusza (w naszym przypadku – dodaniu usługi), LReport pomaga nam sporządzić raport ze stanu po wykonaniu testu:

Rysunek 2 - Stan bazy danych po wykonaniu testu

LReport nie tylko zaprezentował wyniki zapytań po wykonaniu testu. Dodatkowo, uwypuklił zmiany, jakie zaszły w bazie danych. W tabeli CUSTOMERS pole NUMBER_OF_SERVICES jest wydrukowane kursywą, pogrubione i podkreślone. Oznacza to, że wartość tego pola zmieniła się po wykonaniu testu. Rzeczywiście, przed wykonaniem testu była to wartość 2, a po wykonaniu - 3.

W tabeli SERVICES, ostatni wiersz jest wydrukowany kursywą, pogrubiony i podkreślony. W ten sposób oznaczony jest nowy wiersz, tzn. taki, którego przed wykonaniem testu nie było w tabeli. Z tego samego powodu ostatni wiersz tabeli INVOICES ma taki sam format.

Podsumujmy. LReport stworzył za nas czytelny, ładnie sformatowany raport z wyników interesujących nas zapytań. Jednocześnie, zachował komplet danych w plikach

Page 35: Tester.pl - Numer 3

TESTER.PL

Strona 35 z 49

tekstowych, dzięki czemu łatwo będzie przeanalizować komplet danych w przyszłości, gdyby okazało się, że w raporcie nie zawarliśmy ważnych kolumn.

Oczywiście, LReport nie jest tak mądry, aby samemu zdecydować o sposobie formatowania wyników. Musimy go sami skonfigurować. Jak to robimy, pokażę później.

Teraz chciałbym powiedzieć o drugiej ważnej funkcjonalności LReport – porównywaniu rezultatów zapytań z oczekiwaniami.

Automatyzacja testów Śledząc różne opracowania na temat automatyzacji testów można by odnieść

wrażenie, że najważniejszą gałęzią tej dziedziny jest automatyzacja operacji na GUI. Jakkolwiek są aplikacje i środowiska, w których część GUI-owa testów zajmuje dużo czasu, to jest też wiele sytuacji, kiedy jest wręcz przeciwnie. Operacje GUI-owe zajmują wprawnemu testerowi mało czasu w porównaniu w innymi czynnościami, które musi wykonać, aby w pełni przeprowadzić testy. Do takich czynności należą:

• Znajdowanie danych spełniających warunki początkowe scenariusza testowego. Np. mamy reaktywować klienta, który był dezaktywowany 2 miesiące temu i

w momencie dezaktywacji miał określoną grupę przywilejów. Często okazuje się, że znalezienie w bazie testowej takiego klienta zajmuje dużo więcej czasu niż przeprowadzenie potem testu

• Weryfikacja rezultatów Jeżeli testujemy transakcję, która modyfikuje 5 tabel, to dokładna weryfikacja

rezultatów jest zadaniem żmudnym, czasochłonnym, przy którym łatwo popełnić pomyłkę.

• Dokumentacja rezultatów Test automatyczny też jest testem. W związku z tym też musi być

udokumentowany, najlepiej automatycznie.

LReport nie pomoże nam przy wyszukiwaniu danych testowych. Ale może być bardzo użyteczny przy automatycznej weryfikacji i dokumentowaniu rezultatów. Przejdźmy od razu do przykładu.

Przykład – cd. Wyobraźmy sobie, że testujemy funkcjonalność z poprzedniego przykładu. Tym

razem jednak w testowanej aplikacji jest błąd. Błąd polegający na tym, że po dodaniu jednej nowej usługi:

• Pole NUMBER_OF_SERVICES w tabeli CUSTOMERS ma złą wartość • W tablicy SERVICES zamiast jednego, dodawane są 2 wiersze • W tablicy INVOICES powinien być dodany jeden nowy wiersz. Tymczasem, zamiast

tego usunięty zostaje jeden z istniejących.

Oto jak LReport raportuje ten problem dla tablicy CUSTOMERS:

Page 36: Tester.pl - Numer 3

TESTER.PL

Strona 36 z 49

Rysunek 3 - Raportowanie błędu dla tablicy CUSTOMERS

LReport prezentuje wynik zapytania. Poniżej informuje, że pewne wartości w wierszu różnią się od oczekiwanych. Informacja ta jest przekazana w postaci tabelki. Pierwsze kolumny to klucz tabeli (w tym przypadku CUSTOMER_ID). Następnie pokazane są wszystkie kolumny, dla których wartości są inne niż oczekiwane. Pierwszy wiersz zawiera wartości oczekiwane, drugi – faktyczne. Jak widać, po dodaniu jednej usługi, w polu NUMBER_OF_SERVICES pojawiła się wartość 7 zamiast oczekiwanej wartości 3.

Przejdźmy do tabeli SERVICES:

Rysunek 4 - Raportowanie błędu dla tablicy SERVICES

Zamiast jednego, pojawiają się dwa nowe wiersze. Czyli jeden wiersz pojawił się nieoczekiwanie. Zostajemy o tym poinformowani przez LReport.

Tabela INVOICES:

Page 37: Tester.pl - Numer 3

TESTER.PL

Strona 37 z 49

Rysunek 5 - Raportowanie błędu dla tablicy INVOICES

Zamiast dodać jeden wiersz, program jeden wiersz usunął. Efekt jest taki, że brak dwóch oczekiwanych wierszy. Tego, co istniał i został błędnie usunięty oraz tego, który powinien być wstawiony. LReport informuje o tym w sekcji oczekiwanych, ale nie znalezionych wierszy. Przy okazji, proszę zwrócić uwagę na prezentację wierszy, które zostały usunięte - czyli poprzednio były, a teraz ich nie ma. Są one prezentowane z użyciem czcionki przekreślonej.

Konfiguracja narzędzia. LReport jest obiektowo zorientowaną biblioteką napisaną w Perlu. Pakiet instalacyjny

w formacie obsługiwanym przez program ppm, jest dostępny na stronie http://lreport.sourceforge.net. Zainstalowanie go nie powinno być trudne.

Osobnym tematem jest definicja układów raportów i definicja oczekiwań dla weryfikacji rezultatów. Oto przykład definicji układu raportu dla tablicy CUSTOMERS i SERVICES:

Page 38: Tester.pl - Numer 3

TESTER.PL

Strona 38 z 49

Rysunek 6 - Definicja raportu dla tabel CUSTOMERS i SERVICES

Do definicji używamy pliku XML. Dla każdej tabeli (a tak naprawdę zapytania) tworzymy tag SELECT. Zawiera on takie składowe jak STATEMENT, która określa jakie zapytanie jest bazą danego raportu, KEY, określająca kolumny, które jednoznacznie identyfikują wiersz. Kolumny, które się pokażą w raporcie i ich ewentualne kolory definiujemy za pomocą tagów COLUMN. Tym samym fragment:

<COLUMN name=”NUMBER_OF_SERVICES”

color=”yellow” />

określa, że prezentacja wyników zapytania na tabeli CUSTOMERS będzie zawierać kolumnę NUMBER_OF_SERVICES i wartości w tej kolumnie zostaną pokolorowane na żółto.

Jest więcej szczegółów konfiguracyjnych. Nie będę ich tu teraz przedstawiał, bo nie jest celem tego artykułu przedstawienie kompletnej instrukcji obsługi narzędzia LReport. Chciałem raczej przedstawić jego możliwości. Dokumentację można znaleźć na stronie http://lreport.sourceforge.net. Szczególnie polecam tutorial.

Page 39: Tester.pl - Numer 3

TESTER.PL

Strona 39 z 49

Zakres zastosowań LReport jest narzędziem, które niewątpliwie może przynieść duże oszczędności czasu

potrzebnego na testowanie. Jednak definicja raportów a już tym bardziej specyfikacja oczekiwań do weryfikacji rezultatów zajmują czas. Dlatego LReport powinien być używany do pomocy w operacjach powtarzających się. Jeżeli testujemy daną funkcjonalność co miesiąc to wtedy warto sięgnąć po LReport. Jeżeli przy testach różnych funkcjonalności zawsze interesują nas zmiany w tych samych tabelach to wtedy warto sięgnąć po LReport. Warto też sięgnąć po LReport przy automatyzacji testów i tworzeniu testów regresyjnych. We wszystkich tych przypadkach, początkowa inwestycja szybko się zwróci.

Są jednak inne sytuacje. Czasami testujemy nową funkcjonalność, która często gruntownie się zmienia, co powoduje, że w każdym teście wykonujemy inne zapytania i już do nich nie wracamy. Czasami badamy aplikację, tworząc szereg jednorazowych zapytań. Wtedy LReport nie jest najlepszym wyborem. Lepiej wtedy skorzystać z narzędzia typu RapidSQL, OraTool czy SQLPlus. Doskonale nadają się one do tych celów i trudno mi sobie wyobrazić coś lepszego.

Teraźniejszość i przyszłość LReport LReport jest rozwijany jako projekt open source na stronie Source Forge

(www.sourceforge.net). Na razie narzędzie rozwijam sam. Jestem otwarty na wszelkie sugestie, uwagi i pomoc. Pierwszą wersję narzędzia używam w codziennej pracy w zespole System Test w Polkomtelu.

Page 40: Tester.pl - Numer 3

TESTER.PL

Strona 40 z 49

Badboy – nie taki zły jak nazwa wskazuje

Robert Rzeszotek

Robert Rzeszotek

Jest absolwentem Wydziału Elektrycznego Politechniki Warszawskiej. Od ponad dwóch lat uczestniczy w projektach informatycznych jako tester. Jest pracownikiem firmy IMPAQ. Dziedzina jego zainteresowań to wykorzystanie narzędzi Open Source w procesie testowania.

Page 41: Tester.pl - Numer 3

TESTER.PL

Strona 41 z 49

Badboy7 – nie taki zły jak nazwa wskazuje

Robert Rzeszotek

Kiedy testy regresyjne doprowadzają testera do szału wciąż powtarzającą się pracą, zazwyczaj przychodzą myśli o automatyzacji, jako złotego środka na pozbycie się rutyny. Tu pojawiają się problemy: jakie narzędzie wybrać, ile będzie to kosztować i ile czasu zajmie nam przygotowanie scenariuszy testowych. W niniejszym artykule chciałbym zaprezentować narzędzie do automatyzacji testów aplikacji okienkowych, narzędzie darmowe, które nie wymaga poświęcania ogromnej ilości czasu na przygotowanie scenariuszy testowych. Narzędziem tym jest Badboy. Badboy znacznie ułatwia testowanie poprzez nagrywanie skryptów testowych i późniejsze ich odtwarzanie. Nie posiada żadnych skomplikowanych funkcji, jest prostym intuicyjnym narzędziem do wykonywania testów jednostkowych.

Badboy działa monitorując aktywną przeglądarkę Internet Explorer, która jest widoczna w jego oknie. Zapisuje interesujące nas wydarzenia, które można potem zobaczyć, jeśli się zechce, oraz powtórzyć nagrany scenariusz. Narzędzie to pozwala na odtwarzanie scenariuszy testowych tak, by użytkownik widział kroki, jakie wykonuje narzędzie, jeśli nie interesuje nas obserwowanie kroków, scenariusz testowy możemy uruchomić w tle.

Badboy jest zbudowany z trzech głównych okien:

• Okna przeglądarki, gdzie dokonuje się nagrywania jak również gdzie obserwuje się działanie scenariusza testowego.

• Okna scenariusza testowego, gdzie widzimy wszystkie przypadki testowe, kroki tych przypadków, zmienne jakie należy zdefiniować, odpowiedzi i ich czas.

• Okno narzędzi, gdzie widzimy: o wyniki wykonywanych testów wraz ze średnim czasem, który był poświęcony

na odtworzenie scenariusza, o wartości zmiennych jakie są używane w danym teście. Podczas wykonywania

testu są wyświetlane tylko te zmienne, które są używane akurat w tym momencie.

o wykres czasów wykonywania poszczególnych scenariuszy w czasie, o opcje dostępne przy tworzeniu scenariuszy testowych, o listę dostępnych form w nagranym scenariuszu.

7 http://www.badboy.com.au/

Page 42: Tester.pl - Numer 3

TESTER.PL

Strona 42 z 49

Rys. 1 Interfejs narzędzia Badboy

Poniżej zostanie przedstawiony przykład scenariusza testowego, który umożliwi zaprezentowanie niektórych funkcji tego narzędzia. Scenariusz testowy będzie testował wysyłanie sms’a ze strony jednego z operatorów GSM. Dodatkowo zostanie zmodyfikowany tak, by wysyłał na różne numery, które będzie pobierał z pliku.

Nagrywanie

Nagrywanie może być włączone bądź wyłączone. Jeśli Badboy jest w trybie nagrywania, w nagłówku okna przeglądarki pojawia się komunikat.

Jeśli naciśniemy przycisk Play bądź Stop, nagrywanie zostanie zakończone. Jeśli naciśniemy przycisk Play, automatycznie zostanie zatrzymane nagrywanie, a skrypt testowy zostanie uruchomiony. Można ponownie zacząć nagrywanie poprzez naciśnięcie na czerwony przycisk Nagrywania w pasku narzędzi.

Tak więc można zacząć nagrywać nasz scenariusz testowy znając podstawową funkcję tego narzędzia. Naciskamy czerwony przycisk nagrywania wybierając go z paska narzędzi. W polu Url: wpisujemy stronę http, którą chcemy przetestować i naciskamy przycisk Go. Strona zostanie załadowana do okna BadBoy’a. Wykonujemy odpowiednie czynności na stronie, które umożliwią nam wysłanie sms’a; czyli wpisanie numeru, na który zostanie wysłany sms, oraz treści, jaka ma być wysłana. Wysyłamy przez naciśnięcie przycisku Wyślij. Zatrzymujemy nagrywanie przez naciśnięcie przycisku Stop w pasku narzędzi. Wykonane w oknie operacje zostały zapisane w formie kroków w oknie kroków scenariusza

Okno przeglądarki

Okno kroków scenariusza testowego

Okno narzędzi

Page 43: Tester.pl - Numer 3

TESTER.PL

Strona 43 z 49

testowego. Zostały również zapisane dane, które wprowadzaliśmy nagrywając ten scenariusz testowy.

W ten nieskomplikowany sposób mamy już sporządzony prosty scenariusz testowy, który możemy wykonać przez naciśnięcie przycisku Play. Wynik każdego z kroków zostanie zapisany przy każdym kroku scenariusza testowego. Dodatkowo zostanie też zapisany czas odpowiedzi każdego z kroków.

Mając nagrany scenariusz testowy możemy go przeanalizować. Postaram się opisać ten scenariusz testowy.

Rys. 2. Okno dialogowe scenariusza testowego

Każdy scenariusz testowy posiada swój nagłówek, pod którym są umieszczone kroki testowe jakie narzędzie wykonuje podczas odtwarzania scenariusza. W pierwszym kroku zawsze znajduje się lokalizacja serwera, gdzie zainstalowana jest aplikacja. W zależności od testowanej strony, w krokach pojawiają się zmienne i odpowiedzi. Zmienne pojawiają się w tych krokach, w których jest zapis danych. Natomiast odpowiedzi pojawiają się w każdym wykonanym kroku. W odpowiedziach podany jest dodatkowo czas odpowiedzi. Pojawienie się odpowiedzi informuje o wykonaniu kroku. Jeśli test jest powtarzany, wiemy ile razy, ponieważ liczba powtórzeń jest zliczana.

Nagłówek testu

Krok testu

Odpowiedzi testu

Zmienne

Page 44: Tester.pl - Numer 3

TESTER.PL

Strona 44 z 49

Zmienne jakie po nagraniu scenariusza znajdują się w krokach są to zmienne, które wprowadziliśmy podczas nagrywania testu. Każda zmienna odpowiada jednemu polu w aplikacji, do którego została wprowadzona dana. Możemy je modyfikować poprzez dwukrotne kliknięcie zmiennej. Pojawi nam się okno gdzie możemy dokonać

Rys. 3 . Okno właściwości zmiennych

Rys. 4. Okno dialogowe dołączania źródła zmiennych

zmiany wartości zmiennej, jak też

nazwy samej zmiennej (rys. 3).

Mamy już wykonany

główny test, który został

uruchomiony i działa. Teraz do tego

scenariusza dodamy sprawdzanie

różnych danych. Dane w Badboy

mogą być pobierane bezpośrednio

z bazy danych, arkusza

kalkulacyjnego, Accessa, bazy

FoxPro. W niniejszym przykładzie

dane będą wprowadzone w Excelu.

Po zdefiniowaniu tablicy

zmiennej naciskamy przycisk Next.

Pojawia nam się okno: preferencje źródła

danych. Mamy w jednym okienku

zmienne, a w drugim wartości. Możemy

je odpowiednio sformatować

w zależności od typu danych. Jeśli to

mają być dane tekstowe, powinniśmy

odznaczyć pierwszą opcję w poniższych

polach. Jeśli danymi mają być liczby

całkowite, odhaczamy drugą opcję, a jeśli

Page 45: Tester.pl - Numer 3

TESTER.PL

Strona 45 z 49

Rys. 5 . Okno dialogowe preferencji źródła danych

dane mają być z miejscami po przecinku, wtedy należy wybrać opcję trzecią (rys 5).

Gdy mamy już zdefiniowane źródło danych, musimy dla każdej zmiennej w polu wartości wpisać nazwę zmiennej, która będzie pobierana np. z excela. W naszym przypadku nazwy zmiennych w arkuszu excela zostały tak samo nazwane, jak zmienne ze scenariusza testowego. Aby zdefiniować zmienne tak, by były pobierane z arkusza excela, należy kliknąć na zmienną prawym klawiszem myszy i wybrać opcję Add as variable. W polu wpisujemy nazwę zmiennej, jaka jest zdefiniowana w arkuszu. Po modyfikacji zmiennych okno scenariusza testowego wygląda jak pokazano na rysunku 6.

Rys. 6. Okno dialogowe scenariusza testowego o wprowadzeniu nazw zmiennych

Gdy już mamy ustawione zmienne musimy ustawić pętlę, która pomoże nam, by te zmienne przyrastały. Dokonujemy tego w następujący sposób: klikamy prawym klawiszem na krok testu, który odpowiada za wprowadzanie danych do aplikacji i wybieramy z menu rozwijalnego Insert -> Increment. Otrzymujemy okno dialogowe właściwości przyrostu zmiennych. Pierwsza opcja to przyrost wszystkich zmiennych, natomiast druga opcja to przyrost specyficznej zmiennej, która może być wybrana z listy rozwijalnej.

Dodatkowo w oknie zmiennych

pojawiły się zmienne, które zostały

dodane. Jeśli klikniemy prawym

klawiszem myszy, będziemy mieli

kilka opcji, które można użyć, by

zmienne dostosować do scenariusza

testowego. Możemy dodać zmienną,

włączyć bądź wyłączyć automatyczny

przyrost zmiennych. Ustawimy dla

wybranych zmiennych automatyczny

przyrost na „yes”. Dzięki temu dla

każdego wykonania testu będzie

pobierana inna dana ze zbioru

zmiennych. Ustawienia

automatycznego dokonujemy klikając

na zmienną w oknie zmiennych,

prawym klawiszem otwieramy menu

i wybieramy opcję Auto increment on.

Page 46: Tester.pl - Numer 3

TESTER.PL

Strona 46 z 49

Rys. 7. Okno właściwości przyrostu zmiennych

Teraz, aby scenariusz był wielokrotnie powtarzalny, należy ustawić mu ilość powtórzeń. Dokonujemy tego w następujący sposób:

Klikamy prawym klawiszem myszy na nagłówek testu i wybieramy z menu rozwijalnego Properties. Pojawia się nam okno dialogowe, w którym mamy możliwość zdefiniowania nazwy scenariusza i liczby powtórzeń dla wszystkich zmiennych oraz dla zmiennej, którą wybierzemy z rozwijalnej listy.

Rys. 8. Okno właściwości przypadku testowego

Aby scenariusz testowy był kompletny, należy dodatkowo ustawić warunek, który ma być sprawdzany przez nasz scenariusz testowy. W naszym scenariuszu testowym będzie to informacja o potwierdzeniu wysłania smsa. Ustawienia tego warunku dokonujemy przez dodanie go do odpowiedniego kroku, wykorzystując funkcję Assertion. W oknie dialogowym możemy dokładnie zdefiniować jak ma być wykonywane to sprawdzenie. Czy ma być sprawdzany tekst, który ma istnieć na tej stronie czy nie; czy ma być sprawdzany we wszystkich ramkach czy tylko na górze.

Otrzymujemy okno dialogowe

właściwości przyrostu zmiennych. Pierwsza

opcja to przyrost wszystkich zmiennych,

natomiast druga opcja to przyrost

specyficznej zmiennej, która może być

wybrana z listy rozwijalnej.

Zmienne, które

chcemy by były zmieniane

podczas wykonywania testu,

zostały ustawione.

Page 47: Tester.pl - Numer 3

TESTER.PL

Strona 47 z 49

Rys. 9 Okno dialogowe do definiowania właściwości sprawdzania warunków

Rys. 10 Skonstruowany scenariusz testowy

Tak skonstruowany scenariusz testowy pojawi nam się w oknie scenariusza testowego w formie jak na rysunku 10.

Gdy scenariusz testowy jest już gotowy możemy zacząć go używać. Uruchomienie zostaje wywołane poprzez komendę Run. Test zostaje wykonany, a jego wyniki pokazane w oknie wyników.

Możemy zrobić zrzut ekranu

w przypadku niepoprawności, możemy

ustawić poziom zawiadomienia nas

o wystąpieniu nieprawidłowości oraz dalsze

zachowanie scenariusza po wykryciu

niepoprawności. W naszym scenariuszu

zostało ustawione szukanie wyrażenia

zawartego we wszystkich ramkach. Jeśli

zostanie wykryta jakaś nieprawidłowość,

zostanie wysłane powiadomienie,

a wykonywanie scenariusza testowego

zostanie przerwane w miejscu, gdzie

wystąpiła nieprawidłowość.

Tak zaprojektowany scenariusz

testowy możemy uruchomić

przyciskiem Run z paska narzędzi.

Wykona on 10 takich samych

scenariuszy, ale dla każdego ze

scenariuszy, dla każdej zmiennej,

będzie pobierana inna wartość z pliku

zewnętrznego.

Page 48: Tester.pl - Numer 3

TESTER.PL

Strona 48 z 49

Rys. 11 Okno wyników

Przy dużej ilości scenariuszy testowych i dużej ilości powtórzeń można uruchomić scenariusz testowy w tle. Można to zrobić w łatwy sposób uruchamiając Tools -> Run Background Treads. Uruchamiając w ten sposób scenariusze nie mamy jednak wyników. Jednak przy testach stabilności, bądź też przy testach wydajności, ta funkcja jest niezwykle przydatna.

Rys. 12 Okno dialogowe właściwości wykonywania testów w tle

Dodatkowo nie musimy uruchamiać scenariusza, przez otwieranie Badboya, lecz używając do tego linii poleceń. Szczególnie jest to użyteczne kiedy nie zależy nam na obserwacji czynności, które wykonuje narzędzie i chcemy np. uruchomić zestaw scenariuszy testowych na całą noc.

To jedna z podstawowych funkcji tego narzędzia, umożliwiająca tworzenie nieskomplikowanych automatycznych testów dla aplikacji okienkowych. Jak każde narzędzie, i to ma swoje ograniczenia, ale posiada również swoje zalety.

Prezentacja wyników jest dla każdego kroku, nie

dla całego scenariusza, co przy skomplikowanych

scenariuszach testowych może być kłopotliwe, jeśli

przyjdzie nam znaleźć krok, który nie przeszedł testu.

Możemy w tym oknie

ustawić ilość wątków, jakie

mają być wykonywane,

czyszczenie odpowiedzi, a także

opóźnienie z jakim ma być

wykonywane kolejne

powtórzenie. Uruchomienie

następuje poprzez naciśnięcie

przycisku Start.

Page 49: Tester.pl - Numer 3

TESTER.PL

Strona 49 z 49

Do zalet narzędzia należy zaliczyć prostotę w użyciu. Obsługa jest prawie intuicyjna, więc aby wykorzystywać to narzędzie do pracy nie jest konieczne żadne szkolenie, wystarczy trochę czasu by przeczytać może część instrukcji i „pobawić się” narzędziem, nagrywając jakieś scenariusze testowe. Dodatkowym plusem jest to, że efekty tego co narzędzie robi, pojawią się w jego oknie dialogowym.

Niewątpliwą wadą narzędzia jest ograniczona ilość powtórzeń danego scenariusza. Maksymalnie można powtórzyć skrypt testowy 500 razy. Jeśli skrypt zostanie wykonany 500 razy, tester ponownie musi włączyć skrypt. Również blokujące są odpowiedzi, czyli wyniki każdego z kroków. Przy dużych scenariuszach testowych będzie powstawało dużo tego typu informacji, co będzie spowalniało narzędzie. Co jakiś czas należy wyczyścić odpowiedzi. Nie ma tego problemu, jeśli testy będą wykonywane w tle. Wadą jest również niemożliwość zapisania wyników w pliku, który po serii testów można by poddać analizie.

Narzędzie Badboy jest wciąż udoskonalane. Co jakiś czas pojawiają się nowe wersje zawierające nowe funkcjonalności pozwalające na konstruowanie coraz bardziej zaawansowanych scenariuszy. Może za jakiś czas to narzędzie będzie porównywalne do komercyjnych narzędzi do automatyzacji testów.