Ce este testarea matricei ortogonale? (Exemplu)

⚡ Rezumat inteligent

Testarea ortogonală cu matrice este o tehnică de tip „cutie neagră” care utilizează matrice statistice pentru a construi un set compact de teste, acoperind fiecare pereche de valori de intrare cu mult mai puține cazuri de testare decât necesită testarea combinată exhaustivă.

  • 🎯 Promisiunea fundamentală: Fiecare pereche de niveluri dintre oricare doi factori apare cel puțin o dată în rulările generate.
  • 🔢 Evaluare: Un tablou se scrie LRulează(NiveluriFactori), deci L9(3⁴) înseamnă nouă rulări pentru patru factori pe trei niveluri.
  • 📉 Scara economisirii: Patru factori la trei niveluri, fiecare se prăbușesc de la 81 de combinații exhaustive la nouă runde ortogonale.
  • 🧮 Regula echilibrului: Coloanele trebuie umplute astfel încât doi factori să nu se miște împreună, altfel tabelul nu este ortogonal.
  • 🛠️ scule: GeneratorMetode precum PICT și ACTS construiesc automat matricea, ceea ce elimină principala sursă de eroare manuală.
  • ⚠️ Limită cunoscută: Acoperirea în perechi nu poate detecta un defect care necesită trei sau mai multe valori specifice împreună.

Testarea matricelor ortogonale prin reducerea combinațiilor de intrări la un set mic și echilibrat de cazuri de testare

Testarea matricei ortogonale

Testarea matricei ortogonale (OAT) Testarea prin matrice ortogonală este o tehnică de testare software care utilizează tablouri ortogonale pentru a crea cazuri de testare. Este o abordare statistică a testării și este utilă în special atunci când sistemul testat acceptă un număr mare de intrări de date. Testarea prin tablouri ortogonale maximizează acoperirea testelor prin împerecherea și combinarea intrărilor, astfel încât sistemul este exersat cu relativ mai puține cazuri de testare și un timp de execuție mai scurt.

De exemplu, atunci când trebuie verificat un bilet de tren, trebuie testați factori precum numărul de pasageri, numărul biletului, numărul locurilor pe scaun și numărul trenurilor. Testarea fiecărui factor individual este dificilă. Este mai eficient atunci când inginerul de control al calității combină mai multe date de intrare și le testează într-o singură rulare. În astfel de cazuri, putem utiliza metoda de testare Orthogonal Array.

Acest tip de împerechere sau combinare a intrărilor pentru a economisi timp se numește testare în perechi, iar tehnica OATS este o modalitate de a produce un set de teste în perechi. Deoarece tehnica funcționează exclusiv pe baza valorilor de intrare și a rezultatelor așteptate, fără nicio vizualizare a codului intern, aceasta aparține... testare cutie neagră familie.

De ce OAT (testarea matricei ortogonale)?

În scenariul actual, livrarea unui produs software de calitate către client a devenit o provocare din cauza complexității codului.

În metoda convențională, suitele de testare includ cazuri de testare derivate din fiecare combinație de valori de intrare și precondiții. Prin urmare, trebuie acoperit un număr n de cazuri de testare.

Însă, într-un scenariu real, testerii nu vor avea timpul necesar pentru a executa toate cazurile de testare pentru a descoperi defectele, deoarece există și alte activități, cum ar fi documentația, sugestiile și feedback-ul din partea clientului, care trebuie luate în considerare în faza de testare.

Prin urmare, managerii de testare au dorit să optimizeze numărul și calitatea cazurilor de testare pentru a asigura maximum Testați acoperirea cu efort minim. Acest efort se numește Optimizare a Cazurilor de Testare.

  • Metodă sistematică și statistică de testare a interacțiunilor în perechi.
  • Interacțiunile și punctele de integrare sunt o sursă majoră de defecte.
  • Executați un set bine definit și concis de cazuri de testare care sunt susceptibile de a descoperi majoritatea (nu toate) erorilor.
  • Abordarea ortogonală garantează acoperirea în perechi a tuturor variabilelor.

Prin urmare, tehnica se află alături de celelalte metode de reducere a inputurilor pe care o echipă le folosește deja. Partiționarea echivalenței și analiza valorilor limită se decide ce valori merită testate pentru un singur câmp; tablourile ortogonale decid care dintre aceste valori ar trebui testate împreună.

Cum este reprezentată testarea cu matrice ortogonală

Un tablou ortogonal este descris printr-o formulă scurtă, mai degrabă decât prin conținutul său. Diagrama de mai jos arată cum cele trei mărimi din acea formulă se raportează la forma tabloului.

Notație de matrice ortogonală care arată sesiuni, factori și niveluri în formula L(Runs)

  • Runs (N) – Numărul de rânduri din matrice, care se traduce în numărul de cazuri de testare care vor fi generate.
  • Factori (K) – Numărul de coloane din matrice, care se traduce prin numărul maxim de variabile care pot fi gestionate.
  • Niveluri (V) – Numărul maxim de valori care pot fi luate pentru orice factor singular.

Un singur factor are de obicei 2 până la 3 intrări de testat. Numărul maxim de intrări decide nivelurile.

Citește numele matricei de la stânga la dreapta. În L9(34) 9 este numărul de execuții, 3 este numărul de niveluri pe care le poate lua fiecare factor, iar exponentul 4 este numărul de factori. Același articol folosește L4(23), adică patru rulări pentru trei factori care au fiecare câte două niveluri.

Două proprietăți fac o matrice ortogonală și ambele trebuie să fie respectate înainte ca numărul de execuții să poată fi considerat de încredere:

  • Soldul: fiecare nivel al unui factor apare de același număr de ori în propria coloană.
  • Completitudine pe perechi: pentru oricare două coloane, fiecare combinație a unui nivel din fiecare apare de același număr de ori.

Dacă a doua proprietate eșuează, tabelul este pur și simplu un set de test scurtat, nu o matrice ortogonală, iar garanția perechilor care justifică reducerea nu se mai aplică.

Cum se face testarea matricei ortogonale: exemple

  1. Identificați variabila independentă pentru scenariu.
  2. Găsiți cea mai mică matrice cu numărul de rulări.
  3. Hartați factorii în matrice.
  4. Alegeți valorile pentru orice nivel „rămășit”.
  5. Transcrieți rundele în cazuri de testare, adăugând orice combinații deosebit de suspecte care nu sunt generate.

Cele două exemple de mai jos aplică acești cinci pași, mai întâi unei probleme mici cu două niveluri și apoi uneia mai mari cu trei niveluri.

Exemplu 1

O pagină web are trei secțiuni distincte (Sus, Mijloc, Jos) care pot fi afișate sau ascunse individual de către un utilizator.

  • Numărul de factori = 3 (sus, mijloc, jos)
  • Număr de niveluri (vizibilitate) = 2 (ascuns sau afișat)
  • Tip matrice = L4(23)

(4 este numărul de rulări obținute după crearea matricei OAT)

Dacă folosim tehnica convențională de a schimba câte o secțiune odată, avem nevoie de cazuri de testare de genul 2 X 3 = 6 cazuri de testare.

Cazuri de testare scenarii Valori de testat
Testul #1 ASCUNS Top
Testul #2 AFIȘATE Top
Testul #3 ASCUNS De jos
Testul #4 AFIȘATE De jos
Testul #5 ASCUNS De mijloc
Testul #6 AFIȘATE De mijloc

Aceste șase runde variază câte o secțiune pe rând și nu plasează niciodată două secțiuni împreună într-o stare aleasă. Testarea fiecărei combinații ar dura, în schimb, 23 = 8 alergări.

Dacă mergem pentru testarea OAT, avem nevoie de 4 cazuri de testare, așa cum se arată mai jos:

Cazuri de testare TOP De mijloc De jos
Testul #1 Ascuns Ascuns Ascuns
Testul #2 Ascuns Vizibil Vizibil
Testul #3 Vizibil Ascuns Vizibil
Testul #4 Vizibil Vizibil Ascuns

Verificați oricare două coloane ale acelui tabel și toate cele patru perechi Ascuns/Vizibil apar exact o dată, ceea ce reprezintă proprietatea de ortogonalitate în cea mai mică formă a sa.

Exemplu 2

Funcționalitatea unui microprocesor trebuie testată:

  • Temperatura: 100C, 150C si 200C.
  • Presiune: 2 psi, 5 psi și 8 psi
  • Doping Cantitate: 4%, 6% și 8%
  • Rată de depunere: 0.1 mg/s, 0.2 mg/s și 0.3 mg/s

Folosind metoda convențională, avem nevoie de 34 = 81 de cazuri de testare pentru a acoperi toate intrările. Să lucrăm în schimb cu metoda OATS:

Număr de factori = 4 (temperatură, presiune, doză)ping cantitatea și rata de depunere)

Niveluri = 3 niveluri per factor (temperatura are 3 niveluri – 100°C, 150°C și 200°C – și, la fel, ceilalți factori au, de asemenea, câte 3 niveluri fiecare)

Creați o matrice ca mai jos:

1. Coloane cu Nr. factori

Caz de testare # Temperatura Presiune Doping sumă Rata de depunere

2. Introduceți numărul de rânduri egal cu nivelurile per factor. De exemplu, temperatura are 3 niveluri. Prin urmare, introduceți 3 rânduri pentru fiecare nivel de temperatură.

Caz de testare # Temperatura Presiune Doping sumă Rata de depunere
1 100C
2 100C
3 100C
4 150C
5 150C
6 150C
7 200C
8 200C
9 200C

3. Acum, împărțiți presiunea, facețiping cantitatea și ratele de depunere în coloane.

De exemplu: Introduceți 2 psi pentru temperaturile de 100°C, 150°C și 200°C, introduceți în mod similar doping cantitate de 4% pentru 100°C, 150°C și 200°C și așa mai departe.

Caz de testare # Temperatura Presiune Doping sumă Rata de depunere
1 100C 2 psi 4% 0.1 mg/s
2 100C 5 psi 6% 0.2 mg/s
3 100C 8 psi 8% 0.3 mg/s
4 150C 2 psi 4% 0.1 mg/s
5 150C 5 psi 6% 0.2 mg/s
6 150C 8 psi 8% 0.3 mg/s
7 200C 2 psi 4% 0.1 mg/s
8 200C 5 psi 6% 0.2 mg/s
9 200C 8 psi 8% 0.3 mg/s

Prin urmare, în OA, avem nevoie de 9 cazuri de testare de acoperit.

Notă de precizie: umplerea celorlalte trei coloane drept în jos, așa cum se întâmplă în pasul 3, repetă aceeași presiune, făping și depunerea triplă în interiorul fiecărui bloc de temperatură. Presiune și facping Prin urmare, cantitatea se mișcă împreună, iar perechi precum 2 psi cu 6% nu apar niciodată, așa că cele nouă rânduri de mai sus reprezintă un set de test redus, mai degrabă decât o matrice ortogonală reală. L9 echilibrat(34) matricea de mai jos păstrează aceleași nouă runde, acoperind în același timp toate cele nouă perechi de niveluri între fiecare doi factori.

Caz de testare # Temperatura Presiune Doping sumă Rata de depunere
1 100C 2 psi 4% 0.1 mg/s
2 100C 5 psi 6% 0.2 mg/s
3 100C 8 psi 8% 0.3 mg/s
4 150C 2 psi 6% 0.3 mg/s
5 150C 5 psi 8% 0.1 mg/s
6 150C 8 psi 4% 0.2 mg/s
7 200C 2 psi 8% 0.2 mg/s
8 200C 5 psi 4% 0.3 mg/s
9 200C 8 psi 6% 0.1 mg/s

Testarea ortogonală a matricelor vs. testarea pe perechi (toate perechile)

Cei doi termeni sunt folosiți interschimbabil în multe echipe, însă nu sunt identici. Ambii vizează acoperirea perechilor de valori, dar diferă prin cât de strict este constrâns tabelul rezultat.

Aspect Testarea matricelor ortogonale Testarea pe perechi (toate perechile)
Structura subiacentă Matrice ortogonală, împrumutată din designul experimentelor Matrice de acoperire, generată de un algoritm de căutare
Regula de acoperire Fiecare pereche apare de un număr egal de ori Fiecare pereche apare cel puțin o dată
Factori cu niveluri inegale Necesită o matrice cu niveluri mixte, care s-ar putea să nu existe pentru forma cerută Gestionat direct de generator
Număr tipic de rulări Egal sau puțin mai mare, din cauza cerinței de echilibru Egal sau mai mic pentru aceleași intrări
Constrângeri între valori Dificil de exprimat în interiorul matricei Suportat de majoritatea generatoarelor moderne

În practică, o matrice ortogonală echilibrată este modelul de predare mai clar și alegerea mai sigură atunci când factorii au același număr de niveluri, în timp ce o matrice de acoperire este ceea ce produc majoritatea instrumentelor pentru proiecte reale cu intrări inegale și neobișnuite. Ambele sunt complementare testarea tabelului de decizie și testarea tranziției de stare, care vizează regulile și secvențele de afaceri, mai degrabă decât combinațiile de valori.

Instrumente de testare a matricelor ortogonale

Construirea manuală a unei matrice este practică doar pentru exemplele mici de mai sus. Dincolo de patru sau cinci factori, echipele folosesc un generator, iar instrumentul decide numărul de rulări pentru ele.

  • PICT: un generator de linie de comandă open-source de la MicrosoftParametrii și valorile acestora sunt scriși într-un fișier model text simplu, iar instrumentul imprimă setul de combinații. Sunt acceptate constrângeri și submodele, ceea ce este important atunci când anumite perechi de valori sunt nevalide. Consultați Depozit PICT.
  • FAPTE: un instrument de cercetare de la NIST care generează matrici de acoperire pentru acoperire bidirecțională până la șase direcții și publică, de asemenea, o bibliotecă de matrici precalculate. Este disponibil de la Proiectul de testare combinatorie NIST.
  • Platforme combinatorii comerciale: cerință de adăugare a instrumentelor găzduite traceficacitate, rezultate așteptate și export într-un sistem de gestionare a testelor, potrivit pentru echipe mai mari care au nevoie de o pistă de audit.
  • Biblioteci de matrice publicate: Tabelele standard precum L4, L8, L9, L16 și L18 sunt tabelate și pot fi copiate direct atunci când numărul de factori și niveluri se potrivește.

Indiferent de instrumentul care produce tabelul, rândurile generate trebuie transformate în cazuri rulabile cu date reale și rezultate așteptate, apoi planificate ca orice altă suită din interior. tehnici de testare a software-ului deja utilizate în cadrul proiectului.

Avantajele testării cu matrice ortogonală

  • Garantează testarea combinațiilor în perechi ale tuturor variabilelor selectate.
  • Reduce numărul de cazuri de testare.
  • Creează mai puține cazuri de testare care acoperă în continuare interacțiunea fiecărei perechi de variabile.
  • O combinație complexă a variabilelor poate fi gestionată.
  • Este mai simplu de generat și mai puțin predispus la erori decât seturile de testare create manual.
  • Este util pentru Testare de integrareși la fel de util pentru testarea configurației, unde combinațiile de browser, sistem de operare și dispozitiv se înmulțesc rapid.
  • Îmbunătățește productivitatea datorită ciclurilor și timpilor de testare reduse.

Compușii economisiți în timpul testarea regresiei, deoarece o suită echilibrată mai mică este suficient de ieftină pentru a fi rulată din nou la fiecare ciclu, în timp ce o suită combinată exhaustivă este de obicei rulată o singură dată și apoi abandonată în liniște.

Dezavantajele testării cu matrice ortogonală

  • Pe măsură ce datele de intrare cresc, complexitatea designului cazului de testare crește. Drept urmare, efortul manual și timpul petrecut cresc, iar testerii trebuie să opteze pentru Testarea automatizării.
  • Acoperirea pereche nu este o acoperire completă. Un defect care apare doar atunci când trei valori specifice apar împreună poate trece prin matrice neatins.
  • Factorii cu un număr diferit de niveluri nu se mapează corect pe o matrice standard, așa că este nevoie de o matrice cu niveluri mixte sau de un generator de matrice de acoperire.
  • Alegerea nivelurilor este o chestiune de judecată. Dacă o valoare importantă este omisă din modelul de intrare, nicio matrice nu o poate recupera.
  • Constrângerile dintre valori, cum ar fi o metodă de plată care este validă doar într-o singură țară, sunt dificil de exprimat și de obicei produc rânduri nevalide care trebuie eliminate manual.

Niciuna dintre aceste limitări nu exclude tehnica; ele pur și simplu îi stabilesc limitele. Rețelele ortogonale reduc problema combinării, în timp ce analiza riscurilor și testarea domeniului decideți de la ce factori merită un loc în model pentru început.

Greșeli sau erori în timpul efectuării OAT

  • Direcționarea efortului de testare către zona greșită a aplicației.
  • Alegerea parametrilor greșiți de combinat.
  • Utilizarea testării cu matrice ortogonale unde setul de intrări este suficient de mic pentru a fi testat exhaustiv.
  • Aplicarea manuală a testării cu matrice ortogonală pe un model suficient de mare pentru a necesita un generator.
  • Bazându-se exclusiv pe testarea matricelor ortogonale pentru aplicații cu risc ridicat, unde este necesară o acoperire mai profundă.

Ultimul element este cel care provoacă cele mai mari daune în practică. În cazul unei caracteristici critice pentru siguranță sau financiare, setul de perechi reprezintă un minim și nu un plafon, și este în mod normal suplimentat cu cazuri specifice la testarea sistemului nivel și cu planul mai amplu descris în tipuri de testare software.

Întrebări frecvente

Este o tehnică de tip „cutie neagră”. Tabloul este construit doar din parametrii de intrare și valorile lor permise, fără referire la codul sursă, ramificații sau stare internă, astfel încât poate fi proiectat înainte de finalizarea implementării.

Testerul construiește modelul de intrare, de obicei cu un analist de business care confirmă ce valori sunt legale. Dezvoltatorii contribuie acolo unde un parametru este intern, cum ar fi o setare a cache-ului. Calitatea modelului, nu matricea, decide valoarea suitei.

Nu, depinde de ele. Partiționarea și analiza limitelor reduc fiecare câmp la o mână de valori reprezentative, iar matricea decide apoi care dintre aceste valori sunt combinate. Rularea matricei pe valori brute nefiltrate produce un tabel inutil de mare.

Este necesar un tablou cu niveluri mixte, de exemplu L18, care combină coloane cu două și trei niveluri. În cazul în care nu se potrivește niciun tablou standard, un generator de tablouri de acoperire gestionează direct forma și returnează un tabel mai mic decât dacă ar forța fiecare factor la același număr de niveluri.

Orice defecțiune care necesită trei sau mai multe valori specifice simultan. Studiile empirice ale datelor privind defecțiunile arată că majoritatea defecțiunilor sunt declanșate de unul sau doi parametri, motiv pentru care acoperirea în perechi este eficientă, dar acoperirea în trei direcții este recomandabilă pentru caracteristicile critice.

În principal la nivel de integrare și sistem, unde interacționează mai multe componente sau setări. De asemenea, se potrivește matricilor de mediu, cum ar fi browserul, sistemul de operare și dimensiunea ecranului, precum și oricărui produs configurabil în care combinațiile livrate depășesc numeric fereastra de testare disponibilă.

Învățarea automată citește cerințele și jurnalele de producție pentru a propune factorii și nivelurile importante, iar modelele de istoric al defectelor clasifică ce combinații merită o acoperire triplă. Matematica matriceală este deterministă - partea inteligentă constă în alegerea a ceea ce intră în model.

Acesta elaborează fișierul model pentru un generator, bucla bazată pe date care citește rândurile și aserțiunile din jurul acestora. Verificați afirmația de acoperire cu generatorul în sine, deoarece un model de limbaj poate produce un tabel plauzibil care nu este ortogonal.

Rezumați această postare cu: