Գործնականորեն փորձարկման դեպքեր յուրաքանչյուր հատկանիշի համար ստեղծվում և փորձարկվում են նախքան ծրագրաշարի թողարկումը, և եթե թեստը ձախողվում է, նոր կոդ է գրվում (կամ վերագրվում կամ կարկատվում է)՝ թեստն անցնելու և կոդը պարզ և առանց վրիպակների:
Test Driven Development (TDD) սկսվում է հավելվածի յուրաքանչյուր փոքրիկ հատկանիշի համար թեստերի նախագծմամբ և մշակմամբ: TDD շրջանակը ծրագրավորողներին հրահանգում է նոր կոդ գրել միայն այն դեպքում, եթե ավտոմատացված թեստը ձախողվի: Այս մոտեցումը խուսափում է կոդի կրկնությունից: Ամբողջական TDD մոդուլը փորձարկման վրա հիմնված մշակում է:
Test Driven Development (TDD) առաջացել է որպես ծրագրային ապահովման նախագծման ավելի մեծ պարադիգմի մաս, որը հայտնի է որպես Extreme Programming (XP), որը Agile ծրագրային ապահովման մշակման մեթոդաբանության մի մասն է:
TDD-ի պարզ հայեցակարգն է՝ գրել և ուղղել ձախողված թեստերը մինչև նոր կոդ գրելը (մինչ մշակումը): Սա օգնում է խուսափել կոդի կրկնօրինակումից, քանի որ մենք միաժամանակ գրում ենք փոքր քանակությամբ կոդ՝ թեստեր անցնելու համար: (Թեստերը ոչ այլ ինչ են, քան պահանջվող պայմաններ, որոնք մենք պետք է փորձարկենք դրանք բավարարելու համար):
Թեստի վրա հիմնված մշակումը ավտոմատ թեստերի մշակման և գործարկման գործընթաց է մինչև հավելվածի իրական մշակումը: Հետևաբար, TDD-ն երբեմն կոչվում է նաև Test First Development:
Նախքան նոր կոդ գրելը, ծրագրավորողը նախ պետք է ստեղծի ձախողված միավորի թեստ: Այնուհետև ծրագրավորողը, կամ զույգը, կամ ամբոխը, ստեղծում է այնքան կոդ, որը բավարարում է այդ պահանջը: Թեստն անցնելուց հետո ծրագրավորողը կարող է վերափոխել նախագիծը՝ կատարելով բարելավումներ՝ չփոխելով վարքագիծը:
Թեև TDD-ն կենտրոնանում է միավորի մակարդակի ծրագրավորողների փոխազդեցությունների վրա, կան այլ հանրաճանաչ մեթոդներ, ինչպիսիք են ընդունման թեստային զարգացումը (ATDD) կամ վարքագծի վրա հիմնված զարգացումը (BDD), որոնք կենտրոնանում են հաճախորդների համար հասկանալի թեստերի վրա:
Այս մեթոդները ներառում են իրական օրինակների կառուցում՝ որպես ինժեներական անձնակազմի և հաճախորդի միջև համագործակցային թեստեր՝ նախքան կոդավորումը, և այնուհետև թեստերի անցկացումը կոդավորումից հետո՝ ցույց տալու համար, որ կոդը ներդրված է: Նախապես հայտնի թեստերի առկայությունը բարելավում է առաջին անգամի որակը: ATDD-ն և BDD-ն պահանջում են, որ մշակողները, փորձարկողները և բիզնես կողմը միասին աշխատեն՝ պատկերացնելու և քննարկելու ծրագրաշարը և դրա հետևանքները նախքան ծածկագրի ստեղծումը:
Փորձարկման վրա հիմնված մշակումը կարող է արտադրել բարձրորակ հավելվածներ ավելի քիչ ժամանակում, քան հնարավոր է ավելի հին մեթոդներով: TDD-ի հաջող իրականացումը ծրագրավորողներից և փորձարկողներից պահանջում է ճշգրիտ կանխատեսել, թե ինչպես է հավելվածը և դրա ֆունկցիոնալությունը օգտագործվելու իրական աշխարհում:
TDD-ն ստեղծում է ռեգրեսիայի թեստային փաթեթ՝ որպես կողմնակի ազդեցություն, որը կարող է նվազագույնի հասցնել մարդու ձեռքով թեստավորումը, ավելի շուտ գտնել խնդիրներ, ինչը հանգեցնում է ավելի արագ լուծումների: TDD-ի մեթոդական բնույթն ապահովում է շատ ավելի բարձր առաջին անգամ ծածկույթ և որակ, քան դասական փուլային ծածկագրի ցիկլերը > փորձարկում > ուղղում > վերստուգում: Քանի որ թեստավորումն իրականացվում է նախագծման ցիկլի սկզբում, հետագայում վրիպազերծման վրա ծախսվող ժամանակը և գումարը նվազագույնի է հասցվում:
Ակնկալվող օգուտները.
Հաջողակ լինելու համար TDD-ն պահանջում է զգալի հմտություններ, հատկապես միավորի մակարդակում: Շատ հին համակարգեր պարզապես կառուցված չեն՝ հաշվի առնելով միավորի փորձարկումը, ինչը անհնարին է դարձնում բաղադրիչների մեկուսացումը փորձարկման համար:
Բացի այդ, շատ ծրագրավորողներ չունեն մեկուսացման և մաքուր կոդ ստեղծելու հմտություններ: Թիմի բոլոր անդամները պետք է ստեղծեն և պահպանեն միավորի թեստերը, հակառակ դեպքում դրանք արագ կհնանան: Եվ կազմակերպությունը, որը նայում է TDD-ին, պետք է ժամանակ ներդնի, հիմա մի փոքր դանդաղեցնի արագությունը ավելի ուշ:
Վերջապես, ինչպես ցանկացած մեթոդի դեպքում, TDD-ի վերջնական արդյունքները նույնքան լավն են, որքան օգտագործված թեստերը, որքանով են դրանք կատարվել և որքանով են դրանք ընդօրինակում վերջնական արտադրանքի օգտագործողների բախվող պայմաններին:
Ընդհանուր սխալներ.
TDD-ն ծրագրավորողին թույլ է տալիս մանկական քայլեր ձեռնարկել ծրագրակազմ գրելիս: Թեստը գրվում է նախքան ֆունկցիոնալությունը ստուգելը և ապահովում է, որ հավելվածը հարմար է փորձարկման համար: Փոքր քանակությամբ կոդի վրա փորձարկումը կատարվում է ստուգված կոդում տեղի ունեցող սխալները հայտնաբերելու համար: Այնուհետև ֆունկցիոնալությունն իրականացվում է: Սա կոչվում է «կարմիր կանաչ ռեֆակտոր», որտեղ կարմիրը նշանակում է ձախողում, իսկ կանաչը ցույց է տալիս անցում: Այս քայլերն այնուհետև կրկնվում են: Ծրագրավորողի առաջին նպատակն է կենտրոնանալ առաջադրանքի վրա և հաղթահարել այն:
Ercole Palmeri
Միլիոնավոր մարդիկ վճարում են հոսքային ծառայությունների համար՝ վճարելով ամսական բաժանորդային վճարներ։ Տարածված կարծիք կա, որ դուք…
Veeam-ի Coveware-ը կշարունակի տրամադրել կիբեր շորթման միջադեպերի արձագանքման ծառայություններ: Coveware-ը կառաջարկի դատաբժշկական և վերականգնման հնարավորություններ…
Կանխատեսելի սպասարկումը հեղափոխություն է անում նավթի և գազի ոլորտում՝ կայանի կառավարման նորարարական և ակտիվ մոտեցմամբ:…
Մեծ Բրիտանիայի CMA-ն նախազգուշացում է տարածել արհեստական ինտելեկտի շուկայում Big Tech-ի վարքագծի վերաբերյալ: Այնտեղ…