Metodologia agilă în testarea software-ului

Metodologie agilă

Ce este metodologia Agile în testare?

Metodologie Agile, adică o practică care promovează iterație continuă de dezvoltare și testare pe tot parcursul ciclului de viață al dezvoltării software a proiectului. În modelul Agile în testarea software-ului, atât activitățile de dezvoltare, cât și cele de testare sunt concurente, spre deosebire de modelul Waterfall.

Metodologie agilă
Metodologie agilă

Ce este Agile Software Development?

Dezvoltare software agila metodologia este unul dintre cele mai simple și eficiente procese pentru a transforma o viziune pentru o nevoie de afaceri în soluții software. Agil este un termen folosit pentru a descrie abordările de dezvoltare software care utilizează planificarea continuă, învățarea, îmbunătățirea, colaborarea în echipă, dezvoltarea evolutivă și livrarea timpurie. Încurajează răspunsuri flexibile la schimbare.

Dezvoltarea agilă de software pune accent pe patru valori de bază.

  1. Interacțiuni individuale și de echipă asupra proceselor și instrumentelor
  2. Software de lucru peste documentație completă
  3. Colaborarea clienților cu privire la negocierea contractelor
  4. Răspunsul la schimbare în urma unui plan

Model Agil Vs Model Cascada

Modelul Agile și Waterfall sunt două metode diferite pentru procesul de dezvoltare a software-ului. Deși sunt diferite în abordarea lor, ambele metode sunt utile uneori, în funcție de cerință și tipul proiectului.

Model Agil Modelul cascadei
Definiția metodologiei agile în testarea software-ului: Metodologiile agile propun o abordare incrementală și iterativă a designului software Model cascadă: Dezvoltarea software-ului curge secvenţial de la punctul de început până la punctul final.
Proces agil în testarea software-ului este împărțită în modele individuale la care lucrează designerii Procesul de proiectare nu este împărțit în modele individuale
Clientul are oportunități timpurii și frecvente de a privi produsul și de a lua decizii și modificări ale proiectului Clientul poate vedea produsul doar la finalul proiectului
Modelul agil în testare este considerat nestructurat în comparație cu modelul în cascadă Modelele de cascadă sunt mai sigure, deoarece sunt atât de orientate spre plan
Proiectele mici pot fi implementate foarte repede. Pentru proiectele mari, este dificil de estimat timpul de dezvoltare. Tot felul de proiecte pot fi estimate și finalizate.
Eroarea poate fi remediată la mijlocul proiectului. Abia la final se testeaza intregul produs. Dacă se găsește eroarea de cerințe sau trebuie făcute modificări, proiectul trebuie să înceapă de la început
Procesul de dezvoltare este iterativ, iar proiectul este executat în iterații scurte (2-4) săptămâni. Planificarea este foarte puțin. Procesul de dezvoltare este etapizat, iar faza este mult mai mare decât iterația. Fiecare fază se încheie cu descrierea detaliată a fazei următoare.
Documentația are o prioritate mai mică decât de dezvoltare de software Documentarea este o prioritate de top și poate fi folosită chiar și pentru instruirea personalului și upgrade-ul software-ului cu o altă echipă
Fiecare iterație are propria sa fază de testare. Permite implementarea testării regresiei de fiecare dată când sunt lansate noi funcții sau logici. Abia după faza de dezvoltare, faza de testare este executată deoarece părțile separate nu sunt complet funcționale.
În testarea agilă, când o iterație se termină, caracteristicile livrabile ale produsului sunt livrate clientului. Noile funcții sunt utilizabile imediat după expediere. Este util atunci când aveți un contact bun cu clienții. Toate caracteristicile dezvoltate sunt livrate odată după faza lungă de implementare.
Testerii și dezvoltatorii lucrează împreună Testerii lucrează separat de dezvoltatori
La sfârșitul fiecărui sprint, se efectuează acceptarea utilizatorului Acceptarea utilizatorului este efectuată la finalul proiectului.
Necesită o comunicare strânsă cu dezvoltatorii și împreună să analizeze cerințele și planificarea Dezvoltatorul nu se implică în procesul de cerință și planificare. De obicei, întârzieri între teste și codare

Verificați și: - Agile vs Cascada: Cunoașteți diferența dintre metodologii

Proces agil

Verificați cele de mai jos Metodologie agilă proces pentru a furniza rapid sisteme de succes.

Model de proces agil
Model de proces agil

Sunt diferite Metode agile prezente în testarea agilă, iar acestea sunt enumerate mai jos:

Scrum

SCRUM este o metodă de dezvoltare agilă care se concentrează în mod special pe modul de gestionare a sarcinilor într-un mediu de dezvoltare bazat pe echipă. Practic, Scrum este derivat din activitatea care are loc în timpul unui meci de rugby. Scrum crede în împuternicirea echipei de dezvoltare și susține lucrul în echipe mici (de exemplu, 7 până la 9 membri). Agile și Scrum constau din trei roluri, iar responsabilitățile lor sunt explicate după cum urmează:

Metoda Scrum
Metoda Scrum
  • Scrum master
    • Scrum master este responsabil pentru formarea echipei, întâlnirea de sprint și înlăturarea obstacolelor din calea progresului
  • Proprietarul produsului
    • Product Owner creează un backlog de produse, prioritizează backlog și este responsabil pentru livrarea funcționalității la fiecare iterație
  • Echipa Scrum
    • Echipa își gestionează propria muncă și organizează munca pentru a finaliza sprintul sau ciclul

Înapoi la produs

Acesta este un depozit în care cerințele sunt urmărite cu detalii despre numărul de cerințe (povestiri de utilizator) care trebuie completate pentru fiecare lansare. Ar trebui să fie întreținut și prioritizat de către Product Owner și ar trebui să fie distribuit echipei Scrum. Echipa poate solicita, de asemenea, adăugarea, modificarea sau ștergerea unei noi cerințe

Practici Scrum

Practicile sunt descrise în detaliu:

Practici Scrum
Practici Scrum

Fluxul de proces al metodologiilor Scrum:

Fluxul procesului de testarea scrum este după cum urmează:

  • Fiecare iterație a unui scrum este cunoscută ca Sprint
  • Backlogul de produse este o listă în care sunt introduse toate detaliile pentru a obține produsul final
  • În timpul fiecăreia Sprint, poveștile de top ale utilizatorilor din Product backlog sunt selectate și transformate în Sprint restante
  • Echipa lucrează pe backlogul de sprint definit
  • Echipa verifică munca zilnică
  • La sfârșitul sprintului, echipa oferă funcționalitatea produsului

Programare extremă (XP)

Tehnica de programare extremă este foarte utilă atunci când există cerințe sau cerințe în continuă schimbare din partea clienților sau când aceștia nu sunt siguri de funcționalitatea sistemului. Susține „lansări” frecvente ale produsului în cicluri scurte de dezvoltare, ceea ce îmbunătățește în mod inerent productivitatea sistemului și, de asemenea, introduce un punct de control în care orice cerințe ale clienților pot fi implementate cu ușurință. XP dezvoltă software care menține clientul în țintă.

Programare extremă
Programare extremă

Cerințele de afaceri sunt adunate în termeni de povești. Toate acele povești sunt stocate într-un loc numit parcare.

În acest tip de metodologie, lansările se bazează pe cicluri mai scurte numite Iterații cu o perioadă de timp de 14 zile. Fiecare iterație include faze precum codificarea, testarea unitară și testarea sistemului, în care în fiecare fază vor fi construite anumite funcționalități minore sau majore în aplicație.

Fazele programării eXtreme:

Există 6 faze disponibile în metoda Agile XP și acestea sunt explicate după cum urmează:

Planificare

  • Identificarea părților interesate și a sponsorilor
  • Cerințe de infrastructură
  • Securitate culegere și informații aferente
  • Acorduri privind nivelul de servicii și condițiile acestora

Analiză

  • Captura de povești în parcare
  • Prioritizează poveștile în parcare
  • Curățarea poveștilor pentru estimare
  • Definiți SPAN (Timp) de iterație
  • Planificarea resurselor atât pentru echipele de dezvoltare, cât și pentru echipele QA

Amenajări

  • Defalcarea sarcinilor
  • Testați pregătirea scenariului pentru fiecare sarcină
  • Cadrul de automatizare a regresiei

Execuție

  • Codificare
  • Executarea scenariilor de testare manuală
  • Generarea raportului de defect
  • Conversia cazurilor de test de regresie manual în automatizare
  • Revizuire la mijlocul iterației
  • Revizuirea la sfârșitul iterației

Ambalaj

  • Lansări mici
  • Demo și recenzii
  • Dezvoltați povești noi bazate pe nevoi
  • Îmbunătățiri de proces bazate pe comentariile de revizuire la sfârșitul iterației

Închidere

  • Lansare pilot
  • Pregătire
  • Lansarea producției
  • Garantie SLA
  • Revvezi strategia SOA
  • Suport pentru producție

Există două storyboard-uri disponibile pentru a urmări activitatea zilnic, iar acestea sunt enumerate mai jos pentru referință.

  • Carton de poveste
    • Acesta este un mod tradițional de a colecta toate poveștile într-o tablă sub formă de note de tip stick pentru a urmări activitățile zilnice XP. Deoarece această activitate manuală implică mai mult efort și timp, este mai bine să treceți la un formular online.
  • Storyboard online
    • Instrumentul online Storyboard poate fi folosit pentru a stoca poveștile. Mai multe echipe îl pot folosi în scopuri diferite.

Metodologii Crystal

Metodologia cristalului se bazează pe trei concepte

  1. Navlosire: Diverse activități implicate în această fază sunt crearea unei echipe de dezvoltare, efectuarea unei analize preliminare de fezabilitate, elaborarea unui plan inițial și ajustarea metodologiei de dezvoltare.
  2. Livrare ciclică: Faza principală de dezvoltare constă din două sau mai multe cicluri de livrare, în timpul cărora
    1. Echipa actualizează și rafinează planul de lansare
    2. Implementează un subset de cerințe printr-unul sau mai multe iterații de integrare de testare a programului
    3. Produsul integrat este livrat utilizatorilor reali
    4. Revvizualizarea planului de proiect și metodologia de dezvoltare adoptată
  3. Învelire: Activitățile desfășurate în această fază sunt implementarea în mediul utilizatorului, revizuirile și reflecțiile după implementare.

Metoda de dezvoltare software dinamică (DSDM)

DSDM este a Dezvoltarea rapidă a aplicațiilor (RAD) a dezvoltării software și oferă un cadru agil de livrare a proiectelor. Aspectul important al DSDM este că utilizatorilor li se cere să se implice activ, iar echipelor li se oferă puterea de a lua decizii. Livrarea frecventă a produsului devine accent activ cu DSDM. Tehnicile utilizate în DSDM sunt

  1. Timp BoxING
  2. Regulile MoscoW
  3. Prototyping

Proiectul DSDM constă din 7 faze

  1. Pre-proiect
  2. Studiu de fezabilitate
  3. Studiu de afaceri
  4. Iterația modelului funcțional
  5. Proiectați și construiți iterație
  6. Punerea în aplicare
  7. Post-proiect

Dezvoltare bazată pe funcții (FDD)

Această metodă se concentrează pe caracteristicile de „proiectare și construire”. Spre deosebire de alte metode Agile din inginerie software, FDD descrie faze foarte specifice și scurte de lucru care trebuie realizate separat pentru fiecare caracteristică. Acesta include trecerea pe domeniu, inspecția de proiectare, promovarea la construirea, inspecția codului și proiectarea. FDD dezvoltă produse menținând următoarele lucruri în țintă

  1. Modelarea obiectelor de domeniu
  2. Dezvoltare după caracteristică
  3. Componentă/Clasă de proprietate
  4. Echipe de caracteristici
  5. inspecţiile
  6. Configurare Management
  7. Construcții obișnuite
  8. Vizibilitatea progresului și a rezultatelor

Dezvoltare software Lean

Metoda de dezvoltare software Lean se bazează pe principiul „Producere la timp”. Acesta vizează creșterea vitezei de dezvoltare a software-ului și scăderea costurilor. Dezvoltarea Lean poate fi rezumată în șapte pași.

  1. Eliminarea deșeurilor
  2. Amplificarea învățării
  3. Amânarea angajamentului (hotărârea cât mai târziu posibil)
  4. Livrare devreme
  5. Împuternicirea echipei
  6. Clădire Integrity
  7. Optimizați întregul

Kanban

Kanban a apărut inițial din cuvântul japonez care înseamnă, un card care conține toate informațiile necesare pentru a fi făcute asupra produsului în fiecare etapă de-a lungul drumului său până la finalizare. Acest cadru sau metodă este destul de adoptat în metoda de testare a software-ului, în special în conceptele Agile.

Scrum Vs Kanban

Scrum Kanban
În tehnica scrum, testul trebuie defalcat astfel încât să poată fi finalizat într-un singur sprint Nu este prescrisă o anumită dimensiune a articolului
Prescrie un backlog de produse prioritizat Prioritizarea este opțională
Echipa Scrum se angajează într-o anumită cantitate de muncă pentru iterație Angajamentul este optional
Graficul de ardere este prescris Nu este prescrisă o anumită dimensiune a articolului
Între fiecare sprint, o tablă scrum este resetată O tablă Kanban este persistentă. Limitează numărul de articole în starea fluxului de lucru
Nu poate adăuga elemente la iterația în curs Poate adăuga articole ori de câte ori capacitatea este disponibilă
WIP limitat indirect WIP limitat direct
Iterații timebox prescrise Iterații în timebox opționale

Verificați și: - Kanban vs. Scrum: Care este diferența?

Metrici agile

Valorile care pot fi colectate pentru utilizarea eficientă a Agile sunt:

  • Factorul de tragere
    • Efort în ore care nu contribuie la obiectivul de sprint
    • Factorul de tragere poate fi îmbunătățit prin reducerea numărului de resurse partajate, reducând cantitatea de muncă necontributivă
    • Estimările noi pot fi mărite cu procentul factorului de tragere - Estimare nouă = (estimare veche+factor de tragere)
  • Viteză
    • Cantitatea de backlog (povestiri ale utilizatorilor) convertită în funcționalitatea livrabilă a sprintului
  • Numărul de teste unitare adăugate
  • Interval de timp necesar pentru a finaliza construirea zilnică
  • Erori detectate într-o iterație sau în iterațiile anterioare
  • Scurgere defect de producție