Canoo WebTest: 2.2 Vzory testovania – Model Based a Data Driven Testing

130

Model Based Testing je spôsob testovania aplikácie vychádzajúci z modelu, ktorý popisuje funkcionality testovaného systému SUT – System Under Test . Model je však len abstraktná prezentácia vlastností a správania SUT. Testovacie prípady – Test Cases – odvodené od tohto modelu sú na tej istej úrovni abstrakcie ako model. Tieto abstraktné testovacie prípady sú známe pod menom Abstract Test Suite. Abstract Test Suite nemôže byť priamo vykonaná ako skutočný test nad SUT, na to je potrebný Executable Test Suite, ktorý je odvodený od Abstract Test Suite, a už dokáže komunikovať so SUT.  Tento mechanizmus je zabezpečený mapovaním abstraktných test case na konkrétne test case, ktoré sú už schopné priamej komunikácie s SUT.

Výhodou odvodenia testov od modelu a nie od zdrojového kódu SUT – je, že model-based-testing je black-box-testing – testovanie čiernej skrinky pri ktorom test posiela do čiernej skrinky vstupné hodnoty a kontroluje tie výstupné. To tvorí základ pre vytvorenie automatického testovacieho prostredia pre testovanie webových aplikácií.

Stačí ak si predstavíme model, ktorý popisuje vlastnosti SUT, konkrétne vlastnosti webovej aplikácie, čiže v jej abstraktnej forme sú to aktívne HTML prvky webovej stránky. tlačítka [buttons], vstupné polia [inputs], výberové polia [select], JavaScripty, atď. Od tohto abstraktného modelu odvodený test suit a od neho odvodený test step [executable] – ktorý už konkrétne implementuje napríklad kroky ako clickButton , alebo setInputField , alebo setSelectField . Z týchto „puzzle“- krokov je potom možné poskladať celý test case.

Príklad model-based testing workflow (offline test case generation). IXITimplementation extra information poukazuje na všetky potrebné informácie, ktoré sú potrebné ak sa Abstract Test Suite konvertuje na executable. Zväčša obsahuje informácie o zmysle a cieli  testu, mapovanie dát a konfigurácii SUT:

 

Data Driven Testing

Automatizované testy prehrávajú sekvencie akcií-testovacích krokov, ktoré boli zachytené nejakým rekordérom krokov, alebo naprogramované  programátorom testov.  Test sa vždy týka určitej oblasti aplikácie a my môžeme povedať, že ak prejde sekvencia testovacích krokov od začiatku do konca bez chyby, test je v poriadku.

Ale je to naozaj tak? Alebo môžeme povedať, že test dopadol dobre len pre dáta, ktoré boli použité pri konkrétnej testovacej sekvencii-scenára a teda pre dáta, ktoré boli zachytené v čase nahrávania/vytvárania testovacej sekvencie.

Aby sme mohli obsiahnuť väčší záber nášho testu, potrebujeme spustiť rovnakú sekvenciu testovacích krokov, ale vždy s inými dátami. Ak aj celá táto sekvencia prebehne  bez chýb –  potom môžeme povedať s oveľa väčšou istotou, že je test v poriadku a aplikácia sa chová tak, ako očakávame. Používanie rôznych údajov na rovnaký “testovací workflow” umožňuje Data Driven Testing.

Data Driven Testing  teda znamená, že testovací skript vo forme formálneho zápisu testovacích krokov za svojho behu číta dáta z externého úložiska dát [súbor, alebo databáza] a tieto dáta používa vo forme premenných v testovacom skripte. Testovací script je potom prehľadný a táto separácia dát a funkcionality testu prispieva k celkovému  sprehľadneniu testov.

Postup vykonávania data driven testu je nasledovný. Testovacie kroky sa vykonávajú v cykloch. Počet cyklov je zhodný s počtom riadkov, ktoré obsahujú testovacie data – napríklad vo forme Excellovskej tabuľky:

  1. Získanie dát z úložiska – jeden riadok,
  2. Použitie získaných dát [napr.: vyplnenie formulára na webe a jeho submit na server ],
  3. Kontrola výsledkov – response od servera,
  4. Pokračovanie získania dát z úložiska – ďalší riadok.

Ukážka dát uložených v súbore MS Excel, použitých ako premenné v Canoo WebTest testovacom skripte:

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.