Тестии ғайрифунксионалӣ чӣ гуна аст?
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)
Вынікі нефункцыянальнага тэставання часта прадстаўлены ў выглядзе справаздач, графікаў і метрык, якія дазваляюць ацаніць характарыстыкі сістэмы і прыняць рашэнні аб неабходных паляпшэннях.