Regândirea clasele de echivalență, partea 1

Traducere: Olga Alifanova

(Nu, nu am de gând să editați acest articol pe Wikipedia. Nu mă simt amuzant sau util pentru a oferi expertiza în schimbul pentru iubitorii de anonimi argumente. Wikipedia este foarte important, deoarece servește ca referință generală, dacă doriți să critice populare cunoștințe, dar foarte popular cunoștințe ea incorigibil. popular întotdeauna câștigă, iar oamenii nu le place în special pentru a specula).

„clase de echivalență - această testare tehnicieni, care segmentează datele de intrare în clase de valori reciproc echivalente bazate pe care sunt create cazuri de testare.“

Nu chiar. Nu există nici un motiv să credem că clasele de echivalență sunt limitate la „datele de intrare“. Procesul de gândire de divizare în clase de echivalență pot fi folosite pentru a datelor de ieșire, versiunile produsului, mediul de testare, sau caz ca atare. Clasele de echivalență se aplică în cazul în care orice variabilitate poate afecta rezultatul testului.

Da, aceasta este o tehnică, ci un cuvânt mai potrivit ar fi „euristică“. Euristică - o metodă de încredere pentru a rezolva problema. Clasele de echivalență sunt extrem de fiabile, dar între timp util.

„În principiu, cazurile de testare sunt scrise astfel încât să acopere fiecare clasă cel puțin o dată. Această tehnică încearcă să identifice cazuri de testare care identifică clase de erori, reducând astfel cantitatea totală necesară pentru cazuri de testare“.

Acest text este destul de bun. Notă sintagma „în principiu“ și utilizarea cuvântului „încearcă“. Aceste cuvinte liniștitoare, și acest lucru este important, deoarece clasele de echivalență - o euristice, nu un algoritm.

Say Între timp, pe „studii de caz, care sunt necesare pentru a lucra“ - este de a devia conversația departe de testare. Testarea - nu este crearea de cazuri de testare, și nu este cu siguranță cu privire la numărul de cazuri de testare pe care le creați. Testarea - este efectuarea de experimente, precum și numărul total de experimente merge mult dincolo de întrebări de genul „ce fel de caz test pe care am scrie pe?“. Această frază ar trebui să sune ca „reducerea efortului de testare.“

„Avantajul acestei abordări - o reducere a timpului necesar pentru testarea software-ului cu mai puține cazuri de testare“.

Ne pare rau, dar nu. Avantajul clase de echivalență nu este de a reduce numărul de cazuri de testare. Nu e chiar cu privire la reducerea efortului de testare per se (deși este adevărat că această tehnică este „încercarea“ de a reduce efortul de testare „) clase de echivalență -. Este doar o modalitate de a ghici în mod sistematic în cazul în care s-ar putea ascunde cele mai mari bug-uri, și de a ajuta să se concentreze eforturile tale. clasele de echivalență - o tehnică de prioritizare vă ajută să explicați alegerea și protejați-o mai bună prioritizare a în sine nu reduce efortul de testare, dar scopul - .. da peste bug-uri majore, mai devreme sau mai târziu, și vrem să ne întâlnim să-i scop. . Direcția, mai degrabă decât la întâmplare Și dacă facem o treabă bună, atunci da, vom cheltui mai puțin efort de testare a redus efortul de testare -. Un efect secundar al claselor de echivalență ale echipamentelor.

„Clasele de echivalenta sunt aplicate de obicei la datele introduse de la componenta de testare, dar poate fi, de asemenea, utilizat pentru datele de ieșire în cazuri rare. Ele reprezintă în derivă din cerințele sau specificațiile pentru introducerea de date, care afectează procesarea obiectului testat“.

Clasele de echivalență - un proces care toți sunt angajate în mod informal, nu numai de testare, ci și în viața de zi cu zi. Când deschideți ușa - vă decideți în mod conștient pentru a împinge acest special pătrați placi de centimetru de metal? Nu, deloc. Știi că pentru majoritatea ușilor nu contează în cazul în care acestea sunt împingându. Toate locurile care pot fi împinse, sunt echivalente. Această clasă de echivalență! Noi folosim clasele de echivalență în tot ceea ce interacționăm.

Da, aplicăm această tehnică la datele de ieșire, și da, putem lua în considerare clasele de echivalență bazate pe specificațiile, dar considerăm, de asemenea, clase bazate pe ceea ce am aflat despre software-ul de testare. Noi folosim clasele de echivalență, bazate pe tot ceea ce știm. Dacă ceea ce știm este greșit (de exemplu, dacă există un software neașteptate bug-uri), clasele noastre de echivalență vor fi, de asemenea incorectă. Și asta e bine, dacă ați înțeles că este euristică, nu biletul de aur pentru a testa perfectă.

„Conceptul fundamental al claselor de echivalență se bazează pe sistemul de relații de echivalență software -. Este, de fapt, funcția de estimat, implementat algoritmul pe unele limbaj de programare Dacă ați setat datele de intrare, o parte din instrucțiunile algoritmului sunt acoperite (a se vedea ..“ Codul de acoperire „), iar unele - nu ... "

Conceptul fundamental al claselor de echivalență nu are nimic de-a face cu știința calculatoarelor sau calcule. Este vorba despre logica. Logica a existat cu mult timp înainte de calculatoare. clasa de echivalență - este, aproximativ vorbind, un set. Acesta este un set de lucruri care împărtășesc o anumită proprietate. Interesant în ceea ce privește proprietățile clasei de echivalență - este util pentru studiul unui anumit risc produs. Cu alte cuvinte, testul claselor de echivalență - este credința că fiecare membru al unui anumit grup de lucruri va fi mai mult sau mai puțin la fel de probabil pentru a găsi un fel de bug, atunci când este aplicat sub forma unui test specific.

Dacă am defini o „condiții de încercare“ ca ceva despre produsul sau împrejurimile sale, care pot fi explorate în testare, pot defini clase de echivalență de genul: clasa de echivalență - un set de teste sau condiții de încercare, care sunt echivalente în ceea ce privește un anumit risc de băcănie context.

Această definiție implică faptul că cele două tipuri de date care nu sunt echivalente cu o eroare poate fi echivalentă pentru a găsi un alt bug. De asemenea, înseamnă că, dacă am modelat produsul greșit, nu vom ști clasele de echivalență corecte. În general, având în vedere că insectele vin în toate dimensiunile și soiuri, pentru a aloca clase de echivalență perfect adevărat - că e la fel de avans, fără testare, să știe unde bug-uri sunt în produs. Acest lucru se datorează faptului că clasele de echivalență se bazează pe presupuneri, ce tipuri de bug-uri pot apărea în produs.

Principala problemă cu cele mai multe sfaturi privind testarea