Functional Testing


Functional Testing-ի նպատակը software application–ի յուրաքանչյուր ֆունկցիայի ստուգումն է` ապահովելով համապատասխան մուտքը, ստուգել ելքը՝ կախված ֆունկցիոնալ պահանջներից: Ստուգվում է, յուրաքանչյուր բաղադրիչ(component) գործու՞մ է այնպես, ինչպես սպասվում էր, թե՞ ոչ: Հետեւաբար այն կոչվում է նաեւ «Component testing»: Թեստավորման այս տեսակը պարտադիր է անկախ նրանից, թե ինչ տեսակի application է:
Functional Testing-ի ընթացքում օգտագործվում է Black Box Testing տեխնիկան, որում փորձարկվող համակարգի ներքին տրամաբանությունը հայտնի չէ: Ստուգում է User Interface-ը, API-երը, Database-ը, Security-ն, Client/Server հաղորդակցությունը եւ application-ի այլ ֆունկցիաներ: Այն կարելի է իրականացնել ինչպես manual, այնպես էլ automat: Ֆունկցիաները փորձարկվում են` փոխանցելով դրանց մուտքային տվյալներ եւ ուսումնասիրելով արդյունքը:
Functional Testing-ը երաշխավորում է, որ application-ը պատշաճ կերպով բավարարում է պահանջները: Թեստավորման այս տեսակը կապված չէ այն բանի հետ, թե ինչպես է տեղի ունենում implementation-ը, այլ կապված է միայն արդյունքների հետ։


Ի՞նչ է ստուգում Functional Testing-ը


1.Application-ի հիմնական գործառույթները, նկարագրված ֆունկցիոնալը: Այլ կերպ ասած՝ ստուգվում է application-ի պահվածքը` համաձայն թեստի սպեցիֆիկացիաների:

2.Error conditions – սխալ պայմանների դեպքում հաղորդագրությունների առկայությունը:


Functional Testing-ի քայլերը


1.Հասկանալ գործառույթները, որոնք application-ը պետք է իրականացնի:

2.Ստեղծել մուտքային տվյալներ` ելնելով ֆունկցիաների սպեցիֆիկացիաներից:

3.Որոշել ակնկալվող ելքային արդյունքները ընտրված մուտքային արժեքների համար:

4.Իրականացնել test case-երը:

5.Իրական եւ ակնկալվող արդյունքների համեմատում:


Functional testing-ի տեսակները


1. Unit testing

2. Integration testing

3. Interface testing

4. System testing

5. Regression testing

6. Smoke testing

7. Sanity testing

8. Acceptance testing


Unit testing


1,Այս ֆունկցիոնալ փորձարկման տիպի դեպքում կոդերի ամենափոքր ֆունկցիոնալ և փորձարկվող միավորը փորձարկվում է unit testing-ի ժամանակ:
2. Հիմնականում իրականացվում է մշակողների կողմից, քանի որ դա White-Box թեստավորման տեխնիկա է:
3. Կատարվում է զարգացման ամենավաղ փուլերում, հետևաբար օգնում է բացահայտել թերությունները սկզբնական զարգացման փուլերում: Սա օգնում է խնայել STLC-ի հետագա փուլերում թերությունները շտկելու ավելի մեծ ծախսերը։

Integration testing


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


Interface testing


1.Integration testing-ի մի մասը; Ստուգվում է երկու ինտեգրված բաղադրիչների միջև տվյալների փոխանակման, տվյալների փոխանցման, հաղորդագրությունների, զանգերի և հրամանների ճշգրտությունը:
2. Տվյալների բազայի, վեբ-ծառայությունների, API-ների կամ որևէ արտաքին բաղադրիչի և հավելվածի միջև հաղորդակցությունը փորձարկվում է Interface testing-ի ընթացքում:

3. Այս տվյալների կամ հրամանի հաղորդակցման ընթացքում չպետք է լինի որևէ սխալ կամ ձևաչափի անհամապատասխանություն: Եթե նման խնդիր է առաջանում, այն պետք է շտկվի:
4. Interface testing-ը տարբեր ինտերֆեյսների միջև կապի փորձարկումն է, մինչդեռ Integartion testing-ը մոդուլների ինտեգրված խմբի փորձարկումն է որպես մեկ միավոր։


System testing


1. Համակարգի բոլոր բաղադրիչները համակցված են, և համակարգը փորձարկվում է համապատասխանության և ճշտության համար՝ պահանջների բնութագրերին (ֆունկցիոնալ կամ համակարգային):
2. Դա Black-Box թեստավորման տեխնիկա է, որը վավերացնում է ինտեգրված համակարգը:
3. Այն իրականացվում է նախքան Acceptance testing-ի փորձարկումը (UAT) STLC-ում (Software testing-ի life cycle):
4. System testing-ը իրականացվում է գրեթե իրական միջավայրում և ըստ իրական կյանքի օգտագործման:


Regression testing


1. Developer-ների կողմից որոշ բարելավումներից կամ կոդի շտկումից հետո շատ կարևոր է դառնում Regression testing-ի փաթեթը գործարկելը: Regression testing-ը իրականացվում է՝ համոզվելու համար, որ կոդի այս փոփոխությունները չեն խոչընդոտել առկա աշխատանքային գործառույթներին կամ որևէ նոր թերություն չի ներմուծվել կոդում:
2.Regression testing-ի դեպքերը գործող Ֆունկցիոնալ թեստերի ենթաբազմություն են, որոնք ընդգրկում են համակարգի հիմնական գործառույթները:
3. Regression դեպքերը պետք է թարմացվեն, ավելացվեն և ջնջվեն՝ համաձայն հավելվածի փոփոխությունների:
4. Regression testing case-երը ավտոմատացման թեստավորման լավագույն թեկնածուներն են, քանի որ դրանք հաճախ են գործարկվում և կատարման համար ժամանակ են պահանջում:


Smoke testing


1. Developement-ից հետո, երբ թողարկվի նոր բիլդ, Smoke Testing-ը կատարվում է հավելվածի վրա՝ ապահովելու, որ բոլոր հիմնական գործառույթներն աշխատում են մինչև վերջ:
2. Smoke Testing-ը սովորաբար կատարվում է հավելվածի մշակման սկզբնական փուլում ստեղծված կառուցվածքների համար, որոնք դեռ կայուն չեն:
3. Փորձարկման ընթացքում, եթե որևէ հիմնական ֆունկցիոնալությունը չի աշխատում այնպես, ինչպես սպասվում էր, ապա այդ կոնկրետ կառուցումը մերժվում է: Developer-ները պետք է շտկեն bug-երը և ստեղծեն նոր կառուցվածք՝ հետագա փորձարկման համար:
4. Smoke testing-ի հաջող փորձարկումից հետո հավելվածը պատրաստ է փորձարկման հաջորդ մակարդակին:


Sanity testing


1. Sanity testing-ը ընտրվում է Regression testing-ի փաթեթից՝ ընդգրկելով հավելվածի հիմնական գործառույթները:
2.Sanity Testing-ը կատարվում է ծրագրավորողների կողմից ստեղծված նոր կառուցվածքի վրա՝ համեմատաբար կայուն հավելվածի համար:
3. Երբ դիմումը հաջողությամբ անցնում է Sanity testing-ը, այն պատրաստ է թեստավորման հաջորդ մակարդակին:
4. Հեշտ է շփոթվել Smoke testing-ը և Sanity testing-ը: Նոր կառուցումից հետո նախնական հավելվածը փորձարկելու համար կատարվում է Smoke Testing: Բազմաթիվ թողարկումներից հետո, երբ այն կայունություն է ձեռք բերել, նույն հավելվածի վրա կատարվում է Sanity Testing:


Acceptance testing

1. Acceptance testing-ի ընթացքում ստուգվում է վերջնական օգտագործողի կողմից հայտի ընդունումը: Այս թեստավորման նպատակն է համոզվել, որ մշակված համակարգը կատարում է բոլոր այն պահանջները, որոնք համաձայնեցվել են բիզնեսի պահանջների ստեղծման ժամանակ:
2. Այն իրականացվում է System testing-ից անմիջապես հետո և մինչև հավելվածի վերջնական թողարկումը:
3. Acceptance testing-ը օգտվողի համար դառնում է համակարգը կամ ընդունելու կամ մերժելու չափանիշ:
4. Դա Black-Box թեստավորման տեխնիկա է, քանի որ մենք միայն շահագրգռված ենք իմանալ հավելվածի աշխատունակությունը շուկայի և իրական օգտագործողների համար:



Օգտակար հղումներ՝

Functional testing article/eng
Functional testing types article/eng
Functional testing article/rus
Functional testing video tutorial/eng
Functional testing video tutorial/rus

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