Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 63

ՀԱՅԱՍՏԱՆԻ ՀԱՆՐԱՊԵՏՈՒԹՅԱՆ ԿՐԹՈՒԹՅԱՆ, ԳԻՏՈՒԹՅԱՆ,

ՄՇԱԿՈՒՅԹԻ ԵՎ ՍՊՈՐՏԻ ՆԱԽԱՐԱՐՈՒԹՅՈՒՆ

ՀԱՅԱՍՏԱՆԻ ԱԶԳԱՅԻՆ ՊՈԼԻՏԵԽՆԻԿԱԿԱՆ ՀԱՄԱԼՍԱՐԱՆ

ՄԱԳԻՍՏՐՈՍԱԿԱՆ ԹԵԶ

ԹԵՄԱ` LINUX օպերացիոն համակարգում գործող ինտեգրալ սխեմաների


թեստավորման միջոցի մշակումը և հետազոտումը

ՄԱԳԻՍՏՐԱՆՏ՝ Մանուկյան Տիգրան Ռուբենի

ՄԱՍՆԱԳԻՏՈՒԹՅՈՒՆ՝ Ծրագրային ճարտարագիտություն

ԿՐԹԱԿԱՆ ԾՐԱԳԻՐ՝ Ինտեգրալ սխեմաների և համակարգերի մշակման ծրագրային


միջոցներ

ՈՐԱԿԱՎՈՐՄԱՆ ԱՍՏԻՃԱՆ՝ ինֆորմատիկայի մագիստրոսի

ԵՐԵՎԱՆ 2024
ՀԱՍՏԱՏՄԱՆ ԹԵՐԹ

ԹԵՄԱ` LINUX օպերացիոն համակարգում գործող ինտեգրալ սխեմաների


թեստավորման միջոցի մշակումը և հետազոտումը

Թեզի ղեկավար` Կասարջյան Հովհաննես Գևորգի, տ․գ․թ․______________________________


ԱԱՀ, գիտ.աստիճան, կոչում, ստորագրություն, ամսաթիվ

Մագիստրանտ` Մանուկյան Տիգրան Ռուբենի, __________________________


______________
ԱԱՀ, ստորագրություն, ամսաթիվ

Գրախոս` Գալստյան Վաչե Աշոտի, տ․գ․թ․ _____________________________________________


ԱԱՀ, գիտ.աստիճան, կոչում, ստորագրություն, ամսաթիվ

ՄՍ և Հ ամբիոնի վարիչ՝ Մելիքյան Վազգեն Շավարշի, տ.գ.դ.,


պրոֆեսոր________________
ԱԱՀ, գիտ.աստիճան, կոչում, ստորագրություն, ամսաթիվ

Ինստիտուտի տնօրեն/Ֆակուլտետի դեկան` Ս. Ա. Մանուկյան,_ տ.գ.թ. դոցենտ


__________
ԱԱՀ, գիտ.աստիճան, կոչում, ստորագրություն, ամսաթի
ՏՎՅԱԼՆԵՐ ՇՐՋԱՆԱՎԱՐՏԻ ՄԱՍԻՆ

Մագիստրանտ՝ Մանուկյան Տիգրան Ռուբենի

Մասնագիտություն` Ծրագրային ճարտարագիտություն

Կրթական ծրագիր` Ինտեգրալ սխեմաների և համակարգերի մշակման ծրագրային


միջոցներ

Ծննդյան տարեթիվը՝________________1997թ.______________________________________

Մինչ մագիստրոսական որակավորումը՝ Ինֆորմատիկայի բակալավր

Մասնագիտությունը` Տեղեկատվական տեխնոլոգիաներ

Կրթական ծրագիրը` Տեղեկատվական տեխնոլոգիաներ

Հրատարակված աշխատանքներ` Չկան___________________________________________


ՀԱՅԱՍՏԱՆԻ ԱԶԳԱՅԻՆ ՊՈԼԻՏԵԽՆԻԿԱԿԱՆ ՀԱՄԱԼՍԱՐԱՆ

ՏԵՂԵԿԱՏՎԱԿԱՆ, ՀԵՌԱՀԱՂՈՐԴԱԿՑԱԿԱՆ ՏԵԽՆՈԼՈԳԻԱՆԵՐԻ և ԷԼԵԿՏՐՈՆԻԿԱՅԻ

ԻՆՍՏԻՏՈՒՏ/ՖԱԿՈՒՏԵՏ

«ՄԻԿՐՈԷԼԵԿՏՐՈՆԱՅԻՆ ՍԽԵՄԱՆԵՐ ԵՎ ՀԱՄԱԿԱՐԳԵՐ» ԱՄԲԻՈՆ

Մասնագիտություն՝ Ծրագրային ճարտարագիտություն դասիչ՝ __061102․00․7

Կրթական ծրագիր՝ Ինտեգրալ սխեմաների և համակարգերի մշակման ծրագրային միջոցներ

Թիվ ՄՏՏ 229 ակադեմիական խմբի ուսանող

Մանուկյան Տիգրան Ռուբենի

(ուսանողի ազգանուն / անուն / հայրանուն)

ՄԱԳԻՍՏՐՈՍԱԿԱՆ ԹԵԶԻ ԱՌԱՋԱԴՐԱՆՔ

1. Թեման LINUX օպերացիոն համակարգում գործող ինտեգրալ


սխեմաների թեստավորման միջոցի մշակումը և հետազոտումը

Հաստատված է ՀԱՊՀ 2022թ.-ի դեկտեմբերի 19-ի թիվ 01-11/708 հրամանով

2. Նախնական տվյալներ Տպասալի ընդունման թեստի և տեսակավորման թեստի արդյունքներ

3. Հաշվեբացատրագրի բովանդակություն (բաժիների և մշակման ենթակա հարցերի

թվարկմամբ)

Համառոտագիր,_ներածություն,_գրականության_ակնարկ,_խնդրի_դրվածք,_տեսական___առնչությ
ուններ, փորձնական հետազոտություններ,_փորձարարական_տեխնիկա,_եզրակացություն,
գրականության ցանկ:_______ ______________
4. Թեզի կատարման օրացուցային պլան
Թեզի կատարման փուլերը
Հ/Հ Կատ. Ծանոթություն
Անվանումը հաշ. ձևը
ժամկ.
1. Մագիստրոսական թեզի ընտրություն, Տպագրվ
գրականության ընտրություն ած
14.09.2023թ. սևագիր
տարբերա
կ
2. Խնդրի դրվածք Տպագրվ
ած
12.10.2023թ. սևագիր
տարբերա
կ
3. Գրականության վերլուծություն Տպագրվ
ած
27.01.202թ. սևագիր
տարբերա
կ
24.04.20223թ.-
I ատեստավորում 40%
28.04.2023թ.
4. Տեսական առնչություններ Տպագրվ
ած
15.09.2023թ. սևագիր
տարբերա
կ
5. Ստանդարտ թեստային տվյալների ձևաչափի Տպագրվ
ուսումնասիրություն ած
18.10.2023թ. սևագիր
տարբերա
կ
6. Ստանդարտ թեստային տվյալների ձևաչափի տվյալների Տպագրվ
վերլուծություն և մշակում ած
08.11.2023թ. սևագիր
տարբերա
կ
II ատեստավորում 27.11.2023թ.-
70%
01.12.2023թ.
7. Հարթակի ջերմային քարտեզի կառուցում՝ ստանդարտ Տպագրվ
թեստային տվյալների ձևաչափի տվյալների հիման վրա ած
17.01.2024թ. սևագիր
տարբերա
կ
8. Հաշվեբացատրագրի կազմում Տպագրվ
ած
07.02.2024թ. սևագիր
տարբերա
կ
9. Արյունքնների ստացում և հետազոտում Տպագրվ
ած
15.03.2024թ. սևագիր
տարբերա
կ
10. Գրաֆիկական ինտերֆեյսի վերջնական ձևավորում Տպագրվ
ած
03.03.2024թ. սևագիր
տարբերա
կ
III ատեստավորում 22.04.2024թ.-
100%
26.04.2024թ.
Ավ.
11. Աշխատանքի ներկայացումը ամբիոն 05.04.2024թ.
աշխ.

12. Նախնական պաշտպանություն 02.05.2024թ.

5. Աշխատանքի պաշտպանության օրը ________10.05.2023թ․______________________________


6. Ամբիոնի վարիչ Մելիքյան Վազգեն Շավարշի, տ.գ.դ., պրոֆեսոր
______________________
(Ա.Ա.Հ., ստորագրություն, ամսաթիվ)

7. Աշխատանքի ղեկավար _ Շուխյան Նարեկ


Սամվելի___________________________________
(Ա.Ա.Հ., ստորագրություն, ամսաթիվ)

8. Աշխատանքի առաջադրանքը ստացա Եփրեմյան Նունե Սամվելի, 01.10.2021__________


(ուսանողի Ա.Ա.Հ., ստորագրություն, ամսաթիվ)

ՀԱՄԱՌՈՏԱԳԻՐ

ԹԵՄԱ՝ LINUX օպերացիոն համակարգում գործող ինտեգրալ սխեմաների


թեստավորման միջոցի մշակումը և հետազոտումը

Տիգրան Մանուկյան Ռուբենի

Թեստավորման ժամանակի նվազեցման, հետևաբար նաև թեստավորման


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

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

ԳԼՈՒԽ 1 ՆԵՐԱԾՈՒԹՅՈՒՆ 8
1․1 Համակարգչային հավելվածը եւ թեստավորման միջոցները: 8
1․2 Ինչպես օպտիմիզացնել ավտոմատ ֆունկցիոնալ նախագծի արտադրանքի համար։ 9
ԳԼՈՒԽ 2 ԳՐԱԿԱՆՈՒԹՅԱՆ ԱԿՆԱՐԿ 13
2.1 Թեստավորման պարզեցում. Selenium-ի և Python-ի միջոցով։ 13
2.2 Linux օպերացիոն համակարգում Pytest գործիքով կատարված տեստավորում։ 15
2.3 Pytest և Xlibe ԳԻԹ թեստավորման առավելությունները եւ թերությունները ։ 19
2․4 Ֆունկցիոնալ թեստավորման բացակայությունը։ 22
ԳԼՈՒԽ 3 ԽՆԴՐԻ ԴՐՎԱԾՔ 23
ԳԼՈՒԽ 4 ՏԵՍԱԿԱՆ ԱՌՆՉՈՒԹՅՈՒՆՆԵՐ 24
4․1 Ֆունկցիոնալ թեստաորում։ 24
4․2 ԳԻԹ գրաֆիկական ինտերֆեյսի թեստավորում։ 28
4.3 Թեստավորման հերթական փուլերը իրենց նկարագրություններով։ 31

4.4 Թեստավորման կարեւորությունը Հավելվածներում ու Շահավետությունը 34


ԳԼՈՒԽ 5 ԾՐԱԳՐԱՅԻՆ ԻՐԱԿԱՆԱՑՈՒՄ 38
5․1 Տվյալների նախնական մշակում։ 38
5.2 Օգտագործողի գրաֆիկական ինտերֆեյս։ 37
5.3 Գրադարանների միացում եւ կիրառման օրինակներ ; 39
ԳԼՈՒԽ 6 ՓՈՐՁՆԱԿԱՆ ՀԵՏԱԶՈՏՈՒԹՅՈՒՆՆԵՐ 41

6․1 Ինչպե օպտիմիզացնել ֆունկցիոնալ փորձարկումը ձեր արտադրանքի համար։ 41

6.2 Ավտոմատացված ֆունկցիոնալ թեստավորման օպտիմիզացում մաթեմատիկական


բանաձևերով: 42
6․3 Կատարված բարելավման հավելվածների թեստավորումը Python Xlib-ով։ 48
6.4 Ծրագրային իրականացման Ֆունկցիոնալ թեստավորման կատարում ։ 51
ԳԼՈՒԽ 7 ՓՈՐՁԱՐԱՐԱԿԱՆ ՏԵԽՆԻԿԱ 56
ԳԼՈՒԽ 8 ԵԶՐԱԿԱՑՈՒԹՅՈՒՆ 59
ԳՐԱԿԱՆՈՒԹՅԱՆ ՑԱՆԿ 60

8
ԳԼՈՒԽ 1

ՆԵՐԱԾՈՒԹՅՈՒՆ

1․1 Համակարգչային հավելվածը եւ թեստավորման


Միջոցները:

Թեև համակարգչային հավելվածների պահանջարկը չի աճում այնքան արագ, որքան


բջջային և վեբ հավելվածների համար, այնուամենայնիվ, եթե ձեր աշխատանքը հիմնված է
համակարգչային հավելվածի վրա, դուք պարզապես չեք կարող թույլ տալ անտեսել
թեստային ավտոմատացումը:
Համակարգչային հավելվածն այն ծրագիրն է, որն աշխատում է տեղական համակարգչի
վրա, օրինակ՝ համակարգչային կամ նոութբուքի վրա: Դրանք սովորաբար
սահմանափակվում են այն ապարատով(hardware ) , որով աշխատում են և կարող են
ունենալ ապարատային(hardware ) խիստ պահանջներ ճիշտ աշխատանքի
համար:Համակարգչային հավելվածները մշակված են Windows, Mac կամ Linux օպերացիոն
համակարգերի համար։Սովորաբար, համակարգչային հավելվածները կարող են աշխատել
առանց ինտերնետ կապի:Լոկալ միջավայրի պատճառով համակարգչային հավելվածում
ավելի քիչ անվտանգության խնդիրներ կան, քան վեբում կամ բջջայինում :հավելվածի
տեստավորումը պահանջում է օպերացիոն համակարգի և տվյալների բազաների
իմացություն: Թեստավորումը ներառում է այնպիսի մասերի ամբողջական ստուգում,
ինչպիսիք են ԳԻԹ -ը, ֆունկցիոնալությունը, ներքին , տվյալների բազան, հիշողությունը,
բացառությունները(ԳԻԹ, functionality, backend, database, memory, exceptions):

1․2 Ինչպես օպտիմիզացնել ավտոմատ ֆունկցիոնալ նախագծի


արտադրանքի համար։

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

Թեստի պլանավորում և ռազմավարություն.

Մշակեք համապարփակ թեստային ծրագիր, որը նախանշում է թեստավորման


նպատակները, շրջանակը, ռեսուրսները և ժամանակացույցը:

Սահմանեք թեստավորման հստակ ռազմավարություն՝ ներառյալ համապատասխան


փորձարկման տեխնիկայի, մեթոդաբանության և գործիքների ընտրությունը:

Ավտոմատացում:

Նկ․ 1․2 Հավելվածի թեստավորման Տեսակները

10
Բացահայտեք կրկնվող և ժամանակատար փորձարկման դեպքերը, որոնք հարմար են
ավտոմատացման համար:

Կիրառել թեստային ավտոմատացման շրջանակներ և գործիքներ՝ ռեգրեսիայի թեստը,


ֆունկցիոնալ թեստը և այլ կրկնվող առաջադրանքները ավտոմատացնելու համար:

Առաջնահերթություն տվեք ավտոմատացման ջանքերին՝ հիմնված ՎՆ-ի, բարդության և


կատարման հաճախականության վրա:

Շարունակական ինտեգրում և շարունակական փորձարկում.

Իրականացնել շարունակական ինտեգրման (ՍԻ) և շարունակական փորձարկման (ՍՏ)


պրակտիկաներ՝ որպես զարգացման խողովակաշարի մաս, թեստավորման գործընթացը
ավտոմատացնելու համար:

Ինտեգրել ավտոմատացված թեստերը ՍԻ/ՍԴ գործիքների հետ՝ արագ արձագանքելու և


թերությունների վաղ հայտնաբերման համար:

Թեստի տվյալների կառավարում.

Մշակել ռազմավարություններ թեստային տվյալների արդյունավետ կառավարման համար,


ներառյալ տվյալների ստեղծումը, դիմակավորումը և ապահովումը:

Օգտագործեք գործիքներ և տեխնիկա՝ թեստային տվյալների հավաքածուները


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

Ռիսկի վրա հիմնված թեստավորում.

Իրականացնել ռիսկերի վերլուծություն՝ բացահայտելու բարձր ռիսկային ոլորտները և


համապատասխանաբար առաջնահերթություն տալ թեստավորման ջանքերին:

Կենտրոնացեք փորձարկման ջանքերը կարևոր գործառույթների, հաճախակի արատներով


տարածքների և մեծ ազդեցություն ունեցող փոփոխությունների վրա:

Հետախուզական փորձարկում.

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

Խրախուսեք փորձարկողներին ուսումնասիրել ծրագրակազմը ինտուիտիվ և


ստեղծագործաբար՝ անսպասելի վարքագիծ հայտնաբերելու համար:

Shift-Left Փորձարկում.

Ընդգրկեք ձախից հերթափոխով փորձարկման պրակտիկաները՝ ծրագրային ապահովման


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

Սերտորեն համագործակցեք ծրագրավորողների, բիզնես վերլուծաբանների և շահագրգիռ


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

Կատարման փորձարկման օպտիմիզացում.

Օպտիմալացրեք կատարողականի փորձարկումը՝ օգտագործելով իրատեսական


թեստային սցենարներ, տվյալներ և միջավայրեր:

Օգտագործեք կատարողականի փորձարկման գործիքներ՝ բեռի, սթրեսի և


մասշտաբայնության սցենարները ճշգրիտ մոդելավորելու համար:

Հետադարձ կապ և բարելավում.

Հավաքեք արձագանքներ փորձարկման գործողություններից և շահագրգիռ կողմերից՝


բարելավման ենթակա ոլորտները բացահայտելու համար:

Անցկացրեք հետահայաց հանդիպումներ՝ թեստավորման գործընթացները վերանայելու,


քաղած դասերը կիսելու և ուղղիչ գործողություններ իրականացնելու համար:

Ուսուցում և հմտությունների զարգացում.

Ներդրումներ կատարեք փորձարկողների վերապատրաստման և հմտությունների


զարգացման մեջ, որպեսզի նրանք թարմացվեն թեստավորման վերջին տեխնիկայի,
գործիքների և լավագույն փորձի մասին:

12
Խրախուսեք շարունակական ուսումնառությունը և գիտելիքների փոխանակումը
թեստավորման թիմում:

Չափումներ և չափումներ.

Սահմանել հիմնական կատարողականի ցուցիչները և չափումները՝ չափելու


թեստավորման գործողությունների արդյունավետությունը, արդյունավետությունը և
ծածկույթը:

Օգտագործեք չափումներ՝ հետևելու առաջընթացին, հայտնաբերելու խոչընդոտները և


տվյալների վրա հիմնված որոշումներ կայացնելու գործընթացի բարելավման համար:

Օպտիմալացրեք կատարողականի փորձարկումը՝ օգտագործելով իրատեսական


թեստային սցենարներ, տվյալներ և միջավայրեր:

Օգտագործեք կատարողականի փորձարկման գործիքներ՝ բեռի, սթրեսի և


մասշտաբայնության սցենարները ճշգրիտ մոդելավորելու համար:

Հետադարձ կապ և բարելավում.

13
ԳԼՈՒԽ 2

ԳՐԱԿԱՆՈՒԹՅԱՆ ԱԿՆԱՐԿ

2․1 Թեստավորման պարզեցում. Selenium-ի և Python-ի միջոցով

Ժամանակակից արագնթաց զարգացման հետ միասին վեբ հավելվածների կայունության և


ֆունկցիոնալության ապահովումը կարևոր նշանակություն ունի օգտատերերի անխափան
փորձի ապահովման համար: Selenium-ը բաց կոդով ապահովման միջոց է, որը հայտնի է
ավտոմատացված վեբ թեստավորման մեջ իր հմտությամբ: Երբ զուգորդվում է Python-ի
պարզության և բազմակողմանիության հետ, Selenium-ը դառնում է ավելի ահռելի գործիք
մշակողների և փորձարկողների համար:
Selenium-ն առանձնանում է որպես ավտոմատացման թեստավորման առաջատար
ապահովման միջոց, որը բացահայտորեն հարմարեցված է վեբ հավելվածների համար:
Դրա հիմնական գործառույթը բրաուզերի փոխազդեցությունների ավտոմատացումն է,
օգտագործողի վարքագծի նմանակումը, ինչպիսիք են կոճակները սեղմելը, տեքստի
մուտքագրումը և վեբ էջերում նավարկելը: Selenium-ի առանձնահատուկ
առանձնահատկություններից մեկը նրա համատեղելիությունն է ծրագրավորման տարբեր
լեզուների, այդ թվում՝ Python-ի, Java-ի, JavaScript-ի, C#-ի և Ruby-ի հետ, ինչը հասանելի է
դարձնում մշակողների լայն սպեկտրին:
Օգտագործելով Python-ի ուժեղ կողմերը
Python-ը, որը հարգված է իր էլեգանտությամբ և ընթեռնելիությամբ, ծառայում է որպես
Selenium-ի կատարյալ ուղեկից: Իր տրամադրության տակ գտնվող գրադարանների և
շրջանակների առատությամբ Python-ն առաջարկում է բազմաթիվ գործիքներ՝ վեբ
թեստավորումը պարզեցնելու համար: Հատկապես Python-ի համար Selenium WebDriver
գրադարանը ծրագրավորողներին հնարավորություն է տալիս ծրագրային կերպով
կառավարել վեբ բրաուզերները՝ հնարավորություն տալով վեբ հավելվածների
թեստավորման անխափան ավտոմատացում:

14
Նկ․ 2․1 Տարբեր գործիքներ որոնց միջոցով կազմակերպվում է թեստավորում

Ինչպես սկսել աշխատեցնել selenium-ը


Selenium-ի և Python-ի հետ ձեր ճանապարհորդությունը սկսելու համար սկսեք տեղադրել
անհրաժեշտ բաղադրիչները: Սելենի փաթեթը, որը հիմնարար պահանջ է, կարող է առանց
ջանքերի տեղադրվել Pip-ի միջոցով՝ Python-ի փաթեթների կառավարիչ: Բացի այդ, դուք
պետք է ձեռք բերեք համապատասխան վեբ վարորդ՝ գործարկվող՝ հարմարեցված այն
դիտարկիչին, որը դուք մտադիր եք ավտոմատացնել, լինի դա ChromeDriver Google Chrome-
ի համար, թե GeckoDriver Mozilla Firefox-ի համար: Այս դրայվերները ծառայում են որպես
կենսական միջնորդներ, որոնք հեշտացնում են հաղորդակցությունը Selenium-ի և վեբ
բրաուզերների միջև:

15
2.2 Linux օպերացիոն համակարգում Pytest գործիքով կատարված
թեստավորում։

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

16
Plugin System. pytest-ն ունի ճկուն պլագինների ճարտարապետություն, որը թույլ է տալիս
ընդլայնել դրա ֆունկցիոնալությունը հատուկ պլագինների միջոցով: Գոյություն ունեն
համայնքի կողմից ներդրված բազմաթիվ հավելվածներ, որոնք հասանելի են փորձարկման
այլ գործիքների, հաշվետվության ձևաչափերի և թեստի ծածկույթի վերլուծության հետ
ինտեգրվելու համար:

Նկ․ 2․2 Pytest գոծիքի միջոցով կատարված տեստի օրինակ

Առավելությունները:
Պարզ և ինտուիտիվ շարահյուսություն, որը հեշտացնում է թեստային դեպքերը գրելն ու
կարդալը:
Ընդարձակ փաստաթղթեր և համայնքային աջակցություն՝ պլագինների և ինտեգրումների
մեծ էկոհամակարգով:
Անխափան ինտեգրում շարունակական ինտեգրման (ՍԻ) համակարգերի հետ, ինչպիսիք
են Jenkins-ը, Travis CI-ն և GitHub Actions-ը:
Խաչաձև պլատֆորմային համատեղելիություն, աջակցում է փորձարկում տարբեր
օպերացիոն համակարգերի վրա, ներառյալ Linux, macOS և Windows:
Եզրակացություն:
pytest-ը բազմակողմանի փորձարկման շրջանակ է, որը լայնորեն օգտագործվում է Linux
միջավայրում (ինչպես նաև այլ հարթակներում) Python հավելվածների և գրադարանների
փորձարկման համար: Դրա հարուստ հնարավորությունների հավաքածուն,

17
ընդարձակելիությունը և օգտագործման հեշտությունը դարձնում են այն հանրաճանաչ
ընտրություն մշակողների համար, ովքեր ցանկանում են ապահովել իրենց ծրագրային
նախագծերի որակն ու հուսալիությունը:
Պարամետրացված թեստավորում. Օգտագործեք pytest-ի պարամետրիզատորը տարբեր
մուտքային դեպքեր և եզրային դեպքեր փորձարկելու համար՝ ապահովելով թեստի
համապարփակ ծածկույթ:
Փոխազդեցություն ԳԻԹ -ների հետ՝ օգտագործելով Xlib.
Xlib (Xlibe) ցածր մակարդակի գրադարան է X Window համակարգի հետ փոխազդելու
համար, որը սովորաբար օգտագործվում է Unix-ի նման օպերացիոն համակարգերում: Այն
ապահովում է X պատուհանների ծրագրային ստեղծման, կառավարման և
մանիպուլյացիայի գործառույթներ: Երբ զուգակցվում է pytest-ի հետ, Xlib-ը
ծրագրավորողներին հնարավորություն է տալիս ավտոմատացնել ԳԻԹ -ի
փոխազդեցությունները, մոդելավորել օգտվողի մուտքագրման իրադարձությունները և
ստուգել հավելվածի վարքագիծը թեստավորման ընթացքում:

18
Նկ․ 2․3 Selenium ով կատարված տեստի օրինակ
Եզրափակելով, Selenium-ը և Python-ը առաջարկում են ահռելի հնարավորություն ՝ վեբ
թեստավորման առաջադրանքների ավտոմատացման համար: Բրաուզերի
ավտոմատացման գործում Selenium-ի հմտության և Python-ի պարզության և
բազմակողմանիության շնորհիվ մշակողները կարող են հեշտությամբ հաղթահարել վեբ
թեստավորման մարտահրավերները: Ընդգրկելով Selenium-ը և Python-ը,
կազմակերպությունները կարող են բարձրացնել իրենց փորձարկման պրակտիկան,
արագացնել զարգացման գործընթացը և մատուցել անթերի վեբ հավելվածներ, որոնք
ուրախացնում են օգտատերերին:

2.3 Pytest և Xlibe ԳԻԹ ավտոմատ թեստավորման առավելությունները եւ


թերությունները

Գրաֆիկական ինտերֆեյսի (ԳԻԹ) հավելվածների փորձարկումը եզակի


մարտահրավերներ է ներկայացնում՝ պայմանավորված դրանց ինտերակտիվ բնույթով և
տեսողական բաղադրիչներով: Python-ի մշակողները հաճախ ապավինում են pytest-ի նման
հզոր փորձարկման շրջանակներին՝ ապահովելու իրենց կոդի ֆունկցիոնալությունն ու
հուսալիությունը: Բացի այդ, երբ գործ ունենք Unix-ի նման համակարգերում ԳԻԹ
հավելվածների հետ, Xlib գրադարանը (Xlibe) ապահովում է անփոխարինելի
հնարավորություններ X Window համակարգի հետ փոխազդելու համար: Այս հոդվածում
մենք կուսումնասիրենք, թե ինչպես կարելի է համատեղել pytest-ը և Xlib-ը՝ Python ԳԻԹ
հավելվածների համար փորձարկման կայուն ռազմավարություն ստեղծելու համար:
Python ԳԻԹ հավելվածների փորձարկում pytest-ով.
pytest-ը Python-ի համար հայտնի փորձարկման շրջանակ է, որն առաջարկում է պարզ,
բայց հզոր մոտեցում թեստային դեպքերը գրելու և իրականացնելու համար: Այն
ապահովում է այնպիսի հնարավորություններ, ինչպիսիք են ավտոմատ թեստի
հայտնաբերումը, հարմարանքների կառավարումը, պարամետրացված թեստավորումը և
հաստատման տարբեր մեթոդներ: ԳԻԹ հավելվածները փորձարկելիս pytest-ը կարող է

19
օգտագործվել առանձին բաղադրիչների ֆունկցիոնալությունը ստուգելու, կարգավորելու և
անջատելու առաջադրանքները լուծելու և փորձարկման աշխատանքային հոսքերը
ավտոմատացնելու համար:
Օգտագործելով pytest ԳԻԹ թեստավորման համար.
Միավորի փորձարկում. Գրեք միավորի թեստեր՝ ստուգելու անհատական ԳԻԹ
բաղադրիչների վարքը, ինչպիսիք են կոճակները, մուտքագրման դաշտերը և վիդջեթները:
Ինտեգրման փորձարկում. Ստուգեք ԳԻԹ -ի տարբեր բաղադրիչների փոխազդեցությունը և
համոզվեք, որ դրանք միասին աշխատեն, ինչպես սպասվում էր:
Ստեղծեք վերջից մինչև վերջ թեստեր՝ օգտատերերի փոխազդեցությունները մոդելավորելու
և հավելվածի ընդհանուր վարքագիծը ստուգելու համար:
Պարամետրացված թեստավորում. Օգտագործեք pytest-ի պարամետրիզատորը տարբեր
մուտքային դեպքեր և եզրային դեպքեր փորձարկելու համար՝ ապահովելով թեստի
համապարփակ ծածկույթ:
Փոխազդեցություն ԳԻԹ -ների հետ՝ օգտագործելով Xlib.
Xlib (Xlibe) ցածր մակարդակի գրադարան է X Window համակարգի հետ փոխազդելու
համար, որը սովորաբար օգտագործվում է Unix-ի նման օպերացիոն համակարգերում: Այն
ապահովում է X պատուհանների ծրագրային ստեղծման, կառավարման և
մանիպուլյացիայի գործառույթներ: Երբ զուգակցվում է pytest-ի հետ, Xlib-ը
ծրագրավորողներին հնարավորություն է տալիս ավտոմատացնել ԳԻԹ -ի
փոխազդեցությունները, մոդելավորել օգտվողի մուտքագրման իրադարձությունները և
ստուգել հավելվածի վարքագիծը թեստավորման ընթացքում:
Օգտատիրոջ մուտքագրման մոդելավորում. օգտագործեք Xlib-ը օգտատերերի
մուտքագրման իրադարձությունները նմանակելու համար, ինչպիսիք են մկնիկի
սեղմումները, ստեղնաշարի մուտքագրումը և պատուհանի ֆոկուսի փոփոխությունները:
Սքրինշոթերի նկարահանում. Վերցրեք ԳԻԹ պատուհանների սքրինշոթները և ստուգեք
դրանց տեսքն ու դասավորությունը փորձարկման ընթացքում:
Պիկսելների արժեքների ընթերցում. Կարդացեք պիքսելների արժեքները ԳԻԹ
պատուհաններից՝ ստուգելու որոշակի տարրերի կամ գույների առկայությունը:

20
Պատուհանների կառավարում. Վերահսկեք պատուհանի դիրքավորումը, չափափոխումը և
տեսանելիությունը՝ օգտատերերի տարբեր փոխազդեցությունները և փորձնական դեպքերը
մոդելավորելու համար:
Համատեղելով pytest-ը և Xlib-ը համապարփակ փորձարկման համար.
Ինտեգրելով pytest-ը և Xlib-ը, մշակողները կարող են ստեղծել Python ԳԻԹ հավելվածների
համապարփակ փորձարկման ռազմավարություն Unix-ի նման համակարգերում: Այս
մոտեցումը թույլ է տալիս մանրակրկիտ փորձարկել ինչպես հավելվածի
տրամաբանությունը, այնպես էլ օգտատիրոջ միջերեսի փոխազդեցությունը՝ ապահովելով,
որ հավելվածն իրեն պահի այնպես, ինչպես սպասվում է տարբեր պայմաններում:
Եզրակացություն:
Python ԳԻԹ հավելվածների փորձարկումը պահանջում է հզոր փորձարկման
շրջանակների և ցածր մակարդակի գրադարանների համակցություն՝ ապահովելու
համապարփակ թեստի ծածկույթ և հուսալի հավելվածի վարքագիծ: Օգտագործելով pytest-
ը՝ թեստային դեպքերը գրելու և գործարկելու համար, և Xlib-ը՝ ԳԻԹ -ի հետ համակարգի
մակարդակով փոխազդելու համար, մշակողները կարող են ստեղծել ամուր փորձարկման
խողովակաշարեր, որոնք վավերացնում են և՛ ֆունկցիոնալությունը, և՛ օգտագործողի
փորձը: Այս մոտեցմամբ Python-ի մշակողները կարող են վստահորեն ստեղծել բարձրորակ
ԳԻԹ հավելվածներ՝ իմանալով, որ դրանք մանրակրկիտ փորձարկված և վավերացված են:

2․4 Ֆունկցիոնալ թեստավորման բացակայությունը


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

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

Նկ․ 2․4 Հավելվածի ուղությունների առանձնացում

Ռեգրեսիայի հետ կապված խնդիրներ. Առանց ֆունկցիոնալ փորձարկման, ծրագրային


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

22
ապահովման գործառույթի և շահագրգիռ կողմերի ակնկալիքների
անհամապատասխանության և անհամապատասխանության վտանգ:

Սպասարկման ծախսերի ավելացում. տեղակայումից հետո սխալների հայտնաբերումը և


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

23
24
ԳԼՈՒԽ 3

ԽՆԴՐԻ ԴՐՎԱԾՔ

LINUX օպերացիոն համակարգում գործող ինտեգրալ սխեմաների թեստավորման միջոցի


մշակումը :

LINUX օպերացիոն համակարգում գործող ինտեգրալ սխեմաների թեստավորմանմիջոցի


հետազոտումը:

Ստանալ Custom compiler գործիքի համար նախատեսված


ավտոմատ թեստավորմ համակարգ :

Ապահովել թեստավորման միջոցի արագագործությունը


մեծածավալ գործիքների դեպքում :

25
ԳԼՈՒԽ 4

ՏԵՍԱԿԱՆ ԱՌՆՉՈՒԹՅՈՒՆՆԵՐ

4․1 Ֆունկցիոնալ թեստաորում

Ֆունկցիոնալ թեստավորումը ստուգում է արդյոք ապահովման միջոցի կատարած


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

Նկ․ 4.1 Թեստային կառուցվածքի նկարագրությունը


26
1․Հստակեցման ֆունկցիոնալ պահանջների հիման վրա: Այս դեպքում ստեղծվում են
օգտագործման դեպքերը։Այստեղ մենք համոզվում ենք, որ բոլոր գործառույթներն
աշխատում են այնպես, ինչպես սպասվում է տվյալների տարբեր մուտքերի և դրանց
համակցությունների հետ։

Ֆունկցիոնալ թեստավորումն իրականացվում է հետեւյալ թեստավորման


մակարդակներում.

Component testing կոմպոնենտային

Integration testing ինտեգրման

System testing համակարգային

Acceptance testing ընդունման

Ֆունկցիոնալ թեստի պրոցեսը

1․ Ապրանքի փաստաթղթերի ուսումնասիրում

2․ Գտնել ֆունկցիաները որոնք պիտի թեստավորվեն

3․Բացահայտել համապատասխան փորձարկման տվյալները

4․Ստեղծել թեստ տարբերակները

5․Օգտագործել թեստ տարբերակները

6 .Հաշվառել թերությունները

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

1․ Ռեգրեսիայի փորձարկում - Արտադրանքի ֆունկցիոնալության ստուգում սխալները


շտկելուց կամ նոր գործառույթներ իրականացնելուց հետո։

2․ Ինտեգրման փորձարկում - Համակարգի բաղադրիչների և բազմաթիվ համակարգերի


միջև փոխազդեցությունների փորձարկում:

27
3․ Արագ փորձարկում - Թեստերի կարճ ցիկլ՝ հիմնական հավելվածի գործառույթների
ճիշտ աշխատանքը որոշելու համար:

4. Սթափության փորձարկում - Որոշ չափով նման է Smoke փորձարկմանը, այն


տարբերությամբ, որ այն հարմար է վեբ հավելվածների համար:

5․ Համակարգի փորձարկում - Ծրագրային ապահովման համապատասխանության


ստուգում փաստաթղթերում նշված պահանջներին

6․ Խաչաձեւ բրաուզերի փորձարկում -Այն օգտակար է, երբ ձեր հավելվածն արդեն


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

7․ Տեղադրման փորձարկում -Դա անհրաժեշտ է, երբ մենք պետք է ստուգենք բեռնման


գործընթացի ճիշտությունն ու անվտանգությունը:

8․ Կազմաձևման փորձարկում - Ծրագրի աշխատանքի ստուգում տարբեր ծրագրային և


ապարատային միջավայրերում:

9. Բացասական թեստավորում - Բացասական թեստավորման նպատակն է բացահայտել


խոցելիությունները, թերությունները և թույլ կողմերը ծրագրային ապահովման սխալների
մշակման և վերականգնման մեխանիզմներում:

Ինչու՞ է ֆունկցիոնալ թեստավորման ավտոմատացումը այդքան կարևոր:

Արագությունն ու արդյունավետությունը հաջողության երկու հիմնական բաղադրիչներն


են :Այսպիսով, ավտոմատացված ֆունկցիոնալ փորձարկումն ունի մի քանի
առավելություններ.

1․Կրկնելիություն. բոլոր գրված թեստերը միշտ կկատարվեն նույն կերպ՝ համաձայն տվյալ
կոդի:

2․Մարդկային գործոն չկա. փորձարկողն անզգուշությամբ չի բաց թողնի թեստը և չի շփոթի


արդյունքները:

28
3․ Արագ կատարում. ավտոմատացված սցենարը կարիք չունի ծանոթանալու
հրահանգներին և փաստաթղթերին. սա մեծապես խնայում է կատարման ժամանակը:

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

5․Հաշվետվություններ. դրանք պահվում և ուղարկվում են ավտոմատ կերպով:

Մի խոսքով, ավտոմատացված ֆունկցիոնալ փորձարկումն օգնում է խնայել ժամանակը՝


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

հաշվի առնենք նաև թերությունները

Ապահովման ծախսեր. Որքան հաճախ է դիմումը փոխվում, այնքան բարձր է այն։

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

Աննշան սխալների բացթողում. ավտոմատացված սկրիպտը կարող է բաց թողնել փոքր


սխալները, որոնք ծրագրավորված չէ ստուգելու համար: Դրանք կարող են լինել
պատուհանների windows տեղադրման անճշտություններ, չստուգված պիտակների labels
սխալներ և այլն:

Ինչու՞ է ֆունկցիոնալ թեստավորման ավտոմատացումը այդքան կարևոր:

Արագությունն ու արդյունավետությունը հաջողության երկու հիմնական բաղադրիչներն


են :Այսպիսով, ավտոմատացված ֆունկցիոնալ փորձարկումն ունի մի քանի
առավելություններ.

29
4.2 ԳԻԹ գրաֆիկական ինտերֆեյսի թեստավորում։

Նկ․ 4.2 Թեստային կառուցվածքի նկարագրությունը

ԳԻԹ թեստի ավտոմատացումն օգտագործվում է որոշելու համար, թե արդյոք հավելվածի


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

ԳԻԹ փորձարկման տեխնիկա

Ձեռքով ԳԻԹ փորձարկում. Փորձարկողները ձեռքով փոխազդում են հավելվածի հետ՝


նավիգացիոն տարբեր էկրանների և գործառույթների միջով՝ ճիշտ վարքագիծը ստուգելու

30
համար: Այս մեթոդը պահանջում է ուշադրություն մանրուքների վրա և օգտատերերի
աշխատանքային հոսքերի խորը պատկերացում:

Ավտոմատացված ԳԻԹ -ի փորձարկում. Ավտոմատացման շրջանակները, ինչպիսիք են


PyGTK-ն, PyQt-ը և SikuliX-ը, թույլ են տալիս փորձարկողներին ավտոմատացնել -ի
փոխազդեցությունները: Այս գործիքները նմանակում են օգտատիրոջ գործողությունները,
ինչպիսիք են սեղմումները, մուտքագրումները և նավիգացիան՝ վավերացնելով հավելվածի
պատասխանը օգտատիրոջ մուտքերին:

ԳԻԹ փորձարկման դեպքերի սցենարներ

Օգտագործելիության փորձարկում. Գնահատեք հավելվածի օգտագործման հեշտությունը,


ինտուիտիվությունը և ընդհանուր օգտագործողի հարմարավետությունը: Փորձարկողներն
ապահովում են, որ օգտատերերը կարող են արդյունավետ կերպով կարող են նավիգացիոն
ընտրացանկերի միջով, կատարել գործողություններ և օգտվել գործառույթներից:

Դասավորության և դիզայնի փորձարկում. Ստուգեք, որ հավելվածի դասավորությունը


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

Մուտքավորման թեստավորում . Ստուգեք, որ օգտվողի մուտքերը պատշաճ կերպով


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

Սխալների մշակում. Ստուգեք, թե ինչպես է հավելվածը ցուցադրում սխալի


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

ԳԻԹ ավտոմատացում և ռեգրեսիոն թեստավորումը ԳԻԹ -ի ավտոմատացված


թեստավորումը զգալիորեն արագացնում է թեստավորման գործընթացը, հատկապես բարդ
ՕԻ -ներով հավելվածների համար: Փորձարկողները կարող են ստեղծել սկրիպտներ, որոնք

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

1․ Թեստավորումը թույլ է տալիս փորձարկողներին փորձարկել ՕԻ(Օգտատեր


ինտերֆեյս)-ն օգտատիրոջ տեսանկյունից՝ նրանց ավելի լավ տեսանելի դարձնելով դրա
կատարողականը տարբեր հարթակներում և բրաուզերներում:

2․Թեստավորումը երաշխավորում է, որ ՕԻ -ի բոլոր ասպեկտները գործում են այնպես,


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

3․Բարձրակարգ ծրագրային արտադրանքը պետք է համապատասխանի


ստանդարտներին: ԳԻԹ թեստավորումը ստուգում է տեքստային պատուհանների ,
կոճակների եւ հղումներ պարունակող տարերի չափերն ու գույները:․

4.3 Թեստավորման հերթական փուլերը իրենց նկարագրություններով

Ծրագրային ապահովման փորձարկումը կարևոր դեր է խաղում ծրագրային ապահովման


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

32
1. Ռեգրեսիայի թեստավորում.
Ռեգրեսիայի թեստավորումն իրականացվում է ստուգելու համար, որ կոդի վերջին
փոփոխությունները բացասաբար չեն ազդել առկա ֆունկցիոնալության վրա: Այն ներառում
է ծրագրաշարի վերստուգում փոփոխություններից հետո՝ համոզվելու համար, որ
նախկինում աշխատող գործառույթները դեռ ճիշտ են աշխատում: Ռեգրեսիոն
փորձարկումն օգնում է կանխել թերությունների վերականգնումը և պահպանում է
ծրագրաշարի ընդհանուր կայունությունը:
2. Ինտեգրման թեստավորում.
Ինտեգրման թեստավորումը կենտրոնանում է առանձին ծրագրային մոդուլների կամ
բաղադրիչների միջև փոխազդեցությունների փորձարկման վրա՝ ապահովելու, որ դրանք
միասին աշխատեն, ինչպես սպասվում էր: Այն ստուգում է ինտերֆեյսներն ու
փոխազդեցությունները տարբեր մոդուլների միջև՝ բացահայտելով ինտեգրման խնդիրները
և ապահովելով բաղադրիչների միջև անխափան հաղորդակցությունը:
3. Ծխի փորձարկում.
Smoke Testing-ը, որը նաև հայտնի է որպես Build Verification Testing (BVT), իրականացվում
է ստուգելու համար, թե արդյոք ծրագրաշարի ամենակարևոր գործառույթներն աշխատում
են այնպես, ինչպես սպասվում է կառուցումից կամ թողարկումից հետո: Այն ներառում է մի
շարք հիմնական թեստերի կատարում՝ ստուգելու համար, որ ծրագրաշարը
բավականաչափ կայուն է հետագա փորձարկման համար: Ծխի փորձարկումն օգնում է
բացահայտել հիմնական թերությունները զարգացման գործընթացի սկզբում:
4. Սթափության փորձարկում.
Սթափության փորձարկումը ռեգրեսիոն փորձարկման ենթաբազմություն է, որը
կենտրոնանում է ծրագրաշարի հատուկ գործառույթների կամ բաղադրիչների արագ
ստուգման վրա: Այն սովորաբար կատարվում է, երբ փոքր փոփոխություն է կատարվում
կոդերի բազայում կամ երբ նոր կառուցում է ստացվում: Սթափության փորձարկումն օգնում
է համոզվել, որ կարևոր գործառույթները դեռևս աշխատում են փոքր փոփոխություններից
հետո:

33
Նկ․ 4.3 Թեստավորման արդիական պահանջները

5. Համակարգի փորձարկում.
Համակարգի փորձարկումը գնահատում է ծրագրային ապահովման ամբողջ համակարգը
որպես ամբողջություն՝ ստուգելու համար, որ այն համապատասխանում է սահմանված
պահանջներին և գործում է այնպես, ինչպես սպասվում է իր նախատեսված միջավայրում:
Այն ստուգում է համակարգի ֆունկցիոնալությունը, կատարումը, անվտանգությունը և
հուսալիությունը՝ հաճախ օգտագործելով իրական աշխարհի սցենարներ: Համակարգի
փորձարկումը հաստատում է ծրագրաշարի ընդհանուր վարքը վերջնական օգտագործողի
տեսանկյունից:Բրաուզերային թեստավորումը ներառում է վեբ հավելվածների
փորձարկում տարբեր վեբ բրաուզերների և բրաուզերի տարբերակներում` ապահովելու
օգտատերերի փորձի համատեղելիությունն ու հետևողականությունը: Այն ստուգում է, որ
հավելվածը ճիշտ է գործում և պատշաճ կերպով ցուցադրվում է տարբեր բրաուզերներում,
ներառյալ Chrome, Firefox, Safari, Edge և այլն:
7. Տեղադրման փորձարկում.

34
Տեղադրման փորձարկումը կենտրոնանում է ստուգելու վրա, որ ծրագրաշարը կարող է
հաջողությամբ տեղադրվել, թարմացվել կամ ապատեղադրվել տարբեր միջավայրերում և
կոնֆիգուրացիաներում: Այն ապահովում է, որ տեղադրման գործընթացը սահուն է և
առանց սխալներ, և որ ծրագրաշարը ճիշտ է գործում տեղադրումից հետո:
8. Կազմաձևման փորձարկում.
Կազմաձևման փորձարկումը հաստատում է ծրագրաշարի վարքագիծը տարբեր
կազմաձևման պարամետրերի կամ պարամետրերի ներքո: Այն հաստատում է, որ
ծրագրաշարը հետևողականորեն վարվում է տարբեր կոնֆիգուրացիաների և
կարգավորումների միջև՝ ապահովելով, որ այն համապատասխանում է տարբեր
օգտագործողների և միջավայրերի կարիքներին:
9. Բացասական թեստավորում.
Բացասական փորձարկումը, որը նաև հայտնի է որպես Սխալների ուղու թեստավորում
կամ ձախողման փորձարկում, ներառում է ծրագրաշարի դիտավորյալ ենթարկում
անվավեր կամ անսպասելի մուտքերի կամ պայմանների` ստուգելու դրա կայունությունը և
սխալների հետ աշխատելու հնարավորությունները: Այն նպատակ ունի բացահայտելու
թերություններն ու խոցելիությունները, որոնք կարող են առաջանալ, երբ ծրագրաշարը
բախվում է անսպասելի սցենարների:
Եզրակացություն:
Ծրագրային ապահովման փորձարկման յուրաքանչյուր տեսակ ծառայում է ծրագրային
ապահովման մշակման կյանքի ցիկլում որոշակի նպատակի` նպաստելով ծրագրաշարի
ընդհանուր որակին, հուսալիությանը և կատարողականին: Հասկանալով և ընդգրկելով
տարբեր փորձարկման մեթոդներ, ինչպիսիք են ռեգրեսիոն փորձարկումը, ինտեգրման
թեստը, ծխի թեստը, առողջական վիճակի փորձարկումը, համակարգի թեստը, բրաուզերի
փորձարկումը, տեղադրման թեստը, կոնֆիգուրացիայի թեստը և բացասական
փորձարկումը, ծրագրային ապահովման մշակման թիմերը կարող են վաղ հայտնաբերել և
վերացնել թերությունները, մեղմացնել: ռիսկերը և մատուցել բարձրորակ ծրագրակազմ,
որը բավարարում է օգտատերերի ակնկալիքները:
. Բացասական թեստավորում.

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

4.4 Թեստավորման կարեւորությունը Հավելվածներում ու Շահավետությունը

Թեստավորման հավելվածների կարևորությունը. Որակի, հուսալիության և օգտագործողի


բավարարվածության ապահովում

Այսօրվա թվային դարաշրջանում, որտեղ ծրագրային ապահովման հավելվածները մեր


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

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

Նկ․ 4.4 Թեստավորման արդիական առավելությունները

37
Օգտագործողի փորձը (UX) հավելվածի հաջողության կարևոր գործոն է: Թեստավորումն
օգնում է ապահովել, որ հավելվածները լինեն ինտուիտիվ, արձագանքող և օգտագործողի
համար հարմար՝ բավարարելով թիրախային լսարանի ակնկալիքներն ու կարիքները:
Օգտագործելիության թեստավորման միջոցով ծրագրավորողները կարող են հետադարձ
կապ հավաքել իրական օգտատերերից, բացահայտել օգտագործելիության խնդիրները և
կատարել կրկնվող բարելավումներ՝ օգտատիրոջ ընդհանուր փորձը բարելավելու համար:
Լավ փորձարկված հավելվածը ոչ միայն ճիշտ է գործում, այլև ապահովում է անթերի և
հաճելի փորձ օգտատերերի համար՝ խթանելով ներգրավվածությունը, հավատարմությունը
և դրական բանավոր խոսք:Անվտանգության ռիսկերի մեղմացում:
Անվտանգության խոցելիությունը զգալի վտանգ է ներկայացնում հավելվածների և դրանց
օգտատերերի համար: Թեստավորումն օգնում է բացահայտել անվտանգության
խոցելիությունները, ինչպիսիք են միջկայքի սկրիպտավորումը (XSS), SQL ներարկումը և
նույնականացման թերությունները, նախքան դրանք չարագործների կողմից
շահագործվելը: Անվտանգության թեստավորում անցկացնելով՝ ծրագրավորողները կարող
են կիրառել անվտանգության համապատասխան միջոցներ, ինչպիսիք են գաղտնագրումը,
մուտքի վերահսկումը և խոցելիության տեղակայումները՝ ռիսկերը մեղմելու և զգայուն
տվյալները պաշտպանելու համար: Անվտանգության հետ կապված խնդիրների ակտիվ
լուծումը փորձարկման միջոցով մեծացնում է օգտատերերի և շահագրգիռ կողմերի
վստահությունն ու վստահությունը հավելվածի անվտանգության դիրքորոշման
նկատմամբ:

Հանդիպում Կանոնակարգային Համապատասխանություն:


Շատ ոլորտներ, ինչպիսիք են առողջապահությունը, ֆինանսները և էլեկտրոնային
առևտուրը, ենթակա են կարգավորող պահանջներին և ստանդարտներին, որոնք
կարգավորում են ծրագրային ապահովման հավելվածների մշակումն ու շահագործումը:

38
Թեստավորումն ապահովում է, որ հավելվածները համապատասխանում են կարգավորող
պահանջներին, ինչպիսիք են՝ HIPAA, GDPR, PCI DSS և ADA մատչելիության
ստանդարտները: Կատարելով համապատասխանության թեստավորում և վավերացում՝
կազմակերպությունները կարող են խուսափել օրինական տույժերից, տուգանքներից և
հեղինակությանը չհամապատասխանելու հետևանքով առաջացած վնասից՝ ցույց տալով
իրենց նվիրվածությունը տվյալների գաղտնիությանը, անվտանգությանը և
հասանելիությանը:
Եզրակացություն:
Եզրափակելով, հավելվածների թեստավորումը կարևոր է որակի, հուսալիության և
օգտագործողների բավարարվածության ապահովման համար այսօրվա ծրագրային
ապահովման վրա հիմնված աշխարհում: Զարգացման ողջ ցիկլի ընթացքում
հավելվածները համակարգված փորձարկելով՝ ծրագրավորողները կարող են վաղ
հայտնաբերել թերությունները, բարելավել օգտատերերի փորձը, մեղմացնել
անվտանգության ռիսկերը և համապատասխանել կարգավորող պահանջներին:
Փորձարկման կայուն գործընթացներում և մեթոդաբանություններում ներդրումներ
կատարելը ոչ միայն բարելավում է հայտի ընդհանուր որակը, այլև խթանում է
վստահությունը, վստահելիությունը և հաջողությունը մրցակցային շուկայում: Որպես
այդպիսին, թեստավորումը պետք է լինի ծրագրային ապահովման մշակման յուրաքանչյուր
նախագծի անբաժանելի մասը՝ առաջնահերթություն և գնահատված իր կարևոր դերի
համար՝ բարձրորակ, հուսալի և օգտատերերի վրա հիմնված հավելվածներ մատուցելու

գործում:

39
ԳԼՈՒԽ 5

ԾՐԱԳՐԱՅԻՆ ԻՐԱԿԱՆԱՑՈՒՄ

5․1 Տվյալների նախնական մշակում


Ծրագրային իրականացման առաջին քայլը տվյալների նախնական մշակումն է։ Տվյալ
աշխատանքում օգտագործված տվյալների բազմությունն իրենից ներկայացնում է
գործողությունների քանակի ընդունման թեստի սորտավորման արդյունքները։ Ծրագրի
ընդունման թեստն իրականացված է յուրաքանչյուր տեղանքներում միայն և իրենից
ներկայացնում է 166 թեստերի արդյունքներ յուրաքանչյուր տեղանքի համար։ Ուսուցման
համար առանձնացված տարբերակների: Փորձարկման համար Python Xlib-ի
օգտագործումը սովորաբար ներառում է Unix-ի նման համակարգերի գրաֆիկական
ինտերֆեյսների (ԳԻԹ) հետ փոխազդեցությունների ավտոմատացում: Xlib-ը ցածր
մակարդակի գրադարան է X Window System-ի հետ հաղորդակցվելու համար, որը հիմքում
ընկած գրաֆիկական համակարգն է, որն օգտագործվում է Unix-ի նման օպերացիոն
համակարգերում:
Տեղադրեք կախվածությունները.
Նախ, դուք պետք է համոզվեք, որ դուք ունեք անհրաժեշտ կախվածությունները
տեղադրված: Ձեզ անհրաժեշտ կլինի Python և Python Xlib գրադարան: Դուք կարող եք
տեղադրել Python Xlib-ը՝ օգտագործելով pip.

Նկ․ 5.1 Python xlibe-ի գրադարանի ներբեռնումը

40
Python Xlib-ը կապող Python Xlib-ի համար, հաճախորդի գրադարան X Window
համակարգի համար: Xlib-ն ապահովում է ցածր մակարդակի մուտք դեպի X սերվեր՝ թույլ
տալով ծրագրավորողներին շահարկել պատուհանները, կարգավորել
իրադարձությունները և ծրագրային կերպով փոխազդել գրաֆիկական տարրերի հետ:
Python Xlib-ը պարզեցնում է այս գործընթացը՝ տրամադրելով Python կապեր Xlib
ֆունկցիաների համար՝ հեշտացնելով աշխատել X պատուհանների և
իրադարձությունների հետ՝ օգտագործելով Python կոդը:
Python Xlib-ի հիմնական առանձնահատկությունները.
Պատուհանների կառավարում. Python Xlib-ը թույլ է տալիս ստեղծել, շահարկել և
կառավարել պատուհանները ծրագրային եղանակով: Դուք կարող եք սահմանել
պատուհանի հատկությունները, տեղադրել պատուհանները և հեշտությամբ կատարել
պատուհանների տարբեր գործողություններ:
Իրադարձությունների կառավարում. Python Xlib-ի միջոցով դուք կարող եք կարգավորել X
իրադարձություններ, ինչպիսիք են մկնիկի սեղմումները, ստեղնաշարի մուտքագրումը,
պատուհանների շարժումները և այլն: Սա թույլ է տալիս մոդելավորել օգտատերերի
փոխազդեցությունները և արդյունավետորեն փորձարկել ԳԻԹ հավելվածները:

Պիկսելային մանիպուլյացիա. Python Xlib-ն ապահովում է պիքսելների հետ աշխատելու


գործառույթներ՝ հնարավորություն տալով նկարահանել սքրինշոթներ, կարդալ
պիքսելների արժեքները և շահարկել պիքսելների տվյալները պատուհանների ներսում:
Python Xlib-ի օգտագործումը ԳԻԹ թեստավորման համար.
Python Xlib-ը կարող է արժեքավոր գործիք լինել ԳԻԹ -ի փորձարկման և ավտոմատացման
համար, հատկապես Unix-ի նման համակարգերում, որտեղ տարածված է X Window
System-ը: Ահա թե ինչպես կարող եք օգտագործել Python Xlib-ը ԳԻԹ թեստավորման
համար.
Պատուհանների նույնականացում. Օգտագործեք Python Xlib՝ X windowing համակարգում
պատուհանները հայտնաբերելու և տեղորոշելու համար: Դուք կարող եք որոնել

41
պատուհաններ՝ հիմնվելով դրանց հատկությունների, վերնագրերի կամ այլ
հատկանիշների վրա:
Իրադարձությունների սիմուլյացիա. նմանակել օգտատերերի փոխազդեցությունները,
ինչպիսիք են մկնիկի սեղմումները, ստեղնաշարի մուտքագրումը և պատուհանների
շարժումները՝ օգտագործելով Python Xlib: Սա թույլ է տալիս ավտոմատացնել ԳԻԹ -ի
փորձարկման սցենարները և հաստատել հավելվածի վարքագիծը:
Ստուգում և վավերացում. նկարահանեք պատուհանների սքրինշոթներ և համեմատեք
դրանք ակնկալվող պատկերների հետ՝ ԳԻԹ -ի դասավորությունները և տարրերը
վավերացնելու համար: Կարող եք նաև կարդալ պիքսելների արժեքները՝ ստուգելու
գույները, տեքստը կամ այլ տեսողական ատրիբուտները:
Ինտեգրում թեստավորման շրջանակների հետ. Ինտեգրել Python Xlib-ը թեստավորման
շրջանակների հետ, ինչպիսիք են pytest-ը կամ unittest-ը՝ ավտոմատացված ԳԻԹ թեստեր
ստեղծելու համար: Միավորել Python Xlib-ը պնդումների և թեստային պնդումների հետ՝
ակնկալվող արդյունքները ստուգելու համար:

Նկ․ 5.2 Թեստային կառուցվածքի նկարագրությունը

42
յուրաքանչյուրի համար իրականացվել է 17 տեղայնքների համար ստուգվել է 166 թեստերի
արդյունքների առկայությունը։ Այն դեպքում, երբ թեստի արդյունքը բացակայել է
մուտքային տվյալներում, այն լրացվել է թեստի միջինացված արժեքով տվյալ տպասալի
համար։ Տպասալի սորտավորման արդյունքները յուրաքանչյուր տեղամասի համար
համարվում են պիտակ՝ 1 կամ 0: Ուսուցման տվյալների բազմությունը՝ որը ներառում է և՛
տպասալի ընդունման, և՛ սորտավորման արդյունքները ենթարկվել է գերընտրանքի
դասերի բալանսավորման համար։

5.2 Օգտագործողի գրաֆիկական ինտերֆեյս


Ծրագրի օգտագործման համար ինտերֆեյսի տրամադրումը, լինի դա գրաֆիկական
ինտերֆեյս (ԳԻԹ) կամ հրամանի տող ինտերֆեյս (ԳԻԹ), առաջնային նշանակություն ունի
մի քանի պատճառներով:
Օգտագործման հեշտություն. ինտերֆեյսը հեշտացնում է օգտվողների համար ծրագրի հետ
փոխգործակցությունը: Այն վերացում է բարդ գործառույթները և ներկայացնում դրանք
օգտագործողի համար հարմար ձևով՝ նվազեցնելով ուսուցման կորը և ծրագրաշարը
հասանելի դարձնելով ավելի լայն լսարանի համար:

43
Բարելավված օգտագործողի փորձ: Լավ մշակված ինտերֆեյսը բարելավում է օգտատիրոջ
ընդհանուր փորձը՝ տրամադրելով ինտուիտիվ նավիգացիա, հստակ հրահանգներ և
տեսողական արձագանք: Այն թույլ է տալիս օգտատերերին արդյունավետ և արդյունավետ
կերպով կատարել առաջադրանքները՝ հանգեցնելով ավելի բարձր գոհունակության և
ներգրավվածության ծրագրային ապահովման հետ:
Ճկունություն և հարմարեցում: Ինտերֆեյսները կարող են առաջարկել հարմարեցման և
կազմաձևման տարբերակներ՝ թույլ տալով օգտվողներին հարմարեցնել ծրագիրը իրենց
հատուկ կարիքներին և նախասիրություններին: Այս ճկունությունը ուժեղացնում է
օգտատերերի վերահսկողությունը և հնարավորություն է տալիս անհատներին
օպտիմալացնել իրենց աշխատանքային հոսքը՝ իրենց պահանջներին համապատասխան:
Սխալների կանխարգելում և կառավարում: Լավ մշակված ինտերֆեյսը կարող է օգնել
կանխել օգտատերերի սխալները՝ ուղղորդելով օգտատերերին աշխատանքային հոսքի
միջոցով և անհրաժեշտության դեպքում տրամադրելով հուշումներ կամ
նախազգուշացումներ: Բացի այդ, ինտերֆեյսները կարող են առաջարկել սխալների հետ
Նկ․ 5․2 Ապահովման միջոցի գրաֆիկական ինտերֆեյսը
աշխատելու մեխանիզմներ՝ օգնելու օգտատերերին հարցերը լուծելու և սխալներից
նրբանկատորեն վերականգնելու հարցում:
Մատչելիություն. Ինտերֆեյսերը կարող են նախագծվել տարբեր կարողություններով և
մատչելիության կարիք ունեցող օգտատերերի համար: Առանձնահատկություններ,
ինչպիսիք են ստեղնաշարի դյուրանցումները, էկրանի ընթերցիչները և տառատեսակի
կարգավորվող չափերը, մեծացնում են հասանելիությունը և ապահովում են, որ
ծրագրաշարը կարող է օգտագործվել օգտատերերի բազմազան բազայի կողմից:
5.3 Գրադարանների միացում եւ կիրառման օրինակներ
Հետևողականություն և ծանոթություն: Տարբեր ծրագրային մոդուլների կամ
տարբերակների միջև հետևողական ինտերֆեյսի ձևավորումը նպաստում է ծանոթությանը
և նվազեցնում օգտագործողների ճանաչողական բեռը: Հետևողական դասավորությունը,
տերմինաբանությունը և նավիգացիոն օրինաչափությունները նպաստում են օգտատերերի
ավելի հարթ փորձին և հեշտացնում են օգտատերերի ընդունումը:

44
Նկ․ 5․3 Հաշվիչ մեքենայի վրա անցկացված թեստավորման կոդը

Փաստաթղթեր և օգնություն. ինտերֆեյսները կարող են ներառել ներկառուցված


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

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

Երկրորդ քայլը ավտոմատացված ֆունկցիոնալ թեստավորման տարբերակների մշակումն


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

3․Երրորդ քայլը փորձարկման միջավայրի և վիրտուալ տարածքում կամ ամպային


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

2․Երկրորդ քայլը ավտոմատացված ֆունկցիոնալ թեստավորման տարբերակների


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

46
ԳԼՈՒԽ 6

ՓՈՐՁՆԱԿԱՆ ՀԵՏԱԶՈՏՈՒԹՅՈՒՆՆԵՐ

6.1 Ինչպես օպտիմիզացնել ավտոմատացված ֆունկցիոնալ փորձարկումը ձեր


արտադրանքի համար

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


համար անհրաժեշտ է ցիկլերի առաջնահերթությունը և ճիշտ պլանավորումը:Դա անելու
համար մեզ անհրաժեշտ է անհատականացված թեստավորման ալգորիթմ։

Առաջին հերթին, մենք պետք է պլանավորեք ծրագրի մշակումը և ծրագրի փորձարկում


զարգացման գործընթացում:

1․ Համալիր որակի ապահովման ճանապարհին առաջին քայլը թեստային դեպքերի


մշակումն է ։Գրել մի շարք գործողություններ, որոնք անհրաժեշտ են յուրաքանչյուր
բաղադրիչ ստուգելու համար։Սա կօգնի ձեզ կառուցել ՈԱ գործընթացը ապագայում:

2․Երկրորդ քայլը ավտոմատացված ֆունկցիոնալ թեստավորման տարբերակների


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

3․Երրորդ քայլը փորձարկման միջավայրի և վիրտուալ տարածքում կամ ամպային


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

4․Ալգորիթմի նախավերջին քայլը կոչվում է վերլուծություն: Հաշվետվությունների


վերլուծությունը, արդյունքները ստուգելը և ծրագրավորողներին խնդրելը ուղղել սխալները

47
նշանակում է, որ թեստերը հաջողությամբ ավարտված են, և դրանց արդյունավետությունը
հաստատվում է հայտնաբերված սխալներով:

5․Տարբերակների վերաթեստավորում և խմբագրում: Թեստավորման վերջին քայլը


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

6.2 Ավտոմատացված ֆունկցիոնալ թեստավորման օպտիմիզացում մաթեմատիկական


բանաձևերով:

Ավտոմատացված ֆունկցիոնալ թեստավորումը վճռորոշ դեր է խաղում ծրագրային


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

E={E1,E2,...,En}

Որտեղ:

48
E-ն ներկայացնում է համարժեքության դասերի բազմությունը:
E1,E2,...,En անհատական համարժեքության դասեր են։
Սահմանային արժեքի վերլուծություն. Սահմանային արժեքների վերլուծությունը
կենտրոնանում է սահմանային պայմանների և եզրային դեպքերի փորձարկման վրա, քանի
որ դրանք հաճախ հանգեցնում են ծրագրային համակարգերի թերությունների:
Փորձարկման դեպքերը ստացվում են՝ ընտրելով մուտքային արժեքները համարժեքության
դասերի սահմաններում: Սահմանային արժեքի վերլուծության բանաձևը ներկայացված է
հետևյալ կերպ.

B={B1,B2,...,Bn}

Որտեղ:

B-ն ներկայացնում է սահմանային արժեքների բազմությունը:


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

49
Զույգային փորձարկում (համակցված փորձարկում). Զույգ թեստավորումը առաջացնում է
թեստային դեպքեր, որոնք ընդգրկում են բոլոր հնարավոր զույգ մուտքային պարամետրերը,
նվազագույնի հասցնելով պահանջվող թեստային դեպքերի քանակը՝ միաժամանակ
ապահովելով արդյունավետ ծածկույթ: Զույգ փորձարկման բանաձևը ներկայացված է
որպես զույգ-զույգ համակցություններ՝ ապահովելով, որ յուրաքանչյուր զույգ պարամետր
առնվազն մեկ անգամ փորձարկվի միասին: Եզրակացություն: Մաթեմատիկական
բանաձևերը և ալգորիթմները ավտոմատ ֆունկցիոնալ թեստավորման մեջ ներառելը
օգնում է փորձարկողներին նախագծել արդյունավետ և արդյունավետ թեստային դեպքեր՝
հանգեցնելով ծրագրային ապահովման որակի և հուսալիության բարելավմանը:
Օգտագործելով այնպիսի մեթոդներ, ինչպիսիք են համարժեք դասի բաժանումը,
սահմանային արժեքի վերլուծությունը, որոշումների աղյուսակի փորձարկումը, վիճակի
անցման փորձարկումը և զույգ թեստավորումը, թեստավորողները կարող են հասնել
համապարփակ թեստի ծածկույթի` միաժամանակ օպտիմալացնելով փորձարկման
ջանքերը: Կիրառելով այս մաթեմատիկական սկզբունքները՝ կազմակերպությունները
կարող են պարզեցնել իրենց թեստավորման գործընթացները և մատուցել բարձրորակ
ծրագրային արտադրանք, որոնք համապատասխանում են օգտատերերի ակնկալիքներին
և պահանջներին:

6․3 Կատարված բարելավման հավելվածների թեստավորումը Python Xlib-ով։

Ներածություն:
Սեղանի հավելվածների թեստավորումը ծրագրային ապահովման մշակման
կարևորագույն ասպեկտն է, որն ապահովում է, որ հավելվածները ճիշտ գործեն և
ապահովեն օգտատերերի անխափան փորձը: Python Xlib-ը (Xlibe) հզոր գրադարան է, որն
ապահովում է X Window համակարգի հետ փոխազդելու հնարավորություններ՝ դարձնելով
այն արժեքավոր գործիք Unix-ի նման համակարգերի վրա աշխատասեղանի
թեստավորումն ավտոմատացնելու համար: Այս հոդվածում մենք կուսումնասիրենք, թե
ինչպես Python Xlib-ը կարող է օգտագործվել աշխատասեղանի հավելվածների

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

Նկ․ 6․3 Օպտիմիզացիա գրադարանների ինտեգրման միջոցավ

Հասկանալով Python Xlib:


Python Xlib-ը Python-ի կապող X11 արձանագրության համար, որը ստանդարտ
արձանագրություն է Unix-ի նման համակարգերում օգտագործողի գրաֆիկական
միջերեսների կառավարման համար: Այն ծրագրավորողներին թույլ է տալիս ծրագրավորել
կառավարել պատուհանները, նկարահանել իրադարձությունները, մոդելավորել
օգտատիրոջ մուտքը և կատարել այլ գործողություններ՝ կապված աշխատասեղանի ԳԻԹ-ի
փոխազդեցությունների հետ: Python Xlib-ի միջոցով փորձարկողները կարող են

51
ավտոմատացնել այնպիսի առաջադրանքներ, ինչպիսիք են պատուհանների
մանիպուլյացիան, մուտքագրման մոդելավորումը և էկրանի նկարահանումը, ինչը
հնարավորություն է տալիս աշխատասեղանի հավելվածների արդյունավետ և հուսալի
փորձարկումներին:
Փորձարկման համար Python Xlib-ի օգտագործման առավելությունները.
Պլատֆորմի անկախություն. Python Xlib-ն աշխատում է Unix-ի նման տարբեր օպերացիոն
համակարգերում, ներառյալ Linux-ը, BSD-ն և macOS-ը՝ ապահովելով հարթակից անկախ
լուծում աշխատասեղանի փորձարկման համար:
Fine-Grained Control. Python Xlib-ն առաջարկում է մանրահատիկ հսկողություն
աշխատասեղանի ԳԻԹ տարրերի վրա՝ թույլ տալով փորձարկողներին փոխազդել
պատուհանների, կոճակների, մենյուների և այլ գրաֆիկական բաղադրիչների հետ
համակարգի մակարդակով:
Ճկունություն. Python Xlib-ը չափազանց ճկուն է և հարմարեցված, ինչը փորձարկողներին
հնարավորություն է տալիս ստեղծել հարմարեցված փորձարկման լուծումներ, որոնք
համապատասխանում են ծրագրի հատուկ պահանջներին և փորձարկման նպատակներին:
Ինտեգրում Python էկոհամակարգի հետ. Լինելով Python գրադարան՝ Python Xlib-ն
անխափան կերպով ինտեգրվում է Python-ի այլ գրադարանների և շրջանակների հետ,
որոնք սովորաբար օգտագործվում են թեստավորման ժամանակ, ինչպիսիք են pytest-ը,
Selenium-ը և PyAutoGUI-ն՝ բարձրացնելով դրա բազմակողմանիությունն ու
ընդարձակելիությունը:
Օգտագործեք Python Xlib-ի դեպքերը փորձարկման մեջ.
Ավտոմատացված ԳԻԹ փորձարկում. Python Xlib-ը կարող է օգտագործվել ԳԻԹ-ի
փոխազդեցությունների ավտոմատացման համար, ինչպիսիք են կոճակները սեղմելը,
տեքստի մուտքագրումը, ընտրացանկի ընտրանքները և UI տարրերի հատկությունները և
վիճակները ստուգելու համար:
Պատուհանների կառավարում. Python Xlib-ը փորձարկողներին թույլ է տալիս շահարկել
պատուհանները՝ ներառյալ պատուհանների տեղափոխումը, չափափոխումը,

52
նվազագույնի հասցնելը, առավելագույնի հասցնելը և փակելը, ինչը հեշտացնում է
պատուհանների կառավարումը փորձարկման ընթացքում:
Իրադարձությունների մշակում. Python Xlib-ը փորձարկողներին հնարավորություն է
տալիս ֆիքսել և մշակել X11-ի տարբեր իրադարձություններ, ինչպիսիք են ստեղնաշարի
իրադարձությունները, մկնիկի իրադարձությունները, պատուհանների ֆոկուսի
փոփոխությունները և էկրանի թարմացումները՝ տրամադրելով պատկերացումներ
հավելվածի վարքագծի վերաբերյալ:
Էկրանի նկարում և վերլուծություն. Python Xlib-ը կարող է նկարել աշխատասեղանի
պատուհանների սքրինշոթները և վերլուծել պիքսելների արժեքները՝ ստուգելու
գրաֆիկական բովանդակությունը, դասավորությունը և մատուցման ճշգրտությունը:
Թեստավորման մեջ Python Xlib-ի օգտագործման լավագույն պրակտիկաները.
Մոդուլային փորձարկման ձևավորում. Ընդունեք մոդուլային թեստային դիզայնի
մոտեցում՝ բազմակի օգտագործման թեստային բաղադրիչներ ստեղծելու և ծածկագրի
պահպանման և մասշտաբայնության առավելագույնի հասցնելու համար:
Սխալների կառավարում. Կիրառել սխալների հետ կապված կայուն մեխանիզմներ՝
նրբագեղորեն կարգավորելու բացառությունները և ձախողումները, որոնք կարող են տեղի
ունենալ փորձարկման ընթացքում:
Փաստաթղթավորում և գրանցում. Փաստաթղթերի թեստային սկրիպտները մանրակրկիտ
ձևակերպեք և ներառում են գրանցամատյաններ՝ թեստի կատարման առաջընթացին
հետևելու, ախտորոշիչ տեղեկատվությունը հավաքելու և վրիպազերծումը հեշտացնելու
համար:
Փորձարկման միջավայրի կարգավորում. Համոզվեք, որ թեստային միջավայրը պատշաճ
կերպով կազմաձևված է անհրաժեշտ կախվածություններով, ինչպիսիք են X11
գրադարանները և Python Xlib կապերը՝ համատեղելիության հետ կապված խնդիրներից
խուսափելու համար:
Շարունակական ինտեգրում. Python Xlib-ի վրա հիմնված թեստերը ինտեգրել
շարունակական ինտեգրման խողովակաշարերի մեջ՝ ավտոմատացնելու փորձարկումների

53
կատարումը, վավերացնելու կոդի փոփոխությունները և ապահովելու թերությունների վաղ
հայտնաբերումը:
Եզրակացություն:
Python Xlib-ն առաջարկում է բազմակողմանի և հզոր լուծում Unix-ի նման
համակարգերում աշխատասեղանի հավելվածների փորձարկումն ավտոմատացնելու
համար: Օգտագործելով Python Xlib-ի հնարավորությունները՝ փորձարկողները կարող են
ավտոմատացնել ԳԻԹ-ի փոխազդեցությունները, շահարկել պատուհանները, կարգավորել
իրադարձությունները և կատարել էկրանի վերլուծություն՝ դրանով իսկ բարձրացնելով
թեստավորման արդյունավետությունը, հուսալի։

6.4 Ծրագրային իրականացման Ֆունկցիոնալ թեստավորման կատարումը

Ներածություն:
Ֆունկցիոնալ և գրաֆիկական թեստավորումը ծրագրային ապահովման մշակման
անբաժանելի մասերն են՝ ապահովելով, որ հավելվածները բավարարում են օգտատերերի
պահանջները, ճիշտ են գործում և ապահովում են անխափան օգտատիրոջ փորձ:
Այնուամենայնիվ, փորձարկողները հաճախ հանդիպում են տարբեր մարտահրավերների
այս թեստավորման փուլերում՝ սկսած ՕԻ-ի բարդ տարրերից մինչև բրաուզերների
համատեղելիության խնդիրներ: Այս հոդվածում մենք կուսումնասիրենք ֆունկցիոնալ և
գրաֆիկական թեստավորման ժամանակ հանդիպող ընդհանուր մարտահրավերները և
կքննարկենք դրանք արդյունավետորեն հաղթահարելու ռազմավարությունները:
1. UI տարրերի բարդությունը:
Օգտագործողի գրաֆիկական միջերեսները (ԳԻԹ) հաճախ պարունակում են բարդ
միջերեսային տարրեր, ինչպիսիք են դինամիկ ընտրացանկերը, տեղադրվող
բաղադրիչները և հատուկ վերահսկիչները: Այս տարրերի մանրակրկիտ փորձարկումը
պահանջում է մանրակրկիտ ուշադրություն և համապարփակ թեստային ծածկույթ: Այս
մարտահրավերը հաղթահարելու համար փորձարկողները կարող են բաժանել ՕԻ -ի բարդ

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

Նկ․ 6․4․1 Թեստավորման դրված գործողությունները

2. Cross-browser և Cross-platform Համատեղելիություն:


Տարբեր վեբ բրաուզերների և օպերացիոն համակարգերի միջև հետևողական վարքագծի և
արտաքին տեսքի ապահովումը շատ կարևոր է ԳԻԹ թեստավորման համար: Բրաուզերի
մատուցման շարժիչների, CSS-ի աջակցության և հարթակին հատուկ վարքագծի
տատանումները կարող են հանգեցնել համատեղելիության խնդիրների: Փորձարկողները
կարող են հաղթահարել այս մարտահրավերը՝ օգտագործելով զննարկիչի
ավտոմատացման գործիքները, ինչպիսիք են Selenium WebDriver-ը, ավտոմատացնելով
բրաուզերների թեստավորումը և վավերացնելու հավելվածի վարքագիծը բազմաթիվ
միջավայրերում:
3. Դինամիկ բովանդակություն և ասինխրոն վարքագիծ:

55
Վեբ հավելվածները հաճախ օգտագործում են դինամիկ բովանդակության բեռնում և
ասինխրոն գործողություններ (օրինակ՝ հարցումներ)՝ օգտատերերի փորձը բարելավելու
համար: Նման դինամիկ վարքագծի փորձարկումը պահանջում է համաժամացման
մեխանիզմներ և ռազմավարություններ՝ ժամանակի հետ կապված խնդիրները
արդյունավետ կերպով լուծելու համար: Փորձարկողները կարող են կիրառել այնպիսի
մեթոդներ, ինչպիսիք են բացահայտ սպասումները, հարցումների ընդմիջումները և
իրադարձությունների ունկնդիրները՝ թեստավորման ընթացքում պատշաճ
համաժամացում ապահովելու համար:
4. Տեղայնացում և միջազգայնացում.
ԳԻԹ -ի փորձարկումը կարող է ներառել բազմաթիվ լեզուների, նիշերի հավաքածուների և
մշակութային կոնվենցիաների աջակցության ստուգում: Հավելվածի տեղայնացված
տարբերակների փորձարկումը պահանջում է մասնագիտացված գիտելիքներ և
ռեսուրսներ՝ համոզվելու համար, որ ՕԻ տարրերը, բովանդակությունը և
ֆունկցիոնալությունը պատշաճ կերպով հարմարեցված են տարբեր տեղանքների համար:
Փորձարկողները կարող են համագործակցել տեղայնացման թիմերի հետ և օգտագործել
տեղայնացման փորձարկման գործիքներ՝ թեստավորման գործընթացը պարզեցնելու և
միջազգայնացման չափանիշներին համապատասխանությունն ապահովելու համար:
5. Պատասխանատու դիզայն և բջջային համատեղելիություն:
Բջջային սարքերի աճող տարածվածության պայմաններում ԳԻԹ -ի թեստավորումը
հաճախ ներառում է արձագանքող նախագծման սկզբունքների ստուգում և տարբեր
էկրանների չափերի, լուծաչափերի և կողմնորոշումների հետ համատեղելիության
ապահովում: Փորձարկողները կարող են օգտագործել բջջային թեստավորման
շրջանակներ, ինչպիսիք են Appium-ը կամ TestComplete Mobile-ը, տարբեր սարքերի և

56
էմուլյատորների վրա փորձարկումն ավտոմատացնելու և բազմաթիվ հարթակներում
հավելվածների արձագանքման վավերացման համար:

6. Մատչելիության համապատասխանություն:
Ապահովել, որ ԳԻԹ -ները հասանելի են հաշմանդամություն ունեցող օգտատերերին,
ֆունկցիոնալ թեստավորման էական կողմն է: Մատչելիության համապատասխանության
փորձարկումը ներառում է այնպիսի տարրերի գնահատում, ինչպիսիք են ստեղնաշարի
Նկ․ 6․4․2 Թեստավորման ձախողված ընթացքի գրաֆիկ տեսքը
նավարկությունը, էկրանի ընթերցողի համատեղելիությունը և մատչելիության
չափանիշներին համապատասխանելը (օրինակ՝ WCAG): Փորձարկողները կարող են
օգտագործել մատչելիության փորձարկման գործիքներ, ինչպիսիք են Axe-ը կամ WAVE-ը՝
պարզելու մատչելիության խնդիրները և ապահովելու, որ հավելվածները հասանելի են
բոլոր օգտատերերին:
Եզրակացություն:
Ֆունկցիոնալ և գրաֆիկական թեստավորումը կարևոր դեր է խաղում ծրագրային
ապահովման հավելվածների որակի և օգտագործելիության ապահովման գործում:
Հասկանալով և լուծելով թեստավորման ընթացքում հանդիպող ընդհանուր
մարտահրավերները՝ փորձարկողները կարող են բարելավել իրենց փորձարկման ջանքերի
արդյունավետությունն ու արդյունավետությունը:
Օգտագործելով այնպիսի ռազմավարություններ, ինչպիսիք են բաղադրիչի վրա հիմնված
թեստավորումը, բրաուզերի ավտոմատացումը, համաժամացման տեխնիկան,
տեղայնացման թիմերի հետ համագործակցությունը, բջջային թեստավորման
ավտոմատացումը և մատչելիության թեստը, փորձարկողները կարող են հաղթահարել
խոչընդոտները և ապահովել, որ հավելվածները բավարարեն օգտատերերի ակնկալիքները
և կարգավորող պահանջները: Նախաձեռնող փորձարկման պրակտիկաների և
շարունակական բարելավման միջոցով կազմակերպությունները կարող են մատուցել

57
բարձրորակ ծրագրային արտադրանք, որոնք ապահովում են անթերի և գոհացուցիչ
օգտատերերի փորձ:

ԳԼՈՒԽ 7

ՓՈՐՁԱՐԱՐԱԿԱՆ ՏԵԽՆԻԿԱ

Նախագծման ընթացքում օգտագործվել են հետևյալ ծրագրային գործիքները

• Linux - Օպերացիոն համակարգ


• Python – Ծրագրավերման լեզու
• Python xlib - գրադարան
• Visual studio code – Խմբագրման համակարգ

Linux-ը բաց կոդով օպերացիոն համակարգ է, որը հայտնի է իր կայունությամբ և


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

58
Python-ը բարձր մակարդակի ծրագրավորման լեզու է, որը հայտնի է իր պարզությամբ և
բազմակողմանիությամբ: Այն լայնորեն օգտագործվում է տարբեր ծրագրերի համար, այդ
թվում՝ վեբ մշակման, տվյալների վերլուծության, արհեստական ինտելեկտի և
ավտոմատացման համար: Python-ն աշխատում է բազմաթիվ օպերացիոն համակարգերով,
ներառյալ Windows-ը, macOS-ը և Linux-ը, ինչը հասանելի է դարձնում մշակողների և
օգտատերերի լայն շրջանակի համար: Python-ի ստանդարտ գրադարանը և երրորդ կողմի
փաթեթները համապարփակ աջակցություն են առաջարկում առաջադրանքների և
գործառույթների լայն շրջանակի համար: Նրա ընթեռնելիությունը և սովորելու
հեշտությունը դարձնում են այն հանրաճանաչ ընտրություն ինչպես սկսնակների, այնպես
էլ փորձառու ծրագրավորողների համար:
Python Xlib-ը Python մոդուլ է, որն ապահովում է կապեր X Window համակարգի համար
(X11), որը թույլ է տալիս ծրագրավորողներին ստեղծել և փոխազդել օգտատիրոջ
գրաֆիկական միջերեսների հետ Unix-ի նման օպերացիոն համակարգերում: Այն
հնարավորություն է տալիս Python ծրագրերին կառավարել պատուհանները, կառավարել
մուտքային իրադարձությունները և նկարել գրաֆիկա՝ օգտագործելով X11
արձանագրությունները: Python Xlib-ը հեշտացնում է X11 հավելվածների մշակման
գործընթացը՝ ապահովելով բարձր մակարդակի ինտերֆեյս ընդհանուր առաջադրանքների
համար, ինչպիսիք են պատուհանների ստեղծումը, մանիպուլյացիան և
իրադարձությունների մշակումը:
Այն առաջարկում է ճկունություն և հզորություն ծրագրավորողների համար, ովքեր
ցանկանում են ստեղծել հատուկ գրաֆիկական հավելվածներ կամ ինտեգրել Python-ը
գոյություն ունեցող X11-ի վրա հիմնված ծրագրաշարի հետ: Python Xlib-ը լայնորեն
օգտագործվում է այնպիսի ոլորտներում, ինչպիսիք են աշխատասեղանի միջավայրերը,
պատուհանների կառավարիչները և գրաֆիկական կոմունալ ծառայությունները՝
ցուցադրելով իր բազմակողմանիությունն ու օգտակարությունը Unix/Linux
էկոհամակարգում:
Visual Studio Code-ը (VS Code) անվճար, բաց կոդով կոդերի խմբագիր է, որը մշակվել է
Microsoft-ի կողմից, որը հայտնի է իր թեթև, բայց հզոր հատկանիշներով:

59
Այն աջակցում է ծրագրավորման լեզուների լայն տեսականի և ապահովում է այնպիսի
գործառույթներ, ինչպիսիք են շարահյուսության ընդգծումը, կոդի լրացումը և
վրիպազերծման հնարավորությունները: Իր ինտուիտիվ ինտերֆեյսի և ընդարձակման լայն
շուկայի շնորհիվ VS Code-ն առաջարկում է շատ հարմարեցված և արդյունավետ միջավայր
մշակողների համար:

Այն հասանելի է բազմաթիվ հարթակներում, ներառյալ Windows-ը, macOS-ը և Linux-ը,


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

տարածմանը և հանրաճանաչությանը ամբողջ աշխարհում մշակողների շրջանում:

գործընթացը՝ ապահովելով բարձր մակարդակի ինտերֆեյս ընդհանուր առաջադրանքների


համար, ինչպիսիք են պատուհանների ստեղծումը, մանիպուլյացիան և
իրադարձությունների մշակումը:
Այն առաջարկում է ճկունություն և հզորություն ծրագրավորողների համար, ովքեր
ցանկանում են ստեղծել հատուկ գրաֆիկական հավելվածներ կամ ինտեգրել Python-ը
գոյություն ունեցող X11-ի վրա հիմնված ծրագրաշարի հետ: Python Xlib-ը լայնորեն
օգտագործվում է այնպիսի ոլորտներում, ինչպիսիք են աշխատասեղանի միջավայրերը,
պատուհանների կառավարիչները և գրաֆիկական կոմունալ ծառայությունները՝
ցուցադրելով իր բազմակողմանիությունն ու օգտակարությունը Unix/Linux
էկոհամակարգում:

60
61
Գլուխ 8

ԵԶՐԱԿԱՑՈՒԹՅՈՒ

Աշխատանքի ընթացքում հետազոտվել են հավելվածների թեստավորման փուլերը, դրանց


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

62
ԳՐԱԿԱՆՈՒԹՅԱՆ ՑԱՆԿ

1. Cocchiaro C., Selenium Framework Design in Data-Driven Testing // -Packt Publishing, -2018.
-P. 200-230.
2. Dudekula R., Reddy K., A Practical Overview on Automated Software Testing(AST) // -LAP
LAMBERT Academic Publishing, -2012. -P. 25-55.

3. Chandra S., Automated Software Engineering: A Deep Learning-Based Approach // - Springer,


-2020. -P. 120-150.
4. Amon A. Complete Guide to Test Automation: Techniques, Practices, and Patterns for
Building and Maintaining Effective Software Projects // -Apress 1st ed, -2018. -P. 60-75.
5. Brian W., How Linux Works, 3rd Edition: What Every Superuser Should Know 3rd
Edition // -No Starch Press, -2021. -P. 55-70.
6․ Kristian R. , Pro Python Best Practices: Debugging, Testing and Maintenance // - Apress, 2020. -
P. 45-55.
7. Ashwin P. , Python Unit Test Automation: Automate, Organize, and Execute Unit Tests in
Python 2nd Edition // -Megabyte Publishing, -2021. -P. 36-59.
8. David A., Charles G. , Pulmonary Function Testing: Principles and Practice (Respiratory
Medicine) // -Springer , -2018. P. 110-118.

63

You might also like