software development
Care sunt metodologiile de dezvoltare și testare software?
Testarea este o parte esențială a procesului de dezvoltare software. Un produs software robust și stabil poate fi livrat cu ajutorul metodologiilor de testare standard care vor ajuta la prezicerea cronologiei sistemului software.
O aplicație software poate deveni și mai complexă cu un număr mare de platforme și dispozitive. Mai important, este necesar să se asigure dacă acestea îndeplinesc cerințele specificate și pot fi instalate și operate eficient pe mașina utilizatorului sau nu.
Cu mijloacele de Securitate , compatibilitate , și utilizare, un produs software ar trebui testat utilizând metodologia de testare adecvată.
În acest articol , vom discuta despre ceea ce se înțelege prin metodologii de testare, cum diferă de strategiile de testare și tipurile de metode de testare software în detaliu.
Ce veți învăța:
- Înțelesul metodologiilor de testare
- Tehnici de testare
- Modele în SDLC
- Diferența dintre metodologiile de testare și strategiile de testare
- Concluzie:
- Lectură recomandată
Înțelesul metodologiilor de testare
Metodologiile pot fi considerate ca ansamblul mecanismelor de testare utilizate în ciclul de viață al dezvoltării software-ului, de la testarea unitară la testarea sistemului. Selectarea unei metodologii de testare adecvate este considerată a fi nucleul procesului de testare.
Tehnici de testare
Practic, există 3 metodologii de testare care sunt utilizate pentru testare. Acestea sunt testarea cutiei albe, testarea cutiei negre și Testarea cutiei gri . Acestea sunt, de asemenea, numite ca Tehnici de testare . Fiecare dintre tehnicile de testare este prezentată mai jos pentru o mai bună înțelegere.
# 1) Testare cutie albă:
Tehnica de testare a cutiei albe este folosit pentru a examina structura programului și logica de afaceri, validează codul sau programul unei aplicații. Se mai numește și ca Testare cutie clară, testare cutie sticlă sau testare cutie deschisă .
Tehnicile de testare a cutiei albe includ:
- Acoperirea declarației: Examinează toate declarațiile de programare.
- Acoperire sucursală: Seria de teste care rulează pentru a asigura dacă toate ramurile sunt testate.
- Acoperirea căii: Testează toate căile posibile pentru a acoperi fiecare declarație și ramură.
# 2) Testare cutie neagră:
Metoda de testare Black Box este folosit pentru a testa funcționalitatea unei aplicații pe baza specificațiilor cerințelor. Spre deosebire de White Box Testing, acesta nu se concentrează pe structura / codul intern al aplicației.
Tehnicile Black Box includ:
- Analiza valorii limită
- Partiționarea echivalenței (partiționarea clasei de echivalență)
- Tabelele de decizie
- Teste de domeniu
- Modele de stat
- Testare exploratorie (necesită mai puțină pregătire și, de asemenea, ajută la găsirea rapidă a defectelor).
# 3) Testarea cutiei gri:
Această metodă de testare se realizează cu mai puține informații despre structura internă a unei aplicații. În general, acest lucru se efectuează numai ca testarea cutiei negre, dar pentru unele domenii critice de aplicare se folosește testarea cutiei albe.
Modele în SDLC
Selectarea metodologiilor de testare adecvate se încorporează și în alegerea unui model adecvat în SDLC.
Modelele includ:
- Model cascadă
- În model
- Model agil
- Model în spirală
- RAD
Să analizăm mai atent fiecare metodologie de dezvoltare software cu o scurtă explicație.
# 1) Model de cascadă
Model cascadă este modelul de bază al ciclului de viață care a fost dezvoltat de Winston Royce în 1970. Acest model reprezintă mai multe etape sau procese într-o manieră secvențială care curge progresiv în jos.
Această abordare este utilă atunci când cerințele sunt bine cunoscute, tehnologia este înțeleasă și resursele cu expertiza necesară sunt disponibile.
Modelul cascadei este definit de următoarele etape:
- Adunarea și analiza cerințelor: Capturați și analizați toate cerințele și asigurați-vă dacă sunt testabile sau nu.
- Proiectare sistem: Creați și documentați proiectarea pe baza analizei cerințelor. Definiți cerințele hardware și software.
- Implementare: Creați un cod robust pentru componente conform designului și integrați-le.
- Testarea sistemului: Componentele integrate formează un întreg sistem, această fază este realizată pentru a asigura dacă sistemul funcționează conform cerințelor, urmărind și raportând progresul testării.
- Implementarea sistemului: Asigurați-vă că dacă sistemul este stabil cu zero erori, toate criteriile de testare au fost
îndeplinit, asigurați-vă că este configurat mediul etc. - Întreținerea sistemului: Se asigură dacă aplicația funcționează eficient conform cerințelor cu mediul adecvat. În cazul în care se constată un defect, acesta ar trebui să fie remediat și implementat (actualizat) în mediu.
Avantajele modelului cascadă:
- Simplu și ușor de înțeles.
- Ușor de gestionat, deoarece fiecare fază are propriile sale livrări specifice.
- Se evită suprapunerea etapelor.
- Bun pentru proiecte mici.
Dezavantaje ale modelului de cascadă:
- Creșterea cantității de risc și incertitudine.
- Odată intrat în faza de testare, nu se poate schimba nimic în etapele anterioare de exemplu Proiectare și codificare etc.
- Nu este bun pentru proiecte complexe și mari.
- Nu este potrivit acolo unde cerințele continuă să se schimbe.
# 2) În model
Modelul V este un extinderea Modelului Cascadei unde execuția procesului are loc într-un stil secvențial în formă de V și este, de asemenea, cunoscut sub numele de model de verificare și validare. În această abordare, există o fază de testare direct asociată în fiecare fază a ciclului de dezvoltare.
S-a dovedit benefic și rentabil decât modelul cascadei, deoarece testarea se efectuează la fiecare fază de dezvoltare, nu la sfârșitul ciclului de dezvoltare.
Modelul V este clasificat în 3 faze.
- Faza de verificare
- Faza de codificare
- Faza de validare
a) Faza de verificare :
- Analiza cerințelor de afaceri: Comunicați cu clientul pentru a înțelege așteptările și cerințele acestora.
- Proiectare sistem: Proiectacompletsistemul și componentele sale, împreună cu cerințele hardware și software.
- Design arhitectural: În această fază sunt capturate specificațiile arhitecturale. Acest lucru este cunoscut și sub denumirea de design la nivel înalt.
- Proiectare modul: Acest lucru este, de asemenea, cunoscut sub numele de Proiectare la nivel scăzut, Proiectare internă detaliată pentru toate modulele de sistem specificate.
b) Etapa de codificare:
Această fază conține faza de codificare efectivă în ciclul de viață al dezvoltării. Limbajele de programare ar trebui alese pe baza sistemului și a proiectării arhitecturale specificate în platforma tehnologică a fazei anterioare. Codificarea se efectuează conform standardelor și liniilor directoare care sunt predefinite.
c) Faza de validare :
- Testarea unitara: Efectuat pe un modul individual pentru a elimina erorile în faza incipientă.
- Testarea integrării: Efectuat pentru a testa comunicația între diferite module din sistem.
- Testarea sistemului: Testarea sistemului se efectuează pe un sistem ca întreg.
- Testarea de acceptare: Acest lucru este asociat cu cerințele de afaceri. Se realizează într-un mediu de utilizator din punctul de vedere al utilizatorului.
Avantajele modelului V.
- Simplu, ușor de utilizat și de înțeles.
- Suprapunerea este evitată pe măsură ce fazele sunt executate pe rând.
- Ușor de gestionat și potrivit pentru proiecte mici.
Dezavantajele modelului V sunt mai mult sau mai puțin similare cu dezavantajele modelului cascadă.
# 3) Model agil
Model Agil prezintă o abordare iterativă și incrementală. Această abordare împarte produsul în mici unități incrementale pentru a furniza iterații. Apoi, fiecare iterație implică pași precum planificarea, analiza cerințelor, proiectarea, codificarea, testarea unității, testarea acceptării etc.
Această abordare permite, de asemenea, interacțiunea continuă cu clientul pentru feedback-ul acestora și corectarea cerințelor la intervale regulate.
Următoarea diagramă vă va ajuta să înțelegeți abordarea modelului Agile mai precis:
Următoarea imagine va arăta ciclul de iterație în modelul Agile:
Avantajele modelului Agile:
- O abordare realistă a dezvoltării de software.
- Promovează munca în echipă.
- Elimină nepotrivirea între cerințe și cazuri de testare.
- Rapid și necesită o cantitate minimă de resurse.
- Potrivit pentru proiecte mari și pe termen lung.
- Bun pentru schimbarea cerințelor.
- Ușor de gestionat.
Dezavantaje ale modelului Agile:
- Nu este potrivit pentru proiecte complexe.
- Necesită o mare interacțiune cu clientul, ceea ce poate cauza întârzieri.
- Conducerea greșită a cerințelor poate cauza dezvoltarea incorectă a produsului software.
- Risc crescut de mentenabilitate.
- Predarea către o altă echipă poate fi destul de provocatoare.
# 4) Model în spirală
Modelul în spirală încorporează abordarea de dezvoltare iterativă împreună cu abordarea sistematică a modelului cascadei. Este similar cu modelul incremental și cu accentul pe analiza riscurilor.
Modelul în spirală are patru etape:
- Faza de planificare
- Analiza de risc
- Faza de inginerie
- Faza de evaluare
1) Faza de planificare: În această fază, cerințele sunt colectate și revizuite pentru a finaliza cazul de testare.
2) Analiza riscurilor: Această etapă include identificarea, monitorizarea și estimarea riscurilor de management. Cerințele sunt analizate pentru a identifica riscurile folosind tehnici precum brainstorming, walkthrough etc.
3) Faza de inginerie: În această fază, software-ul este dezvoltat și testat la final.
4) Faza de evaluare: Aceasta este ultima etapă în care un client evaluează rezultatul unui proiect și își dă feedback fie pentru următoarea spirală, fie pentru aprobare.
Reprezentarea picturală a modelului spiralat:
Când utilizați modelul spiralat:
- Pentru proiectele cu risc ridicat.
- Când cerințele sunt complexe.
- Dacă un proiect este mare.
- Aveți suficient timp pentru a primi feedback-ul utilizatorului pentru următoarea spirală.
- Necesită modificări semnificative din cauza cercetării și explorării.
- Utilizatorii nu sunt siguri de nevoile lor.
Avantajele modelului spiralat:
- Evitarea riscului deoarece implică o cantitate mare de analiză a riscului.
- Dezvoltare rapida.
- Modificările cerințelor sunt adaptate cu ușurință.
- Cerințele pot fi dobândite mai precis.
Dezavantaje ale modelului spiralat:
- Management complex.
- Nu este potrivit pentru proiecte mici.
- Poate implica nr. de spirale (nedefinit).
- Costisitor.
- Necesită o cantitate mare de analiză a riscurilor și expertiză pentru succesul proiectului lor.
# 5) Model RAD
Dezvoltarea rapidă a aplicațiilor (RAD) este un tip de model incremental. În această abordare, componentele sunt dezvoltate în paralel.
Aceasta este o abordare rapidă și poate oferi un produs rapid clientului pentru a oferi feedback.
Fazele din RAD sunt după cum urmează:
- Modelarea afacerii: Identifică informațiile vitale și fluxul acestora între diferite canale de afaceri.
- Modelarea datelor: Informațiile colectate în etapa anterioară sunt utilizate pentru a defini obiectele de date necesare pentru afaceri.
- Modelarea proceselor: Obiectele de date sunt convertite pentru a obține obiectivul de afaceri și fluxul de informații.
- Generarea aplicației: În această fază, instrumentele de automatizare sunt utilizate pentru a converti modelul procesului în cod real.
- Testare și cifră de afaceri: Testează toate componentele unui sistem, prin urmare timpul de testare global este redus.
Avantajele modelului RAD:
- Progresul poate fi măsurat.
- Reduce timpul de dezvoltare.
- Creșterea reutilizării.
- Recenzii inițiale rapide.
- Îmbunătățește feedback-ul clienților.
Dezavantaje ale modelului RAD:
- Necesită resurse înalt calificate.
- Estimarea costurilor ridicate.
- Nu se aplică pentru proiecte mai ieftine.
- Dependență ridicată de abilitățile de modelare.
- Numai un sistem modularizat poate fi construit folosind RAD.
Diferența dintre metodologiile de testare și strategiile de testare
Răspunsul la acest lucru nu este prea complex, deoarece există o diferență simplă între ambele.
Metodologii de testare sunt metodele sau abordările de testare care includ de la testarea unității prin testarea sistemului.
Strategii de testare este o prezentare generală a problemelor cheie care apar în procesul de testare și trebuie luată în considerare de către managerul de proiect, o echipă de dezvoltatori și testeri.
Metodele de testare software discutate mai sus sunt utilizate pentru implementare n numărul de strategii de testare.
Unele dintre ele sunt enumerate mai jos:
1) Testarea unității:
- Se concentrează pe unități funcționale foarte mici.
- Cel mai simplu mod de a verifica izolarea celor mai mici unități.
- În general, realizat de dezvoltatori.
2) Testarea integrării:
întrebări și răspunsuri la interviuri tehnice sql pentru freshers
- Acesta este următorul pas care trebuie efectuat din partea dezvoltatorului.
- Furnizați mecanism pentru a testa interacțiunea, inter-operațiunea și comunicarea între diferitele module ale software-ului
3) Testarea funcțională:
Este folosit pentru a verifica funcționalitățile unui sistem software, adică ieșirea la intrarea dată.
4) Testarea regresiei:
Verifică dacă remedierea erorilor a avut loc la un loc, astfel încât funcționalitățile complexe să nu provoace nicio modificare în altă zonă de bază.
5) Testarea sistemului:
- Testarea tuturor modulelor integrate ca sistem colectiv.
- Combină mai multe funcții în scenarii end-to-end.
6) Testarea performanței:
Testează performanța aplicației în situații critice, cum ar fi transferul de fișiere de dimensiuni mari, acces simultan al utilizatorilor la sistem, eșec de configurare etc.
7) Testarea acceptării :
- În general, nivelul final de testare în care produsul software este examinat de către testeri ca perspectivă a utilizatorilor
- Rezultatul acestui pas este subiectiv și durează puțin pentru a găsi problema exactă
Concluzie:
Alegerea unei metodologii de testare adecvate este acțiunea sau setul de acțiuni care stă la baza procesului de testare. Aceasta poate fi chiar o activitate versatilă care se modifică în funcție de cerințele de afaceri și de calendarul produsului software.
Cu toate acestea, se poate alege o singură sau chiar mai multe metodologii de dezvoltare și testare software pentru a avea un produs final mai flexibil și mai eficient care să satisfacă nevoile și așteptările clientului în limita de timp dorită sau mai mică.
Spuneți-ne părerile / sugestiile dvs. în secțiunea de comentarii de mai jos.
Lectură recomandată
- Cele mai bune instrumente de testare software 2021 (Instrumente de automatizare a testelor de calitate)
- Testare software Job asistent QA
- Curs de testare software: La ce institut de testare software ar trebui să mă alătur?
- Alegerea Testelor software ca carieră
- Testarea software-ului Conținut tehnic Scriitor Freelancer Job
- Câteva întrebări interesante despre testarea software-ului
- Feedback și recenzii despre cursul de testare software
- Testare software Ajutor Program afiliat!