FitNesse

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

FitNesse este un server web pe o interfață wiki pentru a facilita faza detestare și verificare în dezvoltarea de software în diferite limbaje de programare.

Se bazează pe Framework for Integrated Test , un instrument open source pentru autoexecutarea și automatizarea testelor de cod, dezvoltat de Ward Cunningham și este conceput atât pentru a efectua teste de acceptare (în care testarea cu succes, cât și acceptarea produsului de către clientul final, este o condiție a unei plăți contractuale și a unui transfer de proprietate), precum și pentru testarea unității de unități software individuale, în care facilitează o descriere detaliată și lizibilă a funcționării sistemului.

FitNesse permite chiar și utilizatorilor non-experți ai unui sistem să introducă o intrare într-un format special, accesibil chiar și neprogramatorilor. Această intrare este interpretată de FitNesse și testele sunt create automat, rulează și rezultatul este afișat utilizatorului, extrem de rapid. Dezvoltatorul sistemului care urmează să fie testat are nevoie de un anumit suport, pentru așa-numitele dispozitive .

FitNesse este scris în Java (de Robert Cecil Martin și alții). Programul inițial suporta numai Java, dar de-a lungul timpului au fost adăugate alte câteva versiuni pentru alte limbaje de programare (C ++, Ruby, Delphi, C # etc.).

Principiile FitNesse

FitNesse ca metodă de testare

FitNesse a fost inițial conceput ca o interfață extrem de utilizabilă în cadrul familiei FitNesse. Intenția sa a fost să sprijine o metodologie agilă de testare a cutiei negre , adică o testare finală a software-ului, fără a ști și a intra în detaliile compoziției sale, care se încheie cu o acceptare sau o respingere. În acest tip de abordare, testerii funcționali colaborează cu programatorii de software pentru a dezvolta un instrument de testare dedicat.

Testerul funcțional este responsabil pentru proiectarea testelor dintr-un punct de vedere funcțional (ieșire care se obține ca răspuns la o anumită intrare) și implementarea lor în FitNesse, în timp ce dezvoltatorul de software are sarcina de a conecta instrumentul de testare FitNesse cu sistemul de mai jos .examen, astfel încât FitNesse să poată efectua testul și să compare rezultatul obținut cu cel așteptat.

Ideea de bază descrisă în cartea Fit for Developing Software [1] este următoarea: o colaborare forțată între dezvoltatori și testeri va îmbunătăți înțelegerea reciprocă a funcționării sistemului și definirea cerințelor, forțând două grupuri să se organizeze într-un limbaj comun, în timp ce învățați să comunicați împreună.

FitNesse ca instrument de testare

Testele funcționale în FitNesse sunt descrise ca un fel de pereche de intrare și ieșire. Aceste perechi sunt exprimate grafic folosind un tabel de decizie (n câmpuri cu valori pentru fiecare variabilă de intrare și o coloană pentru acțiunea decisă rezultată). FitNesse acceptă mai multe dintre aceste tabele, variind de la tabele în care decizia este un câmp textual, până la tabele care interogă împotriva altor tabele care rulează scripturi de testare. Cea mai generală formă este un tabel complet gol care poate fi interpretat după cum dorește designerul. Cu toate acestea, toate testele sunt exprimate într-un fel de tabel.

FitNesse își concentrează testerii și dezvoltatorii în crearea testelor de calitate, fără a se pierde în mecanismul acestor teste, deoarece: crearea ușoară a tabelelor, traducerea tabelelor în apeluri către sistemul supus testării, documentarea ușoară și flexibilă a testelor. În acest scop, FitNesse folosește un wiki care permite în mod notoriu crearea rapidă a paginilor HTML și exprimarea tabelelor de orice fel, evitând ca conținutul acestora să rămână pur textual și, în același timp, să se limiteze la conținut de tip alfanumeric care să poată fi ușor mapate în cadrul apelului la un bloc de software. Tabelul de testare este scris pe o pagină wiki, permițând testerului funcțional să includă cu ușurință text descriptiv (nu cod de programare).

FitNesse ca instrument software

FitNesse este scris în Java și este descărcat ca un singur fișier executabil în format .jar . Executabilul include un motor wiki , un server web care nu este vizibil pentru utilizator, instrumentul de testare și toate resursele (imagini, limbaj de marcare , cum ar fi HTML sau XHTML, care conține semantica paginii web, separate de limbă - nu este prezent - care definește modul în care este afișat raportul final, cum ar fi CSS sau XLST ; etc.) necesare pentru a crea un site web în stilul FitNesse.

În timp ce rulează, FitNesse lansează un server web intern, care afișează paginile testate atât local pe computer, cât și pe Internet și poate rula în continuare pe un laptop sau pe un server real.

După lansarea serverului web, FitNesse își deschide motorul wiki pe acel server. Acest motor wiki se caracterizează din nou prin simplitate, în sensul că nu necesită o bază de date pentru a funcționa, pur și simplu creează o colecție de pagini wiki (navigabile offline ) care sunt interpretate de motorul wiki și afișate de serverul intern. Wiki-ul creat automat de FitNesse include manualul utilizatorului și diverse exemple. Dosarul în care sunt salvate documentele este creat cu tot ceea ce este necesar pentru a publica o pagină Wiki în stilul FitNesse. Aceasta înseamnă că toate imaginile, foile de stil, fișierele JavaScript etc. sunt create împreună în folderul în care se află pagina inițială wiki.

Motorul Wiki este minim, dar oferă toate funcționalitățile de bază ale motoarelor wiki: motor de căutare intern și web , istoricul modificărilor fiecărei pagini și un index de fișiere, precum și unele caracteristici care vă permit să ștergeți, să mutați sau să redenumiți fișiere individuale . Motorul de căutare include instrumente dedicate executării testelor, cum ar fi un buton pentru lansarea execuției, modalități de a crea pagini de test personalizate pentru utilizator și compararea rezultatelor pentru analiza seriilor istorice și identificarea oricăror tendințe. În cele din urmă, are unele funcționalități secundare pentru a bloca pagini individuale sau pentru a asigura accesul sigur la Wiki.

Efectuarea testului

Testarea implică patru componente ale FitNesse:

  • pagina Wiki care exprimă testul ca tabel de decizie;
  • un motor de testare, care interpretează pagina Wiki;
  • un dispozitiv de text , care este apelat de motorul care rulează testul și care la rândul său apelează sistemul testat;
  • sistemul de testat.

Echipa de dezvoltatori realizează două dintre aceste componente: pagina wiki și dispozitivul (mai exact, produce și sistemul testat, dar din punctul de vedere al testării cutiei negre produce doar două componente). Pagina Wiki include câteva tipuri de tabele de decizie care vă permit să exprimați testul. De exemplu, pagina Wiki poate descrie testul pentru o componentă (software sau electronică) care efectuează diviziuni:

Testul componentei diviziunii
! valoarea numărătorului valoarea numitorului rezultat?
10 2 5.0
10 5 2.0
5 2 2.5

Conexiunea dintre motorul de testare generic și sistemul testat se face printr-un bloc de cod Java, numit dispozitiv fix . În acest exemplu, pseudo-codul legat de tabelul de decizie de mai sus este următorul:

Asocierea dintre pagina Wiki și codul numit fixare are loc printr-o mapare cu notație simplă de cămilă . Această mapare se aplică tuturor antetelor de tabel (și coloană) și este utilizată pentru a identifica numele clasei de dispozitive (de exemplu , testul componentei diviziunii ) și metodele sale ( num și denom ).

Codul în cauză:

  • declară tipul dublu al variabilelor „numărător”, „numitor”, „rezultat”;
  • apelează primele două (copie) din tabelul de decizie;
  • le atribuie la două variabile (locale) de același tip dublu , numite „num” și „denom”;
  • le trece ca intrare în sistemul supus testării văzută ca o funcție generică * .divide, fără a privi cum se efectuează calculul;
  • sistemul calculează împărțirea și returnează o valoare reală;
  • codul dispozitivului îl atribuie (copiază) variabilei „rezultat”.

Un antet de coloană care se termină cu un semn de întrebare (de exemplu, Rezultat? ) Este interpretat ca o valoare care trebuie citită (returnată) de dispozitiv, în timp ce celelalte titluri sunt interpretate ca intrare în codul dispozitivului . Titlurile coloanelor din tabelul de decizie sunt tot atâtea metode ale dispozitivului, citite în ordine de la stânga la dreapta.

Testarea motoarelor

Cartarea reală descrisă mai sus (precum și apelul metodelor de fixare), este realizată de un motor de testare. FitNesse acceptă două tipuri de motoare de testare: motorul FIT și motorul SLIM.

POTRIVI

FIT este motorul de testare în jurul căruia s-a dezvoltat inițial FitNesse. De-a lungul timpului a devenit mult mai mult decât un motor de testare, este un cadru metodologic pentru testare, completat cu funcționalități pentru invocarea testelor, interpretarea paginilor wiki și generarea paginilor de ieșire.

SUBŢIRE

SLIM (Simply List Invocatiin Method) este o alternativă la FIT, către care a migrat aceeași echipă de dezvoltatori FitNesse în ultimii ani. Motorul SLIM este o implementare a protocolului Slim. În loc să combine toate elementele unei pagini wiki pentru testare, motorul SLIM se concentrează în schimb pe apelarea codului dispozitivului ; acționează ca un server separat care este apelat de la distanță de către motorul FitNesse Wiki. Interpretarea paginii wiki și generarea paginii de rezultate sunt acum sarcini încredințate motorului Wiki.

În acest fel, codul Java al dispozitivului este simplificat la nivelul unui obiect Java simplu . Acest tip de dispozitiv nu necesită niciun tip de utilizare sau extensii de clasă, ceea ce simplifică și permite concentrarea proiectării codului pe apelurile sistemului testat în modul cel mai adecvat și simplu posibil. De asemenea, permite moștenirea , permițând dezvoltatorilor să creeze ierarhii de dispozitive acolo unde este necesar.

Notă

  1. ^ Rick Mugridge, Ward Cunningham, Fit for Developing Software: Framework for Integrated Tests , ed. Prentice Hall, iunie 2005

linkuri externe