Quality Assurance – zabezpečenie kvality softvéru

Pri kúpe akéhokoľvek tovaru si viac všímate jeho kvalitu a softvérové produkty a služby nie sú výnimkou. Ľudia častejšie používajú akýkoľvek produkt alebo službu, ktorá spĺňa ich potreby alebo im pomáha splniť určitú úlohu. Sú frustrovaní, ak sa stretnú s nejakými chybami, chybami alebo neočakávaným správaním produktu alebo služby. Práve tu vstupuje do hry úloha zabezpečenia kvality.
Zabezpečenie kvality, často označované skratkou QA, je nevyhnutný a neoddeliteľný proces pri testovaní softvéru. Hodnotí softvérové produkty s cieľom skontrolovať, či spĺňajú základné normy a požiadavky na kvalitu. Pojem „Quality Assurance“ (zabezpečenie kvality) sa skladá z dvoch slov – „Quality“ (kvalita) a „Assurance“ (zabezpečenie). Pochopme tieto dva pojmy skôr, ako sa ponoríme hlbšie do zabezpečenia kvality a jeho rôznych aspektov.
Obsah
- Čo je to kvalita (quality)?
- Čo je to zabezpečenie (assurance)?
- Čo je zabezpečenie kvality (quality assurance)?
- Atribúty kvality softvéru
- Ako vykonávať manažment kvality (QA)?
- Výhody zabezpečenia kvality
- Certifikáty/normy zabezpečenia kvality
- Čo je kontrola kvality?
- Manažment kvality (QA) vs. kontrola kvality (QC)
Čo je kvalita (quality)?
Kvalita znamená stupeň kvality softvérového produktu alebo služby. Je to ukazovateľ, ktorý definuje, do akej miery softvérový produkt alebo služba zodpovedá požiadavkám a špecifikáciám určených zákazníkom. Tieto požiadavky a špecifikácie sa môžu týkať funkčnosti, dizajnu, výkonu, použiteľnosti, spoľahlivosti a trvanlivosti. Zjednodušene povedané, hodnotí, ako dobre produkt alebo služba vyhovuje určenému účelu.
Okrem toho kombináciou dvoch činností, ktoré zabezpečujú kvalitu softvérového produktu, je – validácia a verifikácia. Verifikáciou sa overuje, či je proces použitý pri vývoji softvéru správny alebo nie. Na druhej strane validácia hodnotí produkt s cieľom skontrolovať, či spĺňa obchodné požiadavky a normy kvality.
Čo je zabezpečenie (assurance)?
Vo všeobecnosti sa zabezpečenie vzťahuje na záruku alebo prísľub, že sa určité veci určite uskutočnia. Pokiaľ ide o vývoj softvéru, záruka sa vzťahuje na poskytnutie istoty zákazníkom, že konečný produkt bude spĺňať ich požiadavky bez akýchkoľvek chýb alebo nedostatkov.
Čo je zabezpečenie kvality?
Spojme si teraz definície uvedených dvoch pojmov.
Zabezpečenie kvality alebo QA znamená poskytnutie záruky určeným zákazníkom zo strany organizácie, že konkrétny produkt alebo služba bude fungovať podľa očakávaní, bude spĺňať všetky normy kvality a bude bez chýb a omylov. Inými slovami, QA je postup zahŕňajúci činnosti a metódy na zabezpečenie toho, aby výrobok alebo služba spĺňali normy kvality a ďalšie stanovené požiadavky. Týmito normami môže byť jedna alebo kombinácia noriem ISO 9000, modelu CMMI, ISO15504 atď.
Okrem kvality produktu zabezpečuje QA aj kvalitu procesu používaného na jeho vývoj, testovanie a údržbu. Zlepšuje a zefektívňuje celkový životný cyklus vývoja softvéru (SDLC).
Funkcie
- QA je statický proces analýzy dokumentov a procesu vývoja softvéru.
- Nezahŕňa testovanie vytvoreného produktu.
- V rámci testovania patrí pod QA „overovanie(verifikácia)“.
- Odpovedá na otázku – „Zostavujeme produkt správne?“.
- QA je preventívne opatrenie, pretože identifikuje zraniteľnosť pri budovaní softvéru.
- Zahŕňa činnosti, ako je preskúmanie dokumentov, preskúmanie testovacích dokumentov, prechádzky, audity, kontroly atď.
Aké sú však presne atribúty, ktoré spadajú pod kvalitu softvéru? Poďme si ich rozobrať nižšie.
Atribúty kvality softvéru
- Správnosť – Správnosť softvéru sa vzťahuje na jeho konzistenciu a súlad so špecifikovanými požiadavkami. Ak softvér funguje podľa očakávaní a poskytuje všetky zamýšľané funkcie vo všetkých prípadoch použitia, považuje sa za správny a funkčný.
- Spoľahlivosť – Odkazuje na schopnosť softvérového produktu vykonávať zamýšľané funkcie a fungovať hladko a presne bez akýchkoľvek výnimiek, porúch alebo chýb. Softvér je spoľahlivý, ak je jeho správanie predvídateľné za akýchkoľvek podmienok.
- Robustnosť – Je to metrika, ktorá určuje schopnosť softvérového produktu zvládnuť chybné a neplatné vstupy a neočakávané podmienky bez porúch alebo zlyhaní. Zvyšuje bezpečnosť, spoľahlivosť a udržiavateľnosť produktu.
- Použiteľnosť – Je to jednoduchosť ovládania softvérovej aplikácie. Čím ľahšie používatelia pochopia, ako používať aplikáciu a pristupovať k jej funkciám, tým vyššia bude jej kvalita.
- Udržiavateľnosť – Udržiavateľnosť je meradlom množstva úsilia potrebného na údržbu softvéru po jeho dodaní koncovým používateľom bez toho, aby bola ohrozená jeho kvalita a funkčnosť. Udržiavateľný softvér je taký, ktorý sa prispôsobuje zmenám s minimálnym rizikom zavedenia chýb a bugov alebo ovplyvnenia existujúcej funkčnosti.
- Prenosnosť – je to schopnosť softvéru transformovať sa z jednej platformy, prostredia alebo infraštruktúry na druhú bez toho, aby to ovplyvnilo jeho výkon a funkčnosť. Prenosný softvér by mal fungovať na rôznych operačných systémoch, hardvérových architektúrach a cloudových platformách. Stručne povedané, mal by byť platformovo nezávislý.
- Efektívnosť – Efektívnosť je meradlo softvéru, ktoré určuje, ako dobre využíva zdroje na svoje fungovanie. Efektívny softvér využíva minimum zdrojov, čím zlepšuje výkon, znižuje náklady a spotrebu energie.
Ako vykonávať manažment kvality (QA)?
Zabezpečovanie alebo manažment kvality je nepretržitý alebo cyklický proces pozostávajúci zo štyroch fáz PDCA: Plan, Do, Check, Act.
Podrobne si tieto fázy rozoberieme nižšie:
- PLAN – Prvým krokom je stanovenie požiadaviek a cieľov kvality vrátane funkčných a nefunkčných požiadaviek. Potom načrtni podrobný plán, ktorý zahŕňa všetky činnosti, procesy a metódy na splnenie požiadaviek na kvalitu.
- DO – Teraz je čas vykonať činnosti načrtnuté v pláne, čo zahŕňa testovanie, preskúmanie, analýzu a zlepšovanie procesov.
- CHECK – Po vykonaní činností monitoruj kvalitu softvéru pomocou ich výsledkov a správ na základe špecifických metrík. Identifikuj všetky potenciálne problémy a chyby v kvalite.
- ACT – Prijmi všetky nevyhnutné nápravné opatrenia na zlepšenie procesu.
Celý tento proces pokračuje počas celého životného cyklu vývoja softvéru.
Výhody zabezpečenia kvality
Niektoré z pozoruhodných výhod zabezpečenia kvality sú tieto:
- Zlepšenie kvality – Zabezpečenie kvality nepochybne výrazne zlepšuje kvalitu softvérového produktu alebo služby, pretože pomáha organizáciám zabezpečiť, aby spĺňali normy kvality.
- Úspora peňazí – Zabezpečenie kvality predstavuje štruktúrovaný rámec, ktorý organizáciám umožňuje zabezpečiť kvalitu ich produktov alebo služieb. Výrazne znižuje počet chýb, plytvania a prepracovania, čím im pomáha ušetriť obrovské finančné prostriedky.
- Zvyšuje spokojnosť zákazníkov – Čím vyššia je kvalita produktov, tým viac sú zákazníci spokojní. Kvalitný výrobok totiž spĺňa ich požiadavky.
- Zvýšená dôvera klientov – Zapojenie klientov a zainteresovaných strán do kontroly kvality na rôznych úrovniach vývoja softvéru zvyšuje ich dôveru.
Certifikáty/normy zabezpečenia kvality
Certifikáty alebo normy kvality zabezpečujú, že softvérové produkty boli vyvinuté podľa určitých smerníc a pravidiel a spĺňajú všetky základné ukazovatele kvality. Nižšie sú uvedené niektoré populárne certifikáty zabezpečenia kvality, ktoré sú k dispozícii na celom svete:
- ISO 9000
Je to súbor medzinárodných noriem pre riadenie kvality a zabezpečenie kvality, ktoré v roku 1987 vypracovala Medzinárodná organizácia pre normalizáciu (ISO). Tieto normy slúžia organizáciám ako rámec na zavedenie, udržiavanie a zlepšovanie systémov riadenia kvality a pomáhajú zabezpečiť, aby ich výrobky a služby spĺňali potreby zákazníkov a regulačné požiadavky.
Sedem zásad normy ISO 9000 je nasledujúcich:
- Zameranie na zákazníka
- Vedenie
- Zapojenie ľudí
- Procesný prístup
- Zlepšovanie
- Rozhodovanie založené na dôkazoch
- Riadenie vzťahov
Zvýšenie zisku, zlepšenie domáceho a medzinárodného obchodu, zníženie množstva odpadu, zvýšenie produktivity zamestnancov a maximálna spokojnosť zákazníkov sú výhody normy ISO 9000.
- Úroveň CMMI
CMMI je skratka pre Capability Maturity Model Integrated (CMMI). Je to rámec na zlepšovanie procesov, ktorý pomáha organizáciám zlepšovať ich vývojové procesy. Je nástupcom modelu CMM a bol vyvinutý Inštitútom softvérového inžinierstva (SEI) na Carnegie Mellon University. Rámec CMMI si vo veľkej miere osvojili oblasti vývoja softvéru, riadenia projektov a softvérového inžinierstva.
Tento prístup k zlepšovaniu procesov je založený na modeli zrelosti, ktorý pozostáva z nasledujúcich 5 úrovní:
- Počiatočná úroveň: Prostredie kvality je nestabilné a nie je zdokumentovaný ani dodržiavaný žiadny proces.
- Riadená: Procesy sú riadené: Procesy sú dobre popísané a monitorované.
- Definovaná: Procesy sú dobre stanovené, zdokumentované a štruktúrované.
- Kvantitatívne riadená: Na meranie kvality procesov sa používajú štatistické a kvantitatívne metódy.
- Optimalizácia: Procesy sa neustále zlepšujú na základe spätnej väzby.
Stručne povedané, CMMI analyzuje súčasný proces a pomáha organizáciám zlepšovať ho tým, že zisťuje oblasti, ktoré je potrebné zlepšiť.
- Model vyspelosti testovania (TMM)
Model vyspelosti testovania (TMM) je rámec na testovanie vyspelosti procesu testovania softvéru. Vyvinul ho Illinoiský technologický inštitút. Pozostáva z týchto 5 úrovní-
- Počiatočná: Používanie len ad-hoc metód, keďže nie je definovaný žiadny štandard kvality.
- Definovaná: Základné testovacie metódy a techniky sú zavedené.
- Integrovaná: Testovanie softvéru je integrované do životného cyklu vývoja softvéru.
- Riadenie a meranie: Prebieha preskúmanie požiadaviek a návrhov spolu so stanovením kritérií pre jednotlivé úrovne testovania.
- Optimalizovaná: Priebežne zlepšuje proces testovania na základe spätnej väzby.
Čo je kontrola kvality (quality control)?
Spolu so zabezpečením kvality (QA) je kontrola kvality (QC – quality control) ďalším aspektom riadenia kvality. Kontrola kvality alebo QC zabezpečuje kvalitu softvérového produktu jeho preskúmaním. Naopak, kontrola kvality sa týka procesov, metód a činností na vývoj kvalitného produktu.
Hlavným cieľom kontroly kvality je odhaliť chyby alebo akékoľvek neočakávané správanie produktu a opraviť ich pred jeho uvoľnením pre koncových používateľov. Zabezpečuje, aby produkt spĺňal obchodné požiadavky a požiadavky zákazníkov a bol spoľahlivý a konzistentný.
Manažment kvality (QA) vs. kontrola kvality (QC)
Medzi manažmentom kvality a kontrolou kvality je veľmi tenká hranica. Preto je ťažké pochopiť rozdiely medzi nimi. Hlavný rozdiel spočíva v tom, že QA sa zaoberá procesmi a zlepšovaním týchto procesov, ktoré vedú ku konečnému produktu. Naopak, QC zahŕňa analýzu konečného produktu a jeho výsledkov s cieľom zabezpečiť, aby bol v súlade so stanovenými požiadavkami.
Rozoberme si ďalšie rozdiely medzi QA a QC.
Quality Assurance
- Kontroluje procesy a zlepšuje ich, čo vedie ku konečnému produktu.
- Predchádza chybám.
- Činnosti zamerané na procesy – audit kvality, definovanie procesov, výber nástrojov a školenia.
- Overovanie je príkladom zabezpečenia kvality.
- Zapája sa do celého životného cyklu vývoja softvéru (SDLC).
Quality Control
- Kontroluje konečný produkt a jeho výsledky.
- Identifikuje chyby.
- Činnosti orientované na produkt – prechádzka, testovanie, kontrola a preskúmanie kontrolných bodov.
- Overovanie je príkladom kontroly kvality.
- Zapája sa len do životného cyklu testovania softvéru (STLC).
Záver
Toto všetko bolo o zabezpečení kvality pri testovaní softvéru, ktorá sa týka uistenia koncových zákazníkov, že produkt alebo služba určite spĺňa všetky normy kvality. Zahŕňa súbor činností a metód na zabezpečenie toho, aby produkt alebo služba spĺňali regulačné normy (buď jednu, alebo kombináciu noriem kvality).
Stručne povedané, QA sa zameriava na vývoj výrobkov a služieb, ktoré sú vhodné na použitie. Dúfame, že ti tento článok pomohol získať podrobný prehľad o QA.