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-ն կարող է փոխվել օգտագործողի գործողությունների կամ տվյալների հիման վրա:
  • Ասինխրոն գործողություններ: Բարեփոխումներ և պատասխաններ կարող են լինել ասինխրոն:
  • Տարբեր միջավայրեր: Պահանջ է տարբեր սարքերում, բրաուզերներում և լուծաչափերում թեստավորել:
  • Зависимость от бекенда: Դուրս գալու ճիշտ աշխատանքը հաճախ կախված է բեքենդի հասանելիությունից և ճշգրտությունից:
  • Հաճախ փոփոխություններ: Ֆրոնտենդը հաճախ փոխվում է զարգացման ընթացքում:

Ընդհանուր առմամբ, հաճախորդային մասի թեստավորումը կարևոր փուլ է որակի և օգտագործման հարմարավետության ապահովման համար։ Այն պահանջում է ինչպես ռուական, այնպես էլ ավտոմատացված մոտեցում՝ լրիվ ծածկույթի համար։