Sobes.tech
Junior

მითხარი აპლიკაციების მომხმარებლის ნაწილის ტესტირების შესახებ.

sobes.tech AI

პასუხი AI-სგან

Մեր սկսելու համար, նշենք, որ հաճախորդային մասի (ֆրոնտենդի) թեստավորումը կենտրոնացած է օգտագործողի ինտերֆեյսի (UI) և նրա հետ փոխազդեցության ստուգման վրա: Սա ներառում է գործառականություն, արտադրողականություն, օգտագործողի փորձ (UX), անվտանգություն և բրաուզերների միջև համատեղելիություն:

Հաճախորդային մասի թեստավորման տեսակներ:

  • Գործառական թեստավորում: Ստուգում, որ ինտերֆեյսը համապատասխանում է տեխնիկական բնութագրերին:
    • Բիթների, ձևերի, հղումների ճիշտ աշխատանքը ստուգել:
    • Տվյալների մուտքի վավերականությունը ստուգել:
    • Տվյալների ճիշտ ցուցադրությունը ստուգել:
  • UI-թեստավորում: Վիզուալ ստուգում ինտերֆեյսի:
    • Մակետը, տառատեսակները, գույները, տարրերի չափը ստուգել:
    • Տարբեր էկրանների լուծաչափերում ցուցադրումը ստուգել (кардарга ылайыкташтырылган дизайн):
  • UX-թեստավորում: Колдонуучу үчүн ыңгайлуулук баалоо:
    • Навигациянын интуитивдүүлүгүн текшерүү:
    • Колдонуучу тапшырмаларды оңой аткаруусун текшерүү:
    • Колдонуучулардан керектүү пикирлерди чогултуу (кээде):
  • Ишке ашыруу ылдамдыгын тестирлөө: Баракчалардын жүктөө ылдамдыгын жана интерфейс жооп кайтаруусун баалоо:
    • Жылдамдыкты анализдөөчү инструменттерди колдонуу (мисалы, Lighthouse):
    • Жүктөө астында тестирлөө (бул көбүнесе бэкенд үчүн, бирок ал фронтендке да таасир этет):
  • Коопсуздук тестирлөө: Клиент тараптагы коопсуздукка көзөмөл:
    • XSS (Cross-Site Scripting) текшерүү:
    • CSRF (Cross-Site Request Forgery) текшерүү:
    • Код киргизүүнү текшерүү:
  • Браузерлер аралык тестирлөө: Төртүнчү браузерлерде жана алардын версияларында туура көрсөтүү жана иштөө:
  • Кросс-платформалык тестирлөө: Ар кандай операциялык системаларда жана түзмөктөрдө UI иштөөсү (компьютерлер, планшеттер, смартфондар):

Тестирлөө ыкмалары:

  • Кол менен тестирлөө: Колдонуучу аракеттерин имитация кылган адам тарабынан жүргүзүлөт. 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 колдонуучу аракеттерине же маалыматтарга жараша өзгөрүп турушу мүмкүн:
  • Асинхрондук операциялар: Серверге суроолор жана алардын жооптору асинхрондуу болушу мүмкүн:
  • Төртүнчү орталар: Ар кандай түзмөктөрдө, браузерлерде жана чечимдерде тестирлөө зарур:
  • Бэкендке көз каранды: Алдын ала иштөө жана туура жооптордун болушу фронтенддин туура иштешине таасир этет:
  • Көп өзгөрүүлөр: Фронтенд өнүгүү учурунда көп өзгөрөт:

Жалпысынан, клиенттик бөлүмдүн тестирлөөсү веб-аппликациялардын сапаты жана колдонуучу тажрыйбасын камсыз кылуу үчүн маанилүү этап. Ал толук камтылыш үчүн ручной жана автоматташтырылган ыкмаларды колдонуу талап кылынат.