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.