Junior
Дар бораи санҷиши қисми мизоҷии барномаҳо нақл кун.
sobes.tech AI
Ҷавоб аз AI
Моъ шурӯъ мекунем, ки санҷиши қисми мизоҷ (фронтенд) ба санҷиши интерфейси корбар (UI) ва ҳамкории бо он тамаркуз мекунад. Ин дар бар мегирад функсионалият, иҷроиш, таҷрибаи корбар (UX), бехатарӣ ва мувофиқати байни браузерҳо.
Типҳои санҷиши қисми мизоҷ:
- Санҷиши функсионалӣ: Санҷиши мувофиқати интерфейс бо талаботи спецификация.
- Санҷиши дурустии кории тугмаҳо, формҳо, пайвандҳо.
- Санҷиши тасдиқи воридоти маълумот.
- Санҷиши дурустии намоиши маълумот.
- Тестҳои UI: Санҷиши визуалӣ аз интерфейс.
- Санҷиши тарҳ, ҳарфҳо, рангҳо, андозаи унсурҳо.
- Санҷиши намоиш дар резолюсияҳои гуногуни экран (тарҳрезии мутобиқшаванда).
- Тестҳои UX: Арзёбии бароҳатии истифодаи барнома.
- Санҷиши интуитивии навигатсия.
- Санҷиши осонии иҷрои вазифаҳо аз ҷониби корбар.
- Гирдоварии фикру мулоҳизаҳо аз корбарон (касе вақтҳо).
- Санҷиши иҷроиш: Арзёбии суръати боркунии саҳифаҳо ва ҷавобгӯии интерфейс.
- Истифодаи воситаҳо барои таҳлили суръати боркунӣ (масалан, Lighthouse).
- Санҷиши борбардорӣ (агарчӣ бештар барои бэкенд аст, метавонад ба фронтенд таъсир расонад).
- Санҷиши бехатарӣ: Санҷиши осебпазирӣ дар ҷониби клиент.
- Санҷиши XSS (Cross-Site Scripting).
- Санҷиши CSRF (Cross-Site Request Forgery).
- Санҷиши воридкунии код.
- Тестҳои байни браузерӣ: Санҷиши дурустии намоиш ва коркард дар браузерҳои гуногун ва версияҳои онҳо.
- Тестҳои байни платформа: Санҷиши коркард дар системаи оператсионӣ ва дастгоҳҳои гуногун (компютерҳо, планшетҳо, смартфонҳо).
Равишҳои санҷиш:
- Рӯйӣ: Ин аз ҷониби инсон, ки амалҳои корбарро имитатсия мекунад, гузаронида мешавад. Барои тестҳои UI ва UX самаранок аст.
- Автоматӣ: Истифодаи воситаҳо ва чаҳорчӯбаҳо барои иҷрои автоматии сценарийҳои санҷишӣ. Барои регрессия ва функсионалӣ самаранок аст.
Воситаҳои санҷиши автоматӣ:
- Selenium: Чаҳорчӯбаи васеъ барои автоматизатсияи браузерҳо. Аз ҷониби забонҳои барномасозӣ дастгирӣ мекунад.
- Cypress: Чаҳорчӯбаи тестии фронтенд, махсус барои веб таҳия шудааст. Беҳтарин ва осон барои истифода.
- Playwright: Чаҳорчӯбаи Microsoft барои санҷиши пурра ва боэътимод. Дар бар мегирад браузерҳо ва забонҳои гуногун.
- Jest, Mocha: Чаҳорчӯбаҳо барои тестҳои модулӣ JavaScript.
Маслиҳат барои тестҳои Selenium (Python):
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
import time
# Танзими драйвери Chrome
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
try:
# кушодани саҳифа
driver.get("https://www.example.com")
# Санҷиши унвони саҳифа
assert "Example Domain" in driver.title
# ёфтани унсур бо матни пайванд
link_element = driver.find_element(By.LINK_TEXT, "More information...")
assert link_element.is_displayed() # Санҷиши намоён будани унсур
# клик дар пайванд (мисол)
# link_element.click()
# time.sleep(2) # интизорӣ барои боркунии саҳифаи нав
finally:
# Баста кардани браузер
driver.quit()
Маслиҳат барои тест бо Cypress:
// cypress/integration/example_spec.js
describe('Тести аввалини ман', () => {
it('Меҳмонӣ ба вебсайти намунавӣ', () => {
// кушодани саҳифа
cy.visit('https://www.example.com')
// санҷиши унвони саҳифа
cy.title().should('include', 'Example Domain')
// санҷиши мавҷудияти унсур бо матн
cy.contains('More information...').should('be.visible')
// клик дар пайванд (мисол)
// cy.contains('More information...').click()
// cy.url().should('include', '/moreinfo') // санҷиши URL пас аз клик
})
})
Хусусиятҳои санҷиши қисми мизоҷ:
- Динамикӣ будани интерфейс: UI метавонад вобаста ба амалҳои корбар ё маълумотҳо тағир ёбад.
- Амалиётҳои асинхронӣ: Заявкаҳо ба сервер ва ҷавобҳои онҳо метавонанд асинхронӣ бошанд.
- Мавҷудияти муҳитҳо: Санҷиш дар дастгоҳҳо, браузерҳо ва резолюсияҳои гуногун зарур аст.
- Зависӣ аз бекенд: Коркарди дурустии фронтенд аксар вақт ба дастрасӣ ва дурустии ҷавобҳо аз бекенд вобаста аст.
- Пайваста тағир ёбӣ: Фронтенд дар равандҳои таҳия тағир меёбад.
Ҳамагӣ, санҷиши қисми мизоҷ як марҳилаи муҳим барои таъмини сифати ва истифодаи қулайи барномаҳои веб мебошад. Он талаб мекунад, ки ҳам ручӣ ва ҳам автоматӣ барои пӯшиши пурра истифода шаванд.