Sobes.tech
Junior

Pastāsti man par lietojumprogrammu klienta daļas testēšanu.

sobes.tech AI

Atbilde no AI

Sāksim ar to, ka klienta puses testēšana (frontends) ir koncentrēta uz lietotāja saskarnes (UI) un tās mijiedarbības pārbaudi. Tas ietver funkcionalitāti, veiktspēju, lietotāja pieredzi (UX), drošību un pārlūkprogrammu saderību.

Klienta puses testēšanas veidi:

  • Funkcionālā testēšana: Saskaņotības pārbaude ar specifikāciju.
    • Pogu, formu, saitiņu pareizas darbības pārbaude.
    • Datu ievades validācijas pārbaude.
    • Datu attēlojuma pareizuma pārbaude.
  • UI testēšana: Vizualā saskarnes pārbaude.
    • Izkārtojuma, fontu, krāsu, elementu izmēra pārbaude.
    • Attēlojuma pārbaude dažādās ekrāna izšķirtspējās (pielāgots dizains).
  • UX testēšana: Lietotāja ērtības novērtējums.
    • Intuitīvas navigācijas pārbaude.
    • Vienkāršības novērtējums veicot uzdevumus.
    • Atsauksmju vākšana no lietotājiem (reizēm).
  • Veiktspējas testēšana: Lapas ielādes ātruma un reakcijas novērtējums.
    • Rīku izmantošana ātruma analīzei (piemēram, Lighthouse).
    • Slodzes testēšana (lai gan tas vairāk attiecas uz backend, tas var ietekmēt arī frontendu).
  • Drošības testēšana: Ievainojamības pārbaude klienta pusē.
    • XSS (Cross-Site Scripting) pārbaude.
    • CSRF (Cross-Site Request Forgery) pārbaude.
    • Koda injekciju pārbaude.
  • Pārlūkprogrammu saderības testēšana: Pareiza attēlojuma un darbības pārbaude dažādās pārlūkprogrammās un to versijās.
  • Krosplatformu testēšana: UI darbības pārbaude dažādās operētājsistēmās un ierīcēs (datori, planšetdatori, viedtālruņi).

Testēšanas pieejas:

  • Rokas testēšana: Veic cilvēks, imitējot lietotāja darbības. Efektīva UI un UX testēšanai.
  • Automatizēta testēšana: Rīku un ietvaru izmantošana automātiskai testu scenāriju izpildei. Efektīva regresijas un funkcionalitātes testēšanai.

Automatizētas klienta puses testēšanas rīki:

  • Selenijs (Selenium): Plaši izmantots pārlūkprogrammu automatizācijas ietvars. Atbalsta dažādas programmēšanas valodas.
  • Kipress (Cypress): Frontend testēšanas ietvars, izstrādāts īpaši webam. Ātrs un vienkārši lietojams.
  • Playwright: Microsoft izstrādāts uzticams end-to-end testēšanas ietvars. Atbalsta dažādas pārlūkprogrammas un valodas.
  • Jest, Mocha: JavaScript moduļu testu ietvari.

Piemērs vienkāršam Selenium (Python) testam:

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 vadītāja iestatīšana
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # Lapas atvēršana
    driver.get("https://www.example.com")

    # Lapas virsraksta pārbaude
    assert "Example Domain" in driver.title

    # Elementa atrašana pēc saites teksta
    link_element = driver.find_element(By.LINK_TEXT, "More information...")
    assert link_element.is_displayed() # Redzamības pārbaude
    
    # Saites klikšķināšana (piemērs)
    # link_element.click()
    # time.sleep(2) # Gaidīšana jauna lapas ielādei

finally:
    # Pārlūkprogrammas aizvēršana
    driver.quit()

Cypress testa piemērs:

// cypress/integration/example_spec.js

describe('Manas pirmās pārbaudes', () => {
  it('Aplūko piemēra vietni', () => {
    // Lapas atvēršana
    cy.visit('https://www.example.com')

    // Virsraksta pārbaude
    cy.title().should('include', 'Example Domain')

    // Elementa ar tekstu pārbaude
    cy.contains('More information...').should('be.visible')

    // Saites klikšķināšana (piemērs)
    // cy.contains('More information...').click()
    // cy.url().should('include', '/moreinfo') // URL pārbaude pēc klikšķa
  })
})

Klienta puses testēšanas īpatnības:

  • Dinamisks interfeiss: UI var mainīties atkarībā no lietotāja darbībām vai datiem.
  • Asinhronas operācijas: Pieprasījumi uz serveri un to atbildes var notikt asinhroni.
  • Daudzveidība vidēs: Nepieciešamība testēt dažādās ierīcēs, pārlūkprogrammās un izšķirtspējās.
  • Atkarība no backend: Pareiza frontenda darbība bieži ir atkarīga no backend atbildēm.
  • Biežas izmaiņas: Frontend bieži mainās izstrādes procesā.

Kopumā, klienta puses testēšana ir kritiski svarīgs posms, lai nodrošinātu kvalitāti un lietošanas ērtumu tīmekļa lietojumprogrammās. Tā prasa gan manuālu, gan automatizētu pieeju pilnīgai pārklāšanai.