У наставку пронађите ручно одабрану листу алата за развој заснован на тестовима (ТДД) који ће вам помоћи да развијете софтвер вишег квалитета у Агиле ДевОпс окружењу.
Време и простор развоја софтвера се брзо мењају. Захтеви за компјутерским софтвером и мобилним апликацијама се брзо мењају. До тренутка када развијете минимално одржив производ (МВП), тржишни тренд би се већ могао променити, а прототип постаје мање популаран.
Агилан развој софтвера прати оквир екстремног програмирања (КСП) како би се суочио са таквим ризицима за развој софтвера пројеката са фиксним временом који укључују најновије технолошке трендове. ДевОпс који прати КСП оквир се у великој мери ослања на ТДД. Дакле, ако сте у таквом пројекту, следећи алати могу помоћи.
Преглед садржаја
Шта је развој вођен тестом (ТДД)?
Тест-Дривен Девелопмент (ТДД) је део ДевОпс процеса који наглашава писање тест сценарија пре писања стварног кода. То је циклични радни ток где програмери прво пишу тест случај који се састоји од функционалности која им је потребна у софтверу.
Након тестирања, програм очигледно не успева. Овај неуспели тест постаје предмет даљих корективних радњи. На пример, програмери морају да напишу минималне линије кода да би сценарио теста прошао. Софтверски инжењери затим рефакторишу код како би побољшали његов УИ, УКС и дизајн и отарасили се неефикасних или дуплираних кодова.
Укратко, ТДД је дисциплинован процес тестирања софтвера пре генерисања прототипа за доказивање кода у различитим неуспешним сценаријима. Тако прототип постаје мање бугљив и погоднији за бета тестирање од стране софтверских тестера или неколико фокус група из групе крајњих корисника. Кодови генерисани кроз ТДД процес су лакше одржавани и поузданији.
На пример, испод пронађите процес ТДД за веб локацију е-трговине:
- Напишите пробне случајеве за листе производа, описе производа, вртешке са производима, колица за куповину и токове посла за плаћање.
- Затим креирајте насумична путовања купаца да бисте изабрали и додали производе у корпу за куповину и плаћање.
- Обратите пажњу на све сценарије у којима ова насумична путовања корисника не успевају.
- Рефакторирајте почетне кодове тако да прођу тестове.
- Сада, развојни тим може да ради на даљим ставкама као што су дизајн, кориснички интерфејс, УКС, итд.
Како се ТДД уклапа у Агиле и ДевОпс?
ТДД је важан део екстремног програмирања, што је заузврат незаменљиви оквир Агиле-а и ДевОпс-а.
У агилном развоју, ТДД олакшава инкрементални и итеративни процес развоја креирањем неуспешних тест случајева и писањем минималних кодова за пролазак теста. Затим, тимови низводно од овог цевовода могу да дају повратне информације, а ТДД тим ће почети да развија више неуспешних тестних сценарија и модификује код да прође све ове тестне случајеве. Овај итеративни неуспели тестови и положени тестови обезбеђују повратну петљу између тимова укључених у Агиле развој.
У ДевОпс-у, ТДД подржава општи циљ испоруке висококвалитетног софтвера брзим темпом. Имплементацијом аутоматизације тестирања, ТДД вам помаже да успоставите конкретну основу за цевоводе за континуирану интеграцију и континуирану испоруку (ЦИ/ЦД).
Пошто поништавате уобичајене неуспеле тестове у раној фази развоја, морате само да бринете о функционалности основних софтверских функција које ће крајњи корисници користити како бисте могли да се носите са процесом бета тестирања.
Синхронизујте резултате бета тестирања са ЦИ/ЦД-ом и бићете у могућности да успоставите циклични радни ток висококвалитетног развоја софтвера у краћем временском периоду.
Сарадња и комуникација су важан аспект Агиле-а и ДевОпс-а. Тест-дривен развој такође олакшава ово унутар вишефункционалних тимова. Програмери, дизајнери и операције могу ускладити своје разумевање функционалности за крајњи производ тако што ће унапред разговарати о сценаријима тестних случајева.
Предности развоја вођеног тестирањем (ТДД)
У наставку пронађите предности ТДД-а у односу на традиционално тестирање:
- ТДД подстиче оптимизовано креирање кода.
- Помаже програмерима да ефикасније анализирају и разумеју захтеве клијената, тражећи појашњење када је то потребно.
- ТДД Поједностављује процес додавања и тестирања нових функционалности током каснијих фаза развоја.
- Развој вођен тестом обезбеђује већу покривеност тестом у поређењу са конвенционалним моделима развоја.
- Наглашава креирање тестова за сваку функционалност од самог почетка.
- ТДД такође побољшава продуктивност програмера.
- База кодова произведена у ТДД пројекту је флексибилнија и одрживија од кодова који произилазе из традиционалног тестирања.
Функције које морате имати за ТДД алат за ДевОпс
У наставку пронађите функције које морате да тражите у ТДД алату:
- Контролна табла која вас подсећа на функционалности потребне у коначном софтверу.
- Способност писања мањих тест кодова који се баве специфичним карактеристикама.
- Требало би да буду доступне функције за рефакторисање кода.
- Тестно окружење за извршавање тестног кода и добијање повратних информација одмах.
- Функције аутоматизације за покретање тест случајева без сталног надзора.
- Способност имплементације циклуса Ред-Греен-Рефацтор ТДД оквира.
- Функционалности које балансирају потребу за тестовима прихватања, тестовима интеграције и тестовима јединица.
- ЦИ/ЦД интеграција тако да алатка може да покрене аутоматизоване тестове када дође до промене кода.
Дозволите нам да истражимо најбоље ТДД алате које можете да користите у својим ДевОпс пројектима:
Апацхе ЈМетер
Апацхе ЈМетер је Јава апликација која вам омогућава да тестирате функционално понашање апликација и мерите перформансе теста. Можете га користити за тестирање перформанси динамичких и статичких апликација и веб апликација. Његове главне карактеристике су наведене у наставку:
- Учитајте сервере за тестирање и тестирање перформанси, апликације и интернет протоколе
- Подржава протоколе као што су ЛДАП, база података преко ЈДБЦ, ФТП, СОАП / РЕСТ веб сервиси и још много тога
- То је потпуно функционалан тест ИДЕ који олакшава снимање плана теста, отклањање грешака и прављење из матичних апликација и веб претраживача
- Креира динамичке ХТМЛ извештаје
- Вишеструка обрада тако да можете покренути више планова тестирања
- Подржава континуирану интеграцију (ЦИ) преко Градле-а, Мавен-а и Јенкинс-а.
Моцкито
Моцкито је суштински оквир за подсмех за ТДД пројекте. Омогућава вама и вашем ДевОпс тиму да креирате лажне објекте за потребе тестирања. Овај алат за писање тестова поједностављује процес изоловања зависности током процеса тестирања кода. Такође, можете лако проверити понашање тестног објекта.
Моцкито вам омогућава да се ругате и спољним зависностима. На пример, можете креирати лажне случајеве база података или веб услуга. Затим користите ове лажне субјекте за даље тестирање лажних објеката малих тестних функционалности вашег софтвера.
Различити ДевОпс пројекти често користе ЈУнит 4 заједно са Моцкито-ом да би олакшали развој софтвера заснованог на тестовима и понашању.
ЈУнит
ЈУнит (најновија верзија ЈУнит 5) је популаран ТДД алат за покретање тестних планова на Јава виртуелној машини (ЈВМ). Такође нуди ТестЕнгине АПИ који вам је потребан за развој оквира за тестирање на ЈВМ-у. Штавише, Јунит 5 укључује згодне функције као што су следеће:
- Конзола за покретање тестова из ЦЛИ
- ЈУнит Платформ Суите Енгине за покретање прилагођених тестних пакета
Штавише, популарна интегрисана развојна окружења (ИДЕ) као што су ИнтеллиЈ ИДЕА, Ецлипсе, НетБеанс, Висуал Студио Цоде, итд., имају уграђену подршку за то. Да не спомињемо, такође можете лако да интегришете ЈУнит 5 са алатима за прављење као што су Ант, Мавен и Градле.
питест
Кредит за слику: питест
питест је оквир за тестирање заснован на Питхон-у. ДевОпс и Агиле програмери софтвера га користе за лако писање и скалирање тест кодова на Питхон ЦЛИ. Користећи питест, можете писати једноставне тест случајеве за корисничке интерфејсе (УИ), базе података и интерфејсе за програмирање апликација (АПИ). Неке од његових најбољих карактеристика су следеће:
- Може аутоматски открити тестне функције и модуле
- питест може покренути носе и јединичне тестове користећи уграђене функционалности
- 1.000+ ПиПИ пројеката или додатака који вам помажу у ТДД процесу
Да не спомињемо, можете повећати процес писања и евалуације тест случајева када се захтев повећа.
НУнит
Ако креирате софтвер у .НЕТ фрамеворк-у користећи било који од подржаних језика као што су Ф#, Ц# и Висуал Басиц, можете да користите НУнит за јединично тестирање.
Његове најбоље карактеристике су наведене у наставку:
- НУнит 3 тест адаптер вам омогућава да покренете НУнит 3 тестове унутар ВС кода
- НУнит Енгине вам омогућава да покренете тестове развијене у различитим оквирима за тестирање
- ВС Тест Генератор вам помаже да креирате ИнтеллиТестове и јединичне тестове
Најновије издање, које је НУнит 3, већ је доступно у Висуал Студио ИДЕ и Цоде Едитор-у. Можете му лако приступити преко Алатке > НуГет Менаџер пакета и приступити НуГет пакетима за решење које отвара претраживач за праћење НУнит.Цонсоле и НУнит пакета.
ТестНГ
ТестНГ је оквир за тестирање кода који поједностављује широк спектар потреба за тестирањем, од тестирања јединица (тестирање појединачне функционалности у изолацији од целог софтвера) до тестирања интеграције.
Богате карактеристике ТестНГ-а које га чине другачијим од ЈУнит-а и НУнит-а су:
- Анотирање јединица тест случајева
- Тестирање да ли ваш код подржава мулти-тхреадинг
- Омогућава тестирање засновано на подацима
- Доступни су различити додаци и алати, као што су ИДЕА, Ецлипсе, Селениум, Мавен, Ант, итд.
Интеграционо тестирање у ТестНГ-у може укључивати сценарије тестирања као што је тестирање екстерних оквира као што су сервери апликација, тестирање неколико пакета и тестирање појединачног софтвера направљеног од различитих малих функционалних јединица.
Краставац
За развој вођен понашањем, можете користити Краставац као примарни технолошки скуп који ће потврдити да ли тестни случај или комплетан софтвер имају функционалности које ваш клијент тражи. Краставац скенира спецификације написане у текстуалним форматима.
Ове спецификације су углавном функционалности које мора да обезбеди софтвер који развијате. Може постојати више спецификација у различитим сценаријима.
Алат ће проћи кроз све ово и потврдити да ли је код у складу са спецификацијама. Он генерише извештај са сценаријима неуспеха и успеха. Подржава 20+ језика за развој софтвера као што су Јава, Руби, Ц++, Луа, Котлин, Сцала, Питхон, итд.
ТестРаил
ТестРаил је алатка за тестирање налик радном простору за све ваше ДевОпс пројекте. Он ствара екосистем централизованог тестирања кода и КА платформу користећи ТестРаил Куалити ОС. Користећи његову функцију Буилд, можете креирати више аутоматизованих тестова за различите пројекте развоја софтвера и организовати их у оквиру за управљање тестирањем.
Цоннецт модул вам омогућава да обједините алате за аутоматизацију тестирања, софтвер за праћење проблема као што је Јира и ДевОпс цевоводе са подацима тестирања из ТестРаил-а.
Коначно, модул Оптимизе вам омогућава да дате приоритет КА процесима да бисте прошли кроз одговарајуће тестове тренутним идентификовањем ризика.
РСпец
Кредит за слику: РСпец
Ако је ваш тим за развој софтвера специјалиста за апликације развијене на Руби-у, требало би да проверите РСпец као ТДД и БДД алат за Руби-базиране пројекте тестирања.
У РСпец-у постоји више библиотека за тестирање које могу да раде заједно или појединачно. То су рспец-очекивања, рспец-раилс, рспец-цоре и рспец-очекивања.
Ципресс
Кредит за слику: Ципресс
Ципресс је алатка за тестирање заснована на облаку направљена за модерне веб апликације са функцијама следеће генерације. Они су наведени у наставку:
- Тестирајте своје веб апликације на веб прегледачима
- Потребно је мање од 10 минута за подешавање и писање првог тест случаја
- Неуспеле тестове можете да отклоните у веб претраживачу
- Интерагира са апликацијом као што то чини крајњи корисник, тако да можете елиминисати уобичајене грешке
- Интегрише се са алатима за континуирану интеграцију као што су Цирцле ЦИ, ГитЛаб ЦИ, Атлассиан Битбуцкет, итд.
Путарина је погодна за тестове јединица, тестове интеграције, тестове компоненти и тестове од краја до краја.
Јест
Кредит за слику: Јест
Јест је софтвер за тестирање ЈаваСцрипта који програмери обично користе за развој вођен тестом (ТДД).
Његове главне карактеристике укључују следеће:
- Ради на већини ЈаваСцрипт пројеката без икакве конфигурације
- Направите тестне снимке
- Покреће различите тестове у одвојеним сопственим процесима како би повећао пропусност тестирања
Нуди једноставан АПИ за писање тестова, са уграђеном подршком за исмевање и тврдње. Такође има неопходне АПИ позиве за извештавање о покривености.
Мока
Кредит за слику: Мока
Мока је флексибилан ЈаваСцрипт оквир за тестирање који се користи за писање тестова, укључујући тест случајеве за ваше ТДД пројекте. Нуди једноставну и експанзивну библиотеку синтаксе тако да програмери могу лако да креирају и покрећу тестове. Можете покренути Моцха директно на веб претраживачу уз помоћ Ноде.јс.
Долази са опсежном подршком за асинхроно тестирање. Дакле, омогућава тестирање кода који се тиче повратних позива, обећања или асинц/аваит функција.
Штавише, нуди различите функције за тестирање кода као што су тест репортери, покривеност тестом и куке за управљање вишеструким пројектима тестирања софтвера.
Завршне речи
Сада знате које развојне алате вођене тестом морате користити у пројектима екстремног програмирања вођеним ДевОпс-ом. Такође можете да интегришете процес тестирања са својим ЦИ/ЦД цевоводом да бисте брзо пласирали висококвалитетни софтвер на тржиште пре него што се тренд одређене технологије охлади.
Затим погледајте детаљан чланак о ДевОпс аутоматизацији.