Ի՞նչ է Software Testing–ը


Այն համակարգչային ծրագրի ստուգման պրոցեսն է, հասկանալու, արդյո՞ք այն
համապատասխանում է նշված պայմաններին և տալի՞ս է ցանկալի արդյունք, թե՞ ոչ:
Նպատակն է` մի շարք գործողությունների միջոցով գտնել ծրագրի defect – ները և
մինչ օգտագործողին տրամադրելը հաստատել ծրագրի ճշգրտությունը,
ամբողջականությունը և որակը:

Թեստավորում մասնագիտության առաջացման խթանը դարձավ այն գիտակցումը, որ ծրագրերի հաջողության գլխավոր գրավականը դրանց որակն է։ Դա է պատճառը, որ հիմա գրեթե բոլոր ՏՏ ընկերություններն ունեն այս հաստիքի մասնագետներ, քանի որ առաջնային նշանակություն ունի պրոդուկտի որակը՝ համապատասխանությունը պահանջներին, անսխալ ու անխափան աշխատանքը։

Թեստավորման մասնագետը ծրագրի մշակման փուլում ծանոթանում է բոլոր պահանջներին և մտածում, թե ինչպիսի թեստավորում է պետք իրականացնել։ Ծրագրի մշակման ավարտից հետո թեստավորման մասնագետը ստուգում է պրոդուկտի համապատասխանությունը պահանջներին, ապա` ծանոթանում պրոդուկտին որպես օգտատեր։ Այդ ընթացքում նա կատարում է բազմաթիվ գործողություններ՝ ստուգելով, թե ինչպես է աշխատում պրոդուկտը։ Առաջացող սխալները մուտքագրվում են դրա համար նախատեսված համակարգ, ծրագրավորողներն ուղղում են այն, ապա թեստավորողը նորից է ստուգում աշխատանքը։ Կարևոր է հետևել, որ մեկ սխալի ուղղումը չդառնա նոր սխալների առաջացման պատճառ։



Ինչու՞ է Software Testing-ը կարևոր


Software testing-ը կարևոր է, քանի որ եթե software-ում առկա են bug-եր կամ error-ներ, այն կարելի է վաղ հայտնաբերել և լուծել մինչև ծրագրային product-ի առաքումը: Պատշաճ թեստավորված software product-ը ապահովում է հուսալիություն, անվտանգություն և բարձր կատարողականություն, ինչը հետագայում հանգեցնում է ժամանակի խնայողության, ծախսերի արդյունավետության և հաճախորդների գոհունակության: Թեստավորումը կարևոր է, քանի որ software bug-երը կարող են թանկ կամ նույնիսկ վտանգավոր լինել: Software bug-երը կարող են պոտենցիալ դրամական և մարդկային կորուստներ պատճառել։ Պատմությունը լի է նման օրինակներով:

  • 2015 թվականի ապրիլին Լոնդոնի Bloomberg տերմինալը վթարի ենթարկվեց software bug-ի պատճառով, որը տուժեց ավելի քան 300,000 թրեյդերների ֆինանսական շուկաներում: Դա ստիպեց կառավարությանը հետաձգել 3 միլիարդ ֆունտ ստեռլինգ պարտքի վաճառքը:
  • Nissan մեքենաները շուկայից հետ են կանչել ավելի քան 1 միլիոն մեքենա՝ անվտանգության բարձիկների զգայական դետեկտորների software bug-ի պատճառով: Այս ծրագրաշարի ձախողման պատճառով երկու վթար է գրանցվել:
  • Starbucks-ը ստիպված է եղել փակել խանութների մոտ 60 տոկոսը ԱՄՆ-ում և Կանադայում՝ իր POS համակարգի software bug-ի պատճառով: Մի պահ խանութը սուրճ է մատուցել անվճար, քանի որ նրանք չեն կարողացել ընթացք տալ գործարքին:
  • Amazon-ի երրորդ կողմի մանրածախ վաճառողներից ոմանք տեսել են, որ իրենց արտադրանքի գինը նվազել է մինչև 1p՝ software անսարքության պատճառով: Նրանք մնացել են մեծ կորուստներով։
  • Խոցելիություն Windows 10-ում: Այս bug-ը թույլ է տալիս օգտվողներին փախչել անվտանգության ավազատուփերից՝ win32k համակարգի թերության պատճառով: 2015 թվականին F-35 կործանիչն ծրագրային սխալի զոհ է դարձել, ինչի պատճառով այն չի կարողացել ճիշտ հայտնաբերել թիրախները։
  • China Airlines Airbus A300-ը վթարի է ենթարկվել ծրագրային սխալի պատճառով 1994 թվականի ապրիլի 26-ին, ինչի հետևանքով զոհվել է 264 անմեղ մարդ։
  • 1985 թվականին Կանադայի Therac-25 ճառագայթային թերապիայի մեքենան անսարքության պատճառով խափանվեց software bug-ի պատճառով և մահացու ճառագայթման չափաբաժիններ հասցրեց հիվանդներին, ինչի հետևանքով մահացավ 3 մարդ, ևս 3-ը ծանր վիրավորվեցին:
  • 1999 թվականի ապրիլին software bug-ը պատճառ դարձավ 1,2 միլիարդ դոլար արժողությամբ ռազմական արբանյակի արձակման ձախողման՝ պատմության մեջ ամենաթանկ վթարը։
  • 1996-ի մայիսին software bug-ի պատճառով ԱՄՆ-ի խոշոր բանկի 823 հաճախորդների բանկային հաշիվները 920 միլիոն ԱՄՆ դոլարով վարկավորվեցին


Software Testing-ի եղանակները


  • Positive Testing – Փորձարկման այս եղանակի դեպքում մուտքագրելով valid data` ստուգվում է, արդյո՞ք application-ը ակնկալվածի պես աշխատում է, թե՞ ոչ


Օրինակ՝
Կա text box, որն ընդունում է միայն թվեր ՝ մինչև 99999-ը, մնացած բոլոր արժեքները
չեն ընդունվում: Testing-ը կլինի Positive, երբ որպես մուտքային արժեքներ վերցնենք
0-99999 թվերը և ստուգենք համակարգը ընդունու՞մ է այս արժեքները, թե՞ ոչ:


  • Negative Testing - Փորձարկման այս եղանակի դեպքում մուտքագրելով invaliddata` ստուգվում է, թե արդյո՞ք application-ը չի անում մի բան, որը թույլատրված չէ:


Օրինակ՝
Նախորդ օրինակի text box-ում որպես մուտքային արժեքներ վերցնենք A-Z, a-z
սիմվոլները, application-ը կամ պետք է չընդունի, կամ error message տա:



Positive և Negative testing-ի իրականացման տեխնիկաները


  • Boundary Value Analysis – Այս դեպքում ստուգվում են միայն եզրային արժեքները: Ընդ որում, եթե մուտքագրված տվյալները եզրային արժեքների սահմաններում են, ապա Positive Testing է, իսկ եթե դուրս են՝ Negative Testing:


Օրինակ ՝
Text box-ն ընդունում է միայն 0-10 արժեքներ, մնացած բոլոր թվերն invalid են:
Կստուգվեն -1, 0, 1 և 9, 10, 11 եզրային արժեքները:


  • Equivalence Partitioning – Այս դեպքում մուտքային տվյալը բաժանվում է մասերի: Յուրաքանչյուր մասից պետք է ստուգվի առնվազն մեկ անգամ: Valid արժեքներն օգտագործվում են Positive Testing-ի համար, invalid արժեքները՝ Negative Testing-ի:


Նախորդ օրինակի համար մուտքային տվյալները բաժանում ենք 2 (կամ 3) մասի,
Օրինակ՝ -10-ից 0 և 0-ից 10: Ստուգելու համար վերցնում ենք 5 (Positive Testing), -5
(Negative Testing):




Օգտակար հղումներ`
Software testing /video tutorial/eng
Software testing /video tutorial/rus
Software testing /article/eng
Software testing /article/eng

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