2.1.2 SDLC a osvedčené testovacie postupy Flashcards

1
Q

Čo patrí medzi osvedčené testovacie postupy , nezávisle na zvolenom modeli SDLC ?

A
  • Ku každej vývojovej činnosti existuje zodpovedajúca testovacia činnosť, takže všetky vývojové
    činnosti podliehajú riadeniu kvality.
  • Existujú rôzne úrovne testovania (pozri kapitolu 2.2.1) a každá má svoje špecifické (a niekedy aj
    odlišné) ciele. Tým je testovanie primerane detailné a zároveň nedochádza k nadbytočnostiam.
  • Testovacia analýza a návrh testov pre danú úroveň začína počas zodpovedajúcej vývojovej fázy
    SDLC, takže je splnený princíp včasného testovania (pozri kapitolu 1.3)
  • V okamihu, kedy je k dispozícii pracovná verzia (draft) ľubovoľného pracovného produktu, sú do jeho
    revízie zapojení testeri, čo (ako forma včasného testovania a včasnej detekcie defektov) podporuje
    prístup shift-left (pozri kapitolu 2.1.5).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Aké prístupy patria k vývoju riadeného testovaním?

A

TDD, ATDD, BDD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Čo majú spoločné prístupy pre vývoj softvéru riadené testovaním?

A

TDD, ATDD a BDD sú podobné prístupy k vývoju, keď sú testy definované ako prostriedok na riadenie
vývoja.
Každý z týchto prístupov je aplikáciou princípu včasného testovania (pozri kapitolu 1.3) a uplatňuje
prístup shift-left (pozri kapitolu 2.1.5) – testy sú definované pred tvorbou samotného kódu.
Všetky podporujú iteratívny model vývoja a sú charakterizované nasledovne:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Opíš dvomi vetami Vývoj riadený testami TDD

A
  • Písanie kódu je riadené pomocou testovacích prípadov (namiesto rozsiahleho návrhu softvéru)
    (Beck, 2003).
  • Najprv sú spísané testy a až následne kód, a ten tak, aby týmto testom vyhovoval. Následne môžu
    (ale nemusia) byť testy a kód refaktorované.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Opíš Vývoj riadený akceptačnými testami (ATDD)

A
  • Odvodzuje testy z akceptačných kritérií ako súčasť procesu návrhu systému (Gärtner, 2012).
  • Daná časť aplikácie je vytvorená tak, aby vyhovovala testom napísaným pred samotným vývojom.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Popíš prístup DevOps

A

DevOps je prístup k vývoju softvéru, ktorý je postavený na synergii medzi oddeleniami vývoja (vrátane
testovania) a prevádzky s cieľom dosahovania definovaných spoločných cieľov. DevOps vyžaduje zmenu
kultúry v rámci organizácie tak, aby sa medzi týmito dvoma organizačnými jednotkami preklenuli medzery
a zároveň sa k nim pristupovalo s rovnakou dôležitosťou. DevOps podporuje autonómiu tímu, rýchlu
spätnú väzbu, integrované sady nástrojov a použitie technických prístupov ako je kontinuálna integrácia
(CI – continuous integration) a kontinuálne dodávanie (CD – continuous delivery). To umožňuje tímom
vytvárať, testovať a vydávať kvalitný kód rýchlejšie prostredníctvom definovanej DevOps pipeline (Kim et
al., 2016).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Opíš vývoj riadený BDD

A
  • Požadované správanie aplikácie je popísané testovacími prípadmi napísanými v jednoduchej
    forme prirodzeného jazyka zrozumiteľného pre zainteresované strany. Obvykle je využitý formát
    Given/When/Then (Daná podmienka/Podmienka/Akcia) (Chelimsky, 2010).
  • Testovacie prípady sú následne automaticky preložené do spustiteľných testov.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Aké má DevOps výhody z pohľadu testgovania?

A
  • Poskytuje rýchlu spätnú väzbu o kvalite (nového) kódu a o nepriaznivom vplyve na doterajšiu
    funkčnosť systému/komponenty.
  • Vďaka CI podporuje prístup shift-left pri testovaní (pozri kapitolu 2.1.5) tým, že motivuje vývojárov k
    písaniu kvalitného kódu podporovaného testovaním komponentov a statickou analýzou.
  • Propaguje automatizované spracovanie (napr. CI/CD), ktoré uľahčuje vytváranie stabilných
    testovacích prostredí.
  • Zvyšuje dôraz na nefunkcionálne charakteristiky kvality (napr. výkon alebo spoľahlivosť).
  • Automatizáciou prostredníctvom pipeline znižuje potrebu opakovaného manuálneho testovania.
  • Minimalizuje riziko regresie vďaka rozsahu a miere automatizovaných regresných testov.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Aké má DevOps riziká a nevýhody?

A
  • Musí byť definovaná a zavedená DevOps pipeline.
  • Musia byť zavedené a udržiavané nástroje CI/CD.
  • Automatizované testy vyžadujú dodatočné investície a môže byť ťažké ich vytvoriť a udržiavať.
  • Hoci DevOps predpokladá vyšší rozsah automatizovaného testovania, nemožno zabúdať ani na
    manuálne testovanie, a to najmä z pohľadu koncového užívateľa
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Definuj prístup shift -left

A

Princíp včasného testovania (pozri kapitolu 1.3) je niekedy označovaný ako shift-left (posun doľava v
zmysle časovej osi), kde je testovanie vykonávané v skorších fázach SDLC. Shift-left odporúča začať s
testovacími činnosťami skôr (napr. nečakať na implementáciu kódu alebo na integráciu komponentov), ale
neznamená to, že by testovanie v neskorších fázach malo byť zanedbávané.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Aké sú existujúce osvedčené postupy na ktorých je možné demonštrovať aplikáciu tohto prístupu?

A
  • Revidovanie špecifikácií z pohľadu testovania, ktoré nachádza potenciálne defekty ako sú
    nejednoznačnosti, neúplnosti a nezrovnalosti.
  • Písanie testovacích prípadov pred napísaním kódu a spustenie kódu v sade testovacieho vybavenia
    (test harness) počas vývoja kódu.
  • Používanie CI alebo lepšie CD, pretože prichádza s rýchlou spätnou väzbou a automatizovanými
    testami komponentov, ktoré sú spoločne s kódom uložené do repozitára.
  • Spúšťanie statickej analýzy zdrojového kódu pred dynamickým testovaním, alebo ako súčasť daného
    automatizovaného procesu.
  • Vykonávanie nefunkcionálnych testov hneď na úrovni testovania komponentov (pokiaľ je to možné).
    Ide tiež o formu shift-left princípu, pretože obvykle sú tieto typy testovania vykonávané v neskorších
    fázach SDLC, keď je k dispozícii kompletný systém a zodpovedajúce testovacie prostredie.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

čo može spôsobiť zavedenie prístupu shift left v počiatočných fázach ?

A

Zavedenie shift-left prístupu môže v počiatočných fázach znamenať potrebu preškolenia tímu, zvýšenia
prácnosti a/alebo nákladov, ale v neskorších fázach naopak šetrí vynaložené úsilie a/alebo náklady.
Je dôležité, aby boli všetci zástupcovia zainteresovaných strán presvedčení o užitočnosti tohto konceptu a
podporovali ho.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Definuj retrospektívy a zlepšovanie procesov?

A

Retrospektívy (známe tiež ako po-projektové schôdzky alebo projektové retrospektívy) sa často konajú
na konci projektu alebo iterácie, pri dosiahnutí míľnika alebo podľa potreby (ad-hoc). Načasovanie a
organizácia retrospektív závisí od konkrétneho modelu SDLC. Účastníci týchto schôdzok (nielen testeri,
ale aj napr. vývojári, architekti, vlastníci produktov, biznisoví analytici) obvykle preberajú:
* Čo bolo úspešné a malo by sa zachovať?
* Čo sa nepodarilo a dalo by sa zlepšiť?
* Ako implementovať návrhy na zlepšenie a zabezpečiť v budúcnosti trvalú úspešnosť?
Výstupy z retrospektív by mali byť zaznamenané, zvyčajne sú súčasťou súhrnnej správa z testovania
(pozri kapitolu 5.3.2). Retrospektívy sú z hľadiska nastavenia procesu kontinuálneho zlepšovania kritické a
je dôležité, aby boli všetky odporúčané opatrenia sledované (a dodržiavané).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Typické prínosy retrospektív?

A
  • Zvyšovanie efektivity / účinnosti testov (napr. z dôvodu implementácie návrhov na zlepšenie
    procesov).
  • Zvyšovanie kvality testwaru (napr. spoločnou revíziou testovacích procesov).
  • Stmeľovanie tímu a vzájomné učenie (napr. ako výsledok možnosti hlásiť problémy a navrhovať
    zlepšenie).
  • Zlepšovanie kvality testovacej bázy (napr. vyriešením nedostatkov v rozsahu a kvalite požiadaviek).
  • Zlepšovanie spolupráce medzi vývojom a testovaním (napr. vďaka pravidelným revíziám a
    optimalizácii vzájomnej spolupráce).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Čo je uroven testovania?

A

Úrovne testovania sú skupiny testovacích činností, ktoré sú organizované a riadené spoločne. Každá
úroveň testovania je inštanciou procesu testovania tvorenou činnosťami vykonávanými vo vzťahu k
softvéru v danej fáze vývoja, od jednotlivých komponentov až po celé systémy, alebo prípadne aj systémy
systémov.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
A