Sobes.tech
Junior

Räägi mulle rakenduste kliendi osa testimisest.

sobes.tech AI

Vastus AI-lt

Alustame sellest, et kliendi poole testimine (frontend) keskendub kasutajaliidese (UI) ja sellega seotud interaktsiooni kontrollimisele. See hõlmab funktsionaalsust, jõudlust, kasutajakogemust (UX), turvalisust ja brauseritevahelist ühilduvust.

Kliendi poole testimise tüübid:

  • Funktsionaalne testimine: Liidese vastavuse kontrollimine spetsifikatsioonile.
    • Nuppude, vormide, linkide õige toimimise kontroll.
    • Andmesisestuse valideerimise kontroll.
    • Andmete kuvamise õigsuse kontroll.
  • UI testimine: Visuaalne liidese kontroll.
    • Paigutuse, fontide, värvide, elementide suuruse kontroll.
    • Kuvamise kontroll erinevates ekraanisuurustes (kohandatud disain).
  • UX testimine: Kasutajakogemuse hindamine.
    • Intuitiivse navigatsiooni kontroll.
    • Lihtsuse hindamine ülesannete täitmisel.
    • Tagasiside kogumine kasutajatelt (mõnikord).
  • Jõudluse testimine: Lehtede laadimiskiiruse ja reageerimise hindamine.
    • Tööriistade kasutamine kiiruse analüüsiks (nt Lighthouse).
    • Koormustestimine (kuigi see on rohkem backendile, võib see mõjutada ka frontendi).
  • Turvalisuse testimine: Ohukohtade kontroll kliendi poolel.
    • XSS (Cross-Site Scripting) kontroll.
    • CSRF (Cross-Site Request Forgery) kontroll.
    • Koodisüstide kontroll.
  • Brauseritevaheline testimine: Õige kuvamise ja toimimise kontroll erinevates brauserites ja nende versioonides.
  • Krossplatvormiline testimine: UI töökindluse kontroll erinevates operatsioonisüsteemides ja seadmetes (arvutid, tahvelarvutid, nutitelefonid).

Testimisstrateegiad:

  • Käsitsi testimine: Inimese poolt, kasutaja tegevusi imiteerides. Efektiivne UI ja UX testimiseks.
  • Automatiseeritud testimine: Tööriistade ja raamistikud kasutades automaatsete teststsenaariumite täitmiseks. Efektiivne regressiooni ja funktsionaalsuse testimiseks.

Automatiseeritud kliendi poole testimise tööriistad:

  • Selenium: Laialdaselt kasutatav brauserite automatiseerimise raamistik. Toetab erinevaid programmeerimiskeeli.
  • Cypress: Frontend testimise raamistik, loodud spetsiaalselt veebilehtedele. Kiire ja lihtne kasutada.
  • Playwright: Microsofti loodud usaldusväärne lõpp-ülese testimise raamistik. Toetab erinevaid brausereid ja keeli.
  • Jest, Mocha: JavaScripti moodulitestide raamistikud.

Näide lihtsast Selenium (Python) testist:

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'i draiveri seadistamine
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # Lehe avamine
    driver.get("https://www.example.com")

    # Lehe pealkirja kontroll
    assert "Example Domain" in driver.title

    # Linki teksti järgi elemendi leidmine
    link_element = driver.find_element(By.LINK_TEXT, "More information...")
    assert link_element.is_displayed() # Nähtavuse kontroll
    
    # Linki klõpsamine (näide)
    # link_element.click()
    # time.sleep(2) # Ooteaeg uue lehe laadimiseks

finally:
    # Brauseri sulgemine
    driver.quit()

Cypress testinäide:

// cypress/integration/example_spec.js

describe('Minu esimene test', () => {
  it('Külastab näidisveebi', () => {
    // Lehe avamine
    cy.visit('https://www.example.com')

    // Pealkirja kontroll
    cy.title().should('include', 'Example Domain')

    // Elementi teksti järgi kontroll
    cy.contains('More information...').should('be.visible')

    // Linki klõpsamine (näide)
    // cy.contains('More information...').click()
    // cy.url().should('include', '/moreinfo') // URL kontroll pärast klõpsu
  })
})

Kliendi poole testimise eripära:

  • Dünaamilisus: UI võib muutuda kasutaja tegevuste või andmete põhjal.
  • Asünkroonilised operatsioonid: Päringud serverile ja nende vastused võivad toimuda asünkroonselt.
  • Mitmekesisus keskkondades: Vajadus testida erinevates seadmetes, brauserites ja resolutsioonides.
  • Priklausus backendist: Õige frontendi töö sõltub sageli backendist saadud vastuste kättesaadavusest ja täpsusest.
  • Sagedased muudatused: Frontend muutub sageli arendusprotsessi käigus.

Kokkuvõttes on kliendi poole testimine kriitiliselt oluline samm kvaliteedi ja kasutusmugavuse tagamisel veebirakendustes. See nõuab nii käsitsi kui ka automatiseeritud lähenemist täieliku katvuse saavutamiseks.