Čo je to nepretržité testovanie v DevOps? Definícia, výhody, nástroje

Obsah:

Anonim

Priebežné testovanie

Kontinuálne testovanie v DevOps je typ testovania softvéru, ktorý zahŕňa testovanie softvéru v každej fáze životného cyklu vývoja softvéru. Cieľom priebežného testovania je hodnotenie kvality softvéru na každom kroku procesu nepretržitého doručovania včasným a častým testovaním.

Proces nepretržitého testovania v DevOps zahŕňa zúčastnené strany ako Developer, DevOps, QA a operačný systém.

V tomto návode sa naučíte

  • Čo je to nepretržité testovanie?
  • V čom je kontinuálne testovanie iné?
  • Čím sa líši kontinuálne testovanie od automatizácie testov?
  • Ako na nepretržité testovanie
  • Nástroje na nepretržité testovanie
  • Výhody nepretržitého testovania
  • Výzvy nepretržitého testovania

V čom je kontinuálne testovanie iné?

Starý spôsob testovania bol centrický. Softvér sa odovzdával z jedného tímu do druhého. Projekt by mal definitívne fázy vývoja a QA. Tímy QA vždy chceli viac času na zabezpečenie kvality. Cieľom bolo, aby kvalita prevládala nad harmonogramom projektu.

Podnikanie však chce rýchlejšie dodanie softvéru koncovému používateľovi. Čím je softvér novší, tým lepšie sa dá uviesť na trh a zvyšuje potenciálny výnos spoločnosti. Preto bol vyvinutý nový spôsob testovania.

Kontinuálne znamená nepretržité testovanie, ktoré sa vykonáva nepretržite. V procese Continuous DevOps sa zmena softvéru (kandidát na vydanie) neustále pohybuje od vývoja cez testovanie po nasadenie.

Tento kód sa neustále vyvíja, dodáva, testuje a nasadzuje.

Napríklad vždy, keď vývojár skontroluje kód na serveri zdrojového kódu, napríklad sa v kontinuálnom procese vykoná automatizovaná sada jednotkových testov Jenkins. Ak testy zlyhajú, zostavenie je odmietnuté a vývojár je o tom informovaný. Ak zostavenie vyhovie testu, nasadí sa na servery QA na výkon pre vyčerpávajúce funkčné a záťažové testy. Testy prebiehajú paralelne. Ak testy vyhovejú, softvér sa nasadí do výroby.

Nepretržité testovanie je malá položka v cykle nepretržitého vývoja, integrácie a nasadenia.

Vývoj softvéru nie je rovnaký ako v minulosti, keď sme vývoj skrátili z mesiaca na týždeň. Aktuálny testovací zásobník (pozri obrázok vyššie) má názov zameraný na testovanie používateľského rozhrania. Cieľom je ale mať čoraz viac automatizovaných jednotkových testov.

Čím sa líši kontinuálne testovanie od automatizácie testov?

Automatizácia testov vs nepretržité testovanie

Parameter Automatizácia testov Priebežné testovanie
Definícia Automatizácia testov je proces, pri ktorom sa na automatizáciu úloh používa nástroj alebo softvér. Jedná sa o metodiku testovania softvéru, ktorá sa zameriava na dosiahnutie neustálej kvality a zlepšovania.
Účel Súbor podobných alebo opakujúcich sa úloh, ktoré stroj dokáže vykonať, rýchlejšie a s menšou chybou. Proces neustáleho testovania pomáha nachádzať riziká, riešiť ich a zlepšovať kvalitu produktu.
Predpoklad Automatizácia testovania je možná bez integrácie nepretržitého testovania. Priebežné testovanie nie je možné implementovať bez automatizácie testu.
Čas Vydanie softvéru môže trvať mesiac až roky. Vydanie softvéru môže byť vydané každý týždeň až hodinu.
Spätná väzba Pravidelná spätná väzba po testovaní každého vydania. Spätná väzba v každej fáze musí byť okamžitá.
História Automatizované testovanie sa vykonáva už celé desaťročia, aby sa proces testovania zrýchlil. Kontinuálne testovanie je relatívne novší koncept.

Ako na nepretržité testovanie

  • Používa sa na nástroje na generovanie automatizácie testov z používateľských príbehov / požiadaviek
  • Vytvorte testovacie prostredie.
  • Skopírovaním a anonymizáciou produkčných údajov vytvoríte testovacie dátové lôžko
  • Na otestovanie API použite virtualizáciu služieb
  • Paralelné testovanie výkonu

Nástroje na nepretržité testovanie

Tu je zostavený zoznam najlepších nástrojov na nepretržité testovanie :

1) QuerySurge

QuerySurge je inteligentné riešenie na testovanie údajov, ktoré je prvým svojho druhu úplného riešenia DevOps pre nepretržité testovanie údajov. Medzi kľúčové vlastnosti patrí Robust API s viac ako 60 hovormi, podrobné údaje a analýza dát, plynulá integrácia do potrubia DevOps pre nepretržité testovanie a rýchle overenie veľkého množstva dát.

Začnite testovať zadarmo

2) Jenkins

Jenkins je nástroj na kontinuálnu integráciu, ktorý sa píše pomocou jazyka Java. Tento nástroj je možné konfigurovať pomocou grafického rozhrania alebo príkazov konzoly.

Odkaz na stiahnutie: https://jenkins.io/

3) Travis

Travis je nástroj na nepretržité testovanie hostený na GitHub. Ponúka hosťované a miestne varianty. Poskytuje množstvo rôznych jazykov a dobrú dokumentáciu.

Odkaz na stiahnutie: https://travis-ci.org/

4) selén

Selenium je open-source softvérový testovací nástroj. Podporuje všetky popredné prehliadače ako Firefox, Chrome, IE a Safari. Selenium WebDriver sa používa na automatizáciu testovania webových aplikácií.

Odkaz na stiahnutie: https://www.seleniumhq.org/

Výhody nepretržitého testovania

  • Urýchlite dodávku softvéru
  • Neustále testovanie zlepšuje kvalitu kódu
  • Pomáha posúdiť presné krytie obchodných rizík.
  • Bez problémov sa integruje do procesu DevOps
  • Pomáha vytvárať svižný a spoľahlivý proces za pár hodín namiesto mesiacov.
  • Urýchľuje čas uvedenia na trh pomocou mechanizmu nepretržitej spätnej väzby.
  • Zlúčenie tradične umlčalo tímy, aby vyhoveli potrebám moderného podniku. Rozpúšťa rozpory medzi vývojovými, testovacími a operačnými tímami.
  • Automatizácia testov pomáha dosiahnuť konzistenciu udržiavaním rovnakej konfigurácie pre všetky príslušné testy.
  • Zdôrazňuje obchodné očakávania na zmiernenie obchodných rizík
  • Poskytovanie všadeprítomného prístupu do testovacieho prostredia pomocou virtualizácie služieb

Výzvy nepretržitého testovania

  • Tradičný proces obmedzuje kultúrny posun medzi odborníkmi z oblasti Development & QA.
  • Nedostatok zručností DevOps a správne nástroje na testovanie v prostrediach Agile & DevOps.
  • Heterogénne testovacie prostredia, ktoré nikdy nebudú odrážať produkčné prostredie.
  • Konvenčný testovací proces a voľne definovaná správa testovacích dát.
  • Dlhšie cykly integrácie kódu vytvárajú problémy s integráciou a opravy neskorých chýb
  • Nedostatočné a neúčinné zdroje a testovacie prostredia
  • Komplexná aplikačná architektúra a obchodná logika, ktorá obmedzuje prijatie DevOps.

Záver:

  • V softvérovom inžinierstve je nepretržité testovanie proces skorého testovania, testovania často, testovania všade a automatizácie.
  • Starý spôsob testovania bol zameraný na odovzdávanie. Softvér sa prenáša z jedného tímu do druhého
  • Jenkins, Travis a Selenium sú populárne nástroje na nepretržité testovanie a integráciu.
  • Nepretržité testovanie poskytuje použiteľnú spätnú väzbu podľa každej fázy distribučného potrubia.
  • Neustále testovanie pomáha zlepšovať kvalitu kódu
  • Tradičný proces obmedzuje kultúrny posun medzi odborníkmi z oblasti Development & QA.
  • Dlhšie cykly integrácie kódu vytvárajú problémy s integráciou a opravy neskorých chýb