fbpx

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

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

 

Table of Contents

Ի՞նչ է աստիճանական թեստավորումը:

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

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

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

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

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

 

Որո՞նք են կոճղերը և դրայվերները աստիճանական թեստավորման մեջ:

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

1. կոճղեր:

Կոճղերը նմանակում են մոդուլները, որոնք դեռ պետք է մշակվեն և, որպես այդպիսին, անհասանելի են փորձարկման համար: Նրանք թույլ են տալիս փորձարկվող մոդուլին (MUT) զանգահարել թերի մոդուլներ: Այստեղ արդյունքն այն է, որ MUT-ը կարող է փորձարկվել առանձին, նույնիսկ երբ հարակից մոդուլները հասանելի չեն:

2. Վարորդներ:

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

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

 

Տարբեր տեսակի աճող

ինտեգրման փորձարկում

Աստիճանային ինտեգրման փորձարկման տարբեր տեսակներ

Աճող թեստավորման տեսակները կարելի է լայնորեն բաժանել երեք կատեգորիաների. Եկեք ուսումնասիրենք յուրաքանչյուրը:

 

1. Վերևից վար աստիճանական ինտեգրում

 

Վերևից վար աստիճանական ինտեգրումը սկսվում է համակարգի ներսում ամենաբարձր կարգի մոդուլների փորձարկումից: Այնտեղից այն աստիճանաբար ինտեգրվում և փորձարկում է ավելի ցածր կարգի մոդուլներ:Գոյություն ունեն երկու հիմնական սցենար, որտեղ օգտագործվում է վերևից վար աստիճանական ինտեգրում: Նրանք են:

  • Երբ համակարգը շատ մեծ է կամ շատ բարդ
  • Երբ մշակողի թիմը միաժամանակ աշխատում է բազմաթիվ մոդուլների վրա:

Վերևից ներքև աճող ինտեգրման քայլեր

  • Բացահայտեք կարևոր մոդուլները
  • Ստեղծեք կոճղեր՝ ավելի ցածր կարգի մոդուլները ընդօրինակելու համար
  • Մշակեք վարորդներ՝ փոխազդելու ավելի բարձր կարգի մոդուլների հետ՝ նրանց տվյալներ ուղարկելու և մոդուլի արդյունքները մեկնաբանելու համար
  • Միավորը փորձարկում է կրիտիկական մոդուլները դրայվերներով և կոճղերով
  • Ինտեգրեք ավելի ցածր կարգի մոդուլներ և աստիճանաբար փոխարինեք կոճղերը իրական իրականացումներով
  • Refactor վարորդներ՝ նոր մոդուլները տեղավորելու համար
  • Կրկնեք, մինչև բոլոր ցածր կարգի մոդուլները ինտեգրվեն և փորձարկվեն:

 

2. Ներքևից վեր աստիճանական ինտեգրում

 

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

  • Երբ գործ ունես ավելի փոքր համակարգերի հետ
  • Երբ համակարգը մոդուլյարացված է
  • Երբ որոշ մտահոգություններ ունեք ելակների ճշգրտության կամ ամբողջականության վերաբերյալ:

Ներքևից վեր աստիճանական ինտեգրման քայլեր

  • Բացահայտեք ավելի ցածր կարգի մոդուլներ
  • Միավորը փորձարկում է ցածր կարգի մոդուլները՝ ստուգելու նրանց անհատական ​​ֆունկցիոնալությունը
  • Մշակեք վարորդներ՝ որպես միջնորդներ ավելի ցածր կարգի մոդուլներով
  • Ստեղծեք կոճղեր՝ ավելի բարձր կարգի մոդուլների վարքը մոդելավորելու համար
  • Ինտեգրեք հաջորդ մոդուլները՝ ցածրից մինչև ավելի բարձր կարգ, և աստիճանաբար փոխարինեք կոճղերը իրական իրականացումներով
  • Refactor վարորդներ՝ նոր մոդուլները տեղավորելու համար
  • Կրկնեք, մինչև բոլոր ավելի բարձր կարգի մոդուլները ինտեգրվեն և փորձարկվեն:

 

3. Ֆունկցիոնալ աստիճանական ինտեգրում

 

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

Ֆունկցիոնալ աճող ինտեգրումն օգտագործվում է Agile/DevOps մեթոդոլոգիաներում , և դա հիանալի ընտրություն է մոդուլների կամ բաղադրիչների միջև բարդ կախվածություն ունեցող հավելվածների համար:

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Քայլեր ֆունկցիոնալ աստիճանական ինտեգրման համար

  • Բացահայտեք առանձին մոդուլներ և բաղադրիչներ հստակ սահմանված միջերեսներով
  • Ստուգեք յուրաքանչյուր մոդուլի ֆունկցիոնալությունը միավորի փորձարկման միջոցով
  • Ինտեգրել համակարգի ամենանվազագույն հիմնական մոդուլները և ապահովել դրա գործառույթը
  • Աստիճանաբար ավելացրեք միայնակ մոդուլներ՝ յուրաքանչյուր քայլի ֆունկցիոնալությունը ստուգելով
  • Վերափոխեք կոդը յուրաքանչյուր մոդուլի ավելացման ժամանակ
  • Երբ բոլոր մոդուլները ավելացվեն, փորձարկեք ֆունկցիոնալությունը և կատարումը

 

Աճային փորձարկման մոտեցման դրական և բացասական կողմերը

մարտահրավերներ բեռի թեստավորում և ՀՀԿ

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

 

Աճային փորձարկման մոտեցման դրական կողմերը

 

1. Ճկունություն

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

 

2. Վրիպակների վաղ հայտնաբերում

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

 

3. Պարզություն

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

 

4. Ավելի ցածր ռեգրեսիայի ռիսկ

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

 

5. Հետադարձ կապի հնարավորություններ

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

 

Աճային փորձարկման մոտեցման թերությունները

 

1. Ինտեգրման խնդիրներ

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

 

2. Փորձարկման փաթեթի բարդությունը

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

 

3. Ավելի շատ աշխատանք

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

 

4. Կառավարման պահանջների ավելացում

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

 

Աճող փորձարկման օրինակ

Աճող փորձարկման օրինակ

Թերևս աճող թեստավորման մոտեցումը հասկանալու ամենահեշտ ձևը օրինակի մասին մտածելն է: Ահա մի պարզ իրավիճակ, որը կօգնի պատկերացնել գործընթացը:

 

1. Բջջային բանկինգի հավելվածի լրացուցիչ թեստավորման օրինակ

Սցենար. Թիմը կառուցում է բջջային բանկային հավելված: Հավելվածը բաղկացած է մի քանի տարբեր մոդուլներից, որոնք հնարավորություն են տալիս.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

  • 2FA և կենսաչափական օգտագործողի ստուգում
  • Գործարքների մշակում
  • Ֆինանսական տվյալների կառավարման վահանակ

 

Նպատակը: Թիմը ցանկանում է ստուգել յուրաքանչյուր մոդուլի ինտեգրումը և որոշել, թե արդյոք նրանք լավ են աշխատում միասին: Արդյունքում նրանք կառուցում են երեք թեստային պատյաններ։

 

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

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

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

 

Թեստային դեպք 2

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

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

 

Թեստային դեպք 3

Վերջնական ինտեգրման թեստը ներառում է վավերացում, թե արդյոք հավելվածը կարող է միաժամանակ գործարքներ կատարել:

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

 

Սա աճող փորձարկման մոտեցում է

նույնն է, ինչ աստիճանական թեստավորումը:

ալֆա թեստավորում ընդդեմ բետա թեստավորման

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

Թեև այս տեսակի մոդելավորման նկատմամբ հետաքրքրությունն աճել է վերջին տարիներին թխուկների և երրորդ կողմի տվյալների «մահվան» շնորհիվ, միակ կապը, որ այն ունի աստիճանական թեստավորման հետ, ընդհանուր բառն է:

 

Աճային փորձարկման լավագույն 3 գործիքները

ZAPTEST RPA + Test Automation փաթեթ

#1. ZAPTEST

Ինչպես նաեւ ապահովելով առաջին կարգի ՀՀԿ հնարավորություններով, ZAPTEST-ն առաջարկում է ծրագրային ապահովման փորձարկման ավտոմատացման մի շարք գործիքներ, որոնք կատարյալ են աստիճանական փորձարկման համար: Որոշ առանձնահատկություններ ներառում են.

  • Փորձարկման տվյալների կառավարում . Կրճատեք ժամանակի և ջանքերի քանակը, որոնք ներգրավված են աճող թեստավորման հետ՝ թույլ տալով թիմերին վերօգտագործել թեստի տվյալները
  • Սցենարների ձայնագրում և նվագարկում . առանց կոդերի այս գործիքը թիմերին թույլ է տալիս ձայնագրել և կատարել սկրիպտներ և շատ ժամանակ խնայել լրացուցիչ թեստավորման ժամանակ:
  • Կրկնակի օգտագործման թեստային մոդուլներ . ZAPTEST-ը խիստ մոդուլային է և թույլ է տալիս թիմերին ստեղծել և վերօգտագործել թեստային մոդուլներ և զգալի ժամանակ կտրել թեստավորման գործընթացից:

Ընդհանուր առմամբ, ZAPTEST-ն առաջարկում է հզոր և բազմազան թեստային ավտոմատացման հավաքածու, որը հարմար է ցանկացած տեսակի թեստավորման, ներառյալ աստիճանական թեստավորման համար:

 

#2. Սելեն

Selenium-ը բաց կոդով փորձարկման ավտոմատացման հարթակ է, որը ստեղծվել է բջջային հավելվածների թեստավորումը հեշտացնելու համար: Գործիքներն աջակցում են մի քանի շարժական հարթակներ (Android, iOS, Windows) և օգտագործում են կոճղեր և դրայվերներ մոդուլների մոդելավորման համար:

 

#3. Թեստիգմա

Testsigma-ն ամպի վրա հիմնված թեստային ավտոմատացման հարթակ է: Այն կարող է օգտագործվել վեբ և բջջային հավելվածները փորձարկելու համար և հարմար է աստիճանական փորձարկման համար՝ առանց ծածկագրի թեստ ստեղծելու և CI/CD խողովակաշարերի հետ ինտեգրվելու համար:

 

Վերջնական մտքեր

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

Մեր դասի լավագույն ՀՀԿ-ի կողքին գործիքներ, ZAPTEST-ն առաջարկում է առանց կոդերի ծրագրային ապահովման թեստավորման ավտոմատացում, որը և՛ միջպլատֆորմային է, և՛ խաչաձև հավելված: Ավելին, մեր փորձարկման փաթեթը հագեցած է այնպիսի գործառույթներով, ինչպիսիք են CI/CD ինտեգրումը, կայուն հաշվետվություններն ու վերլուծությունները, ինչպես նաև առաջին կարգի աջակցությունն ու հաճախորդների սպասարկումը:

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

Virtual Expert

ZAPTEST

ZAPTEST Logo