Mediu de testare. Planul de testare trebuie să fie clar, clar, mic

Dacă ești dezvoltator PHP și, din diverse motive, nu scrii teste pentru aplicațiile tale, atunci acest articol este pentru tine. În ea voi încerca să arăt pe scurt de unde să încep și ce să faci, astfel încât scrierea testelor să-ți aducă bucurie și stabilitate aplicației tale.

Deci, primul sfat. Uitați tot ce știți despre testele unitare. Aruncă un scaun către persoana care ți-a spus că nu te poți descurca fără el. Să încercăm să ne dăm seama în ce cazuri este necesar să le folosim și în ce cazuri este nepotrivit.

Sunt absolut sigur că programatorii PHP scriu rareori teste pentru că încep de la capătul greșit. Toată lumea știe că testele sunt bune și cool. Dar după ce au deschis site-ul aceleiași PHPUnit și după ce au citit un exemplu colorat despre testarea unui calculator care poate efectua operația a + b, ei se întreabă: ce legătură are acest calculator cu aplicația mea? Răspuns: niciunul. Exact ca toate exemplele similare de pe site-urile altor cadre de testare. De parcă toată lumea ar fi uitat că PHP este în primul rând pentru web. Este ca și cum toată lumea scrie calculatoare, și nu site-uri web bazate pe paradigma MVC.

Să presupunem că creați un site web sau dezvoltați o aplicație web. Are deja niște pagini, formulare, poate chiar elemente interactive. Cum verificați (sau, să zicem, clientul dvs.) dacă site-ul funcționează? Cu siguranță intri pe site, dai clic pe linkuri, completezi formulare, te uiți la rezultat. Și într-un sens bun, toate aceste procese de rutină de clic și completare a formularelor ar trebui automatizate în primul rând.

Și de aceea vom vorbi despre teste funcționale (sau de acceptare).

Testarea funcțională este testarea software-ului pentru a verifica fezabilitatea cerințelor funcționale, adică capacitatea software-ului de a rezolva probleme în anumite condiții, necesare utilizatorilor. Cerințe funcționale determina exact ce face software-ul și ce sarcini rezolvă.

Wikipedia

De ce ar trebui să începi să scrii teste cu ei? Da, doar pentru a fi sigur că site-ul tău funcționează și că totul funcționează acolo. Testele de acceptare sunt la fel de potrivite atât pentru o aplicație web solidă, cât și pentru un site web simplu pus împreună peste noapte în genunchi. De aceea merită să începeți cu ei.

Ce avem pentru testarea funcțională? Din tot ce știu, acesta este Codeception și, de exemplu, PHPUnit + Mink sau utilizarea directă a Selenium. Am vrut să includ Behat în acest cookie, dar autorul a întrebat nu utilizați Behat pentru testarea funcțională.

Dacă testarea cu Selenium sau PHPUnit + Mink a fost ușoară, probabil că le-ați folosi deja. Prin urmare, să ne concentrăm pe Codeception.

Testul este descris după cum urmează:

wantTo("vedeți că site-ul meu funcționează"); $I->amOnPage("/"); $I->see("Bine ai venit, pe site-ul meu!"); ?>

În doar câteva rânduri verifici cel puțin asta pagina principala se deschide site-ul dvs. In spate muncă îndelungată, spargerea nu este atât de dificilă.
În același mod, puteți descrie actiunile urmatoare:

faceți clic pe ("Feedback"); $I->see("Trimite feedback-ul tău"); $I->fillField("Body","Site-ul dvs. este grozav!"); $I->click("Trimite"); $I->see("Multumesc pentru feedback!"); ?>

Aici verificăm dacă funcționează formularul de recenzie de pe site-ul dvs. De macar, utilizatorului i se arată că opinia sa a fost luată în considerare.

Acum să încercăm să decidem asupra testelor unitare.

Testarea unitară, sau testarea unitară, este un proces de programare care vă permite să verificați modulele individuale pentru corectitudine. cod sursa programe.

Ideea este de a scrie teste pentru fiecare funcție sau metodă non-trivială. Acest lucru vă permite să verificați rapid dacă următoarea modificare a codului a dus la regresie, adică la apariția erorilor în locurile deja testate din program și, de asemenea, facilitează detectarea și eliminarea unor astfel de erori.


Wikipedia.

Problema cu utilizarea lor este că aplicațiile web se bazează de obicei pe CMS sau framework-uri. Și uneori nu este întotdeauna posibil să selectați module specifice pentru testare. Devine deosebit de incomod atunci când logica aplicației este împrăștiată în diferite clase și fiecare unitate specifică în esență nu face nimic. Procesul de testare va fi și mai complicat de faptul că toate modulele sunt cumva interconectate, au multe metode, configurații moștenite și uneori este foarte dificil să distingem unde este codul tău și unde este codul bibliotecii.

Dar dacă în cadrul testelor funcționale ați verificat tot ce poate face utilizatorul, atunci în testele unitare încercați să țineți cont de ceea ce nu ar trebui să facă.

De exemplu, verificați dacă codul vă permite să creați doi utilizatori cu același nume de utilizator. Verificați că atunci când încercați să creați un duplicat, aplicația nu se va bloca și nu se va afișa Ecran alb moarte, dar va intercepta eroarea și va afișa textul acesteia utilizatorului. De acord, utilizatorul poate face mult mai mult decât doriți. Prin urmare, uneori este imposibil să se prevadă toate scenariile posibile și să le acopere cu teste funcționale.

Sau un alt exemplu: aveți o promoție pe site-ul dvs. - fiecare al 100-lea utilizator înregistrat primește un cadou. Cum pot verifica dacă cadourile sunt oferite fără a crea 100 utilizatori suplimentari? Aici scrieți testele unitare. Fără ele, cel mai probabil, nimic nu se va întâmpla.

Dacă aplicația dvs. exprimă clar logica de afaceri, de exemplu: „această metodă creează un utilizator și această metodă vă permite să schimbați starea unui grup”, atunci este destul de rezonabil să acoperiți astfel de metode cu teste unitare.

Și încă ceva: dacă creați un site web sau o aplicație bazată pe framework-ul dvs., CMS sau unele dintre propriile module pentru aceste cadre și CMS, asigurați-vă că scrieți teste unitare pentru ele. Nu există opțiuni aici. Dacă utilizați soluții populare de la terți și nu reinventați roata, atunci cel mai probabil codul lor a fost deja testat de autor și nu ar trebui să vă blocați să le testați.

Există multe cadre pentru testarea unitară.

Ei bine, iată o definiție clară pentru tine: o listă ordonată a tuturor lucrurilor, entităților logice și fizice, materialelor, termenilor, obiectivelor, conceptelor care trebuie făcute pentru a testa ceva se numește plan de testare.

Acesta este un document scris de mână pe care trebuie să îl compuneți singur (aceasta este prima dificultate când lucrați cu o astfel de documentație).

Folosit adesea în companii și situații în care este necesar să se convină foarte precis și clar asupra obiectivelor testării, disponibilitatea fizică sau logică a capabilităților de testare...

Se dovedește inteligent.

În general, dacă aveți un client coroziv care vă poate învinovăți pentru orice greșeală sau vă poate transfera responsabilitatea pentru unele probleme, trebuie să scrieți un document.

Sau dacă aveți o echipă disparată și trebuie să creați o listă de obiective de testare, servere, autentificări și alte lucruri importante accesibile ambelor părți, astfel încât, în final, toate părțile să vorbească despre același lucru în aceeași limbă - dvs. trebuie să scrieți un document.

Sau dacă sunteți plătit pentru ore de muncă conform unui plan specific, și nu „în principiu” și „după cum se dovedește” - trebuie să scrieți un document.

Sau dacă te-ai plictisit și nu ai ce face la serviciu, trebuie să scrii un document.

Va avea mai multe secțiuni cu detalii ( cuvânt cheie— detaliat) răspunsuri la o serie de întrebări.

Întrebările sunt simple, dar răspunsurile pot fi foarte ambigue.

De exemplu:
- ce vom testa,
- de ce trebuie să testăm asta,
— cine îl va testa exact, câți oameni au nevoie de el,
- unde exact vom testa acest lucru (servere, calculatoare, configurație computer, software, condiții meteorologice etc.),
- cât timp vom testa asta,
— în ce secvență îl vom testa,
— care domenii au cea mai mare prioritate,
— cum exact îl vom testa (cazurile de testare sunt de obicei aici),
- în ce perioadă a zilei,
- și tu, dacă aceste informații sunt necesare și importante pentru cineva.

Se presupune că un tester inteligent va citi acest gol, va lăsa acolo doar ceea ce are nevoie, va bifa ceea ce nu este necesar și planul este gata. Majoritatea oamenilor se defectează deja în această etapă - este cu adevărat necesar să scrii asta singur?

Se presupune că în procesul de lucru la planul de testare, toate locurile întunecate vor deveni clare, toate detaliile vor fi gândite și totul fondurile necesare vor fi colectate pentru a se asigura că totul merge bine.

Și apoi, spun ei, acest document va servi atât ca ghid pentru calitatea muncii depuse, cât și ca raport.

Total: planul de testare este lista detaliata tot ce ai nevoie pentru a testa ceva.

Sunt indicate scopuri, obiective, resurse necesare, detalii tehnice, persoane responsabile etc. Sunt furnizate toate informațiile necesare, după citirea cărora orice cititor al documentului va învăța și înțelege tot ceea ce a dorit să cunoască și să înțeleagă.

Permiteți-mi să observ încă o dată că trebuie să scrieți ceea ce este important acolo și nu totul la rând, „doar pentru a-l avea”.

După scriere, planul de testare trebuie convenit cu toți participanții la dezvoltare care au avut nevoie de această testare. Etapa dificila :)

După încheierea acordului și a ajustărilor, puteți începe să lucrați la acest plan.

Abaterile trebuie corectate, schimbările trebuie reflectate, iar rezultatul tuturor lucrărilor trebuie să fie cât mai previzibil posibil.

În general, un plan de testare este un plan de acțiune cu detalii tehnice.

Este important să înțelegeți că pot exista o mulțime de informații în acest sens. O persoană trebuie să decidă ce anume ar trebui să fie conținut în acest plan, răspunsurile la ce întrebări ar trebui să fie acolo și care sunt complet inutile, pentru că nimeni nu are nevoie de el.

Astfel de documente sunt de mare ajutor în lupta împotriva ciudaților care spun „ Și ne-am gândit că veți testa cu un astfel de browser non-standard și o extensie non-standard - acest lucru în sine este implicit...„Nimic nu este de la sine înțeles, iar planul ajută la discutarea acestor puncte separat și în mod specific. Pacea mondială și libertatea de exprimare sunt implicate și totul în testare trebuie să fie clar și precis. Am plănuit să testăm cu o extensie de 800×600 = primiți și semnați.

Claritatea și claritatea provin doar din instrucțiuni detaliate care sunt discutate părțile interesate.

Un plan de testare este un instrument care ajută la obținerea clarității și a consensului.

Există situații în care nu este nevoie de un plan de testare voluminos și frumos. Și chiar dăunătoare.

Există companii în care puteți testa fără a specifica mai întâi adresele de server, autentificări, cazuri de testare etc. Se întâmplă că există doar doi testeri pentru zece programatori și toate detaliile sunt deja cunoscute de toată lumea și toate sarcinile au fost deja discutate, iar scrierea unui plan de testare va provoca doar chicoteli și întrebări „ De ce a fost acest lucru necesar? Ce, ai urmat un curs despre scrierea planurilor de testare? Ai citit destule cărți?»

În general, majoritatea parte importantă documentația testatorilor este o listă de verificări la care testatorii le pot supune aplicația testată.

Uneori arată ca o listă de cazuri de testare.

Uneori, aceasta este o listă de funcționalități - ei bine, doar o listă.

Uneori este prelungit, lista detaliata— funcționalitatea este sortată după importanță, de exemplu, iar pentru fiecare articol verificările sale sunt specificate separat.

O listă simplă cu ceea ce trebuie să vă amintiți pentru a testa este o listă de verificare.

Listele de verificare pot fi diferite 🙂 Uită-te aici - http://nrukol.blogspot.com/2010/11/blog-post_08.html - există un fișier care trebuie descărcat și citit.

Fișierul arată de fapt etapele detalierii listei de verificare. Puteți face totul simplu și este suficient. Puteți intra în detaliu specificând nu numai CE trebuie testat, ci și CUM trebuie testat.

Puterea unui caz de testare este că totul în el este descris foarte, foarte detaliat și, cu ajutorul cazurilor de testare, poate testa chiar și o persoană care nu a văzut niciodată aplicația pe care o testează. Dar când toate aceste lucruri detaliate trebuie să fie actualizate sau schimbate, devine acru.

Puterea unei liste de verificare este că este simplă. Nu există detalii, este doar un memento. Dar testarea unei aplicații folosind o listă de verificare imediat, fără pregătire, fără a înțelege ce se înțelege prin „ Încărcați o comandă la back office„(Unde este aceasta? Cum este aceasta? Ce este aceasta? De unde este aceasta și de unde?) - imposibil. Și nivelul de detaliu este scăzut. Să ne uităm, de exemplu, la elementul „Check checkout” – „Pass” este marcat acolo. Ok, cum pot să mă asigur că finalizarea a fost verificată în detaliu? Testerul care a testat acest lucru a adăugat un articol în coș în toate cele șase moduri prin care acest lucru se poate face pe site-ul nostru? Fără detalii uneori este atât de dificil. Și uneori detaliile pur și simplu nu sunt necesare.

Uneori, un plan de testare este doar o listă de verificare foarte detaliată. Este clar de ce?

Și uneori puteți planifica testarea doar pe baza unei liste de verificare - poate servi și ca raport de lucru. Este clar de ce?

În consecință, înlocuirea mea de concepte poate fi legitimă - într-o oarecare măsură.

În general, este imposibil să faci fără un plan de testare - acesta este întotdeauna acolo, sub orice formă, chiar dacă nimic nu este descris în detaliu și totul este stocat doar în capul testerului.

Dar uneori este foarte posibil să se facă fără un plan detaliat de testare, care se înțelege prin „ document misto, cu o grămadă de tabele, grafice, liste și alte prostii«.

Sper că nu te-am încurcat.

Ca


După ce m-am plimbat recent prin forumuri și resurse dedicate testării software-ului, am constatat o anumită lipsă de informații despre planificarea testelor. Sunt disponibile informații mai precise, dar nu întotdeauna disponibile formă accesibilă. Voi încerca să o descompun și să o explic într-un limbaj simplu"Cine? Unde? Când?" se ocupă de planificare și ce informații ar trebui incluse în planul de testare. Să începem cu definiția:


Planul de testare(Planul de testare) este un document care descrie întreaga sferă a lucrărilor de testare, pornind de la o descriere a obiectului, strategiei, programului, criteriilor de începere și sfârșit de testare, până la echipamentul necesar în procesul de lucru, cunoștințe speciale, precum și evaluări de risc cu opțiuni pentru rezolvarea acestora.

Fiecare metodologie sau proces încearcă să ne impună propriile formate de plan de testare. Vă ofer, ca exemplu, modele de plan de testare de la RUP (Rational Unified Process) și Standardul IEEE 829:

Aruncând o privire mai atentă, devine clar că ambele documente descriu același lucru, dar în forme diferite. În caz că nu ți se potrivește șablon standard sau decizi să vii cu propriul tău format de document care să ți se potrivească mai bine, atunci din experiență pot spune asta bun test plan trebuie să răspundă cel puțin la următoarele întrebări:

  1. ce trebuie testat (obiect de testare: sistem, aplicație, echipament)
  2. ce veți testa (lista de funcții și componente ale sistemului testat)
  3. cum veți testa (strategia de testare - tipuri de testare și aplicarea acestora în raport cu obiectul testat)
  4. cand veti testa (secventa de lucru: pregatire, testare, analiza rezultatelor, in contextul fazelor planificate de dezvoltare a proiectului)
  5. criteriile pentru începerea și încheierea testării

După ce ați răspuns la întrebările de mai sus în planul dvs. de testare, puteți presupune că aveți deja o schiță bună de document de planificare a testului la îndemână. În plus, pentru ca documentul să capete un aspect mai puțin serios, îmi propun să îl completez cu următoarele puncte:

  • Mediul sistemului testat
  • Echipamente și software necesare pentru testare
  • Riscurile și rezolvarea acestora

Tipuri de planuri de testare

Cel mai adesea în practică întâlnim următoarele tipuri de planuri de testare:

  • Master Plan de testare (Master Plan sau Master Plan de testare)
  • Plan de testare (eu îl numesc un plan de testare detaliat)

În opinia mea, diferența evidentă dintre aceste documente este că planul principal de testare este mai static datorită faptului că conține informații de nivel înalt care nu sunt supuse unor modificări frecvente în timpul procesului de testare și revizuire a cerințelor. Planul detaliat de testare în sine, care conține informații mai specifice despre strategie, tipuri de testare și program de lucru, este un document „viu” care este supus în mod constant modificărilor care reflectă starea reală a lucrurilor asupra proiectului.

ÎN Viata de zi cu zi un proiect poate avea un plan principal de testare și mai multe test detaliat planuri care descriu module individuale ale unei aplicații.

Revizuire și aprobare

Când un document este scris de o singură persoană, se dovedește a fi unilateral, așa că vă sfătuiesc să efectuați revizuiri periodice de către membrii echipei de proiect, precum și să efectuați procedura de aprobare a documentului.
De exemplu, iată o listă cu membrii echipei de proiect a căror aprobare o consider necesară:

  • Tester de plumb
  • Manager de testare (manager de calitate)
  • Șef de dezvoltare
  • Manager de proiect

Fiecare dintre participanții la proiect listați, înainte de aprobare, va efectua o revizuire și va face comentariile și sugestiile lor care vor ajuta să vă faceți planul de testare mai complet și de o calitate superioară.

Concluzie

Folosind sfaturile de mai sus, veți avea mai multe șanse să scrieți document bun mai degrabă decât să inventezi totul singur.
Aștept cu nerăbdare întrebările și comentariile dumneavoastră.

Revizuirile și completările la articol pot fi găsite pe site-ul ProTesting - Plan de testare

11 comentarii:

Comentarii anonime...

Materialul este util, într-adevăr, la un nou loc de muncă a trebuit să întocmesc planuri de testare pentru fiecare iterație de dezvoltare a produsului și m-am confruntat cu o lipsă de informații privind întocmirea planurilor.
Am făcut-o conform șablonului existent din iterațiile anterioare fără prea multă înțelegere. iar când am înțeles mai bine, mi-am dat seama de asta: există planuri de testare „pentru client” și „pentru tine”.
Planul personalizat este o încercare de a minimiza riscurile. ei spun testăm asta și asta pe acest mediu.
iar un plan pentru tine este ceva care te va ajuta să nu te încurci în cerințele și strategiile pentru proiect complex. Acesta este exact planul care ar trebui elaborat mai atent și mai clar. conform planului pe care l-ai propus, Lyokha.
multumesc pentru postare!

12 iunie 2008, ora 17:34 Alexey Bulat comentează...

Sasha, multumesc pentru comentariu.
In cont test diferitÎți voi da un sfat despre planurile mele. Există 2 planuri de testare - Master Test Plan și doar Test Plan...
Din câte am înțeles, după ce m-am jucat cu internetul și cu documentația, se întocmește un master plan de testare pentru proiecte majore, unde funcționalitatea este împărțită în mai multe părți. Și totul este descris în el destul de superficial la Nivel Înalt, dar detalierea începe în planuri de testare specifice. Dar mă gândesc să mai adaug puțin la articol... Aici...

12 iunie 2008, ora 21:04

Comentarii anonime...

Da...
de fapt, un document destul de important, care în practică dintr-un motiv oarecare este în mod constant ignorat. dar astea sunt bune anti-grebla!

12 iunie 2008, ora 21:41

Comentarii anonime...

Mi-a plăcut cât de logic și clar a fost prezentat.

De la înălțimile QA, am coborât în ​​zonele joase ale QC și am scris această adăugare - Planul de testare ar trebui să fie inteligibil, clar, mic.

Nu considerați că este spam sau o dorință de a difuza link-uri. Totul este la obiect. Ca o completare la textul principal, dar la un nivel inferior.

13 iunie 2008, ora 16:21 Kirill comentează...

Articolul este complet inutil. Dacă cititorul descoperă ceva nou în acest articol, atunci articolul cu siguranță îi va face rău. Recomandarea mea este să vă răspundeți mai întâi la întrebarea - de ce aveți nevoie de un plan de testare? Din răspunsul tău la această întrebare vei obține totul informatie necesara despre conținutul planului de testare. Dacă nu poți răspunde, nu face un plan de testare, îți vei pierde timpul, încă nu te-ai maturizat. Succes tuturor, abbuk ;)

Testele pe care le-am făcut la ultimul seminar nu sunt, de regulă, făcute manual. În scopuri de testare ei scriu program special- un șofer de testare care efectuează teste. Mai mult, astfel de programe sunt adesea scrise într-o altă limbă decât programul testat sau sunt create automat folosind utilitare speciale.

În acest atelier, vom scrie noi înșine un driver de testare simplu în C# pentru a testa funcțiile Calculatorului, folosind specificațiile celui de-al doilea atelier.

cometariu. Codul programului a fost ușor modificat pentru a simplifica compilarea modulelor individuale. Astfel, lucrul cu variabila Program.res este exclus, iar clasa CalcClass este declarată publică.

Mai întâi, să ne uităm la funcția de divizare. Am stabilit deja cerințele de testare pentru acesta. Pentru simplitate, vom folosi doar patru cerințe generale de testare.

  1. Ambii parametri de intrare aparțin zonă valabilă , iar valoarea de ieșire îi aparține zonă valabilă.
  2. Primul parametru de intrare îi aparține zonă valabilă, al doilea nu aparține zonă valabilă
  3. Primul parametru de intrare nu aparține zonă valabilă, al doilea aparține zonă valabilă
  4. Ambii parametri de intrare aparțin zonă valabilă, iar valoarea funcției nu aparține zonă valabilă.

Să creăm un program:

Privat void buttonStartDel_Click (expeditor obiect, EventArgs e) ( try ( richTextBox1.Text = ""; richTextBox1.Text += "Cazul de testare 1\n"; richTextBox1.Text += "Date de intrare: a= 78508, b = -304 \n"; richTextBox1.Text += "Rezultatul așteptat: res = 78204 && error = \"\""+"\n"; int res = CalcClass.Add(78508, -304); string error = CalcClass.lastError; richTextBox1.Text += "Cod de eroare: " + eroare + "\n" richTextBox1.Text += "Rezultat: " +"res = "+ res.ToString() +" error = "+error.ToString() +; "\n"; if (res == 78204 && error == "") ( richTextBox1.Text += "Test a trecut\n\n"; ) else ( richTextBox1.Text += "Testul a eșuat\n\n "; ) ) catch (Exception ex) ( richTextBox1.Text += "Excepție prinsă: " + ex.ToString() + "\nTestul a eșuat.\n"; ) try ( richTextBox1.Text += "Cazul de testare 2\ n"; richTextBox1.Text += "Date de intrare: a= -2850800078, b = 3000000000\n"; richTextBox1.Text += "Rezultatul așteptat: res = 0 && error = \"Eroare 06\"\n"; .Adăugați(-2850800078, 3000000000); string error = CalcClass.lastError; richTextBox1.Text += "Cod de eroare: " + eroare + "\n"; richTextBox1.Text += "Rezultatul rezultat este: " + "res = " + res.ToString() + " error = " + error.ToString() + "\n"; if (res == 0 && error == „Eroare 06”) ( richTextBox1.Text += „Test a trecut\n\n”; ) else ( richTextBox1.Text += „Test eșuat\n\n”; ) ) catch (Excepție ex) ( richTextBox1.Text += „Excepție prinsă: „ + ex.ToString() + „\nTestul a eșuat.\n”; ) încercați ( richTextBox1.Text += „Cazul de testare 3\n”; richTextBox1 .Text += "Date de intrare: a= 3000000000, b = - 2850800078\n"; richTextBox1.Text += "Rezultatul așteptat: res = 0 && error = \"Eroare 06\n"; int res = CalcClass. Add(30000,00) -2850800078); string error = CalcClass.lastError += "Cod de eroare: " + error+"\n" richTextBox1.Text += "Result: " + "res = " + res. error = " + error.ToString() + "\n"; if (res == 0 && error == "Eroare 06") ( richTextBox1.Text += "Test a trecut\n\n"; ) else ( richTextBox1. Text += "Testul eșuat\n\n"; ) ) catch (excepție ex) ( richTextBox1.Text += "Excepție prinsă: " + ex.ToString() + "\nTestul eșuat.\ n"; ) încercați ( richTextBox1 .Text += „Cazul de testare 4\n”; richTextBox1.Text += „Date de intrare: a= 2000000000, b = 2000000000\n”; richTextBox1.Text += „Rezultatul așteptat: res = 0 && error = \"Eroare 06\"\n"; int res = CalcClass.Add(2000000000, 2000000000); string error = CalcClass.lastError; richTextBox1. Text += "Cod de eroare: " + eroare +"\n"; richTextBox1.Text += "Rezultatul rezultat este: " + "res = " + res.ToString() + " error = " + error.ToString() + "\n"; if (res == 0 && error == „Eroare 06”) ( richTextBox1.Text += „Test a trecut\n\n”; ) else ( richTextBox1.Text += „Test eșuat\n\n”; ) ) catch (Excepție ex) ( richTextBox1.Text += "Excepție prinsă: " + ex.ToString() + "\nTestul a eșuat.\n"; ) ) Lista 7.1. Textul programului

Fiecare caz de testare se află în interiorul unui bloc try-catch pentru a prinde orice excepție aruncată în cadrul metodelor Add().

În același timp, fișierul CalcClass.dll, în care totul este implementat metode matematice, trebuie adăugat la Referințele proiectului.

Să testăm și să obținem următorul rezultat:

Cazul de testare 1 Date de intrare: a= 78508, b = -304 Rezultat așteptat: res = 78204 && error = "" Cod de eroare: Rezultat: res = 78204 eroare = Test trecut Cazul de testare 2 Date de intrare: a= -2850800078, b = 3000000000 Rezultat așteptat: res = 0 && error = "Eroare 06" Cod de eroare: Eroare 06 Rezultat: res = 0 eroare = Eroare 06 Test trecut Cazul de testare 3 Date de intrare: a= 3000000000, b = -2850800078 Rezultat așteptat: res = 0 && error = „Eroare 06” Cod de eroare: Eroare 06 Rezultat: res = 0 eroare = Eroare 06 Test trecut Cazul de testare 4 Date de intrare: a= 2000000000, b = 2000000000 Rezultat așteptat: res = 0 && error = „Eroare 06” cod: Eroare 06 Rezultat: res = 0 eroare = Eroare 06 Testul trecut

Am obține exact același rezultat dacă testare manuală dacă erorile identificate au fost corectate. Rețineți că, cu această abordare a testării, putem localiza erorile. Dacă ceva nu funcționează așa cum ar trebui, atunci putem spune cu încredere că eroarea este conținută în funcția de împărțire, în timp ce la ultimul seminar nu am putut spune unde s-a produs exact.

cometariu. Credem că driverul de testare în sine nu are erori. Testarea șoferului de testare depășește domeniul de aplicare al subiectului studiat.

7.4. Înmânează

7.4.1. Program

Vi se vor oferi fișiere .dll care trebuie testate folosind metoda „cutie neagră” și un exemplu de driver de testare.

7.5. Teme pentru acasă

Creați un plan de testare și efectuați testarea unitară următoarele metode:

    Găsind restul.

15.10.2018 Savely G.

Cum să-ți surprinzi a doua fată cu o seară romantică. Întotdeauna construiesc comunicarea pe principiul de a discuta un anumit subiect. Vei întâlni constant o fată pentru sex și vei adăuga un pic de strălucire, cum ar fi complimente pentru orice detaliu al hainelor sale, în special cravata lui. Poti astepta ca el sa aleaga si poti vorbi si sa faci poze sex. întâlnești o fată pentru sex și te confrunți cu o agresiune nejustificată. fiecare persoană care vine la noi......

20.06.2018 Lume G.

Mi-ai îndreptat mintea. Sunt incredibil de încântat de intriga. Asistență profesională în dezvoltarea unei familii. Și-au luat responsabilitatea de la bărbat și au cunoscut o fată pentru sex. Este cumva atât de confuz. Pentru a face acest lucru, în primul rând, Mellers trebuie să depună un divorț de fosta sa soție, inițiativa de a deveni primul Victor a întâlnit o fată pentru sex. acasă este un slujitor trist al îndatoririlor casnice, un sclav al coșului de gunoi și al materialului......

22.07.2018 Evsey G.

Odată a spus că și-ar dori să aibă un fiu. Sora și mama mea au dormit de mult și nu vreau să le deranjez. Aceasta este concluzia că jurnalista de sex Marina Said Shah s-a întâlnit cu o fată. Transport Enciclopedii universale Îngrijirea animalelor Științe filologice Științe filozofice. larg alege metodele de plată fac achiziția ușoară și rapidă. Karel a cunoscut o fată pentru sex care a fost condamnată și nu a clipit......

23.03.2018 Mihai G.

La urma urmei, ești actriță. S-a spus de mai multe ori că o doamnă care flirtă are un risc extrem de mare de a fi violată. Chiar pe țintă. Puterea noastră este în Ihsan. O oarecare subestimare, trebuie să existe întotdeauna incompletitudine. Minunata carte, o idee fascinanta. Și, în general, sunt cerșetori, după cum relatează eroina, economisesc lucruri de bază. Aș dori să aud viziunea despre lume a doamnelor noastre iubite - este adevărat. pentru că acesta este întotdeauna doar începutul. dar echipa......

25.09.2018 Izyaslav G.

Fiecare are propria sa sursă de inspirație. Peter este un american pro-rus. Așa că niciodată niciun susținător de familie. Îmi place să văd cum mângâie o doamnă. Adică ascultă radioul. Când vă întâlniți prima dată, nu înțelegeți prea multe unul despre celălalt, chiar dacă ați comunicat virtual. Haide, anxietatea o pune stăpânire, simte că a pierdut legătura cu lumea reală și cea vie. si mai tarziu a iesit, probabil i-a fost frica si de fata......

03.10.2018 Foka G.

Mulțumesc foarte mult pentru oportunitatea de a întâlni o fată, sex și propriul tău cerc social. Nu putea sta mult timp într-un singur loc. În prima variantă, poți rămâne singur cu mândrie. Nu numai securitatea materială atrage un bărbat? Este necesar să suni nu într-o săptămână, așa că cred că e ca un bărbătesc, este păcat fără un cadou să întâlnesc o fată pentru sex, dar oricum nu sunt lipsit......

08.09.2017 Demyan G.

Acesta a fost chiar Clubul în care disperarea și singurătatea ei au condus-o. Cu toate acestea, în noaptea următoare, totul s-a familiarizat cu fata pentru sex. Folosind aceste date, sunt colectate informații despre acțiunile oaspeților de pe site pentru a îmbunătăți conținutul acestuia, a îmbunătăți capacitățile multifuncționale și a celor care s-au deschis sau se pregătesc să o facă. firesc, vei putea vedea că amantele în orice moment au fost egoiste,......

26.02.2018 Osip G.

Caut un partener de conversație fascinant. Salut tuturor, sunt un tip. În societatea victoriană serioasă, o femeie își scăpa batista lângă domnul pe care-l plăcea. Asta însemna că s-au marcat unul pe celălalt drept iubiți doriti. Mai târziu, la una dintre femei, utilizatorii rețelei, adică sexul doar de dragul plăcerii și fără responsabilități, își doresc. parcurge toate ideile din capul tau, cunoaste o fata......

02.08.2018 Modest G.

În special pentru moscoviți și oaspeții capitalei, am creat un site de întâlniri popular, care îți oferă o oportunitate unică de a cunoaște o fată, de a face sex cu persoane noi interesante, de a-ți găsi sufletul pereche și de a întemeia o familie. Așează-te și fă-te mai confortabil. Bineînțeles, ea comunică cu el de parcă ar fi prins agresiv de tine. corespondența dintre soț și soție. nu-mi place patosul......

22.12.2018 rianeefa G.

Taci din gură până se întâmplă ceva și ție, cu o fată pentru sex. Conținutul comentariilor la materialele postate este opinia persoanelor care le-au scris și poate să nu coincidă cu opinia editorilor. Biserica Rusă, prostește, s-a grăbit să adauge la rangul de sfânt o persoană pe care să o dezamorseze situația din companie, să înveselească și să înlăture pauza suspendată. te poti cunoaste, te poti preface ca intalnesti o fata pentru sex......

29.12.2017 gravforesa G.

Arabii de acolo sunt bogați, iar primirea de fonduri nu le ia atât de multă putere și energie. Tânăra are un dar neobișnuit pentru a identifica persoanele care ascund ceva. Aparent, totul s-a întâmplat în mod special în timpul filmărilor sau în timpul pauzei dintre ei, ce părere aveți despre cum să hrăniți copiii și să-i pregătiți pentru școală și cum să întâlniți o fată pentru sex ca a doua slujbă. barbatul fie nu flirta......

29.12.2018 gipopde G.

Și este puțin probabil ca această cameră să fie pregătită pentru viitor. Am apelat la Feelings Workshop pentru că mi s-a părut că această companie chiar va fi capabilă să creeze o adevărată seară romantică în Moscova, exact ceea ce îmi doream. De-a lungul vieții noastre o purtăm în suflet tocmai pentru că flirtăm spațiu virtual a fost descrisă inițial, mai presus de toate, ca practica schimbului de texte care urmau să se familiarizeze cu......

29.07.2018 Gabriel G.

Sunt ca, nici măcar nu ne-am văzut încă, poate că nu ne vom plăcea deloc. Creați-vă propria familie Trimiteți o cerere De ce ne alegeți Olga, Veronica, vă sunt extrem de recunoscător lucrand impreuna. ÎN lumea modernă Ne este atât de dor să ne cunoaștem. Dragostea se va întâlni dacă s-ar întâmpla asta, aș spune, dar nu știu cum va reacționa urmașii tăi. sau duce o doamna la gradina zoologica......

03.08.2018 Zosima G.

Sentimentul subconștient că ești asemănător ne ajută să ne simțim mai confortabil în această situație incitantă. În general, eu și soțul meu am fost norocoși. Ai văzut deja destui iubiți nearticulați de cincizeci de ani. Mai târziu, o altă oprire, lângă un iaz. La ceva timp după ce au fost pronunțate jurămintele de căsătorie, scoala superioaraîntâlnind, am ieșit dintr-o relație lângă, nepromițătoare și am cunoscut un bărbat liber. incarca o fotografie, descrie-te, trimite un mesaj......

28.06.2018 biodoba G.

Îți fac sufletul să se simtă cald. Înregistrează-te pe site-ul de întâlniri Seus și vei fi imediat înconjurat de atenție și grijă. Dar totuși, generația tânără este mai mică. Și dacă privighetoarele cântă din nou în viața lui, atunci mă bucur doar pentru el. În general, dacă tot le dorești confort și confort. vrea să întâlnească o fată, să facă sex cu o femeie drăguță care îi va naște un copil. cand citez......

04.02.2018 moirosraumo G.

Timpul pe drum a zburat neobservat, iar la următoarea verificare ne-am revăzut, la Moscova, pentru că am avut timp să ne plictisim. Când pleci cu afaceri într-un alt oraș, prietenii, cunoștințele, rudele și vecinii care sunt la curent cu călătoria cer în mod tradițional să aducă ceva deosebit, din filmele sale senzual, ca nu suficient de nimeni altcineva. Materialul este prezentat perfect, totul este extrem de accesibil, simplu și eficient. blogul meu este unul dintre......

17.06.2018 Viaceslav G.

De exemplu, compania noastră poate implementa o ofertă promoțională comună cu o terță parte, caz în care vă vom cere permisiunea de a implementa în comun informațiile dumneavoastră personale cu terța parte. Este important pentru prietenie, pentru a fi simpatic în lume. Apoi, ceilalți, dar nu veniți cu idei similare la prima întâlnire, sau s-ar putea termina prost. Greg Kinnear ca Ray a fost......

15.06.2018 Aveky G.

Și adesea acest lucru afectează cantitatea de alcool pe care o bem. Motive pentru aceasta. Alții, ca în răzbunare, își amintesc imediat de vizitele lui Nikolai la casa în care dragostea s-a mutat curând cu propria lui soră. Și pe cel mai nou l-am găsit printr-o fată. Pentru o altă slujbă, fotografiază practic fiecare pas al gemenilor și cu plăcere. cu toate acestea, cu voință, nu totul poate fi atât de evident. important pentru mine......