Тестирање мутације, или мутација програма, је техника тестирања беле кутије која помаже компанијама да развију низ нових провера софтвера док истовремено ревидирају тренутне процесе пројекта. Ово је релативно нов приступ, који осигурава да и програмери и тестери раде по високим стандардима.
Апликација је само онолико успешна или добра колико и њене сопствене процедуре обезбеђења квалитета – што значи да је од суштинског значаја да организације прихвате више од једне врсте техника тестирања.
Учење о тестирању мутација могло би помоћи тимовима за тестирање да повећају своје вештине и општи репертоар – омогућавајући им да побољшају поузданост ових провера. Тестирање мутација је сложен и осетљив процес, тако да је од виталног значаја да тестери темељно истраже предности, изазове и програме независних произвођача који могу да гарантују успешну примену.
У овом чланку разматрамо тестирање мутација и како оно побољшава осигурање квалитета, као и друга кључна разматрања за тимове за тестирање софтвера.
Шта је тестирање мутација у тестирању софтвера?
У контексту софтвера, тестирање мутација значи када тим за осигурање квалитета намерно уводи грешке – или „мутације“ – у код апликације да би видео како тим реагује. Циљ је да се направи грешка и да се увери да је пакет за тестирање у стању да идентификује сваку измену у апликацији.
Када уређује програмски код, тестер мутација може да промени израз тачно/нетачно, избрише изјаву или једноставно промени вредност. Ове грешке се могу манифестовати на више начина током других провера софтвера; све то може лако открити вешт и искусан тим за тестирање.
Саме мутације су често веома мале, омогућавајући тестеру који мутира код да посматра како тим открива ове промене. Значајне промене би биле очигледне чак и на летимичан поглед – тако да су мање грешке обично најбољи начин да се осигура да компанија примењује робусне праксе тестирања.
Ова техника посебно гледа на ефикасност тест случајева тима; документе који садрже информације о тесту. Тим такође може да користи софтвер за аутоматизацију треће стране за покретање ових провера, у ком случају тестирање мутација испитује колико добро ова платформа може да открије грешке у коду програма.
1. Када треба да урадите тестирање мутације?
Пошто је циљ тестирања мутација да потврди и побољша тренутне провере обезбеђења квалитета , неопходно је да тимови ово спроведу у раној фази тестирања. То значи да ако пакет за тестирање није у стању да идентификује и ‘убије’ мутанте, има довољно времена да се унесу значајне промене било које скале у процедуре тестирања организације.
Пошто је ово веома свестран метод, тестирање мутација је применљиво на практично било коју врсту софтвера укључујући веб , мобилне и десктоп програме. Ово најбоље функционише током фазе тестирања јединица – која испитује најмање компоненте апликације.
2. Када не морате да радите тестирање мутације
Још увек постоје неки сценарији у којима мутација и опште тестирање беле кутије нису прикладни за програм; ово може бити због различитих разлога.
На пример, ако тестери желе да провере само тестирањем црне кутије – у том случају би се уместо тога фокусирали на фронт-енд за ту сесију или чак на целокупну фазу тестирања.
Постоје неке компаније које сматрају да је тестирање беле кутије заморно и дуготрајно, што би могло довести до тога да прескоче процес. Снажни, добро проверени тестни случајеви такође могу да заобиђу потребу за тестирањем мутација јер ово показује марљивост и посвећеност тима прецизним процедурама тестирања.
3. Ко је укључен у анализу мутација?
Постоји низ различитих улога укључених у анализу мутација, укључујући:
• Тестери мутација
Они мутирају код уводећи различите мање недостатке како би осигурали да процес тестирања функционише како се очекује. Ови тестери су обично већ постојећи чланови тима за осигурање квалитета.
• Тестери апликација
Редовно проверавају код за било какве проблеме, идентификују и исправљају све мутације које пронађу. Они спроводе тестирање беле кутије да би пронашли грешке у кодирању – али такође користе друге технике.
• Програмери апликација
Они дизајнирају карактеристике програма и пишу почетни код. Они такође решавају све проблеме које тестери пронађу, обезбеђујући да је софтвер у стабилном стању за објављивање.
• Менаџери пројеката
Они нуде смернице у вези са апликацијом и могу да раде заједно са тестерима мутација како би видели ефикасност својих тимова. Они осигуравају јаке стандарде у свакој фази развоја.
Шта тестирамо тестовима мутације?
Тестирање мутација се више фокусира на процесе тестирања уместо на апликацију. У ту сврху испитује следеће:
1. Тест случајеви
Тест случајеви су документи који садрже детаљне информације о сваком тесту, укључујући резултате које тестери очекују од сваке појединачне провере. Доследни и тачни тест случајеви пружају члановима КА тима идеју о здрављу апликације и томе како њен учинак одговара очекивањима фирме.
Информације у овим тест случајевима могу одредити способност тестера да уочи одређене недостатке – укључујући и оне које изазива тестирање мутација.
2. Стандарди испитивања
Тестови мутације помно испитују тренутне процедуре тестирања како би се осигурало да чланови тима могу да идентификују чак и мање проблеме који могу утицати на перцепцију софтвера корисника.
Марљивост и компетентност тестера могу чак бити главни фактори које предузеће процењује овим проверама. Без велике пажње на детаље у свакој фази, тестери би могли пропустити озбиљне мутације које су присутне у програму.
3. Појединачне јединице кода
Тестови мутација су уобичајени током развоја јединица тестирања. Ово посматра појединачне компоненте како би се одржао снажан фокус на сваком тесту, значајно оптимизујући цео процес тако што ће се побринути да тестери раде само са релевантним линијама кода.
Како су тестови мутација често у раној фази осигурања квалитета и могу бити претеча тестирања у пуном обиму, овај приступ може повећати брзину без угрожавања тачности.
4. Ажурирања програма
Ажурирања софтвера обично укључују поновно покретање процеса тестирања како би се уверили да нема нових грешака и да се претходне грешке више не појављују.
Понављање тестова мутација је кључни део овога и помаже у промовисању доследних стандарда тестирања након великих промена софтвера.
Тим за тестирање може сматрати да су детаљне провере након ажурирања непотребне, али мутација кода може осигурати да разумеју важност тестирања током сваке фазе развоја.
5. Софтвер за аутоматизацију
Компаније такође спроводе тестирање мутација како би прегледале своје аутоматизоване пакете за тестирање и увериле се да су у стању да примете мутирани код, између осталог.
Ако апликација за тестирање треће стране може да идентификује екстерне промене програма и потенцијално да их поправи, то значи да организација може да верује софтверу за аутоматизацију тестова.
Од суштинског је значаја да фирме потврде свој приступ аутоматизацији; ово даје мир сваком тестеру.
6. Стратегија аутоматизације
Начин на који компанија интегрише аутоматизацију у своје процесе је једнако важан као и софтвер који користе; на пример, може одлучити да примени хипераутоматизацију . Ово омогућава компанији да интелигентно одлучи које тестове мутације и софтвера да аутоматизује.
Без јаке стратегије аутоматизације која прихвата велику разноликост присутну у коду апликације, неки тестови могу бити некомпатибилни са аутоматизацијом – што ограничава могућности платформе.
7. Апликација
Док се тестирање мутација више фокусира на тим за тестирање него на апликацију, ипак може истаћи значајне информације о овом програму.
На пример, тестирање мутација показује како софтвер реагује на промене у свом коду, укључујући и да ли указује на ове проблеме на начин који тим очекује.
Овај приступ није техника тестирања софтвера , али је и даље у стању да понуди занимљиве податке о својим интерним операцијама.
Животни циклус мутационих тестова
Уобичајени животни циклус тестирања мутација је следећи:
1. Анализа захтева
Први корак у било ком животном циклусу тестирања мутација је да се утврди шта тачно захтева валидацију и који делови кода апликације би имали највише користи од ових тестова.
Тим може разговарати са програмерима и руководиоцима како би утврдио њихове проблеме и почео да их рјешава.
2. Планирање теста
Тестери тада почињу да развијају тачне провере које намеравају да примене – у овом случају, мутације које ће понудити најбољи увид.
Ова фаза одређује укупну стратегију тестирања мутација и начин на који ће тим ефикасно имплементирати намераване мутације кода.
3. Развој тест случаја
Тестирање мутација укључује сопствену посебну документацију о тестирању, укључујући информације о мутираном коду и како очекују да ће тестери решити проблем.
Добро вођење евиденције осигурава да се сви тестови одвијају по плану и може помоћи тиму да одржи своју посвећеност високим стандардима тестирања.
4. Подешавање окружења за тестирање
Тестери се уверавају да је апликација спремна за њихову промену – и да имају процедуру за решавање ових проблема ако други чланови тима не могу да их открију.
Као део овога, тестери мутација успостављају тест сервер и користе га као платно за своје мутације.
5. Извођење теста
Након што заврше припреме, тестери мењају код у неколико компоненти апликације; затим чекају да други тестери примете и реше проблеме.
И тестери мутација и тестери апликација морају то опширно документовати како би били сигурни да су њихови записи робусни.
6. Затварање тестног циклуса
Када се тестирање заврши, тестери мутација двапут проверавају да ли су све промене које су направили исправљене од стране тестера апликација или њих самих.
Затим затварају циклус тестирања и анализирају резултате, разговарајући о томе како су тестери реаговали на различите грешке заједно са њиховом способношћу да их исправе.
7. Понављање теста
Након затварања циклуса тестирања, можда ће бити потребно да га поново активирате након будућих ажурирања софтвера.
Свака промена апликације на неки начин мења њену функционалност, што резултира новим могућностима које тим мора да узме у обзир како би обезбедио да је њихов процес тестирања довољно педантан.
Предности тестирања мутација
Постоје многе предности спровођења тестова мутације, укључујући:
1. Потврђује процес тестирања
Главна предност тестирања мутација је његова способност да покаже како тестери компаније приступају софтверу – и њихова способност да препознају проблеме кодирања. Ово такође осигурава да су тест случајеви тима довољно свеобухватни и да покривају све неопходне тестове.
Тестови мутације испитују целокупну процедуру тестирања организације како би гарантовали да функционише како се очекује.
2. Обезбеђује снажну аутоматизацију
Тестирање мутације помаже тиму да провери да ли је њихова платформа за аутоматизацију тестирања треће стране у стању да на одговарајући начин идентификује грешке у коду и да их адресира на исправан начин.
Ако овај софтвер не успе да их открије чак ни након неопходне калибрације, можда би било вредно заменити платформу за ону која може лако да прође ове тестове.
3. Добра покривеност
Сваки процес тестирања софтвера мора бити у стању да широко покрије целу апликацију како би се осигурало да сваки аспект добије неопходан ниво пажње.
Тестери мутација могу изменити било који део кода програма; добра имплементација омогућава овим тестовима да обухвате све главне карактеристике. Ово учи тестере да траже проблеме у целој апликацији.
4. Испитује изворни код
Како тестирање мутација укључује рад са кодом и уношење директних промена тамо где је то потребно, овај метод би такође могао да нагласи неоптимизоване скрипте присутне у апликацији.
Тестери софтвера могу да овласте програм и спроведу нормалну рунду тестова само ако је софтверски код адекватан; ове провере омогућавају тестерима да истакну потенцијалне будуће проблеме.
5. Води ка бољем софтверу
Тестирање мутације помаже да се увери да процеси тестирања апликације одговарају захтевима програма.
Ако анализа мутација открије да тим за осигурање квалитета не прати праве процедуре или су тестни случајеви неадекватни, тестери могу радити на томе да то побољшају. Без ове дужне пажње, организација може пустити неисправан производ, а да тога није ни свесна.
6. Ефективно за различите језике
Без обзира на језик који тим за тестирање користи за своју апликацију, доступне су софтверске опције које могу понудити висококвалитетну анализу мутација.
Ово укључује бројне карактеристике квалитета живота које су специфичне за језик, поједностављујући провере за већу поузданост. Приступ по мери за различите језике побољшава квалитет сваког појединачног теста.
7. Веома приступачни алати
Многе од најбољих платформи за мутације су потпуно отвореног кода – што значи да нуде више прилагођавања и свеобухватан спектар функција бесплатно или по драстично нижим трошковима.
Са мање препрека у поређењу са многим другим облицима тестирања, мутација кода је користан и згодан начин за предузећа да процене или чак побољшају свој приступ обезбеђењу квалитета.
Изазови тестирања мутација
Овај процес такође носи бројне изазове, као што су:
1. Захтева знање програмирања
Да би тестери могли да изврше ове провере, они морају да имају свеобухватно разумевање програма и кода, што отежава мање искусним тестерима да дају свој допринос.
Предузеће може тестирати софтвер само на начине који одговарају постојећим вештинама тестера; конкретно, њихова способност да уређују апликацију и направе грешку кодирања која се може поправити.
2. Није погодно за тестирање црне кутије
Тестирање црне кутије углавном укључује гледање предњег дела апликације без провере њеног унутрашњег функционисања и кода – ово је ефективно некомпатибилно са тестирањем мутација.
Као резултат, ове провере су корисне само за неке тестове у поређењу са другим методама; од којих многи могу понудити далеко већу покривеност целе фазе тестирања.
3. Дизајнирање тестова мутација је дуготрајно
Мутација кода може бити досадан процес због тога што тим треба да пронађе појединачне компоненте које би вределе мутирати. Одлучивање о томе које мутације да се спроведе може само по себи да потраје доста времена; ово може бити проблематично када други типови тестирања ефективно чекају да ове провере у потпуности потврде приступ тестирању компаније.
4. Може захтевати много мутација кода
На сличан начин, сложени пројекти природно гарантују већи број мутаната како би се осигурао свеобухватан приступ тестирању. Ово додаје више времена фази мутације и може укључивати многе ручне промене кода апликације.
Без висококвалитетног софтвера за аутоматизацију тестирања са могућношћу мутације програма, тестерима би ово могло бити тешко да успешно имплементирају.
5. Тестери можда неће приметити грешке
Највећа брига коју тестери мутација и менаџери пројеката често имају када спроводе ове провере је могућност да тестери софтвера (ручни или аутоматизовани) једноставно не примећују проблеме.
Ово би могло захтевати потпуну ревизију фирминих процедура тестирања – иако би то и даље могло да пружи тестерима виталне информације о њиховим стандардима обезбеђења квалитета.
6. Може бити интензивно памћење
Тестирање мутација генерално захтева велику количину процесорске снаге, мада то може зависити од апликације коју тестери користе.
Ако организација има ограничен број машина или ови уређаји имају ниске спецификације, могли би да се боре да покрену превише истовремених мутација. Ово утиче на то колико провера могу да изврше пре него што се фаза тестирања заврши.
7. Извештаји могу бити богати информацијама
Иако ово углавном зависи од интерфејса тимског алата за тестирање мутација, извештаје које генеришу може бити тешко рашчланити.
То значи да је потребно време да их ручно сортирате и пронађете праве резултате теста; неки програми омогућавају корисницима да прилагоде стварни процес извештавања; ово се разликује од једне апликације до друге.
Карактеристике мутационих тестова
Главне карактеристике ефикасних тестова мутација су:
1. Свеобухватан
Ове провере покривају сваки главни аспект софтвера; компаније са довољно ресурса могу чак да дизајнирају тест мутације за сваки редовни тест случај.
Док тачан број зависи од могућности и преференција организације, ефикасни тестови мутације покривају широк спектар кодираних карактеристика.
2. Стратешки
Мутације програма би на сличан начин требале да прате јасну и добро планирану структуру која олакшава опште циљеве тестирања организације.
На пример, грешке које производе могу бити приближне реалистичним неуспешним тестовима који омогућавају тестерима да предвиде ове проблеме ако се појаве природно, значајно побољшавајући процес тестирања компаније.
3. Конструктивно
Сврха тестирања мутација је да се идентификују недостаци у тестирању – да се покаже како тим може побољшати своје провере и поправити мање грешке како се појаве.
Тестери мутација морају дати приоритет „неважећим“ мутантима који утичу на функционалност софтвера, омогућавајући јаснија побољшања тестирања у целом пројекту.
4. Преемптиве
Ове провере постоје да би се потврдила укупна стратегија тима; то значи да тестирање мутација боље функционише у раним фазама развоја.
Ако тестери примете било какве значајне недостатке у свом приступу обезбеђењу квалитета, то им даје потребно време да промене своје тестне случајеве како би били сигурни да су адекватни.
5. Доследан
Тестирање мутација у различитим итерацијама апликације требало би да даје конзистентне резултате, а такође додаје више провера како би се прилагодиле софтверским променама.
Наредне провере морају укључити исту пажњу посвећену детаљима како би се одржала њихова ефикасност – без ове прецизности, тестови мутације могу постати мање прецизни.
6. Суптилно
Тестови мутације имају за циљ да испитају способност тима за осигурање квалитета да идентификује дефекте кода путем својих тестова и платформи трећих страна.
То значи да тестови не би требало да буду одмах очигледни свима који прегледају софтвер; циљ је да се испита како тестери реагују на мање проблеме кода.
7. Сараднички
Као и код сваког софтверског теста, мутација кода је процес који обично захтева тимски рад и комуникацију како би се осигурао успех. Одржавање атмосфере сарадње помаже у избегавању силоса са информацијама, што може довести до погрешне комуникације – ово такође гарантује да ће сваки тестер остати фокусиран на задатке који су пред њим.
Врсте тестова мутације
Три главне врсте тестова мутације су:
1. Мутација вредности
Мутације вредности директно мењају вредности унутар кода, мењајући један број или слово у други на начин који утиче на функционалност апликације.
На пример, тестер би могао да промени тачне параметре програма, као што су бројеви на које он одговара. Тестери мутација могу посебно циљати константне вредности софтвера јер оне увек остају исте током нормалних операција.
2. Мутација одлуке
Мутације одлучивања модификују аритметичке и логичке операторе, ефективно мењајући начин на који апликација реагује на специфичне ситуације.
На пример, пребацивање оператора веће од (> ) са оператором мање од (< ) природно утиче на излаз програма. Тестери такође могу да размењују ‘или’ за ‘и’ или обрнуто, суштински мењајући овај софтвер и начин на који тумачи информације које пружају други тестери и могући корисници.
3. Мутација исказа
Мутације исказа мењају стварне исказе кода, модификујући правила која апликација користи за доношење одлука. Тестери могу да промене садржај ових редова, да их дуплирају или чак обришу да би проверили како мутантни програм утиче на функционалност софтвера.
Ове мутације мењају градивне блокове програма, потенцијално уклањајући читаве функције или на други начин спречавајући њихов рад.
Рашчишћавање неке забуне
– Тестирање мутација наспрам регресијског тестирања
Мутацијско и регресионо тестирање су корисни приступи тестирању софтвера – разумевање сваке од ових техника може побољшати свеукупно осигурање квалитета компаније.
1. Шта је регресионо тестирање?
Регресионо тестирање је када тестери испитују софтвер између различитих итерација како би били сигурни да и даље функционише упркос променама кода.
Чак и мање промене могу довести до озбиљних проблема без ових провера, што би потенцијално могло да изазове поновно појављивање претходних грешака. Ово генерално захтева аутоматизацију због сложене природе поновног тестирања сваке компоненте; многе компаније се из тог разлога одричу регресијских тестова.
Тестери могу да спроведу ове провере на појединачним јединицама, појединачним компонентама или целом производу – тачни тестови који су потребни углавном зависе од пројекта и његове размере.
2. Која је разлика између тестова мутације и регресије?
Регресионо тестирање се првенствено фокусира на проверу програма и његове функционалности , док мутација кода уместо тога гледа на то како тестери реагују на проблеме.
Прво се такође углавном дешава након вишеструких итерација програма, док провере мутација могу бити у било којој фази развоја – иако обично у раним деловима фазе тестирања.
И тестови регресије и тестови мутације могу да се баве појединачним јединицама кодирања и како би мање промене могле да доведу до значајних проблема на којима тестери морају да раде на отклањању.
3. Закључак: Тестирање мутација наспрам аутоматског тестирања
Аутоматизација је често кључни део тестирања мутација због велике ширине провера и јединица – то је понекад чини виталном за успешан и свеобухватан процес тестирања.
Компаније обично користе мутације кода да испитају своју платформу за аутоматизацију треће стране и колико добро она идентификује проблематично писање скриптова.
Комбиновањем детаљног каталога провера мутација са аутоматизованим софтвером може се значајно повећати покривеност фирме и обезбедити јачи резултати.
Иако су ово две одвојене праксе тестирања, оне не морају да се супротстављају једна другој. Интеграција роботске аутоматизације процеса , на пример, може да унапреди стратегију тестирања мутација компаније.
Шта вам је потребно да започнете тестирање мутација у софтверском инжењерству?
Уобичајени захтеви за свеобухватно тестирање мутација укључују:
1. Јасна стратегија тестирања
Тим за тестирање мора да успостави стратегију за тестирање мутација, укључујући компоненте и јединице које је најважније испитати.
На пример, одређени аспекти кода могу бити важнији за успех и функционалност апликације; тестери би требало да се увере да има довољно мутација да би се ово прилагодило.
Распоред тестирања мутација компаније такође је од виталног значаја јер то осигурава да тестери имају довољно времена да истраже код.
2. Нема пузања домета
Чак и уз детаљну стратегију која утврђује приступ компаније тестирању мутација, могуће је да постоји знатно већи број тестова него што је потребно.
Ефикасност је најважнија током ове процедуре, посебно јер друге фазе тестирања можда чекају да тим пронађе и убије мутације. Тестери морају јасно дефинисати свој опсег пре него што почну да мутирају код; ово осигурава да се све може управљати у практичном временском оквиру.
3. Ригорозна документација
Сваки процес тестирања користи комплетну документацију – често у облику тест случајева који детаљно описују појединачне провере и све релевантне мутанте.
Ово илуструје тренутни напредак тима на тестовима, што је посебно корисно за менаџере и руководиоце. Документовање сваке мутације кода такође помаже тестерима да воде јасне евиденције у вези са променама које направе.
Ако се тим за осигурање квалитета бори да пронађе ове мутације током тестирања, ови документи ефективно служе као кључ за одговор.
4. Вјешти тестери
Тестери који мутирају код морају имати добро разумевање софтвера – укључујући многе начине на које могу да га мутирају или чак разбију.
Тестери мутација отприлике знају како ће њихове промене утицати на апликацију и како други чланови тима за осигурање квалитета могу да идентификују мутантни код.
Ово генерално захтева добар ниво знања програмирања. Да би анализа мутација била ефикасна, тестери софтвера такође треба да имају добро развијене вештине и искуство у тестирању.
5. Софтвер за аутоматизацију
Софтвер за аутоматизацију треће стране може бити неопходан пре тестирања мутација због броја провера које овај процес често захтева. Ово посебно важи за компликоване апликације са више кода и функција које тим за осигурање квалитета треба да испита.
Компаније могу спровести ове провере посебно да би тестирале како софтвер за аутоматизацију реагује на грешке у кодирању. Ово може бити кључни део пробног процеса компаније да се одлучи који су програми најкориснији.
Процес тестирања мутација
Уобичајени кораци које тестери обично прате када спроводе анализу мутација су:
1. Припремите тестове
Припрема је први корак сваког процеса тестирања. Ово укључује преговарање о тачним проверама за спровођење и добијање било каквог неопходног одобрења – као што су руководиоци компаније и заинтересоване стране.
Тестери морају да развију ове провере на начин који одговара временској линији пројекта док и даље покрива сваку главну компоненту. Планирање тима може одредити ефикасност њихових мутација кода.
2. Увести мутанте и грешке
Након што су припреме завршене, тим за тестирање почиње да мења код, мутира га у складу са својим планом да уведе одређене грешке. Ове грешке би требало да буду релативно мале јер то омогућава тестерима да процене преостали део способности тима да идентификује проблеме кодирања.
Мање грешке такође могу помоћи организацији да провери осетљивост свог софтвера за аутоматизацију треће стране.
3. Примените тест случајеве
Тестни случајеви морају узети у обзир сваку могућу тачку квара у апликацији – ово може захтевати поновно писање ако мутантни програм може да функционише без икаквих грешака.
Тестни случајеви програма представљају пуну ширину провера које спроводе тестери; сваки би требало да помогне тестерима да открију све скривене мутације и да буде саставни део употребљивости апликације.
4. Упоредите резултате
Након додавања мутационих грешака у програм и примене тест случајева тима, тим мора да упореди резултате из оригиналног и мутантног програма.
Надамо се да ће за сваку успешну проверу у оригиналу бити и грешка у мутантној апликацији. Ово показује способности и тестера и алата које користе.
5. Делујте према различитим резултатима
Ако постоје различити резултати између оригиналног и мутантног програма као што тестери очекују, то значи да тест случај може успешно да убије мутанта демонстрирајући његово присуство.
Тестери тада могу наставити са поверењем у своју методологију и своју способност да идентификују проблеме кодирања. За ове конкретне тестове нису потребне никакве промене у тест случајевима.
6. Промените случајеве ако је потребно
Неке мутације кода могу довести до идентичних закључака у различитим програмима, што сугерише да тестни случајеви нису у стању да успешно истакну сваку могућу грешку у апликацији.
У овим случајевима, мутант остаје „жив“ и могао би да настави да утиче на софтвер на начин на који тестери немају оквир за решавање – то доводи до стварања бољих тест случајева.
Како направити мутантне програме
Мутантни програми су ефективно идентични оригиналним програмима, осим једне мање промене која може утицати на функционалност апликације на мале, али приметне начине.
Свеобухватни и детаљни случајеви тестирања помажу тестеру или софтверском пакету да прецизно укажу на ове промене и грешке које произилазе. Сваки случај који компанија проверава захтева и оригинални и мутирани програм, који показује ефекте сваке промене у изолацији.
Програми обично реплицирају реалистичне грешке, као што су грешке у кодирању. Такође је важно за тестере да избегавају ‘мртворођене’ мутанте који спречавају извршавање апликације – ово је превише очигледно за тестере.
Шта променити у мутантском програму?
Као и код многих варијабли за тестирање софтвера, тачне промене које тестери праве зависе од апликације и њеног кода.
Постоје три категорије које обухватају већину тестова мутација: операнди, изрази и искази. Промена било ког од ових може створити ефикасан мутантни програм – показујући како различите вредности или правила утичу на саму логику коју програм користи.
Ове категорије се односе на три главна типа мутација које испитивачи истражују; то су мутације одлуке, вредности и изјаве. Промене треба да буду мале и не смеју у потпуности да спрече извршење теста.
Најбоље праксе за тестирање мутација
Када спроводите тестирање мутација у контексту тестирања софтвера, постоје одређене праксе које вреди пратити и које осигуравају снажне резултате, као што су:
1. Максимизирајте резултат мутације
Оцена мутације програма је проценат мутаната које тим или апликација може успешно да идентификује или ‘убије’.
На пример, ако рунда тестирања мутација има 40 мутаната, а тестери пронађу 36, резултат мутације је 90% – циљ тима је увек да обезбеди резултат од 100%.
2. Изаберите мутанте насумично
Иако може помоћи у одређивању приоритета одређеним компонентама и темељнијем тестирању, за тестере је такође корисно да насумично бирају које мутанте да додају – посебно у кратком року.
Све док ове провере представљају сваку значајну врсту мутације, тим за осигурање квалитета може да потврди своју укупну стратегију тестирања софтвера.
3. Нека промене буду мале
Мутације кода треба да представљају мања одступања од оригиналног програма јер ово илуструје колика је вероватноћа да ће тестер идентификовати одређене грешке; мањи проблеми кодирања такође показују колико је њихов софтвер осетљив.
Од виталног је значаја да тестери мутација пронађу равнотежу која омогућава да ове мање промене и даље производе приметне грешке.
4. Једна мутација по програму
Тестирање мутација посматра појединачне тестне случајеве изоловано да би проверило колико су свеобухватни. Да би се ово помогло, сваки мутирани програм треба да има само једну промену у односу на оригинал.
Програми са вишеструким мутацијама можда неће моћи ефикасно да се упаре са тест случајевима; мутације могу бити у сукобу једна са другом.
5. Пажљиво размотрите софтвер за аутоматизацију
Компаније често користе мутацију кода да би потврдиле употребу софтвера за аутоматизацију од стране тима и осигурале да је у стању да идентификује грешке једнако ефикасно као и људски тестер.
То значи да одабир праве платформе за аутоматизацију може бити важан фактор, као и могућност интеграције роботске аутоматизације процеса .
6. Користите развој заснован на тестовима
Тест-дривен девелопмент (ТДД) се односи на специфичну технику која узима у обзир захтеве тестирања у свакој фази развоја.
Ово помаже да се осигура да су тестни случајеви у потпуности компатибилни са софтвером – омогућавајући му да лако прође тестове мутације и направи бољи програм који се синхронизује са процесима обезбеђења квалитета.
Врсте излаза из теста мутације
Постоји неколико излаза које генеришу тестови мутације, укључујући:
1. Мутантски програм
Мутантни програми су природни резултат ових провера; тестери их креирају да одражавају своје тренутне случајеве тестирања и проблеме које помажу у откривању. Програми обично одступају од свог оригиналног парњака само на један мањи, али значајан начин како би се осигурала већа поузданост.
2. Жив или мртав мутант
Након тестова, мутација је или „убијена“ или остаје „жива“ – ово се једноставно односи на то да ли је тестер (или њихов софтвер) успешно идентификовао проблем кодирања или не.
Ако мутант остане жив, тест случајевима би могле бити потребне озбиљне промене.
3. Случај за тестирање мутације
Тим за осигурање квалитета користи засебне тестне случајеве специфичне за мутације који бележе информације о њиховим мутантним програмима.
Ово помаже да се осигура да тим има свеобухватну евиденцију за сваку проверу; ови документи укључују детаље о мутацијама и њиховим ефектима на програм.
4. Оцена мутације
Крајњи циљ сваког теста мутације је да се постигне резултат мутације од 100% са процедурама тестирања компаније које успешно лоцирају и убију сваког мутанта. Све мање од овога сугерише да њихови тестни случајеви и општи процеси захтевају побољшање да би се идентификовао проблематичан код.
Примери тестирања мутација
Ево три примера тестирања мутација:
1. Пример мутације вредности
Мутације вредности укључују промену константе или параметра који потенцијално може променити границе програма. На пример, софтвер аутоматизоване машине за плаћање може да користи тежину намирнице да одреди њену цену.
Тестери би могли да мутирају код иза овог програма да би променили параметре тежине, чинећи храну много скупљом по свакој унци или фунти. Тестер или платформа за тестирање треба да буде у стању да идентификује ефекте различитих вредности на овај програм.
Пошто ова грешка мења једну од главних карактеристика софтвера, тестни случајеви би требало да примете ову грешку и да упозоре тим.
2. Пример мутације одлуке
Мутације одлучивања укључују промену аритметичког или логичког оператора, преокретање или на други начин мењање начина на који ова апликација реагује на кориснички унос. Да се вратимо на пример самосталне куповине, ове машине могу означити ставку са неочекивано великом тежином, вероватно због грешке корисника.
Машински код би то могао да уради преко „иф (а> б)” одлука – при чему ‘б’ одражава очекивану тежину, а ‘а’ одговара стварној тежини. Тим може ово да мутира у „иф (а≤б)“ што мења начин на који ће плаћање одговара; означио би ставку чак и при очекиваној тежини.
3. Пример мутације исказа
Мутације исказа укључују промену правила или излаза – то може чак укључити и потпуно брисање исказа из апликације. Ове мутације могу бити уочљивије од других, у зависности од учесталости специфичне изјаве; од виталног је значаја да тестери мудро одаберу изјаву.
На пример, машина за самоплату може да прикаже упозорење ако корисник покуша да купи артикл са старосним ограничењем. Без одговарајуће изјаве, машина се може срушити или дозволити било ком купцу да купи било коју ставку.
Мутирањем изјаве и истицањем је тиму, тестери могу да потврде да ли њихов приступ одговара овим проблемима.
Врсте грешака и грешака откривених тестирањем мутације
Тестови мутације углавном откривају проблеме унутар самог процеса тестирања. Имајући ово на уму, ево низа проблема које ове провере могу помоћи да се идентификују:
1. Нејасни тест случајеви
Ако анализа мутација открије низак резултат мутације (или чак било који резултат испод 100%), то сугерише да тестни случајеви тима нису у стању да узму у обзир сваку могућу грешку која би могла да утиче на апликацију.
Они можда нису довољно специфични или широки да одговарају захтевима тима. Ови документи треба да обухвате сваку могућност са којом се тим може сусрести током тестирања софтвера како би се осигурала поузданост.
2. Необучени тим за тестирање
Тестови мутација такође могу да илуструју способности тима, укључујући колико добро они лично идентификују мутације и друге грешке. Ако не могу да лоцирају мутанте у свим програмима упркос јасним и детаљним случајевима тестирања, то је потенцијално због тога што тестери не примењују правилно ове случајеве.
Мутантни програми могу показати проблеме током целог процеса тестирања – то такође може укључивати неквалификоване или необучене тестере.
3. Неадекватан софтвер за тестирање
Ако компанија користи ове провере за инспекцију сопствене платформе за тестирање, можда ће открити да софтвер не може тачно да идентификује или убије мутантни код.
Фирма може да одговори тако што ће истражити друге изборе док не пронађу неки који је компатибилан са њиховим тест случајевима. Ако софтвер за аутоматизацију не успе да пронађе проблематичан код, вероватно ће се борити да идентификује друге проблеме који утичу на софтвер.
4. Неоптимизовани код
Тестирање мутација може открити проблеме који су већ присутни у софтверу. На пример, тестери могу покушати да мутирају код, али сами открију критичне недостатке.
Ово служи као још једна важна перспектива програма, показујући да мутација кода пружа предности изван процеса тестирања. Што више тестера испитује овај код у било ком својству, тим више проблема може да открије и поправи током фазе тестирања.
Уобичајене метрике теста мутације
Главне метрике које користе тестови мутација укључују:
1. Убијени мутанти
Ово се односи на број мутаната које су тестери или софтвер могли да идентификују, означавајући њихово постојање како би се осигурало да особље може пронаћи мање грешке попут ових.
Количина мутаната које тестери убијају зависи од снаге њихових тест случајева.
2. Живи мутанти
Живи мутанти су они које тестер или софтвер не успевају да идентификују – показујући све недостатке који би могли постојати у стратегији тима за осигурање квалитета. Ако се то догоди, тестери би требало да поново калибрирају свој процес и тестирају случајеве како би прихватили ове мутанте и убили их у будућим проверама.
3. Важећи мутанти
Ова метрика одређује количину мутација које је програм могао успешно да укључи без грешке у току извршавања која поништава тест и његову ефикасност.
Важећи мутанти су они које тестер и софтвер за аутоматизацију могу да испитају; ово је због тога што су мутације релативно мале.
4. Неважећи мутанти
Значајне мутације би могле да утичу на апликацију довољно да учине тестирање непрактичним или чак немогућим – тако да помаже да се прати колико је ‘неважећих’ мутаната присутно у мутираном програму.
Идентификовање ових омогућава тестерима да их уређују или чак уклањају, осигуравајући да провере укључују само важеће мутације.
5. Тотални мутанти
Број мутација без обзира на њихову валидност је још једна метрика коју тестери прате; ово им омогућава да надгледају мутанте и бележе њихов статус.
Пошто свака мутација обично укључује посебан тест, укупан број такође служи као број укупних мутација кода.
6. Оцена мутације
Најкориснија метрика за анализу мутација је обично резултат мутације, који је заправо проценат важећих мутаната које је тестер или пакет за аутоматизацију успео да открије.
Све што је мање од 100% детекције може бити знак неправилне процедуре тестирања.
7 грешака и замки у примени мутантних тестова
Тестирање мутација је сложен процес који компаније морају мудро применити како би избегле озбиљне проблеме или грешке. Ево седам замки на којима би тестери требало да раде да би избегли када спроводе тестове мутације:
1. Неправилно скалирање мутације
Скала је важно разматрање током анализе мутација, јер овај процес постоји да би се осигурало да тестери идентификују мање грешке у апликацији. Ако је мутација превише очигледна за тестере, ово можда није ефикасан начин провере њихове способности да примете или да се суоче са проблемима са софтвером.
2. Неважеће или живе мутације
Чак и на тачној скали, многе мутације нуде само ограничену ефикасност – на пример, ако не доводе до грешке или доводе до проблема који зауставља рад апликације.
Тестери треба да воде рачуна о томе како било која промена кода може утицати на цео софтвер.
3. Некомпатибилни тестни случајеви
Тест случајеви и мутације морају се савршено упарити да би се обезбедило доследно и хармонично тестирање. Приликом одлучивања које мутације ће се додати или чак током дизајнирања почетних тест случајева, тим за осигурање квалитета може радити на томе да гарантује да се оне уклапају и да доведу до течнијег тестирања у целини.
4. Рокови и распореди
Фазе тестирања варирају по дужини, али увек треба да се придржавају интерних рокова компаније. Фирме које не успеју да правилно закажу своје тестове мутације можда неће моћи да заврше процес на време.
Пре него што пројекат достигне фазу тестирања, тим мора да обезбеди да је распоред тестирања на одговарајући начин свеобухватан.
5. Неадекватна покривеност тестом
Предузећа могу одлучити да спроведу своје мутације кода насумично – али је и даље важно да покривају широк спектар питања.
Да би се уверили да и тестери и софтвер могу да открију сваки тип мутанта, провере треба да укључују најмање неколико мутација вредности, одлуке и исказа.
6. Коришћење мутаната за тестирање софтвера
Иако тестирање мутација нуди нову перспективу на апликацију, тимови морају користити само овај метод да би проверили сопствени процес тестирања. Компанија треба да разуме тачне могућности и ограничења тестирања мутација; ова техника може успети само уз друге провере софтвера.
7. Превише мутаната
Најважније је да компаније обезбеде широку покривеност тестом, али би могле да имплементирају превише мутаната у процесу. Сваки програм мутације захтева значајну количину рачунарске снаге – ограничавајући колико организација може да спроводи истовремено.
Извођење превише мутација такође може отежати испуњавање рокова за тестирање.
Контролна листа за тестирање мутације, савети и трикови
Постоји низ додатних савета који би могли помоћи сваком тиму да побољша успех свог процеса тестирања мутација, као што су:
1. Проверите компатибилност програмског језика
И бесплатни и плаћени алати за тестирање мутација се обично специјализују за један језик кодирања – због чега је важно да тестери изаберу алат који је компатибилан са платформом за тестирање апликација и софтвера.
Тим за тестирање треба да истражи многе опције како би се уверио да користе програм који одговара њиховом буџету, као и жељеном језику кодирања.
2. Паметно распоредите тестове
Различити чланови тима за тестирање ће вероватно посматрати различите аспекте апликације, обично у корелацији са њиховим специфичним снагама, слабостима и укупним искуством.
Када тим додељује тестове мутације сваком тестеру, треба да имају то на уму да би стекли представу о њиховој стручности; ово показује колико ће вероватно проћи даље тестирање.
3. Пажљиво бирајте грешке
Ако је недавна итерација софтвера имала грешку која укључује вредност или изјаву, могло би помоћи да се ово понови и испита како тим или програм реагују.
Ово помаже да се гарантује дуговечност апликације и илуструје способност тима да примети претходне грешке ако се понове – ово је кључна компонента регресионог тестирања .
4. Максимизирајте рачунарску снагу
Пошто провере мутација могу да захтевају велику рачунарску снагу да би се покренуле, помаже да се на најбољи начин искористи хардвер компаније.
На пример, ако одређене машине имају јаче спецификације, могло би бити од помоћи покренути мутанте на овим уређајима. Ово омогућава компанији да избегне било каква значајна кашњења до којих би спорије машине могле да доведу.
5. Не одбацујте живе мутације
Чак и са стриктним распоредом, тестери би требало да раде на модификацији и проширењу својих тест случајева како би се борили против свих мутаната који преживе процес.
Иако ове грешке можда не изгледају значајне ако их софтвер или тестер не открију, оне и даље представљају неуспех тестних случајева да идентификују све проблеме кодирања.
6. Истражите нови софтвер за аутоматизацију
Ако су тест случајеви тима довољно детаљни, али њихов аутоматизовани пакет за тестирање их не може успешно користити за идентификацију сваке мутације, могли би имати користи од другог софтвера.
Доступне су многе бесплатне и плаћене платформе, а компаније би требало да провере сваку опцију како би се увериле да имају софтвер који дугорочно најбоље одговара њиховим тест случајевима.
7. Синхронизујте сваки процес тестирања
Сарадња је кључна компонента сваке стратегије тестирања – ово помаже да се осигура да се сваки процес може лако уклопити како тим намерава.
На пример, тим за тестирање могао би да развије своје тестне случајеве имајући на уму мутацију како би обезбедио већи ниво компатибилности, што би олакшало тестерима да потврде своју стратегију.
8. Користите тестирање јединица
Јединично тестирање омогућава тиму за осигурање квалитета да прегледа делове кода у изолацији, увелико поједностављујући тестове и олакшавајући тимовима да идентификују проблеме.
Ова комбинација може бити посебно корисна ако се тестери брину о роковима, дајући им прилику да поједноставе своје провере и побољшају укупну покривеност – што доводи до много јачих софтверских тестова.
9. Напишите детаљне тест случајеве
Случајеви за тестирање мутације треба да садрже адекватне информације о мутанту и његовом утицају на програм, као и о томе како је тим за тестирање или платформа лоцирао ове грешке.
Пружајући што више детаља, тестер може лично да потврди тест случај и да се увери да тим тачно зна како да обезбеди глатко тестирање.
5 најбољих алата за тестирање мутација
Постоји широк спектар доступних алата који могу помоћи компанијама у њиховим захтевима за тестирање мутација. Као што је често случај са апликацијама за тестирање софтвера, цене и карактеристике варирају од једне до друге платформе, због чега је важно да организације изаберу ону која најбоље одговара њиховим потребама.
Неки од ових програма могу понудити бесплатне аналогне или бити потпуно отвореног кода; иако је плаћање за већу удобност обично неопходно.
Имајући ово на уму, ево пет најбољих алата за тестирање мутација.
1. Стрикер
Стрикер се специјализовао за мутацију ЈаваСцрипт-а, поједностављујући овај процес значајно како би гарантовао да нема лажних позитивних резултата и смањио укупну количину напора који би тестери иначе морали да примене за све провере мутација.
Стрикер платформа интелигентно процењује софтвер и користи информације које прикупља да би открила низове или сегменте кода који би имали користи од мутације. Ова апликација долази са извештачем са јасним текстом који даје резиме мутанта, укључујући и то да ли је Стрикер успео да га убије.
2. ПИТест
ПИТест је веома популаран избор широм света због своје способности да промени Јава бајт код и направи хиљаде мутација у секунди. Ова апликација користи податке о покривености тестним случајевима да би одмах сазнала који тестови могу да убију мутанта.
Покреће само тестове за које зна да ће бити релевантни, ограничавајући рачунарску снагу коју ова процедура обично троши. ПИТест је такође компатибилан са већином облика додатка за тестирање јединица Сурефире, али може да се бори са ефикасним управљањем зависностима налога за тестирање.
3. Осигурати++
Инсуре++ има много могућности тестирања, укључујући анализу мутација, омогућавајући платформи да уочи нејасноће у програму. За разлику од конвенционалног тестирања мутација, Инсуре++ се одриче генерисања погрешних мутаната и уместо тога ствара функционално еквивалентне мутације које одговарају изворном коду пројекта.
Ово је да би се избегле имплицитне претпоставке које могу ненамерно да ограниче процес тестирања и можда не одражавају реална окружења тестирања. Као што име говори, платформа је углавном компатибилна са Ц++ програмима, а свака функција је калибрисана за овај језик.
4. Јумбле
Ова апликација је специјализована за ЈУнит ЈаваСцрипт оквир, са свеобухватним визуелним индикаторима како код реагује на анализу мутација. Јумбле је платформа отвореног кода и ради у оквиру бајт кода Јава апликација како би смањила време сваког циклуса тестирања.
Сличне апликације које искључиво користе изворни код програма понекад могу потрајати дуже да изврше ове провере због процеса њиховог поновног компајлирања.
Јумбле такође користи хеуристику да би још више оптимизовао тестирање мутација, чинећи наредне тестове једноставнијим.
5. МутПи
МутПи подржава тестове мутација за апликације засноване на Питхон-у, нудећи пуну подршку за мутације високог реда, као и свеобухватну анализу покривености. Интерфејс овог програма је једноставан за коришћење током излазне фазе, што јасно показује корисницима сваки суштински детаљ тестова мутације тима.
МутПи нуди многе изборе по мери за тестере – омогућавајући им да калибрирају овај софтвер посебно према својим захтевима. Платформа користи стабла апстрактне синтаксе која обезбеђују јасну структуру изворног кода апликације, дајући тестерима више поверења у њихове мутације.
Закључак
Мутација кода има примену за скоро сваки процес тестирања софтвера, нудећи низ јасних предности за компаније које примењују ову технику – посебно раније у фази обезбеђења квалитета.
Ниједна методологија није без изазова; то значи да је императив да организације мудро узму у обзир предности анализе мутација, истовремено осигуравајући да се она уклапа у њихов уобичајени временски оквир развоја софтвера.
Ове мутације дају тимовима за тестирање прилику да испитају сопствени приступ и утврде његову ефикасност за лоцирање и исправљање грешака у изворном коду. Ова техника је посебно компатибилна са процедурама аутоматизације, омогућавајући фирмама да провере софтвер у који верују да ће управљати њиховим проверама.
Тестирање мутација нуди свеобухватан начин да тимови за осигурање квалитета развију боље разумевање сопствених процеса и софтвера, укључујући проблеме које иначе не би открили.
Као резултат тога, од виталног је значаја да тимови за тестирање помно истраже ову технику како би проценили да ли одговара потребама организације – укључујући и да ли је алатка за мутацију коју одаберу у потпуности компатибилна са њиховим програмским језиком. Софтвер за аутоматско тестирање ЗАПТЕСТ има многе функције које му омогућавају да прође тестове мутације, осигуравајући да тимови имају пуно поверење у његове способности.
И Фрее и Ентерприсе верзија нуде висококвалитетан процес тестирања који може са лакоћом прихватити мутације кода.
Често постављана питања и ресурси
1. Најбољи курсеви о тестирању мутација
Онлине курсеви могу помоћи онима који први пут тестирају да науче основе мутације кода или да ојачају постојеће вештине искусних чланова особља за обезбеђење квалитета. Опште лекције тестирања софтвера такође могу понудити многе предности тестерима. Најбољи онлајн курсеви за тестере мутација укључују:
• ПлуралСигхт-ово ‘Тестирање мутација у Јави са ПИТест-ом’ посебно се бави променом Јава кода и начинима на које би овај приступ могао користити практичним процесима тестирања софтвера.
• Удеми-јев ‘Тхе Цомплете 2023 Софтваре Тестинг Боотцамп’ је посебно актуелан курс који илуструје сваку кључну компоненту софтверских тестова, укључујући тестирање у белим кутијама.
• Алисонино „Тестирање софтвера – Покривеност стања и стратегије тестирања мутација“ је бесплатно и детаљно испитује како мудро применити тестирање мутација.
• ПлуралСигхт-ове ‘Основе тестирања јединица’ истражује предности и карактеристике јединичног тестирања, помажући да се осигура да ученици разумеју тачан процес писања јаких јединичних тестова.
• Удеми-јев ‘Увод у тестирање јединица’ је још један бесплатни курс који даје јасну анализу јединичног тестирања, као и важност развојних стратегија вођених тестирањем.
2. Којих је топ 5 питања за интервју о тестирању мутација?
Постоји низ питања која компаније могу поставити кандидатима током интервјуа како би потврдиле своје искуство или разумевање тестирања мутација заједно са његовим основним принципима. Ово омогућава компанији да се увери да ангажује квалификованог тестера који може са лакоћом приступити различитим сценаријима везаним за мутације.
Тачна питања се разликују, али могу укључивати тражење сопственог мишљења или примера њихових вештина мутације кода.
Пет најбољих питања за интервју за тестирање мутације су:
• Са којим алатима за тестирање мутација имате претходно искуство, ако их има? Које су биле главне карактеристике овог софтвера?
• Док предузимате мутацију кода, како бисте радили да бисте обезбедили здраву равнотежу између брзине и дубине тестирања?
• У којим ситуацијама би анализа мутација била немогућа? Како бисте прегледали процедуру тестирања у овим сценаријима?
• Ако мутација вредности успе да преживи процес тестирања, који би био ваш правац деловања да спречите да се ово понови?
• Које информације бисте укључили у случај теста мутације како бисте гарантовали да ваше колеге имају податке који су им потребни?
3. Најбољи ИоуТубе туторијали о тестирању мутација
Бесплатни туторијали, вебинари и други видео снимци доступни су на ИоуТубе-у како би се побољшало разумевање тестера о тестирању мутација. Неки од најкориснијих видео записа и серија на ову тему укључују:
• ‘Тестирање мутација за програме’ софтверског тестирања, које пружа практичне примере како мутација кода помаже програмима, заједно са начином писања детаљних тест случајева.
• Девокк-ово ‘Тестирање мутација: Да ли је мој тест разбио мој код?’, који се бави како анализа мутација побољшава укупне процедуре тестирања за све врсте софтверских пројеката.
• ‘Убити све мутанте’ НДЦ Цонференцес! Увод у тестирање мутација’, који истражује како пакети за тестирање могу да имају користи од мутације кода и грешака које она ствара.
• ГОТО Цонференцес „Тестирање мутација у Питхон-у“, које посебно испитује како апликације засноване на Питхон-у могу применити анализу мутација да би постигли специфичне циљеве тестирања.
• „Тестирање мутације Јава са ПИТест-ом“ Дијега Пачека, који на сличан начин илуструје ЈаваСцрипт софтвер користи мутацију кода – са фокусом на ПИТест мутацијски програм.
4. Како одржавати тестове мутације?
Комбиновање анализе мутације са регресионим тестирањем и другим дугорочним стратегијама омогућава компанијама да обезбеде јак стандард осигурања квалитета чак и након објављивања.
Накнадна ажурирања могу довести до промена кода које захтевају даље провере. Тестирање мутације показује да су софтвер за аутоматизацију и тестери конзистентни у различитим верзијама истог софтвера, чиме се поново потврђује њихов посебан приступ.
Нове функције захтевају новије тестне случајеве, посебно ако су ове функције у интеракцији са већ постојећим.
Поред овога, коришћење развоја заснованог на тестовима омогућава члановима тима да планирају дуговечност софтвера и тестирају компатибилност као део сопственог развојног циклуса.