Terminológia zabezpečenia kvality

V tomto článku sa pozrieme na QA (Quality Assurance) pri vývoji softvéru. To všetko sa týka testovania softvéru, ale v tomto článku nebudeme študovať jemnosti, ale zaoberáme sa iba terminológiou. Terminológia v QA je veľmi dôležitá, bez nej nebude možné produkt otestovať. Ako ste si mohli domyslieť, QA znamená Quality Assurance, čo znamená zabezpečenie kvality (kontrola kvality). Poďme priamo k terminológii:

Pozitívne testovanie

Toto je testovanie na údajoch alebo scenároch, ktoré zodpovedajú normálnemu (štandardnému, očakávanému) chovaniu systému. Hlavným účelom „pozitívneho“ testovania je overiť, či systém dokáže robiť to, na čo bol navrhnutý.

Negatívne testovanie

Toto je testovanie na údajoch alebo scenároch, ktoré zodpovedajú neobvyklému správaniu. Hlavným účelom „negatívneho“ testovania je skontrolovať odolnosť systému voči rôznym vplyvom, overiť nesprávny súbor údajov.

Funkčné testovanie

Toto je testovanie s cieľom skontrolovať uskutočniteľnosť funkčných požiadaviek na riešenie používateľského problému.

Funkčné testovanie zahŕňa:

  • Funkčná vhodnosť
  • Presnosť
  • Interoperabilita
  • Súlad
  • Bezpečnosť

Testovanie výkonu

Toto je test, ktorý sa vykonáva s cieľom zistiť, ako rýchlo výpočtový systém alebo jeho časť pracuje pri určitom zaťažení. Môže sa tiež použiť na kontrolu a overenie ďalších atribútov kvality systému, ako je škálovateľnosť, spoľahlivosť a spotreba zdrojov.

Testovanie výkonu zahŕňa:

  • Testovanie záťaže
  • Stresové testovanie
  • Testovanie stability (testovanie stability / vytrvalosti / namáčania)

Testovanie použiteľnosti

Toto testovanie použiteľnosti určuje, aký ľahký je používateľ prístup k funkciám systému poskytovaným prostredníctvom používateľského rozhrania.

UI testovanie

Testovanie GUI zahŕňa kontrolu, či aplikácia spĺňa požiadavky na grafické rozhranie, či vyzerá profesionálne a či má konzistentný štýl.

Testovanie bezpečnosti

Proces posudzovania zraniteľnosti softvéru voči rôznym útokom.

Lokalizačné testovanie

Toto je proces testovania lokalizovanej verzie softvérového produktu. Kontrola správnosti prekladu prvkov používateľského rozhrania, kontrola správnosti prekladu systémových správ a chýb, kontrola prekladu sekcie „Pomoc“ / „Pomoc“ a sprievodnej dokumentácie.

Testovanie kompatibility

Typ nefunkčného testovania, ktorého hlavným účelom je overenie správneho fungovania produktu v konkrétnom prostredí.

Prostredie môže obsahovať tieto prvky:

  • Hardvérová platforma;
  • Sieťové zariadenia;
  • Periférne zariadenia (tlačiarne, jednotky CD / DVD, webové kamery atď.);
  • Operačný systém (Unix, Windows, MacOS, ...)
  • Databázy (Oracle, MS SQL, MySQL, ...)
  • Systémový softvér (webový server, brána firewall, antivírus, ...)
  • Prehliadače (Internet Explorer, Firefox, Opera, Chrome, Safari)

Testovanie čiernej skrinky

Metóda testovania funkčného správania objektu (programu, systému) z pohľadu vonkajšieho sveta, pri ktorej sa nepoužívajú poznatky o vnútornej štruktúre testovaného objektu.

Testovanie bielej skrinky

Vykonáva sa na zistenie problémov vo vnútornej štruktúre programu. To si vyžaduje dôkladné znalosti vnútornej štruktúry skúšajúceho, a preto ich nemôže vykonať priemerný užívateľ. Všeobecnou úlohou takéhoto testovania je zabezpečiť overenie každého kroku podľa programového algoritmu.

Testovanie šedej skrinky

Ide o kombináciu testovania bielej a čiernej skrinky. Účelom tohto testovania je nájsť prípadné chyby v dôsledku nesprávnej konštrukcie alebo nesprávneho použitia aplikácií.

Ručné testovanie

Toto je proces hľadania chýb v prevádzke programu, keď sa testuje funkčnosť všetkých súčastí programu, akoby išlo o používateľa.

Automatizované testovanie

Tento testovací proces využíva softvérové \u200b\u200bnástroje na vykonávanie testov a overovanie výsledkov vykonávania, čo pomáha skracovať čas testovania a zjednodušovať testovanie.

Testovanie jednotky (testovanie komponentov / jednotiek)

Proces, ktorý vám umožňuje skontrolovať správnosť jednotlivých modulov zdrojového kódu programu.

Testovanie integrácie

Testovanie softvéru, pri ktorom sa jednotlivé softvérové \u200b\u200bmoduly kombinujú a testujú v skupine. Testovanie integrácie sa vykonáva po testovaní jednotky a predchádza testovaniu systému.

Testovanie systému (system / end-to-end testovanie)

Toto je testovanie softvéru, ktoré sa vykonáva na kompletnom integrovanom systéme s cieľom overiť, či systém spĺňa pôvodné požiadavky. Testovanie systému sa týka metód testovania čiernej skrinky, a preto nevyžaduje znalosť vnútornej štruktúry systému.

Zvažovali sme iba malú časť terminológie, ale v QA je dosť dôležitá. Možno sa témou testovania dotkneme neskôr, ale pre dnešok je to všetko.

Podobné články:

Riešenie problémov s programom Adobe Flash pomocou služby YouTube - Prečítajte si

  1. pidval to znova odblokoval z
  2. alexruzhyk sa to páčilo
  3. anko-777 toto zmenil z
  4. sa to páčilo
  5. maryarti sa to páčilo
  6. dfdor44f sa to páčilo
  7. eridi reblogoval toto od
  8. seonoptik sa to páčilo

Veľmi znepokojený kvalitou výrobkov. To vysvetľuje celosvetovú dostupnosť softvérových testerov. Poskytovaním títo ľudia zabezpečujú jeho kvalitu.

Mnoho testerov nikdy nezabudne na negatívne testovanie, aj keď nie všetci programátori sú s ním spokojní. Takáto kontrola je potrebná na ochranu pred hackermi, robotmi, útokmi Dos / DDos.

Aké je povolanie profesionálov v oblasti testovania? Musia nájsť problémy, ktoré nie sú viditeľné pre ostatných. Neodkladajte negatívne testy, alebo vystavujete systém riziku.

Pozitívne a negatívne testovanie

Začnime úplne od začiatku. Ak sú do testovania zahrnuté testovacie prípady, existujú 2 typy kontroly: pozitívna a negatívna. To druhé má výhodu.

Pozitívne testovanie Je proces overenia správneho správania podľa technických požiadaviek a dokumentácie. Pozitívne testovanie sa vykonáva s cieľom zabezpečiť, aby systém robil presne to, čo sa očakáva.

Negatívne testovanie Je proces kontroly zlého správania. V priebehu takéhoto testovania môžeme zistiť, že systém zvládne aj nepredvídané situácie.

Pozitívne-negatívne testovanie

Ak chcete vykonať testovanie softvéru, musíte mať intuíciu alebo lovecký inštinkt. Tester je všestranný človek, ktorý môže vykonávať obchodné analýzy aj testovanie.

Testéri kontrolujú, či proces beží správne: či je v súlade s technickými požiadavkami a testovacími scenármi. Samostatné pozitívne a negatívne testovanie bude trvať dlhšie ako obe súčasne. Je to tak preto, lebo existujú dve testovacie iterácie.

Čím viac sa blíži hodina X, tým rýchlejšie plynie čas a tým skôr musíte dokončiť úlohy, opraviť chyby, uplatniť obchodné požiadavky (ktoré sa môžu líšiť) a ešte viac. Termín je najteplejší čas!

Oddelenie negatívneho a pozitívneho testovania je jednoducho v rozpore s povahou testera! Jeho úlohou je skontrolovať v systéme všetky možné akcie koncového používateľa.

Ľudia sú väčšinou nelogickí a môžu spôsobiť softvérové \u200b\u200bproblémy. Negatívnym testovaním sa dá vyhnúť problémom.

My (nie také tajomstvo) sa veľmi obávame o kvalitu našich výrobkov a s úzkosťou sledujeme kolaps systému. To ospravedlňuje existenciu testerov vo svete. Cítime sa ako hrdinovia: prišiel skvelý tester, ktorý zachránil svojich používateľov pred strašnými kritickými chybami!

A naši testeri nikdy nezabúdajú na negatívne testovanie, aj keď nie všetci programátori z toho majú radosť. Ale také kontroly nie sú rozmarom „zlých testerov“, sú spôsobené potrebou uzavrieť zraniteľné miesta a chrániť pred prienikom hackerov a robotov do systému, útokmi Dos / DDos.

Aké je samozrejme povolanie špecialistov na skúšky? Musíme nájsť problémy. Problémy, na ktoré nikto najčastejšie nemá čas myslieť, nechce ich vidieť a zaoberať sa nimi. A ak sa kontroluje nielen správna činnosť systému, ale aj jeho abnormálne správanie, potom sa pridá napätie v tíme.

Uvidíte, programátori píšu softvér zameraný na výsledok, na plánované vydanie, lietajú na krídlach inšpirácie! A tu nastáva fáza kontroly a početných opráv a úprav „ideálneho“ kódu. A to je všetko, schovajte sa do všetkých strán, systém sa testuje.

Niektorí odborníci môžu, aby nikoho neobťažovali, odložiť negatívne testy na neskôr alebo ich dokonca ignorovať (hrôza!), Aby sa tak znížil čas a rozpočet. Prečo by ste mali skontrolovať, či program nerobí ani to, čo by mal, že? Nie.

Pozitívne a negatívne testovanie

Ale najskôr. Pri testovaní softvéru pomocou testovacích prípadov existujú dve sady kontrol: pozitívna a negatívna. Druhá je navyše zvyčajne viac ako prvá.

Pozitívne testovanie - toto je kontrola súladu činnosti systému s jeho normálnym (štandardným, očakávaným) správaním, podľa TOR a. To znamená, že tu skúmame, či softvér robí to, čo sa od neho očakáva, či implementácia zodpovedá moderným požiadavkám, či sú podporované pokyny pre používateľské rozhranie atď.

A negatívne testovanie testuje systém na abnormálne správanie. Pozeráme sa na to, či je softvér odolný voči nesprávnemu zadaniu údajov, ako sa narába s výnimkami, aké informácie sa zobrazujú v chybových správach, či je možné narušiť prevádzku produktu a / alebo ovplyvniť výkonnosť riešenia atď. .

Už sme povedali, že niektorí špecialisti nechávajú negatívne testovanie na neskôr alebo na to dokonca zabudnú, že je to takmer to isté. Sami viete, že odložené na neskôr takmer vždy zostanú nenaplnené.

Preto podľa nášho názoru

Negatívne a pozitívne testy spravidla nie je potrebné separovať a rozširovať v priebehu času.

Pretože môžeme povedať, že systém funguje tak, ako má, ak testujeme jeho odozvu iba na správnych vstupoch?

Pozitívne-negatívne testovanie

Pri testovaní, oh, aké dôležité sú intuície, zmysel a lovecké inštinkty - zavolajte si, čo chcete. A tu sedí náš technik a kontroluje napríklad registračný formulár.

Skontroluje všetko podľa technického zadania a testovacích scenárov, pozrie sa na to, ako sa spracovávajú údaje, ktoré musí užívateľ zadať do polí (mimochodom nie skutočnosť, že vstúpi) a tu to je - náhľad! Zdá sa mu, že ak do tohto prihlasovacieho poľa zadáte nejaký „% adynadyn /\u003e“, a nie obyčajný text, určite sa niečo stane. Niečo temné a pochmúrne nie je v poriadku.

No a čo? Musí si povedať: „Nie. Teraz musím urobiť pozitívne testovanie a nič iné. Tu mám budúci týždeň negatívny termín, potom príde čas na% adynadins /\u003e. Pravdepodobne “?

Tento prístup k negatívnemu testovaniu považujeme za neúčinný, a preto:

  1. Ak budete robiť pozitívne a negatívne testy osobitne, bude to trvať dlhšie. Aspoň preto, že to už budú dve testovacie iterácie.
  2. Testéri a programátori žijú v stanovených termínoch. A ak je čas prísne obmedzený, potom odloženie negatívneho testovania na neskôr zvyšuje riziko, že na ňu úplne zabudnete. Koniec koncov, čím bližšie k času X, tým rýchlejší čas letí, tým skôr musíte splniť úlohy, opraviť chyby, uplatniť konečné obchodné požiadavky (ktoré sa môžu meniť) a dokončiť veľa ďalších vecí. Termín - časy sú horúce!
  3. Oddelenie negatívneho a pozitívneho testovania je podľa nášho názoru jednoducho v rozpore s povahou testera! Jeho hlavnou úlohou je koniec koncov skontrolovať systém pre všetky možné akcie koncového používateľa. A ľudia sú väčšinou nelogickí a dokážu so softvérom robiť všelijaké oplzlosti;)

Ako testerov máme veľké obavy, ak systém obsahuje chyby v kontrolách z kategórie negatívnych. A to najmä vtedy, ak sú následky takýchto chýb kritické pre celý systém. Ale nebojíme sa ich nahlásiť. Najmä s takým tromfom v rukáve - v tíme máme dievčatá-testerky. A kto bude schopný tvrdohlavo brániť „ideálnosť“ kódu, keď jemnými hlasmi pre kováčov rozbije výkon projektu? To je to isté.

Aké závery teda môžeme vyvodiť?

Nezabudnite na negatívne testovanie, kombinujte ho s pozitívnym, zhromaždite v tíme skúsených odborníkov a skúste presunúť úlohu podávania správ na plecia dievčat! Odporúčame 100%, s výnimkou posledného, \u200b\u200ba váš projektový manažér sa tým bude zaoberať.

A samozrejme si nezabudnite svoj produkt skontrolovať, nemyslite si, že programátori okamžite napíšu kód čisto a krásne - aj tak sa bez chýb nezaobídete! Nehovoriac o početných zraniteľnostiach, ktoré potvrdzujú aj osobné a dôverné údaje pravidelne unikajúce do siete.

· Testovanie dymu. V tejto fáze je potrebné skontrolovať, či systém vôbec funguje (či funguje správne, či správne narába s chybami atď.). To sa deje s cieľom pochopiť, či je aplikácia vhodná na ďalšie testovanie alebo či zo začiatku nefunguje správne.

· „Pozitívne“ testovanie. V tejto fáze musíte skontrolovať výsledok aplikácie, keď dostane „správny“ vstup.

· „Negatívne“ testovanie. Toto je konečná fáza počiatočného testovania. Je potrebné vidieť, ako sa chová aplikácia pri privádzaní „nesprávnych“ údajov na vstup. Ak je takýto variant popísaný v špecifikácii (a mal by byť popísaný), je potrebné porovnať očakávaný výsledok so získaným.

V štádiu štúdia špecifikácie sa určuje, kedy a ako by mala samotná aplikácia fungovať, kedy a ako má reagovať na chyby, t. J. Ako má systém alebo jeho moduly reagovať na nesprávne údaje alebo nesprávne správanie používateľa.

Dokumentácia umožňuje pochopiť hlavné fázy overovania aplikácie: kde a ako by mala aplikácia správne fungovať, ako riešiť chybové situácie: vydávať chybové správy, zapísať chybu do súboru denníka, zastaviť vykonávanie atď.

1) skontrolujte, ako aplikácia funguje, keď dostane správny vstup;

2) ak všetko funguje správne, ako je popísané v špecifikácii, ďalším krokom je kontrola hraničných hodnôt (minimálna a maximálna hodnota správnych údajov);

3) pri zadávaní údajov, ktoré nie sú v rozmedzí platných hodnôt, skontrolujte funkčnosť aplikácie (kontrola spracovania nesprávnych vstupných hodnôt).

Prvé dva odseky popisujú proces nazývaný „pozitívne“ testovanie.

« Pozitívne» testovanieIde o testovanie na údajoch alebo scenároch, ktoré zodpovedajú bežnému (štandardnému, očakávanému) chovaniu testovaného systému. Hlavným účelom „pozitívneho“ testovania je vyskúšať, či systém dokáže to, na čo bol navrhnutý.

« Negatívne» testovanie- Ide o testovanie na údajoch alebo scenároch, ktoré zodpovedajú neobvyklému chovaniu testovaného systému, ako aj vydávanie rôznych chybových správ, výnimočných situácií, stavov „mimo hraníc“ atď.

Hlavným účelom „negatívneho“ testovania je skontrolovať odolnosť systému voči účinkom „negatívneho“ druhu: kontrola nesprávneho súboru údajov, kontrola spracovania výnimočných situácií (pri implementácii samotných softvérových algoritmov aj v logike) obchodných pravidiel) atď.


Pred „pozitívnym“ a „negatívnym“ testovaním by malo byť čo robiť dym» testovanie, v priebehu ktorého sa vykonáva rýchle a plytké testovanie najkritickejšej funkčnosti na jednoduchých, to znamená typických scenároch s minimom kontrol („aby nedochádzalo k dymu“). Možno vykonať na „pozitívnych“ aj „negatívnych“ údajoch

Definujte funkčné skúšky, skúšky zaťaženia, namáhanie a stabilitu.

Funkčné testovanie spočíva v testovaní systému za účelom overenia uskutočniteľnosti funkčných požiadaviek, t.j. schopnosť programu za určitých podmienok vyriešiť úlohy požadované používateľmi. Funkčné požiadavky určujú, čo presne program robí a aké úlohy rieši.

Stresové testovanie. Všeobecne sa predpokladané použitie aplikácie simuluje simuláciou práce viacerých používateľov súčasne. Tento typ testovania je najvhodnejší pre systémy pre viacerých používateľov, najmä pre tie, ktoré používajú architektúru klient-server (napríklad webové servery).

Stresové testovanie - typ testovania softvéru, pri ktorom sa hodnotí spoľahlivosť a stabilita systému v podmienkach prekročenia limitov bežnej prevádzky. Stresové testovanie je zvlášť potrebné pre „kritický“ softvér. Stresové testovanie je všeobecne lepšie pri zisťovaní vlastností, ako je robustnosť, dostupnosť a schopnosť zvládať výnimky zo strany systému pri veľkom zaťažení, ako to, čo sa považuje za správne správanie za normálnych podmienok.

Testovanie stability... Tento typ testovania spočíva v kontrole výkonu programu počas dlhodobej prevádzky s očakávanou úrovňou zaťaženia. Pred začatím kontroly činnosti systému pri maximálnom a kritickom zaťažení je potrebné skontrolovať jeho činnosť za tých podmienok, ktoré sú stanovené vo funkčných požiadavkách, to znamená, že bude systém dlho fungovať v normálnom režime. Hlavnou úlohou takéhoto testovania je zistiť úniky pamäte a tiež overiť, či rýchlosť spracovania a čas odozvy aplikácie boli na začiatku a na konci testu rovnaké.

Otázky k téme 18

Pri testovaní softvérového produktu sa používa obrovské množstvo rôznych typov testov. Najširšiu a najpodrobnejšiu klasifikáciu navrhol autor knihy „Testing Dot Com“ Roman Savin. Kombinoval typy testovania podľa takých charakteristík, ako je objekt, predmet testovania, úroveň, pozitivita testovania a miera automatizácie testu. Klasifikácia bola aktualizovaná na základe zdrojov, ako sú kniha Sam Kanera „Testovanie softvéru“ a internetový zdroj venovaný testovaniu „Pro Testing - Testovanie softvéru“.

Podľa testovacieho objektu

  • · Funkčné testovanie. Funkčné testovanie je dnes jedným z najbežnejšie používaných typov testovania. Úlohou takéhoto testovania je zistiť, do akej miery vyvinutý softvér (softvér) zodpovedá požiadavkám zákazníka, pokiaľ ide o funkčnosť. Inými slovami, vykonávanie funkčných testov vám umožňuje skontrolovať schopnosť informačného systému riešiť problémy používateľov.
  • · Nefunkčné testovanie. Umožňuje vám skontrolovať súlad vlastností softvéru s nastavenými nefunkčnými požiadavkami. Nefunkčné testovanie teda testuje všetky vlastnosti programu, ktoré nesúvisia s funkčnosťou systému. Takéto vlastnosti možno prezentovať ako charakteristiky z hľadiska parametrov, ako sú:
  • - Spoľahlivosť (schopnosť systému reagovať na nepredvídané situácie).
  • - Výkon (schopnosť systému pracovať pri veľkom zaťažení).
  • - Pohodlie (štúdia o pohodlí používateľa s aplikáciou).
  • - Škálovateľnosť (schopnosť škálovať aplikáciu vertikálne aj horizontálne).
  • - Bezpečnosť (vyšetrovanie možnosti prerušenia aplikácie a krádeže údajov o používateľoch počítačovými zločincami).
  • - Prenosnosť (schopnosť preniesť aplikáciu na konkrétnu sadu platforiem)

A mnoho ďalších kvalít.

  • · Testovanie používateľského rozhrania. Jedná sa o testovanie správnosti zobrazenia prvkov používateľského rozhrania na rôznych zariadeniach, ich správnej reakcie na vykonávanie rôznych akcií používateľom, ako aj hodnotenie toho, ako sa program správa ako celok. Takéto testovanie umožňuje posúdiť, ako efektívne bude užívateľ schopný s aplikáciou pracovať a ako vzhľad aplikácie zodpovedá schváleným dokumentom vytvoreným dizajnérmi. Pri testovaní používateľského rozhrania je hlavnou úlohou testera identifikovať vizuálne a štrukturálne chyby v grafickom rozhraní aplikácie, skontrolovať možnosť a ľahkú navigáciu v aplikácii a správnosť spracovania údajov zadávaných aplikáciou z klávesnice, myš a ďalšie vstupné zariadenia. Testovanie používateľského rozhrania je potrebné na zabezpečenie toho, aby rozhranie zodpovedalo schváleným požiadavkám a štandardom, a na zabezpečenie toho, aby používateľ mohol pracovať s grafickým rozhraním aplikácie.
  • · Testovanie použiteľnosti. Toto je testovacia metóda, ktorá umožňuje posúdiť mieru použiteľnosti aplikácie, rýchlosť, ktorú sa používatelia naučia pri práci s programom, a tiež to, ako ju používatelia vyvíjaného produktu považujú v kontexte daného produktu za zrozumiteľnú a atraktívnu. podmienky. Takéto testovanie je nevyhnutné na zabezpečenie čo najpozitívnejšej používateľskej skúsenosti pri práci s aplikáciou.
  • · Testovanie bezpečnosti. Umožňuje vám identifikovať hlavné chyby softvéru v súvislosti s rôznymi útokmi zločincov. Počítačové systémy sú pomerne často vystavené kybernetickým útokom s cieľom narušiť výkon informačného systému alebo ukradnúť dôverné údaje. Testovanie bezpečnosti umožňuje analyzovať skutočnú reakciu a účinnosť ochranných mechanizmov použitých v systéme pri pokuse o prienik. Počas bezpečnostného testovania sa tester snaží vykonať rovnaké činnosti, aké by urobil skutočný cracker. Ak sa tester pokúsi hacknúť systém, je možné použiť akýkoľvek spôsob: útoky systému pomocou špeciálnych nástrojov; pokusy o zisťovanie prihlásení a hesiel pomocou externých prostriedkov; Útoky DDOS; cieľavedomé generovanie chýb na zistenie možnosti prieniku do systému počas jeho obnovy; zneužitie známych chýb zabezpečenia bez opravy.
  • · Testovanie inštalácie. Tento pojem znamená testovanie správnosti inštalácie (inštalácie) určitého softvérového produktu. Takéto testovanie sa zvyčajne uskutočňuje v umelo vytvorených prostrediach s cieľom zistiť stupeň pripravenosti softvéru na použitie. Hlavné dôvody na vykonanie takýchto testov súvisia s potrebou overiť správnosť správania softvérového produktu počas automatizovaného nasadenia alebo aktualizácie. Zaistenie správnej a stabilnej inštalácie softvéru je veľmi dôležitým faktorom pri vytváraní softvérového produktu, pretože umožňuje používateľom začať produkt používať rýchlejšie a s menším úsilím a zároveň zabezpečiť, aby sa produkt choval rovnako vo všetkých testovaných softvérových prostrediach.
  • · Testovanie konfigurácie. Testovanie konfigurácie je určené na vyhodnotenie výkonu softvéru v rámci rôznych systémových konfigurácií. Testovanie konfigurácie môže slúžiť rôznym účelom v závislosti od typu testovaného softvérového produktu. Spravidla ide buď o stanovenie optimálnej konfigurácie hardvéru, ktorá poskytuje dostatočné výkonové parametre, aby softvér fungoval, alebo o kontrolu konkrétnej konfigurácie hardvéru (alebo platformy, ktorá okrem hardvéru obsahuje aj softvér tretích strán potrebný na spustenie programu). kvôli kompatibilite s testovaným produktom. Pokiaľ hovoríme o softvéri klient-server, potom sa testovanie konfigurácie vykonáva osobitne pre server a osobitne pre klienta. Pri testovaní kompatibility servera s konkrétnou konfiguráciou je zvyčajne úlohou nájsť optimálnu konfiguráciu, pretože stabilita a výkon servera sú dôležité. Pri testovaní klienta sa naopak snažia identifikovať chyby softvéru v akejkoľvek konfigurácii a pokiaľ je to možné, odstrániť ich.
  • · Testovanie spoľahlivosti a zotavenia po katastrofe (stresové testovanie). Tento typ testovania sa pomerne často vykonáva pre softvér, ktorý pracuje s cennými používateľskými údajmi, ktorých prevádzka a rýchlosť zotavenia po poruchách sú pre používateľa kritické. Testovanie a obnova po zlyhaní testuje schopnosť programu rýchlo a úspešne sa zotaviť po zlyhaní hardvéru, výpadkoch siete alebo kritických chybách samotného softvéru. To umožňuje posúdiť možné následky poruchy a čas potrebný na následnú obnovu systému. Na základe údajov získaných počas testovania možno vyhodnotiť spoľahlivosť systému ako celku, a ak je výkon nedostatočný, môžu sa prijať vhodné opatrenia zamerané na zlepšenie systémov obnovy.
  • · Testovanie lokalizácie. Testovanie lokalizácie umožňuje zistiť, ako dobre je produkt prispôsobený pre populáciu určitých krajín a do akej miery zodpovedá jeho kultúrnym vlastnostiam. Zvyčajne sa berú do úvahy kultúrne a jazykové nuansy, konkrétne preklad používateľského rozhrania, sprievodnej dokumentácie a súborov do konkrétneho jazyka, testuje sa tiež správnosť formátov mien, čísel, času a telefónnych čísel.
  • · Stresové testovanie. Testovanie záťaže vám umožňuje identifikovať maximálny počet podobných úloh, ktoré môže program vykonávať paralelne. Najpopulárnejším cieľom testovania záťaže v kontexte aplikácií klient-server je odhadnúť maximálny počet používateľov, ktorí môžu súčasne využívať aplikácie.
  • · Testovanie stability. Testovaním stability sa overuje výkonnosť aplikácie počas dlhších období používania pri priemernom zaťažení. V závislosti od typu aplikácie sa na jej nepretržitú prevádzku vytvárajú určité požiadavky. Testovanie stability sa snaží zistiť chyby aplikácie, ako sú úniky pamäte, výrazné špičky zaťaženia a ďalšie faktory, ktoré môžu dlhodobo pôsobiť na výkon aplikácie.
  • · Objemové testovanie. Úlohou volumetrického testovania je identifikovať reakciu aplikácie a posúdiť možné zhoršenie činnosti softvéru so značným zvýšením množstva údajov v databáze aplikácie. Toto testovanie zvyčajne zahrnuje:
  • - Meranie času vykonávania operácií súvisiacich s prijímaním alebo zmenou údajov z databázy pri určitej intenzite požiadaviek.
  • - Odhalenie závislosti zvýšenia prevádzkového času od množstva údajov v databáze.
  • - Stanovenie maximálneho počtu používateľov, ktorí môžu súčasne pracovať s aplikáciou bez zjavných oneskorení z databázy.
  • Testovanie škálovateľnosti. Toto je typ testovania softvéru určený na testovanie schopnosti produktu zväčšiť (niekedy znížiť) určité nefunkčné schopnosti. Niektoré druhy aplikácií musia byť ľahko škálovateľné a samozrejme musia zostať funkčné a vydržať určité zaťaženie používateľa.

Zmena súvisiaca s testovaním

  • · Saniti je jedným z typov testovania, ktorého účelom je preukázať výkon konkrétnej funkcie alebo modulu v súlade s technickými požiadavkami stanovenými zákazníkom. Sanitárne testovanie sa pomerne často používa pri testovaní časti programu alebo aplikácie, keď sa v nej urobia určité zmeny z hľadiska faktorov prostredia. Tento typ testovania sa zvyčajne vykonáva ručne.
  • · Testovanie dymu je krátky cyklus testov, ktorých účelom je potvrdiť skutočnosť, že nainštalovaná aplikácia sa spúšťa a vykonáva funkcie po vytvorení nového alebo upraveného kódu. Po dokončení testovania najdôležitejších segmentov aplikácie sa poskytnú objektívne informácie o prítomnosti alebo neprítomnosti chýb v prevádzke testovaných segmentov. Na základe výsledkov testovania dymu sa rozhodne o zaslaní žiadosti o revíziu alebo o potrebe jej následného úplného otestovania.
  • · Regresné testovanie - testovanie zamerané na detekciu chýb v už testovaných oblastiach. Regresné testovanie kontroluje, či produkt neobsahuje chyby, ktoré sa mohli objaviť v dôsledku pridania novej sekcie programu alebo odstránenia ďalších chýb. Účelom tohto typu testovania je zaistiť, aby aktualizácia zostavy alebo oprava chyby nezavádzali nové chyby.

Testovaním úrovne

  • · Testovanie jednotky (testy jednotky). Spočíva v kontrole každého jednotlivého modulu (pôvodného prvku systému) spustením automatizovaných testov v umelom prostredí. Implementácie takýchto testov často využívajú rôzne pahýle a ovládače na simuláciu fungovania skutočného systému. Automatické testovanie jednotiek je úplne prvou príležitosťou na spustenie a testovanie zdrojového kódu. Vytvorenie testov jednotiek pre všetky moduly systému umožňuje veľmi rýchlo identifikovať chyby v kóde, ktoré sa môžu vyskytnúť počas vývoja.
  • · Testovanie integrácie. Toto je testovanie jednotlivých modulov systému na správnu interakciu. Hlavným cieľom integračného testovania je nájsť chyby a odhaliť nesprávne správanie spojené s chybami pri interpretácii alebo implementácii interakcie medzi modulmi.
  • · Testovanie systému. Týmto testovaním programu ako celku sa overuje súlad programu s uvedenými požiadavkami.
  • · Akceptačné testovanie. Toto je komplexný test, ktorý určuje skutočnú úroveň pripravenosti systému na prevádzku koncovými používateľmi. Testovanie sa vykonáva na základe súboru testovacích scenárov pokrývajúcich hlavné obchodné operácie systému.

Vykonaním kódu

  • · Statické testovanie. Jedná sa o identifikáciu artefaktov, ktoré sa objavia počas vývoja softvérového produktu analýzou zdrojových súborov, ako je dokumentácia alebo programový kód. Takéto testovanie sa vykonáva bez priameho spustenia kódu, kvalita zdrojových súborov a ich súlad s požiadavkami sa hodnotia manuálne alebo pomocou pomocných nástrojov. Statické testovanie by sa malo vykonať pred dynamickým testovaním, takže chyby objavené počas fázy statického testovania sú lacnejšie. Z hľadiska zdrojového kódu je statické testovanie vyjadrené v revíziách kódu. Revíziu kódu jednotlivých súborov zvyčajne vykonáva po každej zmene týchto súborov programátor, zatiaľ čo samotnú revíziu môže vykonať buď iný programátor, alebo vedúci vývojár, alebo samostatný pracovník, ktorý sa zaoberá programovým vybavením. revízia kódexu. Použitie statického testovania umožňuje udržiavať kvalitu softvéru vo všetkých fázach vývoja a skracuje čas potrebný na vývoj produktu.
  • · Dynamické testovanie. Na rozdiel od statického testovania tento typ testovania zahŕňa spustenie zdrojového kódu aplikácie. Dynamické testovanie teda obsahuje mnoho ďalších typov testovania, ktoré už boli opísané vyššie. Dynamické testovanie vám umožňuje identifikovať chyby v správaní programu analyzovaním výsledkov jeho vykonania. Ukazuje sa, že takmer všetky existujúce typy testov zodpovedajú triede dynamického testovania.

Podľa predmetu testovania

  • · Alfa testovanie. Toto testovanie sa vykonáva na najskorších verziách počítačového softvéru (alebo hardvérového zariadenia). Testovanie verzie alfa takmer vždy vykonávajú samotní vývojári softvéru. Počas alfa testovania vývojári aplikácií nájdu a opravia chyby a problémy v programe. Počas testovania verzie Alpha zvyčajne dochádza k napodobňovaniu práce s programom vlastnými vývojármi, menej často s produktom skutočne pracuje tak potenciálny používateľ, ako aj zákazník. Testovanie verzie alfa sa spravidla vykonáva v najskoršej fáze vývoja softvéru, ale v niektorých prípadoch sa môže použiť napríklad na hotové výrobky alebo výrobky blízke dokončeniu.
  • · Beta testovanie. Testovanie produktu, ktorý je stále vo vývoji. V beta testovaní je tento produkt poskytovaný vybranému počtu používateľov, ktorí môžu vyšetrovať a hlásiť vznikajúce problémy, ktoré majú používatelia. Toto testovanie je nevyhnutné na nájdenie chýb, ktoré vývojárom mohli uniknúť. Testovanie verzie Beta sa zvyčajne vykonáva v dvoch fázach: uzavretá beta verzia a otvorená beta verzia. Uzavretý beta test je testovaním na prísne obmedzenom okruhu vybraných používateľov. Takými používateľmi môžu byť známi vývojárov alebo ich kolegovia, ktorí priamo nesúvisia s vývojom testovaného produktu. Otvorené beta testovanie je vytvorenie a zverejnenie verejnej beta verzie ako voľné dielo. V takom prípade môže ktorýkoľvek používateľ pôsobiť ako beta tester. Spätná väzba od takýchto testerov verzie beta sa vykonáva pomocou kontrol na webe a zabudovaných analytických a protokolovacích systémov pre akcie používateľov, tieto systémy sú potrebné na analýzu správania používateľov a zisťovanie ťažkostí a chýb, s ktorými sa stretávajú.

Pozitívnosťou scenára

  • · Pozitívne testovanie. Testy s pozitívnym scenárom testujú schopnosť programu vykonávať požadovanú funkčnosť. Spravidla sa pre takéto testovanie vypracúvajú testovacie scenáre, počas ktorých by za bežných prevádzkových podmienok softvéru nemali vzniknúť žiadne ťažkosti.
  • · Negatívne testovanie. Negatívne testovanie softvéru sa vyskytuje v scenároch, ktoré zodpovedajú neobvyklému chovaniu programu. Tieto testy kontrolujú správnosť programu v núdzových situáciách. Vďaka tomu sa môžete ubezpečiť, že program zobrazuje správne chybové správy, nepoškodzuje údaje používateľa a správa sa všeobecne správne v situáciách, keď nie je k dispozícii normálne správanie produktu. Hlavným cieľom negatívneho testovania je skontrolovať odolnosť systému voči rôznym vplyvom, schopnosť správne overiť vstupné údaje a zvládnuť výnimočné situácie, ktoré vznikajú tak v samotných softvérových algoritmoch, ako aj v obchodnej logike.

Podľa stupňa automatizácie

  • · Ručné testovanie. Ručné testovanie sa vykonáva bez použitia ďalších softvérových nástrojov; umožňuje vám skontrolovať program alebo web pomocou simulácie akcií používateľa. V tomto modeli tester funguje ako užívateľ, sleduje určité scenáre a súčasne analyzuje výstup programu a jeho správanie ako celok.
  • · Automatizované testovanie. Takéto testovanie umožňuje pomocou ďalšieho softvéru na automatizáciu testov výrazne urýchliť proces testovania. Tento dodatočný softvér vám umožňuje monitorovať a riadiť vykonávanie testov a porovnávať očakávané a skutočné výsledky programu. Viac podrobností sa bude diskutovať neskôr.