what is software quality assurance
Što je osiguranje kvalitete softvera?
Osiguranje kvalitete softvera (SQA) je postupak koji osigurava da se svi procesi softverskog inženjerstva, metode, aktivnosti i radni predmeti nadgledaju i udovoljavaju definiranim standardima. Ti definirani standardi mogu biti jedan ili kombinacija bilo kojeg poput ISO 9000, CMMI modela, ISO15504 itd.
SQA uključuje sve procese razvoja softvera, počevši od definiranja zahtjeva do kodiranja do izdanja. Njegov je glavni cilj osigurati kvalitetu.
Što ćete naučiti:
- Plan osiguranja kvalitete softvera
- Aktivnosti SQA-a
- Standardi osiguranja kvalitete softvera
- Elementi osiguranja kvalitete softvera
- SQA tehnike
- Zaključak
- Preporučena literatura
Plan osiguranja kvalitete softvera
Skraćeni kao SQAP, plan osiguranja kvalitete softvera sastoji se od postupaka, tehnika i alata koji se koriste kako bi se osiguralo da je proizvod ili usluga usklađen sa zahtjevima definiranim u SRS-u (specifikacija softverskih zahtjeva).
Plan utvrđuje odgovornosti tima za SQA, navodi područja koja treba pregledati i revidirati. Također identificira SQA proizvode rada.
Dokument plana SQA sastoji se od sljedećih odjeljaka:
- Odjeljak svrhe
- Referentni odjeljak
- Odjeljak za upravljanje konfiguracijom softvera
- Odjeljak za izvještavanje o problemima i korektivne mjere
- Odjeljak Alati, tehnologije i metodologije
- Odjeljak za kontrolu koda
- Evidencija: Odjeljak za prikupljanje, održavanje i zadržavanje
- Metodologija ispitivanja
Aktivnosti SQA-a
Dolje je dan popis SQA aktivnosti:
# 1) Izrada plana upravljanja SQA-om:
Najvažnija aktivnost uključuje postavljanje pravilnog plana o tome kako će se SQA provesti u vašem projektu.
Uz kakav SQA pristup koji ćete slijediti, koje će se inženjerske aktivnosti provoditi, a uključuje i osiguravanje da u svom timu imate pravu kombinaciju talenata.
# 2) Postavljanje kontrolnih točaka:
SQA tim postavlja različite kontrolne točke prema kojima ocjenjuje kvalitetu projektnih aktivnosti na svakoj kontrolnoj točki / fazi projekta. To osigurava redoviti pregled kvalitete i rad prema rasporedu.
# 3) Primijenite tehnike softverskog inženjerstva:
Primjena nekih tehnika softverskog inženjerstva pomaže dizajneru softvera u postizanju visokokvalitetnih specifikacija. Za prikupljanje informacija, dizajner može koristiti tehnike poput intervjua i FAST-a (Tehnika funkcionalne analize sustava).
Kasnije, na temelju prikupljenih informacija, dizajner softvera može pripremiti procjenu projekta koristeći tehnike poput WBS-a (struktura raščlanjivanja rada), SLOC (izvorna linija kodova) i FP (procjena funkcionalne točke).
# 4) Izvršenje formalnih tehničkih pregleda:
FTR se radi za procjenu kvalitete i dizajna prototipa.
U tom se procesu održava sastanak s tehničkim osobljem kako bi se razgovaralo o stvarnim zahtjevima kvalitete softvera i kvaliteti dizajna prototipa. Ova aktivnost pomaže u otkrivanju pogrešaka u ranoj fazi SDLC-a i smanjuje napor na preradi u kasnijim fazama.
# 5) Imati strategiju višestrukog testiranja:
Pod strategijom višestrukog testiranja podrazumijevamo da se ne treba oslanjati na bilo koji pojedinačni pristup testiranja, već bi trebalo izvesti više vrsta ispitivanja kako bi se softverski proizvod mogao dobro testirati iz svih kutova kako bi se osigurala bolja kvaliteta.
# 6) Primjena pridržavanja procesa:
Ova aktivnost insistira na potrebi poštivanja procesa tijekom procesa razvoja softvera. Proces razvoja također bi se trebao pridržavati definiranih postupaka.
Ova je aktivnost spoj dvije podaktivnosti koje su detaljno objašnjene u nastavku:
(i) Procjena proizvoda:
Ova aktivnost potvrđuje da softverski proizvod ispunjava zahtjeve koji su otkriveni u planu upravljanja projektom. Osigurava ispravno poštivanje postavljenih standarda za projekt.
(ii) Nadgledanje procesa:
Ova aktivnost provjerava jesu li poduzeti ispravni koraci tijekom razvoja softvera. To se postiže usklađivanjem stvarno poduzetih koraka s dokumentiranim koracima.
# 7) Kontrola promjene:
U ovoj aktivnosti koristimo kombinaciju ručnih postupaka i automatiziranih alata kako bismo imali mehanizam za kontrolu promjena.
Potvrđivanjem zahtjeva za promjenom, procjenom prirode promjene i kontrolom učinka promjene osigurava se održavanje kvalitete softvera tijekom faza razvoja i održavanja.
# 8) Učinak promjene mjere:
Ako QA tim prijavi bilo kakav nedostatak, tada dotični tim otklanja nedostatak.
Nakon toga, QA tim bi trebao utvrditi utjecaj promjene koju donosi ovo otklanjanje kvara. Moraju testirati ne samo je li promjena otklonila kvar, već i je li promjena kompatibilna s cijelim projektom.
U tu svrhu koristimo metriku kvalitete softvera koja omogućuje upraviteljima i programerima da promatraju aktivnosti i predložene promjene od početka do kraja SDLC-a i pokreću korektivne mjere kad god je to potrebno.
# 9) Izvođenje SQA revizija:
Revizija SQA pregledava cjelokupni stvarni SDLC postupak nakon čega ga uspoređuje s uspostavljenim postupkom.
Također provjerava sve što je tim prijavio u izvješćima o statusu da li je stvarno izvršeno ili ne. Ova aktivnost također otkriva probleme s nepoštivanjem propisa.
# 10) Održavanje evidencije i izvještaja:
Ključno je čuvati potrebnu dokumentaciju koja se odnosi na NAK i podijeliti potrebne informacije o NAK s dionicima. Rezultati ispitivanja, rezultati revizije, izvješća o pregledu, dokumentacija o zahtjevima za promjenu itd. Trebaju se čuvati za buduću upotrebu.
# 11) Upravljanje dobrim odnosima:
Zapravo je vrlo važno održavati sklad između osiguranja kvalitete i razvojnog tima.
Često čujemo da se testeri i programeri često osjećaju superiornima jedni od drugih. To treba izbjegavati jer može utjecati na ukupnu kvalitetu projekta.
Standardi osiguranja kvalitete softvera
Općenito, SQA može zahtijevati usklađenost s jednim ili više standarda.
U nastavku se razmatraju neki od najpopularnijih standarda:
ISO 9000: Ovaj se standard temelji na sedam principa upravljanja kvalitetom koji pomažu organizacijama da osiguraju da njihovi proizvodi ili usluge budu usklađeni s potrebama kupaca.
7 principa ISO 9000 prikazano je na donjoj slici:
Razina CMMI: CMMI je kratica Model zrelosti sposobnosti Integracija . Ovaj je model nastao u softverskom inženjerstvu. Može se koristiti za usmjeravanje poboljšanja procesa kroz projekt, odjel ili cijelu organizaciju.
5 razina CMMI i njihove karakteristike opisane su na donjoj slici:
world of warcraft privatni poslužitelji vanilija
Organizacija se ocjenjuje i dodjeljuje joj se ocjena zrelosti (1-5) na temelju vrste ocjene.
Integracija modela zrelosti za ispitivanje (TMMi): Zasnovan na CMMi, ovaj se model usredotočuje na razinu zrelosti u upravljanju i testiranju kvalitete softvera.
5 razina TMMi prikazano je na donjoj slici:
Kako se organizacija kreće na višoj razini zrelosti, postiže veću sposobnost proizvodnje visokokvalitetnih proizvoda s manje nedostataka i usko ispunjava poslovne zahtjeve.
Elementi osiguranja kvalitete softvera
Postoji 10 bitnih elemenata SQA-a koji su navedeni u nastavku za vašu referencu:
- Standardi softverskog inženjerstva
- Tehnički pregledi i revizije
- Ispitivanje softvera za kontrolu kvalitete
- Prikupljanje i analiza pogrešaka
- Upravljanje promjenama
- Obrazovni programi
- Upravljanje dobavljačima
- Upravljanje sigurnošću
- Sigurnost
- Upravljanje rizicima
SQA tehnike
Postoji nekoliko tehnika za SQA. Revizija je glavna tehnika koja je široko prihvaćena. Međutim, imamo i nekoliko drugih značajnih tehnika.
Razne SQA tehnike uključuju:
- Revizija: Revizija uključuje inspekciju proizvoda rada i s njima povezanih informacija kako bi se utvrdilo je li poštivan skup standardnih postupaka ili nije.
- Pregledavanje : Sastanak na kojem unutarnji i vanjski dionici ispituju softverski proizvod kako bi zatražili njihove komentare i odobrenje.
- Inspekcija koda: To je najformalnija vrsta pregleda koji vrši statičko testiranje kako bi pronašao greške i izbjegao rast kvarova u kasnijim fazama. To radi obučeni posrednik / vršnjak, a temelji se na pravilima, kontrolnom popisu, kriterijima za ulazak i izlazak. Recenzent ne bi trebao biti autor koda.
- Inspekcija dizajna: Inspekcija dizajna vrši se pomoću kontrolnog popisa koji pregledava sljedeća područja softverskog dizajna:
- Opći zahtjevi i dizajn
- Funkcionalne i specifikacije sučelja
- Konvencije
- Sljedivost zahtjeva
- Strukture i sučelja
- Logika
- Izvođenje
- Rukovanje pogreškama i oporavak
- Ispitljivost, proširivost
- Spajanje i kohezija
- Simulacija: Simulacija je alat koji modelira stvarnu situaciju kako bi se virtualno ispitalo ponašanje sustava koji se proučava.
- Funkcionalno ispitivanje: To je QA tehnika koja provjerava što sustav radi, ne uzimajući u obzir kako to radi. Ova vrsta ispitivanje crne kutije uglavnom se fokusira na testiranje specifikacija ili značajki sustava.
- Standardizacija: Standardizacija igra presudnu ulogu u osiguranju kvalitete. Smanjuje dvosmislenost i nagađanja, čime se osigurava kvaliteta.
- Statička analiza: To je softverska analiza koju radi automatizirani alat bez stvarnog izvršavanja programa. Ova se tehnika visoko koristi za osiguranje kvalitete u medicinskom, nuklearnom i zrakoplovnom softveru. Softverska metrika i obrnuti inženjering popularni su oblici statičke analize.
- Vodiči: Prolaz kroz softver ili kôd vrsta je stručne provjere u kojoj programer vodi članove razvojnog tima da prođu kroz proizvod i postavljaju upite, predlažu alternative, daju komentare u vezi s mogućim pogreškama, standardnim kršenjima ili bilo kojim drugim problemima.
- Ispitivanje puta: To je tehnika ispitivanja bijele kutije pri čemu se osigurava potpuna pokrivenost grana izvođenjem svakog neovisnog puta barem jednom.
- Ispitivanje naprezanja: Ova vrsta ispitivanja provodi se kako bi se provjerilo koliko je sustav robustan testirajući ga pod velikim opterećenjem, tj. Izvan normalnih uvjeta.
- Šest Sigma: Six Sigma pristup je osiguranju kvalitete koji ima za cilj gotovo savršene proizvode ili usluge. Široko se primjenjuje u mnogim poljima, uključujući softver. Glavni cilj šest sigma je poboljšanje procesa tako da proizvedeni softver nema 99,76% nedostataka.
Zaključak
SQA je krovna aktivnost koja se koristi tijekom životnog ciklusa softvera.
Osiguranje kvalitete softvera vrlo je važno za uspjeh vašeg softverskog proizvoda ili usluge na tržištu i preživljavanje prema očekivanjima kupca.
Postoje razne aktivnosti, standardi i tehnike kojih se morate pridržavati kako biste osigurali da je isporučni softver visoke kvalitete i usko usklađen s poslovnim potrebama.
Nadam se da biste kroz ovaj informativni članak dobili jasnu ideju o konceptu osiguranja kvalitete softvera !!
Preporučena literatura
- Potvrde o ispitivanju softvera i osiguranju kvalitete - 2. dio
- Koji su atributi kvalitete?
- Lažni bog kvalitete nasuprot istinskim ljudima - tko je odgovoran za kvalitetu softvera?
- Razlika između osiguranja kvalitete i kontrole kvalitete (QA vs QC)
- Savršen vodič za životopis testiranja softvera (s uzorkom životopisa testera softvera)
- Kako koristiti Poka-Yoke (Provjera pogrešaka) tehniku za poboljšanje kvalitete softvera
- Međusobno razumijevanje u testiranju: ključ za isporuku kvalitetnog softvera
- Posao za QA pomoćnika za testiranje softvera