Sobes.tech
Junior

Ի՞նչ է ոչ ֆունկցիոնալ թեստավորումը։

sobes.tech AI

Պատասխան AI-ից

Նեֆունկցիոնալ փորձարկումը՝ ծրագրային ապահովման փորձարկման տեսակ է, որը ուղղված է նրա նեֆունկցիոնալ պահանջների ստուգմանը։ Այն գնահատում է համակարգի հատկությունները, որոնք անմիջականորեն կապված չեն կոնկրետ գործառույթների հետ, այլ ավելի շատ՝ այն մասին, թե ինչպես է համակարգը աշխատում։

Նեֆունկցիոնալ փորձարկման հիմնական նպատակները՝

  • Համակարգը համապատասխանեցնել օգտագործողի և բիզնեսի սպասումներին՝ արտադրողականության, հուսալիության, օգտագործման հարմարավետության և այլ ասպեկտների մասով։
  • Հայտնել այն խնդիրները, որոնք կարող են ազդել համակարգի կայունության, մասշտաբայնության և անվտանգության վրա։
  • Պարզել համակարգի համապատասխանությունը հաստատված ստանդարտներին և պահանջներին։

Նեֆունկցիոնալ փորձարկման տեսակներ՝

Տեսակ Կարճ նկարագրություն Ստուգվող հատկանիշների օրինակներ
Արտադրողականության փորձարկում Համակարգի արագության, արձագանքի, կայունության և մասշտաբայնության գնահատում բեռի տակ։ Պատասխան ժամանակ, անցանելիություն, CPU/հիշողության բեռ։
Բեռի փորձարկում Համակարգի վարքագծի ստուգում սպասվող գագաթնակետային բեռի ժամանակ։ Միաժամանակ օգտագործողների քանակը, գործարքների քանակը վայրկյանում։
Սթրեսային փորձարկում Համակարգի վարքագծի ստուգում գագաթնակետային բեռից կամ ռեսուրսների պակասից վերազանցման դեպքում։ Սիստեմի անջատման կետը, բեռի տակ գործելու վարքագիծը։
Տևականության փորձարկում Համակարգի կարողությունը երկարատև անընդհատ աշխատանքը բեռի տակ ստուգելու համար։ Հիշողության թափոններ, արտադրողականության դեգրադացիա ժամանակի ընթացքում։
Անվտանգության փորձարկում Համակարգի պաշտպանվածության ստուգում արտաքին և ներքին սպառնալիքներից, անօրինական մուտքից։ SQL-միջամտությունների, XSS հարձակումների պաշտպանություն, հաստատում, թույլտվություն։
Օգտագործման հարմարավետության փորձարկում Որքան հեշտ և ինտուիտիվ է համակարգը օգտագործել օգտվողների համար։ Հասկանալի ինտերֆեյս, հեշտ նավիգացիա, հասանելիություն։
Համատեղելիության փորձարկում Համակարգի աշխատանքը տարբեր միջավայրերում (բրաուզերներ, օպերացիոն համակարգեր, սարքեր)։ Տարբեր բրաուզերների, օպերացիոն համակարգերի աջակցում։
Հավատարիմության փորձարկում Համակարգի կարողությունը կատարել իր գործառույթները առանց սխալների նշված ժամանակահատվածում։ Միջին ժամանակը սխալի վրա աշխատելու համար (MTBF), սխալի հավանականությունը։
Հասանելիության փորձարկում Համակարգի օգտագործման հարմարավետության ստուգում մարդկանց համար, ովքեր ունեն սահմանափակումներ։ WCAG ստանդարտների համապատասխանություն։
Տեղայնացման/ինտերնացիոնալիզացիայի փորձարկում Համակարգի հարմարեցում տարբեր լեզուների և տարածաշրջանային կարգավորումների համար։ Թարգմանված տողեր, ամսաթվերի/թվարկումների ձևաչափեր։

Նեֆունկցիոնալ փորձարկումը սովորաբար կատարվում է ծրագրային ապահովման զարգացման ցիկլի սկզբնական փուլերում, քան ֆունկցիոնալը, բայց դրա պլանավորումը սկսվում է պահանջների ձևավորմամբ։ Այն կարող է լինել ավտոմատացված գործընթացների մաս, հատկապես արտադրողականության և անվտանգության փորձարկումների ժամանակ։

Նեֆունկցիոնալ փորձարկման գործիքներ՝

  • Արտադրողականություն՝ JMeter, LoadRunner, Gatling, k6։
  • Անվտանգություն՝ OWASP ZAP, Burp Suite, Acunetix։
  • Համատեղելիություն՝ BrowserStack, Sauce Labs։
  • Օգտագործման հարմարավետություն՝ UserTesting.com, աչքի հետևման գործիքներ։

Նմուշ ավտոմատացման՝

import time
import requests

def measure_page_load_time(url):
    """
    Մեկնարկում է նշված URL-ի բեռնումը։
    """
    start_time = time.time()
    try:
        response = requests.get(url)
        response.raise_for_status()  # Դրական պատասխանների համար (4xx կամ 5xx) գցում է HTTPError
        end_time = time.time()
        load_time = end_time - start_time
        print(f"Բեռնում ժամանակ {url}: {load_time:.2f} վայրկյան")
        return load_time
    except requests.exceptions.RequestException as e:
        print(f"Սխալ {url} բեռնելիս: {e}")
        return None

# Օգտագործման օրինակ
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)

Նեֆունկցիոնալ փորձարկման արդյունքները հաճախ ներկայացվում են հաշվետվությունների, գրաֆիկների և մետրիկների տեսքով, որոնք թույլ են տալիս գնահատել համակարգի հատկությունները և ընդունել որոշումներ անհրաժեշտ բարելավումների մասին։