Փորձարկման 4 մեթոդ, որը պետք է իմանա յուրաքանչյուր ծրագրավորող


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

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

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

1. Ստատիկ փորձարկում

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

Linting-ը ներառում է կոդի ստուգում ծրագրավորման և ոճական սխալների համար: Լինտերը վերլուծում է կոդը և նշում է հնարավոր սխալները: Linting գործիքների օրինակներ են EsLint, PyLint և CSSLint:

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

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

Դուք կարող եք նաև օգտագործել ստատիկ վերլուծության գործիքներ՝ կոդը ինքնաբերաբար վերլուծելու համար: Այս գործիքները ստուգում են կոդի որակը և զեկուցում ցանկացած խնդրի մասին, որը գտնում է: Շուկայում ստատիկ վերլուծության գործիքների օրինակներն են՝ SonarQube, DeepSource և SpotBugs: Ստատիկ անալիզատոր ընտրելիս համոզվեք, որ այն աջակցում է ձեր ծրագրավորման լեզվին:

2. Միավոր թեստեր

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

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

Ընդհանուր առմամբ, միավորի փորձարկումը բաղկացած է չորս քայլից.

  • Թեստերի ստեղծում
  • Վերանայելով թեստը
  • Հիմքավորում
  • Թեստի կատարում.

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

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

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

Օրինակ, եթե դուք փորձարկում եք մի ֆունկցիա, որը հիմնված է API-ից բերված տվյալների վրա, կարող եք ստեղծել կեղծ տվյալների օբյեկտ թեստավորման նպատակով:

3. Ինտեգրման թեստեր

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

Ինտեգրման թեստերը կարևոր են, քանի որ դրանք ապահովում են ձեր կիրառման տրամաբանությունը:

Օրինակ՝ հաշվի առեք երկու մոդուլ՝ մեկը, որը տվյալներ է վերցնում API-ից և մյուսը, որը վերլուծում է դրանք: Դուք ցանկանում եք համոզվել, որ ձեր կոդը ճիշտ տվյալներ է բերել և ճիշտ վերլուծել դրանք:

Այստեղ է գալիս ինտեգրման թեստավորումը: Այն ապահովում է տրամաբանական սխալների բացակայությունը մի մոդուլից մյուսը:

4. End-to-End թեստեր

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

End-to-end թեստերը սահմանում են հավելվածի կախվածությունը, տվյալների բազաները և արտաքին հաղորդակցությունը: Նրանք հնարավորինս ճշգրիտ կերպով կրկնում են իրական աշխարհի սցենարը:

Օրինակ, գրանցման ձևը փորձարկելիս վերջից մինչև վերջ թեստը կփորձարկի տարբեր սցենարներ, ինչպիսիք են.

  • Օգտատեր, որը ներկայացնում է և՛ էլփոստը, և՛ գաղտնաբառը
  • Թույլ գաղտնաբառ օգտագործող օգտվող
  • Անվավեր էլ․ հասցե օգտագործող օգտատեր
  • Օգտագործողը, որը ուղարկում է միայն էլ
  • Օգտատեր, որը ներկայացնում է միայն գաղտնաբառ

Վերջնական թեստերը ապահովում են, որ հավելվածն իրեն պահում է այնպես, ինչպես սպասվում է այս սցենարներում:

Գրելու թեստեր ընդդեմ գրավոր կոդի

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

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