Sobes.tech
Middle

Rääkige rakenduse kliendi osa testimisest.

sobes.tech AI

Vastus AI-lt

Kliendi osa testimine (frontend-testimine) on suunatud kasutajaliidese ja sellega seotud interaktsiooni õigsuse kontrollile. Peamine eesmärk on veenduda, et rakendus näeb välja, käitub ja töötab õigesti lõppkasutaja vaatenurgast erinevatel seadmetel ja brauserites.

Kliendi osa testimise tüübid:

  • Visuaalne testimine (Visual Testing): Kontrollitakse kasutajaliidese elementide välimust, vastavust kujundustele ja disainile, puuduvad kattumised, nihked ja muud visuaalsed vead.
  • Funktsionaalne testimine (Functional Testing): Kontrollitakse kõigi interaktiivsete elementide (nupud, vormid, lingid jne) ja kliendi poole rakendatud äriloogika õigsust.
  • Ristbrauseri testimine (Cross-browser Testing): Kontrollitakse rakenduse kuvamist ja funktsionaalsust erinevates brauserites (Chrome, Firefox, Safari, Edge jne) ja nende versioonides.
  • Ristplatvormiline testimine (Cross-platform Testing): Kontrollitakse rakenduse tööd erinevatel operatsioonisüsteemidel (Windows, macOS, Linux) ja nende versioonides.
  • Jõudluse testimine (Performance Testing): Hinnatakse lehtede laadimiskiirust, kasutajaliidese reageerimisvõimet, mälu ja protsessori kasutust kliendi poolel.
  • Kasutusmugavuse testimine (Usability Testing): Hinnatakse kasutajale liidese lihtsust ja intuitiivsust, kontrollitakse vastavust üldtunnustatud UX/UI standarditele.
  • Ligipääsetavuse testimine (Accessibility Testing): Kontrollitakse rakenduse vastavust ligipääsetavuse standarditele (näiteks WCAG) kasutajatele piirangutega.
  • Reageeriva disaini testimine (Responsive Testing): Kontrollitakse rakenduse korrektset kuvamist ja tööd erineva ekraanisuurusega seadmetel (lauaarvutid, tahvelarvutid, mobiiltelefonid).
  • Turvalisuse testimine (Security Testing): Kontrollitakse haavatavusi kliendi poolel, näiteks Cross-Site Scripting (XSS) või Cross-Site Request Forgery (CSRF), kasutaja autentimist ja autoriseerimist.

Automatiseerimisvahendid kliendi osa testimiseks:

  • E2E (End-to-End) ja integratsioonitestide jaoks: Selenium, Cypress, Playwright.
  • Mooduli- ja komponenditesti jaoks (sõltuvalt raamistikust): Jest, Mocha, Jasmine (JavaScript/TypeScript), Testing Library, Enzyme.
  • Visuaalse testimise jaoks: Applitools, Percy.
  • Jõudluse testimiseks: Lighthouse, WebPageTest.
  • Ligipääsetavuse testimiseks: Axe DevTools, WAVE.

Näide Cypressi kasutamise testist:

// cypress/integration/example.spec.js
describe('Pealehe testimine', () => {
  beforeEach(() => {
    cy.visit('/'); // Mine pealehele
  });

  it('Lehe pealkirja kontroll', () => {
    cy.title().should('eq', 'Rakenduse nimi'); // Brauseri vahelehe pealkirja kontroll
  });

  it('Põhielemendi olemasolu kontroll', () => {
    cy.get('h1').should('contain', 'Tere tulemast'); // Kontroll, kas H1 element sisaldab teatud teksti
  });

  it('Nupu töö kontroll', () => {
    cy.get('button#myButton').click(); // Klõps nupule ID-ga 'myButton'
    cy.get('.success-message').should('be.visible'); // Edu sõnumi nähtavuse kontroll
  });
});

Jest ja React Testing Library näide React komponendi testimiseks:

// src/components/Button/Button.test.js
import { render, screen, fireEvent } from '@testing-library/react';
import Button from './Button';

describe('Nupu komponendi testimine', () => {
  it('Nupp kuvatakse õige tekstiga', () => {
    render(<Button text="Kliki mind" />);
    const buttonElement = screen.getByText(/Kliki mind/i);
    expect(buttonElement).toBeInTheDocument(); // Kontroll, kas element on dokumendis
  });

  it('Klõpsu käsitleja käivitatakse', () => {
    const handleClick = jest.fn(); // Moka funktsioon
    render(<Button text="Kliki mind" onClick={handleClick} />);
    const buttonElement = screen.getByText(/Kliki mind/i);
    fireEvent.click(buttonElement); // Simuleeritud klõps
    expect(handleClick).toHaveBeenCalledTimes(1); // Kontroll, kas funktsioon kutsuti välja üks kord
  });
});