Թեստավորման նպատակը application-ը ձախողելն է: Բավարար թեստավորումները նվազեցնում են թերությունների առկայությունը:
Այն դեպքում, երբ թեստավորողները չեն կարողացել հայտնաբերել թերություններ
regression թեստերից հետո, չի երաշխավորում, որ application-ը զերծ է բագերից:
Թեստավորումը մեզ ցույց է տալիս բագի առկայությունը, այլ ոչ թե դրա բացակայությունը։
Ի՞նչ է սպառիչ փորձարկումը:
Սպառիչ փորձարկումը բոլոր ֆունկցիաների փորձարկումն է՝ օգտագործելով բոլոր
valid եւ invalid մուտքերն ու նախապայմանները:
Ինչո՞ւ է անհնար հասնել սպառիչ թեստինգի:
Ենթադրենք, պետք է փորձարկել մուտքային դաշտ, որն ընդունում է տարիք՝ 18-20։
Մենք փորձարկում ենք դաշտը՝ օգտագործելով 18,19,20:
Եթե նույն մուտքային դաշտը ընդունում է 18-ից 100-ի սահմանները, ապա մենք պետք է փորձարկենք ՝ օգտագործելով այնպիսի մուտքեր, ինչպիսիք են` 18, 19, 20, 21,..., 99, 100:
Սա սովորական օրինակ է, եւ կարելի է մտածել,որ հնարավոր է հասնել դրան՝
օգտագործելով ավտոմատացման գործիքներ: Բայց եթե դաշտն ընդունի մի քանի
միլիարդ արժեքներ, հնարավոր չէ ստուգել բոլոր հնարավոր արժեքները ժամանակի սղության եւ սահմանափակումների պատճառով:
Այսպիսով, պետք է գտնել օպտիմալ քանակ՝ հիմնված application–ի ռիսկերի գնահատման (risk assessment) վրա: Tester-ը պետք է գտնի այն հատվածները, որտեղ bug-երի հավանականությունն ավելի մեծ է: Եվ քանի որ բոլոր դեպքերը քննարկել հնարավորչէ,կիրառվում է boundary testing-ը:
Իսկ ինչպե՞ս է իրականացվում ռիսկերի գնահատումը:
Օրինակ՝
Ո՞ր գործողությունը ամենայն հավանականությամբ կդառանա համակարգի
խափանման պատճառ.
OS- ի փորձարկման ժամանակ կարելի է նկատել, որ defect-ները հիմնականում
գտնվում են multi-tasking activity-ներում:
Թեստավորումը պետք է սկսվի հնարավորինս շուտ, որպեսզի առկա խնդիրները բացահայտվեն Software Development Life Cycle-ի վաղ փուլերում։
Software Testing Life Cycle-ի վաղ փուլերում հայտնաբերված թերությունները շտկելն ավելի էժան է։ Այսպիսով, վաղ փորձարկումների անցկացումը նվազեցնում է թերությունների շտկման ծախսերը։
Հայտնաբերված defect-ների մեծ մասը գտնվում են փոքր թվով մոդուլների մեջ՝ մոտավորապես 80% bug-երը գտնվում են 20% մոդուլներում: Ըստ փորձի կարելի է որոշել այդպիսի ռիսկային մոդուլները, բայց այս մոտեցման մեջ խնդիրն այն է, որ նույն test-ը մի քանի անգամ կրկնելու դեպքում նույն test case-երը bug-եր չեն գտնի:
Թունաքիմիկատների պարադոքսը Software testing-ի մեջ նույն թեստ քեյսերը կրկին ու կրկին կրկնելու գործընթացն է:
Գյուղատնտեսության մեջ միջատներին վերացնելու համար նույն թունաքիմիկատների խառնուրդի կրկնակի օգտագործումը ժամանակի ընթացքում հանգեցնում է նրան, որ միջատները զարգացնում են թունաքիմիկատների նկատմամբ դիմադրություն, որը հանգեցնում է դրանց անարդյունավետությանը միջատների վրա: Նույնը վերաբերում է Software testing-ին: Եթե կրկնվող փորձարկումների նույն շարքը կատարվի, մեթոդը անօգուտ կլինի նոր bug-եր հայտնաբերելու համար:
Այսպիսով, այս թունաքիմիկատների պարադոքսը հաղթահարելու համար անհրաժեշտ է պարբերաբար վերանայել թեստ քեյսերը եւ ավելացնել կամ թարմացնել դրանք՝ ավելի շատ թերություններ հայտնաբերելու համար:
Թեստավորման մոտեցումը կախված է application-ի կոնտեքստից: Մենք թեստավորում ենք տարբեր application-ներ տարբեր ձեւերով : Օրինակ առցանց բանկային կայքը
պահանջում է փորձարկման այլ մոտեցում ՝ ի տարբերություն էլեկտրոնային առեւտրի կայքի :
99%-ով բագերից զերծ application-ը կարող է դեռեւս անօգուտ լինել, եթե ներառվել են սխալ պահանջներ, եւ software- ը չի բավարարում բիզնես կարիքները: Այն ծրագիրը, որը մենք կառուցում ենք, ոչ միայն պետք է լինի 99% բագերից զերծ, այլեւ պետք է բավարարի բիզնես կարիքները, հակառակ դեպքում այն կդառնա անօգուտ ծրագիր:
Օգտակար հղումներ`
7 Principles of Software Testing /video tutorial/eng
Software Testing Principles /video tutorial/rus
Software Testing Principles /video tutorial/rus
7 Principles of Software Testing /article/eng
7 Principles of Software Testing /article/eng