Հնգ, մայիսի 27, 2021

5 րոպե

Որակի ապահովման ներածություն


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


Ո՞ւմ համար է այս դասընթացը


Այս դասընթացն անցնելու համար որակի ապահովման վերաբերյալ նախնական գիտելիքներ հարկավոր չեն։ Մենք կսկսենք որակի ապահովման հիմունքներից և կհասնենք մինչև որակի ապահովման ավտոմատացմանն առնչվող առաջադեմ կոնցեպտներին։
Սակայն,այնուամենայնիվ ենթադրում ենք,որ դուք ծանոթ եք HTML-ին (web UI թեստավորման համար) և REST-ին ( API թեստավորման համար)։


Ի՞նչ են BDD-ն և TDD-ն


Ծրագրային ապահովման մշակման ոլորտում դուք անկասկած հաճախ եք լսելու BDD և TDD տերմինները։ BDD (Behavior Driven Development) - ն ենթադրում է ծրագրի մշակում վարքագծի վրա հիմնվելով, իսկ TDD(Test Driven Development) -ն հիմնվում է գլխավորապես թեստի վրա: Այսինքն ՝ TDD -ն խրախուսում է գրել թեստեր նախքան յուրաքանչյուր հատվածի մշակումը։ Հիմնականում առաջին անգամ կատարվող թեստը ձախողվում է, ապա ՝ այն կրկնվում է ևս մեկ անգամ (արդեն տվյալ հատվածի մշակումից հետո), այս դեպքում թեստը պետք է (ամենայն հավանականությամբ) իրականացվի անխափան։
Հետևաբար, կոդային բազան կունենա բարձր փորձարկման ծածկույթ, ինչը ծրագրային ապահովման լավ պրակտիկա է: Ինչպես տեսնում եք, TDD- ն մշակողի վրա հիմնված թեստավորման մոտեցում է և օգտագործվում է միավորի թեստեր գրելու համար:
Մյուս կողմից ` BDD- ն նկարագրում է առանձնահատկություն կամ ֆունկցիոնալություն մարդու կողմից ընթեռնելի լեզվով` հասկանալի է նախագծում ներգրավված տարբեր շահագրգիռ կողմերի համար:


Որակի ապահովման հիմունքները


Թեստավորման ենթակա ծրագրակազմից կախված ՝ փորձարկման համար օգտագործվում են տարբեր գործիքներ և մեթոդաբանություններ, սակայն փորձարկման տարբեր մոտեցումների մեջ կան փորձարկման որոշ հիմնարար սկզբունքներ: Եկեք սովորենք այդ սկզբունքների մասին:


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


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


Web UI թեստավորում


Վեբ UI- ի փորձարկումներում, որպես թեստավորող, պետք է համոզվել, որ վեբ էջի տարրերը ճիշտ են գործում, տեղադրված են ճիշտ և ունենան նախատեսված տեսք:
Վեբ տարրերի ֆունկցիոնալությունը թեստավորելու համար սովորաբար հարկավոր է կատարել որևէ գարծողություն դրանք հետ, օրինակ ՝ սեղմել կոճակը, բացվող ցանկից ընտրել անհրաժեշտ տարբերակ և այլն, և տեսնել, թե արդյոք ստանում ենք նախատեսված արձագանքը վեբի կողմից:
Այլընտրանք է թեստավորման գործընթացի ավտոմատացումը ՝ գրելով թեստեր, որոնք կարող են պարբերաբար գործարկվել և կատարել հանձնարարված խնդիրները: Հավանաբար, UI թեստերի ավտոմատացման համար կիրառվող ամենատարածված գործիքը Selenium- ն է, սակայն Cypress անունով մեկ այլ գործիք նույնպես լայն տարածում է գտնում թեստավորողների շրջանում վերջին տարիներին։


API թեստավորում


Գործնականում բոլոր ժամանակակից վեբ և բջջային հավելվածները կատարում են ինչ-որ տեսակի API կանչեր համացանցի մյուս սերվերներին: API- ի հարցումների և պատասխանների միջոցով մի ծրագիրը փոխազդում է back-end և third-party այլ ծառայությունների հետ ՝ կատարելու տարբեր խնդիրներ ՝ օգտագործողի նույնականացում, տվյալների որոնում, ծանուցումների ուղարկում և այլն: Այսպիսով, ճիշտ աշխատող API կանչերը կարևոր նշանակություն ունեն հավելվածի անխափան աշխատանքի համար:
Սովորաբար օգտագործվող API հարցումները GET, POST, PUT և DELETE են: API- ի յուրաքանչյուր կանչ բաղկացած է հարցման վերջնակետից, վերնագրից և body-ից: Body-ի պարունակությունը սովորաբար JSON կամ XML է:
API- ի փորձարկման ամենատարածված գործիքը Postman-ն է: Այն մեզ հնարավորություն է տալիս կատարել ամեն տեսակի API հարցում և տեսնել պատասխանները: Բացի Postman-ից, մենք կարող ենք օգտագործել ծրագրավորման լեզուների հատուկ գրադարաններ,որոնք նույնպես նախատեսված են API- ների հետ աշխատելու համար:


Բջջային թեստավորում


Բջջային հավելվածի փորձարկման ամենատարածված գործիքներից է Appium- ը: Այն չի պահանջում SDK-ի ներառում կամ ծրագիրը նորից կազմելու անհրաժեշտություն: Կարևոր է նշել,որ այս դեպքում դուք դեռ կարող եք օգտագործել թեստովորման ավտոմատացման ձեզ հայտնի գործիքները, օրինակ Selenium-ը, և այն աշխատում է iOS, Android և Windows ծրագրերի հետ: Աջակցում է ինչպես native, այնպես էլ հիբրիդային ծրագրերին:
Իր առաջադրանքը կատարելու համար Appium- ը ապավինում է հաճախորդի/սերվերի ճարտարապետությանը (client/server architecture): Սերվերը ստանում է հրամաններ իր REST API մեթոդով կանչերի միջոցով, կատարում է հրամանները բջջային սարքի վրա և վերադարձնում HTTP պատասխան, որը ներկայացնում է հրամանների կատարման արդյունքը: Փորձարկման համար հաճախորդի/սերվերի ճարտարապետության անմիջական առավելությունն այն է, որ թեստերը կարող են գրվել լոկալ սարքի վրա:


Բովանդակություն