Sobes.tech
Junior

Тестии ғайрифунксионалӣ чӣ гуна аст?

sobes.tech AI

Ҷавоб аз AI

Нефункцыянальнае тэставанне — тып тэставання праграмнага забеспячэння, накіраваны на праверку яго нефункцыянальных патрабаванняў. Ён ацэньвае характарыстыкі сістэмы, якія не звязаны непасрэдна з канкрэтнымі функцыямі, а хутчэй з тым, "як" сістэма працуе.

Асноўныя мэты нефункцыянальнага тэставання:

  • Забяспечыць адпаведнасць сістэмы чаканням карыстальнікаў і бізнесу ў частцы прадукцыйнасці, надзейнасці, зручнасці выкарыстання і іншых аспектаў.
  • Выявіць праблемы, якія могуць паўплываць на стабільнасць, маштабаванасць і бяспеку сістэмы.
  • Пацвердзіць адпаведнасць сістэмы ўстаноўленым стандартам і патрабаванням.

Віды нефункцыянальнага тэставання:

Тып тэставання Кароткае апісанне Прыклады правяраемых характарыстык
Тэставанне прадукцыйнасці Ацэнка хуткасці, рэакцыі, стабільнасці і маштабаванасці сістэмы пад нагрузкай. Час адказу, прапускная здольнасць, нагрузка CPU/памяці.
Загрузачнае тэставанне Праверка паводзін сістэмы пры чаканай пікавай нагрузцы. Колькасць адначасовых карыстальнікаў, транзакцый у секунду.
Стрэсавое тэставанне Праверка паводзін сістэмы пры перавышэнні чаканай пікавай нагрузкі або недахопе рэсурсаў. Точка адмовы сістэмы, паводзіны пры перагрузцы.
Тэставанне стабільнасці (Endurance Testing) Праверка здольнасці сістэмы вытрымліваць працяглую бесперапынную працу пад нагрузкай. Уцечкі памяці, дэградацыя прадукцыйнасці з цягам часу.
Тэставанне бяспекі Праверка абароненасці сістэмы ад знешніх і ўнутраных пагроз, несанкцыянаванага доступу. Абарона ад SQL-ін'екцый, XSS-атак, аўтэнтыфікацыя, аўтарызацыя.
Тэставанне зручнасці выкарыстання (Usability Testing) Вызначэнне таго, наколькі лёгка і інтуітыўна зразумела карыстальнікам выкарыстоўваць сістэму. Зразумелы інтэрфейс, лёгкая навігацыя, даступнасць.
Тэставанне сумяшчальнасці Праверка працы сістэмы ў розных асяроддзях (браузеры, АС, прылады). Падтрымка розных версій браузераў, АС.
Тэставанне надзейнасці (Reliability Testing) Ацэнка здольнасці сістэмы выконваць свае функцыі без збояў на працягу вызначанага перыяду. Сярэдні час наработкі на адмову (MTBF), верагоднасць збою.
Тэставанне даступнасці (Accessibility Testing) Праверка зручнасці выкарыстання сістэмы для людзей з абмежаванымі магчымасцямі. Адпаведнасць стандартам 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()  # Выклікае HTTPError для няправільных адказаў (4xx або 5xx)
        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)

Вынікі нефункцыянальнага тэставання часта прадстаўлены ў выглядзе справаздач, графікаў і метрык, якія дазваляюць ацаніць характарыстыкі сістэмы і прыняць рашэнні аб неабходных паляпшэннях.