Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

Մուտացիաների թեստավորումը կամ ծրագրի մուտացիան սպիտակ տուփի փորձարկման տեխնիկա է, որն օգնում է ընկերություններին մշակել մի շարք նոր ծրագրային ստուգումներ՝ միաժամանակ ստուգելով նախագծի ընթացիկ գործընթացները: Սա համեմատաբար նոր մոտեցում է, որը երաշխավորում է, որ և՛ մշակողները, և՛ փորձարկողները աշխատում են բարձր չափանիշներով:

Դիմումը նույնքան հաջողակ է կամ նույնքան լավ, որքան իր որակի ապահովման ընթացակարգերը, ինչը նշանակում է, որ կարևոր է, որ կազմակերպությունները կիրառեն մեկից ավելի փորձարկման տեխնիկա:

Մուտացիաների թեստավորման մասին սովորելը կարող է օգնել թեստավորման թիմերին բարձրացնել իրենց հմտությունները և ընդհանուր ռեպերտուարը՝ թույլ տալով նրանց բարելավել այս ստուգումների հուսալիությունը: Մուտացիայի փորձարկումը բարդ և զգայուն գործընթաց է, ուստի կենսական նշանակություն ունի, որ փորձարկողները մանրակրկիտ ուսումնասիրեն առավելությունները, մարտահրավերները և երրորդ կողմի ծրագրերը, որոնք կարող են երաշխավորել հաջող իրականացում:

Այս հոդվածում մենք դիտարկում ենք մուտացիաների թեստավորումը և այն, թե ինչպես է այն բարելավում որակի ապահովումը, ինչպես նաև ծրագրային ապահովման փորձարկման թիմերի այլ հիմնական նկատառումներ:

 

Table of Contents

Ի՞նչ է մուտացիայի փորձարկումը ծրագրային ապահովման փորձարկման մեջ:

Գերազանցության թեստավորման կենտրոնի ստեղծման առավելությունները: Արդյո՞ք կատարողականի փորձարկումը տարբերվում է ֆունկցիոնալ թեստից:

Ծրագրային ապահովման համատեքստում մուտացիաների թեստավորումը նշանակում է, երբ որակի ապահովման թիմը դիտավորյալ սխալներ կամ «մուտացիաներ» է ներմուծում հավելվածի կոդի մեջ՝ տեսնելու, թե ինչպես է թիմը արձագանքում: Նպատակն է ստեղծել սխալ և համոզվել, որ թեստավորման հավաքածուն ի վիճակի է բացահայտել հավելվածի յուրաքանչյուր փոփոխություն:

Ծրագրի կոդը խմբագրելիս մուտացիաների փորձարկիչը կարող է փոխել ճշմարիտ/կեղծ արտահայտությունը, ջնջել հայտարարություն կամ պարզապես փոխել արժեքը: Այս սխալները կարող են դրսևորվել մի շարք ձևերով ծրագրային ապահովման այլ ստուգումների ժամանակ. որոնք բոլորն էլ հեշտությամբ հայտնաբերվում են հմուտ և փորձառու թեստավորման թիմի կողմից:

Մուտացիաներն իրենք հաճախ շատ աննշան են, ինչը թույլ է տալիս փորձարկողին, ով փոխում է կոդը, հետևելու, թե ինչպես է թիմը հայտնաբերում այդ փոփոխությունները: Զգալի փոփոխությունները ակնհայտ կլինեն նույնիսկ հպանցիկ հայացքից, ուստի փոքր սխալները սովորաբար լավագույն միջոցն են ապահովելու, որ ընկերությունը կիրառում է կայուն փորձարկման պրակտիկա:

Այս տեխնիկան հատկապես նայում է թիմի թեստային դեպքերի արդյունավետությանը. թեստի տեղեկատվությունը պարունակող փաստաթղթեր. Թիմը կարող է նաև օգտագործել երրորդ կողմի ավտոմատացման ծրագրակազմ ՝ այս ստուգումները կատարելու համար, որի դեպքում մուտացիաների թեստավորումն ուսումնասիրում է, թե այս հարթակը որքանով կարող է հայտնաբերել անսարքությունները ծրագրի կոդի մեջ:

 

1. Ե՞րբ է անհրաժեշտ մուտացիոն թեստավորում անել:

 

Քանի որ մուտացիաների թեստավորման նպատակը որակի ապահովման ընթացիկ ստուգումների վավերացումն ու բարելավումն է, թիմերի համար կարևոր է դա անել թեստավորման փուլում: Սա նշանակում է, որ եթե փորձարկման փաթեթը չի կարողանում նույնականացնել և «սպանել» մուտանտներին, բավական ժամանակ կա կազմակերպության փորձարկման ընթացակարգերում ցանկացած մասշտաբի ահռելի փոփոխություններ կատարելու համար:

Քանի որ սա շատ բազմակողմանի մեթոդ է, մուտացիայի փորձարկումը կիրառելի է գրեթե ցանկացած տեսակի ծրագրային ապահովման համար, ներառյալ վեբ , բջջային և աշխատասեղանի ծրագրերը: Սա լավագույնս աշխատում է միավորի փորձարկման փուլում, որն ուսումնասիրում է հավելվածի ամենափոքր բաղադրիչները:

 

2. Երբ պետք չէ մուտացիաների թեստավորում անել

 

Դեռևս կան որոշ սցենարներ, որտեղ մուտացիան և ընդհանուր սպիտակ տուփի փորձարկումը տեղին չեն ծրագրի համար. դա կարող է պայմանավորված լինել տարբեր պատճառներով:

Օրինակ, եթե փորձարկողները նպատակ ունեն ստուգել միայն սև տուփի թեստավորման միջոցով, որի դեպքում նրանք փոխարենը կկենտրոնանան այդ նստաշրջանի ճակատային մասի կամ նույնիսկ ընդհանուր թեստավորման փուլի վրա:

Կան որոշ ընկերություններ, որոնք սպիտակ տուփի փորձարկումը համարում են հոգնեցուցիչ և ժամանակատար, ինչը կարող է հանգեցնել նրանց բաց թողնելու գործընթացը: Ուժեղ, լավ ստուգված թեստի դեպքերը կարող են նաև շրջանցել մուտացիաների թեստավորման անհրաժեշտությունը, քանի որ դա ցույց է տալիս թիմի ջանասիրությունն ու նվիրվածությունը ճշգրիտ թեստավորման ընթացակարգերին:

 

3. Ո՞վ է ներգրավված մուտացիաների վերլուծության մեջ:

ով զբաղվում է ծրագրային ապահովման փորձարկումով

Մուտացիայի վերլուծության մեջ ներգրավված են մի շարք տարբեր դերեր, ներառյալ.

 

• Մուտացիայի փորձարկիչներ

Նրանք փոփոխում են կոդը՝ ներմուծելով տարբեր աննշան թերություններ՝ ապահովելու համար, որ թեստավորման գործընթացն աշխատում է այնպես, ինչպես սպասվում էր: Այս փորձարկողները սովորաբար որակի ապահովման թիմի նախկին անդամներ են:

 

• Կիրառական փորձարկիչներ

Նրանք կանոնավոր կերպով ստուգում են կոդը ցանկացած խնդիրների համար՝ հայտնաբերելով և ուղղելով ցանկացած մուտացիա, որը նրանք գտնում են: Նրանք անցկացնում են սպիտակ տուփի թեստավորում՝ կոդավորման սխալները գտնելու համար, բայց նաև օգտագործում են այլ տեխնիկա:

 

• Հավելվածների մշակողներ

Նրանք նախագծում են ծրագրի հնարավորությունները և գրում սկզբնական կոդը։ Նրանք նաև ուղղում են ցանկացած խնդիր, որը գտնում են փորձարկողները՝ ապահովելով, որ ծրագրաշարը թողարկվելու համար կայուն վիճակում է:

 

• Ծրագրի ղեկավարներ

Նրանք առաջարկում են ուղղություն հավելվածի վերաբերյալ և կարող են աշխատել մուտացիաների փորձարկողների հետ՝ տեսնելու իրենց սեփական թիմերի արդյունավետությունը: Նրանք ապահովում են ամուր չափանիշներ զարգացման յուրաքանչյուր փուլում:

 

Ի՞նչ ենք մենք ստուգում մուտացիայի թեստերով:

մաքրելով որոշ շփոթություն ծրագրային ապահովման փորձարկման ավտոմատացման մեջ

Մուտացիաների թեստավորումն ավելի շատ կենտրոնանում է փորձարկման գործընթացների վրա, ոչ թե հավելվածի: Այդ նպատակով այն ուսումնասիրում է հետևյալը.

 

1. Փորձարկման դեպքեր

 

Թեստի դեպքերը փաստաթղթեր են, որոնք պարունակում են մանրամասն տեղեկատվություն յուրաքանչյուր թեստի վերաբերյալ, ներառյալ այն արդյունքները, որոնք փորձարկողները ակնկալում են յուրաքանչյուր անհատական ստուգումից: Հետևողական և ճշգրիտ փորձարկման դեպքերը QA թիմի անդամներին պատկերացում են տալիս հավելվածի առողջության և այն մասին, թե ինչպես է դրա կատարումը համապատասխանում ընկերության ակնկալիքներին:

Այս թեստի դեպքերի տեղեկատվությունը կարող է որոշել թեստավորողի կարողությունը՝ նկատելու որոշակի թերություններ, ներառյալ այն թերությունները, որոնք առաջացնում են մուտացիաների թեստավորումը:

 

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. Կանխարգելիչ

 

Այս ստուգումները գոյություն ունեն թիմի ընդհանուր ռազմավարությունը հաստատելու համար. սա նշանակում է, որ մուտացիայի փորձարկումն ավելի լավ է աշխատում զարգացման վաղ փուլերում:

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Եթե փորձարկողները նկատում են իրենց որակի ապահովման մոտեցման որևէ էական թերություն, դա նրանց անհրաժեշտ ժամանակ է տալիս փոխելու իրենց փորձարկման դեպքերը՝ համոզվելու համար, որ դրանք համարժեք են:

 

5. Հետևողական

 

Մուտացիաների փորձարկումը հավելվածի տարբեր կրկնություններում պետք է վերադարձնի հետևողական արդյունքներ՝ միաժամանակ ավելացնելով ավելի շատ ստուգումներ՝ ծրագրային փոփոխությունները հարմարեցնելու համար:

Հետագա ստուգումները պետք է ներառեն նույն ուշադրությունը դետալների վրա, որպեսզի պահպանեն դրանց արդյունավետությունը. առանց այս ճշգրտության, մուտացիայի թեստերը կարող են ավելի քիչ ճշգրիտ լինել:

 

6. Նուրբ

 

Մուտացիայի թեստերը նպատակ ունեն ուսումնասիրել որակի ապահովման թիմի կարողությունը՝ բացահայտելու կոդի թերությունները իրենց թեստերի և երրորդ կողմի հարթակների միջոցով:

Սա նշանակում է, որ թեստերը չպետք է անմիջապես ակնհայտ լինեն բոլորի համար, ովքեր ստուգում են ծրագրաշարը. Նպատակն է ուսումնասիրել, թե ինչպես են փորձարկողները արձագանքում կոդերի փոքր խնդիրներին:

 

7. Համագործակցային

 

Ինչպես ցանկացած ծրագրային թեստի դեպքում, կոդի մուտացիան գործընթաց է, որը սովորաբար պահանջում է թիմային աշխատանք և հաղորդակցություն՝ ապահովելու իր հաջողությունը: Համագործակցային մթնոլորտի պահպանումն օգնում է խուսափել տեղեկատվական սիլոսներից, որոնք կարող են հանգեցնել սխալ հաղորդակցման. սա նաև երաշխավորում է, որ յուրաքանչյուր փորձարկող կենտրոնացած է մնում առաջադրանքների վրա:

 

Մուտացիոն թեստերի տեսակները

Bak end թեստավորում, գործիքներ, ինչ է դա, տեսակներ, մոտեցումներ

Մուտացիոն թեստերի երեք հիմնական տեսակներն են.

 

1. Արժեքի մուտացիա

 

Արժեքային մուտացիաներն ուղղակիորեն փոխում են արժեքները կոդի մեջ՝ փոխելով մի թիվ կամ տառ մյուսով այնպես, որ ազդի հավելվածի ֆունկցիոնալության վրա:

Օրինակ, փորձարկիչը կարող է փոխել ծրագրի ճշգրիտ պարամետրերը, օրինակ՝ թվերը, որոնց նա արձագանքում է: Մուտացիայի փորձարկիչները կարող են հատուկ թիրախավորել ծրագրաշարի հաստատուն արժեքները, քանի որ դրանք միշտ մնում են նույնը նորմալ գործողությունների ժամանակ:

 

2. Որոշման մուտացիա

 

Որոշման մուտացիաները փոփոխում են թվաբանական և տրամաբանական օպերատորները՝ արդյունավետորեն փոխելով, թե ինչպես է հավելվածը արձագանքում կոնկրետ իրավիճակներին:

Օրինակ՝ ավելի մեծ օպերատորի փոխարկում (> ) պակաս օպերատորի հետ (< ) բնականաբար ազդում է ծրագրի արդյունքի վրա: Փորձարկողները կարող են նաև փոխանակել «կամ»-ը «և»-ի հետ կամ հակառակը՝ հիմնովին փոխելով այս ծրագրաշարը և ինչպես է այն մեկնաբանում այլ փորձարկողների և հնարավոր օգտվողների տրամադրած տեղեկատվությունը:

 

3. Քաղվածքի մուտացիա

 

Քաղվածքի մուտացիաները փոխում են կոդի փաստացի հայտարարությունները՝ փոփոխելով այն կանոնները, որոնք դիմումն օգտագործում է իր որոշումները կայացնելու համար: Փորձարկողները կարող են փոխել այս տողերի բովանդակությունը, կրկնօրինակել դրանք կամ նույնիսկ ջնջել դրանք՝ ստուգելու համար, թե ինչպես է մուտանտ ծրագիրը ազդում ծրագրաշարի ֆունկցիոնալության վրա:

Այս մուտացիաները փոխում են ծրագրի կառուցման բլոկները՝ պոտենցիալ հեռացնելով ամբողջ գործառույթները կամ այլ կերպ կանխելով դրանց աշխատանքը:

 

Որոշ շփոթության մաքրում

– Մուտացիայի թեստավորում ընդդեմ ռեգրեսիայի թեստավորման

UAT թեստավորման համեմատություն ռեգրեսիայի թեստավորման հետ և այլն

Մուտացիան և ռեգրեսիոն թեստը երկուսն էլ օգտակար մոտեցումներ են ծրագրային ապահովման փորձարկման համար. այս տեխնիկաներից յուրաքանչյուրի ըմբռնումը կարող է բարելավել ընկերության ընդհանուր որակի ապահովումը:

 

1. Ի՞նչ է ռեգրեսիոն թեստավորումը:

 

Ռեգրեսիոն թեստավորումն այն է, երբ փորձարկողները ուսումնասիրում են ծրագրակազմը տարբեր կրկնությունների միջև՝ համոզվելու համար, որ այն դեռ գործում է՝ չնայած կոդի փոփոխություններին:

Նույնիսկ աննշան փոփոխությունները կարող են հանգեցնել լուրջ խնդիրների՝ առանց այդ ստուգումների՝ պոտենցիալ առաջացնելով նախկին սխալների նորից ի հայտ գալը: Սա, ընդհանուր առմամբ, պահանջում է ավտոմատացում՝ յուրաքանչյուր բաղադրիչի վերստուգման բարդ բնույթի պատճառով. շատ ընկերություններ այս պատճառով հրաժարվում են ռեգրեսիոն թեստերից:

Փորձարկողները կարող են այս ստուգումները կատարել առանձին միավորների, առանձին բաղադրիչների կամ ամբողջ արտադրանքի վրա. պահանջվող ճշգրիտ թեստերը հիմնականում կախված են նախագծից և դրա մասշտաբից:

 

2. Ո՞րն է տարբերությունը մուտացիայի և ռեգրեսիայի թեստերի միջև:

 

Ռեգրեսիայի թեստավորումը հիմնականում կենտրոնանում է ծրագրի և դրա ֆունկցիոնալության ստուգման վրա, մինչդեռ կոդի մուտացիան փոխարենը նայում է, թե ինչպես են փորձարկողները արձագանքում խնդիրներին:

Առաջինը նույնպես հիմնականում տեղի է ունենում ծրագրի բազմաթիվ կրկնություններից հետո, մինչդեռ մուտացիաների ստուգումները կարող են լինել զարգացման ցանկացած փուլում, թեև սովորաբար թեստավորման փուլի վաղ մասերում:

Ե՛վ ռեգրեսիայի, և՛ մուտացիայի թեստերը կարող են գործ ունենալ առանձին կոդավորման միավորների հետ, և թե ինչպես փոքր փոփոխությունները կարող են հանգեցնել էական խնդիրների, որոնք փորձարկողները պետք է աշխատեն շտկելու համար:

 

3. Եզրակացություն՝ մուտացիայի թեստավորում ընդդեմ ավտոմատացված թեստավորման

Գերազանցության թեստավորման կենտրոնի ստեղծման առավելությունները: Արդյո՞ք կատարողականի փորձարկումը տարբերվում է ֆունկցիոնալ թեստից:

Ավտոմատացումը հաճախ մուտացիաների թեստավորման առանցքային մասն է կազմում՝ կապված ստուգումների և միավորների մեծ լայնության հետ, ինչը երբեմն կարևոր է դարձնում հաջող և համապարփակ փորձարկման գործընթացի համար:

Ընկերությունները սովորաբար օգտագործում են կոդի մուտացիաները՝ ուսումնասիրելու իրենց երրորդ կողմի ավտոմատացման հարթակը և որքանով է այն նույնացնում խնդրահարույց սկրիպտավորումը:

Մուտացիաների ստուգումների մանրակրկիտ կատալոգը ավտոմատացված ծրագրաշարի հետ համատեղելը կարող է զգալիորեն մեծացնել ընկերության ծածկույթը և ապահովել ավելի ուժեղ արդյունքներ:

Թեև դրանք երկու առանձին փորձարկման պրակտիկա են, դրանք միմյանց հակադրվելու կարիք չունեն: Ռոբոտային գործընթացների ավտոմատացման ինտեգրումը, օրինակ, կարող է խթանել ընկերության մուտացիաների փորձարկման ռազմավարությունը:

 

Ի՞նչ է ձեզ անհրաժեշտ ծրագրային ապահովման ճարտարագիտության մեջ մուտացիայի փորձարկում սկսելու համար:

ստուգաթերթի ծրագրային ապահովման փորձարկման գործընթացներ

Մուտացիայի համապարփակ փորձարկման սովորական պահանջները ներառում են.

 

1. Հստակ փորձարկման ռազմավարություն

 

Փորձարկման թիմը պետք է մշակի մուտացիաների փորձարկման ռազմավարություն, ներառյալ այն բաղադրիչները և միավորները, որոնք ամենակարևորն են ուսումնասիրելու համար:

Օրինակ, կոդի որոշ ասպեկտներ կարող են ավելի անբաժանելի լինել հավելվածի հաջողության և ֆունկցիոնալության համար. փորձարկողները պետք է համոզվեն, որ կան բավականաչափ մուտացիաներ՝ դա հարմարեցնելու համար:

Ընկերության մուտացիաների թեստավորման ժամանակացույցը նույնպես կենսական նշանակություն ունի, քանի որ դա ապահովում է, որ փորձարկողները բավականաչափ ժամանակ կունենան կոդը ուսումնասիրելու համար:

 

2. Ոչ մի շրջանակի սողում

 

Նույնիսկ մանրակրկիտ ռազմավարության դեպքում, որը սահմանում է ընկերության մոտեցումը մուտացիաների թեստավորման հարցում, հնարավոր է, որ լինեն անհրաժեշտից ավելի շատ թեստեր:

Արդյունավետությունը առաջնային է այս ընթացակարգի ընթացքում, հատկապես, քանի որ փորձարկման այլ փուլերը կարող են սպասել, որ թիմը գտնի և սպանի մուտացիաները: Փորձարկողները պետք է հստակորեն սահմանեն իրենց շրջանակը, նախքան կսկսեն փոխել կոդը. սա ապահովում է, որ ամեն ինչ կառավարելի է գործնական ժամկետում:

 

3. Խիստ փաստաթղթեր

 

Յուրաքանչյուր փորձարկման գործընթաց օգտվում է ամբողջական փաստաթղթավորումից՝ հաճախ թեստային դեպքերի տեսքով, որոնք մանրամասնում են անհատական ստուգումները և ցանկացած համապատասխան մուտանտներ:

Սա ցույց է տալիս թիմի ներկայիս առաջընթացը թեստերում, ինչը հատկապես օգտակար է ղեկավարների և ղեկավարների համար: Կոդի յուրաքանչյուր մուտացիայի փաստաթղթավորումը նաև օգնում է փորձարկողներին պահպանել հստակ գրառումներ իրենց կատարած փոփոխությունների վերաբերյալ:

Եթե որակի ապահովման թիմը փորձում է գտնել այս մուտացիաները փորձարկման ընթացքում, ապա այս փաստաթղթերը արդյունավետորեն ծառայում են որպես պատասխանի բանալին:

 

4. Հմուտ փորձարկողներ

 

Կոդը մուտացիայի ենթարկող փորձարկողները պետք է լավ պատկերացում ունենան ծրագրաշարի մասին, ներառյալ այն բազմաթիվ եղանակները, որոնցով նրանք կարող են մուտացիայի ենթարկել կամ նույնիսկ կոտրել այն:

Մուտացիաների փորձարկողները մոտավորապես գիտեն, թե ինչպես են իրենց փոփոխությունները ազդելու հավելվածի վրա և ինչպես կարող են որակի ապահովման թիմի մյուս անդամները բացահայտել մուտանտի կոդը:

Սա, ընդհանուր առմամբ, պահանջում է ծրագրավորման գիտելիքների լավ մակարդակ: Որպեսզի մուտացիաների վերլուծությունը արդյունավետ լինի, ծրագրաշարի փորձարկողները պետք է ունենան նաև լավ զարգացած հմտություններ և փորձարկման փորձ:

 

5. Ավտոմատացման ծրագրեր

 

Երրորդ կողմի ավտոմատացման ծրագրակազմը կարող է անհրաժեշտություն լինել մուտացիայի փորձարկումից առաջ՝ կապված այս գործընթացի հաճախ պահանջվող ստուգումների քանակի հետ: Սա հատկապես ճիշտ է բարդ հավելվածների համար, որոնք ունեն ավելի շատ կոդ և առանձնահատկություններ, որոնք որակի ապահովման թիմը պետք է ուսումնասիրի:

Ընկերությունները կարող են կիրառել այս ստուգումները հատուկ ստուգելու համար, թե ինչպես է ավտոմատացման ծրագրակազմն արձագանքում կոդավորման սխալներին: Սա կարող է լինել ֆիրմայի փորձնական գործընթացի հիմնական մասը՝ որոշելու, թե որ ծրագրերն են առավել օգտակար:

 

Մուտացիաների փորձարկման գործընթաց

ստուգաթերթ uat, վեբ հավելվածների փորձարկման գործիքներ, ավտոմատացում և այլն

Սովորական քայլերը, որոնք սովորաբար կատարում են փորձարկողները մուտացիաների վերլուծություն իրականացնելիս, հետևյալն են.

 

1. Պատրաստեք թեստերը

 

Նախապատրաստումը ցանկացած փորձարկման գործընթացի առաջին քայլն է: Սա ներառում է բանակցություններ իրականացնելու ճշգրիտ ստուգումների վերաբերյալ և ստանալ ցանկացած անհրաժեշտ հաստատում, օրինակ՝ ընկերության ղեկավարներից և շահագրգիռ կողմերից:

Փորձարկողները պետք է մշակեն այս ստուգումները այնպես, որ համապատասխանի ծրագրի ժամանակացույցին՝ միաժամանակ ընդգրկելով յուրաքանչյուր հիմնական բաղադրիչ: Թիմի պլանավորումը կարող է որոշել դրանց կոդի մուտացիաների արդյունավետությունը:

 

2. Ներկայացրե՛ք մուտանտները և սխալները

 

Նախապատրաստական աշխատանքներն ավարտվելուց հետո թեստավորման թիմը սկսում է փոփոխել կոդը՝ փոփոխելով այն՝ համապատասխան անսարքություններ ներկայացնելու իրենց ծրագրին: Այս սխալները պետք է համեմատաբար աննշան լինեն, քանի որ դա թույլ է տալիս փորձարկողներին չափել կոդավորման խնդիրները բացահայտելու թիմի մնացած կարողությունը:

Փոքր անսարքությունները կարող են նաև օգնել կազմակերպությանը ստուգել իր երրորդ կողմի ավտոմատացման ծրագրաշարի զգայունությունը:

 

3. Կիրառել թեստի դեպքերը

 

Փորձարկման դեպքերը պետք է հաշվի առնեն հավելվածի բոլոր հնարավոր ձախողման կետերը. սա կարող է պահանջել վերաշարադրում, եթե մուտանտի ծրագիրը կարողանա գործել առանց որևէ սխալի:

Ծրագրի թեստային դեպքերը ներկայացնում են ստուգումների ամբողջ լայնությունը, որոնք իրականացնում են փորձարկողները. յուրաքանչյուրը պետք է օգնի փորձարկողներին բացահայտել թաքնված մուտացիաները և անբաժանելի լինի հավելվածի օգտագործման համար:

 

4. Համեմատեք արդյունքները

 

Ծրագրին մուտացիոն սխալներ ավելացնելուց և թիմի փորձարկման դեպքերը կիրառելուց հետո թիմը պետք է համեմատի ինչպես սկզբնական, այնպես էլ մուտանտ ծրագրերի արդյունքները:

Հույս կա, որ բնօրինակի յուրաքանչյուր հաջող ստուգման դեպքում մուտանտի հավելվածում նույնպես սխալ կլինի: Սա ցույց է տալիս ինչպես փորձարկողների, այնպես էլ նրանց կողմից օգտագործվող գործիքների կարողությունները:

 

5. Գործել տարբեր արդյունքների հիման վրա

 

Եթե նախնական և մուտանտի ծրագրերի միջև կան տարբեր ելքեր, ինչպես ակնկալում են փորձարկողները, դա նշանակում է, որ փորձարկման դեպքը կարող է հաջողությամբ սպանել մուտանտին՝ ցուցադրելով նրա ներկայությունը:

Այնուհետև փորձարկողները կարող են վստահորեն շարունակել իրենց մեթոդաբանությունը և կոդավորման խնդիրները բացահայտելու իրենց կարողությունը: Այս կոնկրետ թեստերի համար փորձարկման դեպքերի փոփոխություններ չեն պահանջվում:

 

6. Անհրաժեշտության դեպքում փոխեք գործերը

 

Կոդի որոշ մուտացիաներ կարող են հանգեցնել տարբեր ծրագրերի միանման եզրակացությունների, ինչը ենթադրում է, որ թեստային դեպքերը չեն կարողանում հաջողությամբ ընդգծել հավելվածում առկա բոլոր հնարավոր սխալները:

Այս դեպքերում մուտանտը մնում է «կենդանի» և կարող է շարունակել ազդել ծրագրաշարի վրա այնպես, որ փորձարկողները չունեն որևէ շրջանակ, որը պետք է անդրադառնա, ինչը հանգեցնում է ավելի լավ փորձարկման դեպքերի ստեղծմանը:

 

Ինչպես ստեղծել մուտանտի ծրագրեր

Մուտանտ ծրագրերն արդյունավետորեն նույնական են սկզբնական ծրագրերին, բացառությամբ մեկ աննշան փոփոխության, որը կարող է ազդել հավելվածի ֆունկցիոնալության վրա փոքր, բայց նկատելի ձևերով:

Համապարփակ և մանրամասն փորձարկման դեպքերն օգնում են փորձարկողին կամ ծրագրային փաթեթին մատնանշել այս փոփոխությունները և դրանց արդյունքում առաջացած անսարքությունները: Յուրաքանչյուր դեպք, որը ընկերությունը ստուգում է, պահանջում է և՛ օրիգինալ, և՛ մուտացված ծրագիր, որը ցույց է տալիս մեկուսացման յուրաքանչյուր փոփոխության ազդեցությունը:

Ծրագրերը սովորաբար կրկնում են իրատեսական սխալները, ինչպիսիք են կոդավորման տառասխալները: Փորձարկողների համար կարևոր է նաև խուսափել «մեռելածին» մուտանտներից, որոնք խոչընդոտում են հավելվածի կատարումը. սա չափազանց ակնհայտ է փորձարկողների համար:

 

Ի՞նչ փոխել մուտանտի ծրագրում:

Ի՞նչ է բեռի փորձարկումը:

Ինչպես ծրագրային ապահովման փորձարկման շատ փոփոխականների դեպքում, փորձարկողների կողմից կատարվող ճշգրիտ փոփոխությունները կախված են հավելվածից և դրա կոդից:

Կան երեք կատեգորիաներ, որոնք ներառում են մուտացիոն թեստերի մեծ մասը՝ օպերանդներ, արտահայտություններ և հայտարարություններ: Սրանցից որևէ մեկի փոփոխությունը կարող է ստեղծել արդյունավետ մուտանտ ծրագիր՝ ցույց տալով, թե ինչպես են տարբեր արժեքները կամ կանոններն ազդում ծրագրի օգտագործած տրամաբանության վրա:

Այս կատեգորիաները վերաբերում են մուտացիաների երեք հիմնական տեսակներին, որոնք հետազոտողները հետազոտում են. դրանք համապատասխանաբար որոշումների, արժեքների և հայտարարությունների մուտացիաներն են: Փոփոխությունները պետք է լինեն աննշան և չպետք է ամբողջությամբ խոչընդոտեն թեստի կատարմանը:

 

Մուտացիայի փորձարկման լավագույն փորձը

Ինչ է միավորի փորձարկումը

Ծրագրային ապահովման փորձարկման համատեքստում մուտացիայի թեստավորում անցկացնելիս կան որոշակի պրակտիկաներ, որոնք արժե հետևել, որոնք ապահովում են ուժեղ արդյունքներ, ինչպիսիք են.

 

1. Առավելագույնի հասցնել մուտացիայի միավորը

 

Ծրագրի մուտացիայի միավորը մուտանտների այն տոկոսն է, որը թիմը կամ հավելվածը կարող է հաջողությամբ բացահայտել կամ «սպանել»:

Օրինակ, եթե մուտացիայի փորձարկման փուլն ունի 40 մուտանտ, իսկ թեստավորողները գտնում են 36, մուտացիայի միավորը 90% է. թիմի նպատակը միշտ 100% միավոր ապահովելն է:

 

2. Ընտրեք մուտանտներին պատահականորեն

 

Թեև դա կարող է օգնել որոշ բաղադրիչների առաջնահերթություն տալ և դրանք ավելի մանրակրկիտ փորձարկել, փորձարկողների համար նաև օգտակար է պատահականորեն ընտրել, թե որ մուտանտներն ավելացնել, հատկապես սեղմ ժամկետներում:

Քանի դեռ այս ստուգումները ներկայացնում են մուտացիայի յուրաքանչյուր նշանակալի տեսակ, որակի ապահովման թիմը կարող է վավերացնել ծրագրային ապահովման փորձարկման իրենց ընդհանուր ռազմավարությունը:

 

3. Փոփոխությունները փոքր պահեք

 

Կոդի մուտացիաները պետք է ներկայացնեն սկզբնական ծրագրի չնչին շեղումներ, քանի որ սա ցույց է տալիս, թե որքանով է հավանական թեստավորողը բացահայտելու որոշակի սխալներ. կոդավորման փոքր խնդիրները նույնպես ցույց են տալիս, թե որքան զգայուն է նրանց ծրագրաշարը:

Կարևոր է, որ մուտացիաների փորձարկողները գտնեն հավասարակշռություն, որը թույլ կտա այս փոքր փոփոխություններին դեռ նկատելի անսարքություններ առաջացնել:

 

4. Մեկ ծրագրում մեկ մուտացիա

 

Մուտացիայի թեստավորումը դիտարկում է առանձին թեստային դեպքերը` ստուգելու, թե որքանով են դրանք ընդգրկուն: Դրան օգնելու համար յուրաքանչյուր մուտացված ծրագիր պետք է ունենա միայն մեկ փոփոխություն բնօրինակից:

Բազմաթիվ մուտացիաներով ծրագրերը չեն կարող արդյունավետ կերպով զուգակցվել թեստային դեպքերի հետ. մուտացիաները կարող են հակասել միմյանց:

 

5. Զգուշորեն հաշվի առեք ավտոմատացման ծրագրերը

 

Ընկերությունները հաճախ օգտագործում են կոդի մուտացիա՝ թիմի կողմից ավտոմատացման ծրագրային ապահովման օգտագործումը հաստատելու և համոզվելու, որ այն ի վիճակի է նույնքան արդյունավետ կերպով բացահայտել սխալները, որքան մարդկային փորձարկողը:

Սա նշանակում է, որ ճիշտ ավտոմատացման հարթակի ընտրությունը կարող է կարևոր նկատառում լինել, ինչպես նաև ռոբոտային գործընթացների ավտոմատացման ինտեգրման հնարավորությունը:

 

6. Օգտագործեք թեստային զարգացում

 

Թեստի վրա հիմնված զարգացումը (TDD) վերաբերում է հատուկ տեխնիկայի, որը հաշվի է առնում թեստավորման պահանջները զարգացման յուրաքանչյուր փուլում:

Սա օգնում է համոզվել, որ թեստային դեպքերը լիովին համատեղելի են ծրագրաշարի հետ՝ թույլ տալով նրան հեշտությամբ անցնել մուտացիայի թեստերը և ստեղծել ավելի լավ ծրագիր, որը համաժամանակացվում է որակի ապահովման գործընթացների հետ:

 

Մուտացիայի թեստի արդյունքների տեսակները

Գերազանցության թեստավորման կենտրոնի (TCoE) ստեղծման առավելությունները

Կան մի քանի ելքեր, որոնք առաջացնում են մուտացիոն թեստերը, այդ թվում՝

 

1. Մուտանտի ծրագիր

 

Մուտանտային ծրագրերը այս ստուգումների բնական արդյունքն են. փորձարկողները դրանք ստեղծում են՝ արտացոլելու իրենց ընթացիկ փորձարկման դեպքերը և այն խնդիրները, որոնք նրանք օգնում են հայտնաբերել: Ծրագրերը սովորաբար շեղվում են իրենց սկզբնական օրինակից միայն մեկ աննշան, բայց նշանակալից ձևով՝ ավելի մեծ հուսալիություն ապահովելու համար:

 

2. Կենդանի կամ մեռած մուտանտ

 

Թեստերից հետո մուտացիան կա՛մ «սպանվում է», կա՛մ մնում է «կենդանի», սա պարզապես վերաբերում է նրան, թե արդյոք փորձարկողը (կամ նրանց ծրագրաշարը) հաջողությամբ նույնացնում է կոդավորման խնդիրը, թե ոչ:

Եթե մուտանտը կենդանի մնա, փորձարկման դեպքերը կարող են լուրջ փոփոխությունների կարիք ունենալ:

 

3. Մուտացիայի փորձարկման դեպք

 

Որակի ապահովման թիմն օգտագործում է առանձին մուտացիաներին հատուկ փորձարկման դեպքեր, որոնք գրանցում են տեղեկատվություն իրենց մուտանտային ծրագրերի մասին:

Սա օգնում է ապահովել, որ թիմը ունի համապարփակ գրառումներ յուրաքանչյուր ստուգման համար. այս փաստաթղթերը ներառում են մանրամասներ մուտացիաների և ծրագրի վրա դրանց ազդեցության մասին:

 

4. Մուտացիայի միավոր

 

Ցանկացած մուտացիայի թեստի վերջնական նպատակը մուտացիայի 100% միավորի հասնելն է՝ ընկերության փորձարկման ընթացակարգերը հաջողությամբ հայտնաբերելով և սպանելով յուրաքանչյուր մուտանտի: Սրանից պակասը ցույց է տալիս, որ դրանց փորձարկման դեպքերը և ընդհանուր գործընթացները բարելավում են պահանջում՝ խնդրահարույց ծածկագիրը հայտնաբերելու համար:

 

Մուտացիայի փորձարկման օրինակներ

api փորձարկում և ավտոմատացում

Ահա մուտացիայի փորձարկման երեք օրինակ.

 

1. Արժեքային մուտացիայի օրինակ

 

Արժեքային մուտացիաները ներառում են հաստատուն կամ պարամետրի փոփոխություն, որը կարող է փոփոխել ծրագրի սահմանները: Օրինակ, ավտոմատացված դրամարկղային մեքենայի ծրագրաշարը կարող է օգտագործել սննդամթերքի քաշը՝ դրա գինը որոշելու համար:

Փորձարկողները կարող են փոփոխել այս ծրագրի հիմքում ընկած ծածկագիրը՝ քաշի պարամետրերը փոխելու համար՝ սնունդը շատ ավելի թանկ դարձնելով յուրաքանչյուր ունցիայի կամ ֆունտի դիմաց: Փորձարկիչը կամ փորձարկման հարթակը պետք է կարողանա բացահայտել տարբեր արժեքների ազդեցությունն այս ծրագրի վրա:

Քանի որ այս սխալը փոխում է ծրագրաշարի հիմնական հատկանիշներից մեկը, փորձարկման դեպքերը պետք է նկատեն այս սխալը և զգուշացնեն թիմին:

 

2. Որոշման մուտացիայի օրինակ

 

Որոշման մուտացիաները ներառում են թվաբանական կամ տրամաբանական օպերատորի փոփոխություն, շրջել կամ այլ կերպ փոխել, թե ինչպես է այս հավելվածը արձագանքում օգտվողի մուտքագրմանը: Վերադառնալով ինքնագնահատման օրինակին՝ այս մեքենաները կարող են նշել անսպասելի բարձր քաշ ունեցող ապրանքը, հնարավոր է, որ օգտագործողի սխալի պատճառով:

Մեքենայի կոդը կարող է դա անել «եթե (ա> բ)» որոշում – «b»-ն արտացոլում է ակնկալվող քաշը, իսկ «a»-ն՝ փաստացի կշռին: Թիմը կարող է սա փոխակերպել «if (a≤b)»-ի, որը փոխում է, թե ինչպես է վճարման արձագանքը. այն կնշանակեր ապրանքը նույնիսկ ակնկալվող քաշով:

 

3. Հայտարարության մուտացիայի օրինակ

 

Քաղվածքի մուտացիաները ներառում են կանոնի կամ ելքի փոփոխություն. սա կարող է ներառել նույնիսկ դիմումից հայտարարությունների ընդհանրապես ջնջում: Այս մուտացիաները կարող են ավելի նկատելի լինել, քան մյուսները՝ կախված կոնկրետ հայտարարության հաճախականությունից. Շատ կարևոր է, որ փորձարկողները խելամտորեն ընտրեն հայտարարությունը:

Օրինակ, ինքնագնահատման մեքենան կարող է նախազգուշացում ցուցադրել, եթե օգտատերը փորձի գնել տարիքային սահմանափակված ապրանք: Առանց համապատասխան հայտարարության, մեքենան կարող է վթարի ենթարկվել կամ թույլ տալ ցանկացած հաճախորդի գնել որևէ ապրանք:

Մուտացիայի ենթարկելով հայտարարությունը և այն կարևորելով թիմին, փորձարկողները կարող են ստուգել, որ իրենց մոտեցումը համապատասխանում է այս խնդիրներին:

 

Մուտացիայի փորձարկման միջոցով հայտնաբերված սխալների և սխալների տեսակները

zaptest-runtime-error.png

Մուտացիոն թեստերը հիմնականում բացահայտում են խնդիրները հենց թեստավորման գործընթացում: Սա նկատի ունենալով, ահա մի շարք խնդիրներ, որոնք այս ստուգումները կարող են օգնել բացահայտելու.

 

1. Անհասկանալի թեստային դեպքեր

 

Եթե մուտացիայի վերլուծությունը բացահայտում է մուտացիայի ցածր միավոր (կամ նույնիսկ 100%-ից ցածր ցանկացած միավոր), սա ցույց է տալիս, որ թիմի փորձարկման դեպքերը չեն կարողանում հաշվի առնել բոլոր հնարավոր սխալները, որոնք կարող են ազդել հավելվածի վրա:

Նրանք կարող են լինել ոչ հատուկ կամ բավականաչափ լայն, որպեսզի համապատասխանեն թիմի պահանջներին: Այս փաստաթղթերը պետք է ներառեն բոլոր հնարավորությունները, որոնք թիմը կարող է հանդիպել ծրագրաշարի փորձարկման ժամանակ՝ հուսալիություն ապահովելու համար:

 

2. Չմարզված թեստավորման թիմ

 

Մուտացիայի թեստերը կարող են նաև ցույց տալ թիմի կարողությունները, ներառյալ, թե որքանով են նրանք անձամբ ճանաչում մուտացիաները և այլ թերությունները: Եթե նրանք չեն կարողանում տեղորոշել մուտանտներին ծրագրերում, չնայած հստակ և մանրամասն փորձարկման դեպքերին, դա հնարավոր է այն պատճառով, որ փորձարկողները ճիշտ չեն կիրառել այս դեպքերը:

Մուտանտ ծրագրերը կարող են խնդիրներ ցույց տալ ամբողջ թեստավորման գործընթացում. սա կարող է ներառել նաև ոչ հմուտ կամ ոչ պատրաստված փորձարկողներ:

 

3. Անբավարար թեստավորման ծրագրակազմ

 

Եթե ընկերությունն օգտագործում է այս ստուգումները սեփական փորձարկման հարթակը ստուգելու համար, կարող է պարզել, որ ծրագրաշարը չի կարող ճշգրիտ բացահայտել կամ սպանել մուտանտի կոդը:

Ընկերությունը կարող է արձագանքել՝ ուսումնասիրելով այլ ընտրություններ, մինչև նրանք գտնեն, որ մեկը համատեղելի է իրենց փորձարկման դեպքերի հետ: Եթե ավտոմատացման ծրագրակազմը չի կարողանում գտնել խնդրահարույց ծածկագիրը, այն, ամենայն հավանականությամբ, կպայքարի ծրագրաշարի վրա ազդող այլ խնդիրներ հայտնաբերելու համար:

 

4. Չօպտիմիզացված կոդ

 

Մուտացիայի փորձարկումը կարող է բացահայտել ծրագրային ապահովման մեջ արդեն առկա խնդիրները: Օրինակ, փորձարկողները կարող են փորձել մուտացիայի ենթարկել կոդը, բայց իրենք բացահայտել կարևորագույն թերությունները:

Սա ծառայում է որպես ծրագրի ևս մեկ կարևոր հեռանկար՝ ցույց տալով, որ կոդի մուտացիան օգուտներ է տալիս թեստավորման գործընթացից դուրս: Որքան շատ փորձարկողներ ուսումնասիրեն այս ծածկագիրը ցանկացած հզորությամբ, այնքան ավելի շատ խնդիրներ թիմը կարող է բացահայտել և շտկել փորձարկման փուլում:

 

Ընդհանուր մուտացիայի թեստի չափումներ

բեռի փորձարկում

 

Հիմնական չափումները, որոնք օգտագործում են մուտացիոն թեստերը, ներառում են.

 

1. Սպանված մուտանտներ

 

Սա վերաբերում է մուտանտների թվին, որոնք փորձարկողները կամ ծրագրակազմը կարողացել են բացահայտել՝ նշելով դրանց գոյությունը՝ ապահովելու համար, որ անձնակազմը կարող է գտնել նման փոքր թերություններ:

Մուտանտների քանակը, որոնք սպանում են փորձարկողները, կախված է նրանց փորձարկման դեպքերի ուժից:

 

2. Կենդանի մուտանտներ

 

Կենդանի մուտանտները նրանք են, որոնց փորձարկողը կամ ծրագրակազմը չի կարողանում բացահայտել՝ ցույց տալով բոլոր բացերը, որոնք կարող են առկա լինել թիմի որակի ապահովման ռազմավարության մեջ: Եթե դա տեղի ունենա, փորձարկողները պետք է վերահաշվարկեն իրենց գործընթացը և փորձարկեն դեպքերը, որպեսզի տեղավորվեն այս մուտանտներին և սպանեն նրանց հետագա ստուգումների ժամանակ:

 

3. Վավեր մուտանտներ

 

Այս չափանիշը որոշում է մուտացիաների քանակը, որոնք ծրագիրը կարողացել է հաջողությամբ ներառել առանց գործարկման ժամանակի սխալի, որը զրոյացնում է թեստը և դրա արդյունավետությունը:

Վավեր մուտանտներն այն մուտանտներն են, որոնք փորձարկողն ու ավտոմատացման ծրագրակազմը կարող է ուսումնասիրել. սա պայմանավորված է մուտացիաների համեմատաբար փոքր լինելու պատճառով:

 

4. Անվավեր մուտանտներ

 

Զգալի մուտացիաները կարող են այնքան ազդել հավելվածի վրա, որպեսզի փորձարկումն անիրագործելի կամ նույնիսկ անհնար լինի, ուստի այն օգնում է հետևել, թե քանի «անվավեր» մուտանտներ կան մուտացված ծրագրում:

Դրանց բացահայտումը թույլ է տալիս փորձարկողներին խմբագրել կամ նույնիսկ հեռացնել դրանք՝ ապահովելով, որ ստուգումները ներառում են միայն վավերական մուտացիաներ:

 

5. Տոտալ մուտանտներ

 

Մուտացիաների քանակը՝ անկախ դրանց վավերականությունից, ևս մեկ չափիչ է, որին հետևում են փորձարկողները. սա թույլ է տալիս նրանց վերահսկել մուտանտներին և գրանցել նրանց կարգավիճակը:

Քանի որ յուրաքանչյուր մուտացիա սովորաբար ներառում է առանձին թեստ, ընդհանուրը նաև ծառայում է որպես ընդհանուր կոդի մուտացիաների քանակի հաշվարկ:

 

6. Մուտացիայի միավոր

 

Մուտացիաների վերլուծության համար առավել օգտակար չափանիշը սովորաբար մուտացիայի միավորն է, որն արդյունավետորեն վավեր մուտանտների այն տոկոսն է, որը փորձարկողը կամ ավտոմատացման փաթեթը կարողացել է հայտնաբերել:

100%-ից պակաս հայտնաբերում կարող է լինել ոչ պատշաճ փորձարկման ընթացակարգերի նշան:

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

7 սխալներ և որոգայթներ մուտանտի թեստերի իրականացման ժամանակ

ծրագրային ապահովման փորձարկման ավտոմատացման գրառում

Մուտացիայի փորձարկումը բարդ գործընթաց է, որը ընկերությունները պետք է խելամտորեն իրականացնեն՝ լուրջ խնդիրներից կամ սխալներից խուսափելու համար: Ահա յոթ թակարդներ, որոնցից փորձարկողները պետք է աշխատեն խուսափել մուտացիոն թեստեր անցկացնելիս.

 

1. Մուտացիաների ոչ պատշաճ մասշտաբավորում

 

Սանդղակը կարևոր նկատառում է մուտացիաների վերլուծության ժամանակ, քանի որ այս գործընթացը գոյություն ունի՝ համոզվելու համար, որ թեստավորողները հայտնաբերում են փոքր անսարքությունները հավելվածում: Եթե մուտացիան չափազանց ակնհայտ է թեստավորողների համար, սա չի կարող արդյունավետ միջոց լինել՝ ստուգելու նրանց կարողությունը՝ նկատելու կամ հակազդելու ծրագրային ապահովման խնդիրները:

 

2. Անվավեր կամ կենդանի մուտացիաներ

 

Նույնիսկ ճիշտ մասշտաբով, շատ մուտացիաներ առաջարկում են միայն սահմանափակ արդյունավետություն, օրինակ, եթե դրանք չեն հանգեցնում անսարքության կամ հանգեցնում են խնդրի, որը դադարեցնում է հավելվածի աշխատանքը:

Փորձարկողները պետք է ուշադրություն դարձնեն, թե ինչպես կոդավորման ցանկացած փոփոխություն կարող է ազդել ամբողջ ծրագրաշարի վրա:

 

3. Անհամատեղելի թեստային դեպքեր

 

Փորձարկման դեպքերը և մուտացիաները պետք է կատարյալ զուգակցվեն՝ ապահովելու հետևողական և ներդաշնակ թեստավորում: Որոշելիս, թե որ մուտացիաներն ավելացնել կամ նույնիսկ նախնական փորձարկման դեպքերը նախագծելիս, որակի ապահովման թիմը կարող է աշխատել երաշխավորելու, որ դրանք համապատասխանում են միմյանց և ընդհանուր առմամբ հանգեցնում են ավելի շատ հեղուկ փորձարկման:

 

4. Ժամկետներ և ժամանակացույցեր

 

Թեստավորման փուլերը տարբերվում են երկարությամբ, բայց միշտ պետք է համապատասխանեն ընկերության ներքին ժամկետներին: Ընկերությունները, որոնք չեն կարողանում պատշաճ կերպով պլանավորել իրենց մուտացիոն թեստերը, կարող են չկարողանալ ժամանակին ավարտել գործընթացը:

Նախքան նախագիծը թեստավորման փուլ հասնելը, թիմը պետք է ապահովի թեստավորման ժամանակացույցը պատշաճ կերպով համապարփակ:

 

5. Անբավարար թեստային ծածկույթ

 

Բիզնեսները կարող են ընտրել իրենց կոդի մուտացիաները պատահականորեն իրականացնել, բայց դեռևս կարևոր է, որ դրանք ընդգրկեն հարցերի լայն շրջանակ:

Համոզվելու համար, որ թե՛ փորձարկողները և թե՛ ծրագրաշարը կարող են հայտնաբերել մուտանտի բոլոր տեսակները, ստուգումները պետք է ներառեն նվազագույնը արժեքների, որոշման և հայտարարությունների մուտացիաներ:

 

6. Օգտագործելով մուտանտներ՝ ծրագրաշարը փորձարկելու համար

 

Թեև մուտացիաների թեստավորումն առաջարկում է նոր հեռանկար հավելվածի վերաբերյալ, թիմերը պետք է օգտագործեն այս մեթոդը միայն իրենց փորձարկման գործընթացը ստուգելու համար: Ընկերությունը պետք է հասկանա մուտացիոն թեստավորման ճշգրիտ հնարավորություններն ու սահմանափակումները. այս տեխնիկան կարող է հաջողության հասնել միայն ծրագրային ապահովման այլ ստուգումների հետ մեկտեղ:

 

7. Չափազանց շատ մուտանտներ

 

Կարևոր է, որ ընկերությունները ապահովեն թեստային լայն ծածկույթ, բայց նրանք կարող են այդ գործընթացում չափազանց շատ մուտանտներ կիրառել: Մուտացիայի յուրաքանչյուր ծրագիր պահանջում է զգալի քանակությամբ հաշվողական հզորություն՝ սահմանափակելով, թե քանի կազմակերպություն կարող է միաժամանակ իրականացնել:

Չափազանց շատ մուտացիաներ կատարելը կարող է նաև դժվարացնել թեստավորման ժամկետները:

 

Մուտացիաների թեստավորման ստուգաթերթ, խորհուրդներ և հնարքներ

Ծրագրային ապահովման փորձարկման ստուգաթերթ

Կան մի շարք լրացուցիչ խորհուրդներ, որոնք կարող են օգնել ցանկացած թիմին բարելավել իրենց մուտացիայի փորձարկման գործընթացի հաջողությունը, ինչպիսիք են.

 

1. Ստուգեք ծրագրավորման լեզուների համատեղելիությունը

 

Մուտացիաների թեստավորման և՛ անվճար, և՛ վճարովի գործիքները սովորաբար մասնագիտանում են մեկ կոդավորման լեզվում, ինչը կարևոր է դարձնում, որ փորձարկողները ընտրեն գործիք, որը համատեղելի է հավելվածի և ծրագրային ապահովման փորձարկման հարթակի հետ:

Թեստավորման թիմը պետք է ուսումնասիրի բազմաթիվ տարբերակներ՝ համոզվելու համար, որ նրանք օգտագործում են ծրագիր, որը համապատասխանում է իրենց բյուջեին, ինչպես նաև իրենց նախընտրած կոդավորման լեզվին:

 

2. Խելամիտ բաշխեք թեստերը

 

Թեստավորման թիմի տարբեր անդամներ, ամենայն հավանականությամբ, կանդրադառնան հավելվածի տարբեր ասպեկտներին, որոնք սովորաբար առնչվում են իրենց հատուկ ուժեղ կողմերին, թույլ կողմերին և ընդհանուր փորձին:

Երբ թիմը մուտացիոն թեստեր է նշանակում յուրաքանչյուր փորձարկողի, նրանք պետք է դա նկատի ունենան, որպեսզի պատկերացում կազմեն իրենց հմտությունների մասին. սա ցույց է տալիս, թե որքան լավ կանցնեն հետագա փորձարկումները:

 

3. Զգուշորեն ընտրեք թերությունները

 

Եթե ծրագրաշարի վերջերս կրկնվող սխալ է եղել, որը պարունակում է արժեք կամ հայտարարություն, դա կարող է օգնել կրկնել դա և ուսումնասիրել, թե ինչպես է արձագանքում թիմը կամ ծրագիրը:

Սա օգնում է երաշխավորել հավելվածի երկարակեցությունը և ցույց է տալիս թիմի կարողությունը՝ նկատելու նախկին սխալները, եթե դրանք կրկնվեն. սա ռեգրեսիոն փորձարկման հիմնական բաղադրիչն է:

 

4. Առավելագույնի հասցնել հաշվողական հզորությունը

 

Քանի որ մուտացիաների ստուգումները կարող են մեծ հաշվողական հզորություն պահանջել, այն օգնում է առավելագույնս օգտագործել ընկերության սարքավորումները:

Օրինակ, եթե որոշ մեքենաներ ունեն ավելի ուժեղ բնութագրեր, կարող է օգտակար լինել մուտանտները գործարկել այս սարքերում: Սա թույլ է տալիս ընկերությանը խուսափել ցանկացած էական ուշացումներից, որոնց կարող են հանգեցնել ավելի դանդաղ մեքենաները:

 

5. Մի անտեսեք կենդանի մուտացիաները

 

Նույնիսկ խիստ ժամանակացույցով, փորձարկողները պետք է աշխատեն փոփոխել և ընդլայնել իրենց փորձարկման դեպքերը՝ պայքարելու գործընթացից գոյատևած ցանկացած մուտանտների դեմ:

Թեև այս սխալները կարող են էական չթվալ, եթե ծրագրաշարը կամ փորձարկիչը դրանք չբացահայտի, դրանք դեռևս ներկայացնում են բոլոր կոդավորման խնդիրները բացահայտելու փորձարկման դեպքերի ձախողումը:

 

6. Հետազոտեք ավտոմատացման նոր ծրագրակազմը

 

Եթե թիմի թեստային դեպքերը բավականաչափ մանրամասն են, բայց նրանց ավտոմատացված թեստավորման հավաքածուն չի կարող հաջողությամբ օգտագործել դրանք յուրաքանչյուր մուտացիա բացահայտելու համար, նրանք կարող են օգտվել տարբեր ծրագրերից:

Կան բազմաթիվ անվճար և վճարովի հարթակներ, և ընկերությունները պետք է ստուգեն յուրաքանչյուր տարբերակ՝ համոզվելու համար, որ ունեն այն ծրագրակազմը, որը լավագույնս համապատասխանում է իրենց փորձարկման դեպքերին երկարաժամկետ հեռանկարում:

 

7. Սինքրոնացրեք յուրաքանչյուր փորձարկման գործընթաց

 

Համագործակցությունը յուրաքանչյուր փորձարկման ռազմավարության հիմնական բաղադրիչն է. սա օգնում է համոզվել, որ յուրաքանչյուր գործընթաց կարող է հեշտությամբ տեղավորվել միասին, ինչպես որ թիմը մտադիր է:

Օրինակ, թեստավորման թիմը կարող է զարգացնել իրենց թեստային դեպքերը՝ նկատի ունենալով մուտացիան, որպեսզի ապահովի համատեղելիության ավելի մեծ մակարդակ՝ հեշտացնելով փորձարկողների համար վավերացնել իրենց ռազմավարությունը:

 

8. Օգտագործեք միավորի փորձարկում

 

Միավորի թեստավորումը թույլ է տալիս որակի ապահովման թիմին առանձին ստուգել կոդի կտորները՝ զանգվածաբար պարզեցնելով թեստերը և հեշտացնելով թիմերի համար խնդիրները բացահայտելը:

Այս համադրությունը կարող է հատկապես օգտակար լինել, եթե փորձարկողներին անհանգստացնում են ժամկետները, ինչը նրանց հնարավորություն է տալիս պարզեցնել իրենց ստուգումները և բարելավել ընդհանուր ծածկույթը՝ հանգեցնելով շատ ավելի ուժեղ ծրագրային փորձարկումների:

 

9. Գրեք մանրամասն թեստային դեպքեր

 

Մուտացիայի փորձարկման դեպքերը պետք է պարունակեն համապատասխան տեղեկատվություն մուտանտի և ծրագրի վրա դրա ազդեցության մասին, ինչպես նաև այն մասին, թե ինչպես է փորձարկման թիմը կամ հարթակը հայտնաբերել այդ անսարքությունները:

Հնարավորինս շատ մանրամասներ տրամադրելով՝ փորձարկողը կարող է անձամբ վավերացնել փորձարկման դեպքը և համոզվել, որ թիմը հստակ գիտի, թե ինչպես ապահովել սահուն թեստավորում:

 

5 լավագույն մուտացիաների փորձարկման գործիքներ

 

 

Գոյություն ունի գործիքների լայն շրջանակ, որոնք կարող են օգնել ընկերություններին մուտացիաների թեստավորման իրենց պահանջներով: Ինչպես հաճախ է պատահում ծրագրային ապահովման փորձարկման հավելվածների դեպքում, գները և հնարավորությունները տարբերվում են մեկ հարթակից մյուսը, ինչը կարևոր է դարձնում կազմակերպությունների ընտրությունը, որը լավագույնս համապատասխանում է իրենց կարիքներին:

Այս ծրագրերից որոշները կարող են առաջարկել անվճար գործընկերներ կամ ամբողջովին բաց կոդով; թեև ավելի մեծ հարմարության համար վճարելը սովորաբար անհրաժեշտ է:

 

Սա նկատի ունենալով, ահա մուտացիայի փորձարկման հինգ լավագույն գործիքները:

 

1. Stryker

 

Stryker-ը մասնագիտացած է JavaScript-ի մուտացիայի մեջ՝ զգալիորեն պարզեցնելով այս գործընթացը՝ երաշխավորելու կեղծ դրական արդյունքների բացակայությունը և նվազեցնելու ընդհանուր ջանքերը, որոնք հակառակ դեպքում փորձարկողները պետք է կիրառեն բոլոր մուտացիաների ստուգումների համար:

Stryker պլատֆորմը խելամտորեն գնահատում է ծրագրաշարը և օգտագործում է իր հավաքած տեղեկատվությունը, որպեսզի պարզի կոդի տողերը կամ հատվածները, որոնք կշահեն մուտացիայից: Այս հավելվածը գալիս է հստակ տեքստով թղթակցի հետ, որը թողարկում է մուտանտի ամփոփագիրը, ներառյալ, թե արդյոք Stryker-ը կարողացել է սպանել նրան:

 

2. PITtest

 

PITest-ը շատ տարածված ընտրություն է ամբողջ աշխարհում՝ Java-ի բայթ-կոդը փոխելու և վայրկյանում հազարավոր մուտացիաներ անելու ունակության շնորհիվ: Այս հավելվածն օգտագործում է թեստային դեպքերի ծածկույթի տվյալները՝ անմիջապես իմանալու համար, թե որ թեստերը կարող են սպանել մուտանտին:

Այն իրականացնում է միայն թեստեր, որոնք գիտի, որ համապատասխան կլինեն՝ սահմանափակելով հաշվողական հզորությունը, որը սովորաբար սպառում է այս ընթացակարգը: PITest-ը նաև համատեղելի է Surefire միավորի փորձարկման հավելանյութի շատ ձևերի հետ, բայց կարող է պայքարել թեստային պատվերի կախվածության արդյունավետ կառավարման հետ:

 

3. Ապահովագրել++

 

Insure++-ն ունի բազմաթիվ թեստավորման հնարավորություններ, ներառյալ մուտացիաների վերլուծությունը, ինչը թույլ է տալիս հարթակին հայտնաբերել անորոշություններ ծրագրի մեջ: Մուտացիաների սովորական փորձարկումից շեղվելով՝ Insure++-ը հրաժարվում է անսարք մուտանտներ ստեղծելուց և փոխարենը ստեղծում է ֆունկցիոնալ համարժեք մուտացիաներ, որոնք համապատասխանում են նախագծի սկզբնական կոդին:

Սա թույլ է տալիս խուսափել անուղղակի ենթադրություններից, որոնք կարող են ակամա սահմանափակել թեստավորման գործընթացը և չեն կարող արտացոլել իրատեսական թեստային միջավայրերը: Ինչպես անունն է հուշում, պլատֆորմը հիմնականում համատեղելի է C++ ծրագրերի հետ, և յուրաքանչյուր հատկանիշ ճշգրտված է այս լեզվով:

 

4. Խառնաշփոթ

 

Այս հավելվածը մասնագիտացած է JUnit JavaScript-ի շրջանակում՝ համապարփակ տեսողական ցուցիչներով, թե ինչպես է կոդը արձագանքում մուտացիաների վերլուծությանը: Jumble-ը բաց կոդով հարթակ է և աշխատում է Java հավելվածների բայթ-կոդի շրջանակներում՝ յուրաքանչյուր փորձարկման ցիկլի ժամանակը նվազեցնելու համար:

Նմանատիպ հավելվածները, որոնք բացառապես օգտագործում են ծրագրի սկզբնական կոդը, երբեմն կարող են ավելի երկար տևել այս ստուգումները կատարելու համար՝ կապված դրանց վերահամալրման գործընթացի հետ:

Jumble-ը նաև օգտագործում է էվրիստիկա՝ մուտացիաների փորձարկումն էլ ավելի օպտիմիզացնելու համար՝ հեշտացնելով հետագա փորձարկումները:

 

5. MutPy

 

MutPy-ն աջակցում է Python-ի վրա հիմնված հավելվածների մուտացիայի թեստերը՝ առաջարկելով լիարժեք աջակցություն բարձր կարգի մուտացիաների համար, ինչպես նաև ծածկույթի համապարփակ վերլուծություն: Այս ծրագրի ինտերֆեյսը հեշտ է օգտագործել ելքային փուլում, որը օգտատերերին հստակ ցույց է տալիս թիմի մուտացիոն թեստերի բոլոր էական մանրամասները:

MutPy-ն առաջարկում է բազմաթիվ ընտրանքներ թեստավորողների համար՝ թույլ տալով նրանց չափորոշել այս ծրագրաշարը հատուկ իրենց պահանջներին համապատասխան: Պլատֆորմն օգտագործում է վերացական շարահյուսական ծառեր, որոնք ապահովում են հավելվածի սկզբնական կոդի հստակ կառուցվածքը՝ փորձարկողներին ավելի վստահություն տալով իրենց մուտացիաների նկատմամբ:

 

Եզրակացություն

Կոդի մուտացիան կիրառություն ունի ծրագրային ապահովման գրեթե ցանկացած փորձարկման գործընթացի համար, որն առաջարկում է մի շարք հստակ առավելություններ այս տեխնիկան կիրառող ընկերությունների համար, հատկապես որակի ապահովման փուլում:

Ոչ մի մեթոդաբանություն առանց մարտահրավերների. սա նշանակում է, որ հրամայական է, որ կազմակերպությունները խելամտորեն հաշվի առնեն մուտացիաների վերլուծության առավելությունները՝ միաժամանակ ապահովելով, որ այն համապատասխանում է ծրագրային ապահովման մշակման իրենց սովորական ժամանակացույցին:

Այս մուտացիաները թեստավորման թիմերին հնարավորություն են տալիս ուսումնասիրել իրենց սեփական մոտեցումը և որոշել դրա արդյունավետությունը սկզբնաղբյուրում սխալները հայտնաբերելու և ուղղելու համար: Այս տեխնիկան հատկապես համատեղելի է ավտոմատացման ընթացակարգերի հետ՝ թույլ տալով ընկերություններին վավերացնել այն ծրագրակազմը, որին վստահում են իրենց ստուգումները կատարելու համար:

Մուտացիայի թեստավորումն առաջարկում է որակի ապահովման թիմերի համար ավելի լավ պատկերացում կազմելու իրենց սեփական գործընթացների և ծրագրաշարի մասին, ներառյալ այն խնդիրները, որոնք այլ կերպ չէին հայտնաբերի:

Որպես արդյունք, շատ կարևոր է, որ թեստավորման թիմերը սերտորեն ուսումնասիրեն այս տեխնիկան՝ գնահատելու, թե արդյոք այն համապատասխանում է կազմակերպության կարիքներին, ներառյալ՝ արդյոք նրանց ընտրած մուտացիայի գործիքը լիովին համատեղելի է իրենց ծրագրավորման լեզվի հետ: ZAPTEST ավտոմատացված թեստավորման ծրագրաշարը պարծենում է բազմաթիվ առանձնահատկություններով, որոնք թույլ են տալիս անցնել մուտացիայի թեստեր՝ ապահովելով թիմերի լիակատար վստահությունը իր կարողությունների նկատմամբ:

Թե՛ Անվճար, և թե՛ Ձեռնարկությունների տարբերակներն առաջարկում են բարձրորակ փորձարկման գործընթաց, որը կարող է հեշտությամբ տեղավորել կոդի մուտացիաները:

 

ՀՏՀ և ռեսուրսներ

1. Լավագույն դասընթացներ մուտացիաների թեստավորման վերաբերյալ

 

Առցանց դասընթացները կարող են օգնել առաջին անգամ փորձարկողներին սովորել կոդի մուտացիայի հիմունքները կամ ամրապնդել որակի ապահովման փորձառու անձնակազմի նախկինում գոյություն ունեցող հմտությունները: Ծրագրային ապահովման փորձարկման ընդհանուր դասերը կարող են նաև բազմաթիվ առավելություններ առաջարկել փորձարկողներին: Լավագույն առցանց դասընթացները մուտացիաների փորձարկողների համար ներառում են.

• PluralSight-ի «Java-ի մուտացիայի փորձարկումը PITest-ով» հատուկ ուշադրություն է դարձնում, թե ինչպես փոխել Java կոդը և այն ուղիները, որոնք այս մոտեցումը կարող է նպաստել գործնական ծրագրային ապահովման փորձարկման գործընթացներին:

• Udemy-ի «Ամբողջական 2023 ծրագրային ապահովման փորձարկման Bootcamp»-ը հատկապես արդիական դասընթաց է, որը ցույց է տալիս ծրագրային ապահովման թեստերի բոլոր հիմնական բաղադրիչը, ներառյալ սպիտակ տուփի փորձարկումը:

• Ալիսոնի «Ծրագրային փորձարկում. պայմանի ծածկույթ և մուտացիաների փորձարկման ռազմավարություններ» անվճար է և մանրակրկիտ ուսումնասիրում է, թե ինչպես խելամտորեն իրականացնել մուտացիաների թեստավորում:

• PluralSight-ի «Միավոր թեստավորման հիմունքները» ուսումնասիրում է միավորի թեստավորման առավելություններն ու առանձնահատկությունները՝ օգնելով համոզվել ուսանողներին հասկանալ ուժեղ միավորի թեստեր գրելու ճշգրիտ գործընթացը:

• Udemy-ի «Introduction to Unit Testing»-ը ևս մեկ անվճար դասընթաց է, որը ներկայացնում է միավորի թեստավորման հստակ վերլուծություն, ինչպես նաև թեստային վրա հիմնված զարգացման ռազմավարությունների կարևորությունը:

 

2. Որո՞նք են հարցազրույցի լավագույն 5 հարցերը մուտացիայի թեստավորման վերաբերյալ:

 

Կան մի շարք հարցեր, որոնք ընկերությունները կարող են տալ թեկնածուներին հարցազրույցի ժամանակ՝ ստուգելու մուտացիայի թեստավորման նրանց փորձը կամ պատկերացումները դրա հիմնական սկզբունքների հետ մեկտեղ: Սա թույլ է տալիս ընկերությանը համոզվել, որ նրանք վարձում են որակավորված փորձարկող, որը կարող է հեշտությամբ մոտենալ մուտացիաների հետ կապված տարբեր սցենարների:

Ճշգրիտ հարցերը տարբեր են, բայց կարող են ներառել իրենց կարծիքը կամ կոդի մուտացիայի հմտությունների օրինակներ խնդրելը:

 

Մուտացիաների թեստավորման հարցազրույցի լավագույն հինգ հարցերն են.

 

• Մուտացիաների փորձարկման ո՞ր գործիքների հետ ունեք նախկին փորձ, եթե այդպիսիք կան: Որո՞նք էին այս ծրագրաշարի հիմնական առանձնահատկությունները:

• Կոդի մուտացիա իրականացնելիս ինչպե՞ս կաշխատեիք՝ ապահովելու առողջ հավասարակշռություն փորձարկման արագության և խորության միջև:

• Ո՞ր իրավիճակներում մուտացիաների վերլուծությունն անհնար կլիներ: Ինչպե՞ս կարող եք ստուգել փորձարկման ընթացակարգը այս սցենարներում:

• Եթե արժեքային մուտացիան կարողանա գոյատևել փորձարկման գործընթացում, ինչպիսի՞ն կլինի ձեր գործողությունները, որպեսզի դա չկրկնվի:

• Ի՞նչ տեղեկատվություն կներառեիք մուտացիայի թեստի դեպքի վերաբերյալ, որպեսզի երաշխավորեք, որ ձեր գործընկերներն ունենան իրենց անհրաժեշտ տվյալները:

 

3. YouTube-ի լավագույն ձեռնարկները մուտացիաների թեստավորման վերաբերյալ

 

Անվճար ձեռնարկներ, վեբինարներ և այլ տեսանյութեր հասանելի են YouTube-ում, որոնք կօգնեն թեստավորողի ըմբռնումը մուտացիաների թեստի վերաբերյալ: Թեմայի վերաբերյալ ամենաօգտակար տեսանյութերից և շարքերից մի քանիսը ներառում են.

 

• Software Testing-ի «Mutation Testing for Programs», որը գործնական օրինակներ է տալիս այն մասին, թե ինչպես է կոդի մուտացիան օգնում ծրագրերին, ինչպես նաև մանրամասն թեստային դեպքեր գրելը:

• Devoxx-ի «Մուտացիայի փորձարկում. իմ թեստը կոտրե՞լ է իմ կոդը», որը ուսումնասիրում է, թե ինչպես է մուտացիայի վերլուծությունը բարելավում բոլոր տեսակի ծրագրային նախագծերի ընդհանուր փորձարկման ընթացակարգերը:

• NDC Conferences’ «Սպանեք բոլոր մուտանտներին: Մուտացիայի փորձարկման ներածություն», որն ուսումնասիրում է, թե ինչպես են փորձարկման հավաքակազմերը կարող օգուտ քաղել կոդի մուտացիայից և այն սխալներից, որոնք այն օգնում է ստեղծել:

• GOTO Conferences-ի «Mutation Testing in Python»-ում, որը հատուկ ուսումնասիրում է, թե ինչպես Python-ի վրա հիմնված հավելվածները կարող են կիրառել մուտացիաների վերլուծություն՝ կոնկրետ փորձարկման նպատակներին հասնելու համար:

• Դիեգո Պաչեկոյի «Java Mutation Testing With PITest»-ը, որը նմանապես ցույց է տալիս, որ JavaScript ծրագրակազմն օգտագործում է կոդի մուտացիա՝ կենտրոնանալով PITest մուտացիայի ծրագրի վրա:

 

4. Ինչպե՞ս պահպանել մուտացիոն թեստերը:

 

Մուտացիաների վերլուծությունը ռեգրեսիոն փորձարկման և այլ երկարաժամկետ ռազմավարությունների հետ համատեղելը թույլ է տալիս ընկերություններին ապահովել որակի ապահովման ամուր ստանդարտ նույնիսկ թողարկումից հետո:

Հետագա թարմացումները կարող են հանգեցնել կոդի փոփոխությունների, որոնք պահանջում են հետագա ստուգումներ: Մուտացիայի թեստավորումը ցույց է տալիս, որ ավտոմատացման ծրագրակազմը և փորձարկիչները համահունչ են միևնույն ծրագրաշարի տարբեր տարբերակներում՝ վերահաստատելով նրանց հատուկ մոտեցումը:

Նոր գործառույթները պահանջում են ավելի նոր թեստային դեպքեր, հատկապես, եթե այդ հատկանիշները փոխազդում են նախկինում գոյություն ունեցողների հետ:

Ի հավելումն սրան, փորձարկման վրա հիմնված մշակման օգտագործումը թիմի անդամներին թույլ է տալիս պլանավորել ծրագրաշարի երկարակեցությունը և փորձարկման համատեղելիությունը՝ որպես սեփական զարգացման ցիկլի մաս:

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post