Co to jest testowanie front-endu?

โšก Inteligentne podsumowanie

Testowanie front-end weryfikuje graficzny interfejs uลผytkownika, funkcjonalnoล›ฤ‡, uลผytecznoล›ฤ‡ i wydajnoล›ฤ‡ warstwy prezentacyjnej, dziฤ™ki czemu bล‚ฤ™dy ukล‚adu, niedziaล‚ajฤ…ce skrypty i wolno dziaล‚ajฤ…ce strony sฤ… wychwytywane zanim zauwaลผฤ… je prawdziwi uลผytkownicy.

  • ๐Ÿ”˜ Najpierw zakres: Pisemny plan ustala przeglฤ…darki, systemy operacyjne i urzฤ…dzenia objฤ™te skryptowaniem przed rozpoczฤ™ciem skryptowania.
  • ๏ธ Trzy czynniki wyzwalajฤ…ce: regresja CSS, JavaSprawdzanie poprawnoล›ci dziaล‚ania skryptรณw i wydajnoล›ci jest gล‚รณwnym zadaniem wiฤ™kszoล›ci pakietรณw front-end.
  • โœ… Apartamenty warstwowe: Sprawdzanie jednostek, komponentรณw, elementรณw kompleksowych, regresji wizualnej i dostฤ™pnoล›ci โ€” kaลผde z nich wykrywa inny bล‚ฤ…d.
  • ๐Ÿงช Mieszanka narzฤ™dzi: Jaล›min, Selenium, CSSLint i BackstopJS znajdujฤ… siฤ™ obok Jesta, Cypress i dramatopisarz.
  • ๐Ÿ› ๏ธ. Szybsze biegi: Przeglฤ…darki bez interfejsu graficznego, mniejsze renderowanie DOM i izolowane przypadki testowe skracajฤ… kaลผdy cykl regresji.
  • ๐Ÿ“ˆ Skupienie na wydajnoล›ci: Wskaลบniki Core Web Vitals mierzone za pomocฤ… PageSpeed โ€‹โ€‹Insights pokazujฤ…, czy uลผytkownicy szybko docierajฤ… do odbiorcy z informacjฤ… o interfejsie.

Testowanie front-endu interfejsu graficznego, funkcjonalnoล›ci i uลผytecznoล›ci w aplikacji internetowej

Co to jest testowanie front-endu?

Testowanie front-endu jest technikฤ… testowฤ…, w ktรณrej Graficzny interfejs uลผytkownika (GUI), funkcjonalnoล›ฤ‡ i uลผytecznoล›ฤ‡ Aplikacja internetowa sฤ… testowane. Celem jest potwierdzenie, ลผe warstwa prezentacji pozostaje wolna od bล‚ฤ™dรณw w kolejnych aktualizacjach.

Na przykล‚ad, jeล›li wpiszesz swoje imiฤ™ i nazwisko w polu formularza, cyfry nie powinny byฤ‡ akceptowane. Sprawdzanie wyrรณwnania elementรณw interfejsu graficznego to kolejny codzienny problem.

Oprรณcz tego przeprowadzane sฤ… testy front-end:

  • Testowanie regresji CSS: drobne zmiany CSS, ktรณre psujฤ… wyglฤ…d front-endu.
  • JavaZmiany w skrypcie ktรณre powodujฤ…, ลผe front-end staje siฤ™ niefunkcjonalny.
  • Kontrole wydajnoล›ci od tego, jak szybko interfejs staje siฤ™ uลผyteczny.

Jak stworzyฤ‡ plan testowania witryny frontendowej?

Utworzenie planu testรณw front-end to prosty, czteroetapowy proces.

Krok 1) Znajdลบ narzฤ™dzia do zarzฤ…dzania planem testรณw.

Krok 2) Okreล›l budลผet na testy front-end.

Krok 3) Ustaw harmonogram caล‚ego procesu.

Krok 4) Okreล›l zakres projektu. Zakres obejmuje:

  • Operasystemy i przeglฤ…darki uลผywane przez Twoich uลผytkownikรณw
  • Popularne urzฤ…dzenia uลผywane przez odbiorcรณw
  • Umiejฤ™tnoล›ci techniczne publicznoล›ci
  • Prฤ™dkoล›ฤ‡ poล‚ฤ…czenia internetowego odbiorcรณw

Dlaczego warto stworzyฤ‡ plan testรณw front-end?

Poniลผszy diagram przedstawia dwa wymiary, ktรณre musi uwzglฤ™dniaฤ‡ plan.

Plan testรณw front-end obejmujฤ…cy przeglฤ…darki i systemy operacyjne w zakresie

Plan okreล›la, ktรณre przeglฤ…darki i system operacyjny Projekt musi obejmowaฤ‡. Moลผliwoล›ci kombinacji sฤ… niezliczone, wiฤ™c plan pozwala ograniczyฤ‡ zarรณwno nakล‚ad pracy, jak i koszty.

Plan ten niesie ze sobฤ… dwie wyraลบne korzyล›ci:

  • Daje caล‚kowitฤ… przejrzystoล›ฤ‡ co do zakresu projektu.
  • Daje pewnoล›ฤ‡, gdy projekt jest wdraลผany.

Wskazรณwki dotyczฤ…ce lepszego testowania front-endu

Wskazรณwki dotyczฤ…ce tworzenia lepszego planu testรณw front-end:

  • Rozsฤ…dnie przygotuj budลผet, zasoby i czas.
  • Uลผyj przeglฤ…darki bez interfejsu graficznego, aby testy wykonywaล‚y siฤ™ szybciej.
  • Zmniejsz iloล›ฤ‡ renderowania DOM w testach, aby przyspieszyฤ‡ wykonanie.
  • Izoluj przypadki testowe, aby szybko znaleลบฤ‡ przyczynฤ™ bล‚ฤ™du i aby cykl usuwania usterek byล‚ krรณtki.
  • Umoลผliw ponowne wykorzystanie skryptรณw testowych, aby przyspieszyฤ‡ cykle regresji.
  • Stosuj spรณjnฤ… konwencjฤ™ nazewnictwa dla skryptรณw testowych.
  • Zawiฤ…ลผ kaลผdy walizka testowa do jednego widocznego zachowania.

Narzฤ™dzia do testowania front-endu

Nie ma pojedynczego narzฤ™dzia obejmujฤ…cego skrypty, arkusze stylรณw i elementy wizualne, dlatego zespoล‚y ล‚ฤ…czฤ… kilka.

Narzฤ™dzie do testowania JS: Jasmine

Jaล›min jest ล›rodowiskiem programistycznym opartym na zachowaniu, sล‚uลผฤ…cym do testowania JAVASCRIPT Koncentruje siฤ™ na wartoล›ci biznesowej, a nie na szczegรณล‚ach technicznych, ma przejrzystฤ… skล‚adniฤ™ i nie jest zaleลผny od ลผadnego innego frameworka. Opiera siฤ™ na frameworkach do testรณw jednostkowych, takich jak JSSpec, ScrewUnit, JSpec i RSpec. Jest i Vitest to obecnie powszechnie stosowane alternatywy.

Narzฤ™dzie do testowania funkcjonalnego: Selenium

Selenium przeprowadza kompleksowe testy w rรณลผnych przeglฤ…darkach i na rรณลผnych platformach, takich jak Windows, macOS i Linux, i umoลผliwia pisanie testรณw w Java, Python, C# i inne jฤ™zyki. Selenium IDE dodaje nagrywanie i odtwarzanie, wiฤ™c pierwszy skrypt nie wymaga ลผadnego kodu. Cypress i Playwright poruszajฤ… ten sam obszar z wbudowanym oczekiwaniem i tracing.

CSS i narzฤ™dzia wizualne: CSSLint i BackstopJS

CSSLint jest otwartym kodem ลบrรณdล‚owym napisanym w JavaSkrypt uruchamiany w przeglฤ…darce i z wiersza poleceล„. Nie jest juลผ aktywnie utrzymywany, dlatego zespoล‚y teraz sprawdzajฤ… arkusze stylรณw za pomocฤ… Stylelint lub obsล‚ugi CSS w ESLint.

BackstopJS Obsล‚uguje wizualne testy regresyjne. Renderuje strony w przeglฤ…darce Chrome bez interfejsu graficznego, porรณwnuje kaลผdy zrzut ekranu z zatwierdzonym obrazem referencyjnym i umoลผliwia konfiguracjฤ™ rozmiarรณw okienek podglฤ…du oraz warunkรณw zaliczenia/niezaliczenia.

Dwa wyzwania dotyczฤ… kaลผdego narzฤ™dzia do testowania front-end:

  • Automatyzacja testรณw wymaga duลผego wysiล‚ku na etapie poczฤ…tkowym.
  • Narzฤ™dzia mogฤ… mieฤ‡ problemy ze zgodnoล›ciฤ… z niektรณrymi systemami operacyjnymi i wersjami przeglฤ…darek.

Optymalizacja wydajnoล›ci front-endu

Testowanie wydajnoล›ci front-endu odpowiada na jedno pytanie: jak szybko strona siฤ™ ล‚aduje i staje siฤ™ uลผyteczna? Dobrฤ… praktykฤ… jest dostrojenie jej do pojedynczego uลผytkownika, zanim aplikacja osiฤ…gnie wysokie obciฤ…ลผenie. test wydajnoล›ci.

Dlaczego optymalizacja wydajnoล›ci front-endu jest waลผna?

Kiedyล› optymalizacja wydajnoล›ci oznaczaล‚a dostrajanie serwera, poniewaลผ wiฤ™kszoล›ฤ‡ stron internetowych byล‚a statyczna, a przetwarzanie odbywaล‚o siฤ™ po stronie serwera.

Wraz ze wzrostem dynamiki aplikacji internetowych, znacznie wiฤ™cej pracy przeniosล‚o siฤ™ do przeglฤ…darki: kod frameworka, skrypty zewnฤ™trzne, obrazy i czcionki. Kod po stronie klienta staล‚ siฤ™ wฤ…skim gardล‚em.

Jaka jest korzyล›ฤ‡ z optymalizacji wydajnoล›ci front-endu?

  • Problemy po stronie klienta negatywnie wpล‚ywajฤ… na komfort uลผytkowania tak samo bezpoล›rednio jak wฤ…skie gardล‚a serwera, dlatego oba te czynniki zasล‚ugujฤ… na uwagฤ™.
  • Wiฤ™ksza czฤ™ล›ฤ‡ oczekiwania uลผytkownika nastฤ™puje po odpowiedzi serwera โ€” pobraniu, przeanalizowaniu i wyrenderowaniu โ€” dlatego praca front-endu czฤ™sto przynosi wiฤ™kszy widoczny zysk.
  • Rozwiฤ…zania takie jak kompresja obrazรณw, wstrzymanie wykonywania skryptรณw i rezerwowanie miejsca na multimedia sฤ… taล„sze niลผ przebudowa zaplecza.
  • Podstawowe wskaลบniki internetowe โ€” najwiฤ™ksze malowanie treล›ci, interakcja z nastฤ™pnym malowaniem i skumulowany ukล‚ad Shift โ€” udostฤ™pnij wyniki w formie wspรณlnej tablicy wynikรณw.

Narzฤ™dzia do testowania wydajnoล›ci frontonu

1. Statystyki PageSpeed

PageSpeed โ€‹โ€‹Insights is GoogleBezpล‚atna usล‚uga analizy stron. Przeprowadza audyt Lighthouse, raportuje wskaลบniki Core Web Vitals i wyล›wietla sugestie dotyczฤ…ce skrรณcenia czasu ล‚adowania. Lighthouse jest rรณwnieลผ dostฤ™pny w Chrome DevTools.

2. Pingdom

Pingdom to usล‚uga monitorowania stron internetowych i ich wydajnoล›ci. Informuje klientรณw o spowolnieniu dziaล‚ania strony lub jej wyล‚ฤ…czeniu, dziฤ™ki czemu problemy pojawiajฤ… siฤ™, zanim uลผytkownicy je zgล‚oszฤ….

Cechy:

  • Sprawdza wszystkie czฤ™ล›ci strony internetowej
  • Zapewnia przeglฤ…d wydajnoล›ci
  • Traces twoja historia wynikรณw
  • Umoลผliwia testowanie z wielu lokalizacji

FAQ

Testy front-end sprawdzajฤ… to, co widzi uลผytkownik โ€“ ukล‚ad, interakcje i responsywnoล›ฤ‡. Testy back-end sprawdzajฤ… serwery, API i bazy danych interfejsu. Te dwa elementy siฤ™ uzupeล‚niajฤ…, a wydanie wymaga obu.

Typowy zestaw warstw obejmuje testy jednostkowe funkcji, testy komponentรณw renderowanych widลผetรณw, testy kompleksowe ล›cieลผek uลผytkownika, regresjฤ™ wizualnฤ… zrzutรณw ekranu oraz skanowanie dostฤ™pnoล›ci. Kaลผda warstwa wychwytuje bล‚ฤ™dy, ktรณrych inne nie dostrzegajฤ….

Zrzut ekranu bazowego jest zatwierdzany, a nastฤ™pnie kolejne uruchomienia sฤ… z nim porรณwnywane piksel po pikselu. Rรณลผnice sฤ… akceptowane lub odrzucane przez czล‚owieka, co pozwala na wychwycenie luk w ukล‚adzie, ktรณrych nigdy nie dostrzegajฤ… asercje funkcjonalne.

Tak. Skanery sygnalizujฤ… brakujฤ…ce etykiety, sล‚aby kontrast i nieprawidล‚owฤ… kolejnoล›ฤ‡ ustawiania ostroล›ci w tym samym procesie. Przebiegi klawiatury i czytnika ekranu pozostajฤ… rฤ™czne, wiฤ™c testowanie dostฤ™pnoล›ci nigdy nie jest w peล‚ni zautomatyzowany.

Sztuczna inteligencja umoลผliwia tworzenie projektรณw przypadkรณw testowych na podstawie historii uลผytkownikรณw, proponuje stabilne selektory, samonaprawia lokalizatory po zmianach w znacznikach i grupuje niemal identyczne rรณลผnice wizualne. RevPoglฤ…d nadal ma znaczenie: wygenerowane stwierdzenie moลผe zablokowaฤ‡ defekt.

Drugi pilot GitHub Tworzy testy komponentรณw, makiety i obiekty stronicowania z otwartego pliku, usuwajฤ…c znacznฤ… czฤ™ล›ฤ‡ szablonu. Zachowania asynchroniczne i reguล‚y biznesowe, ktรณrych nigdy nie widziaล‚, nadal wymagajฤ… sprawdzenia przez programistฤ™.

Oba. Powtarzalne kontrole โ€” formularze, nawigacja, migawki ukล‚adu โ€” sฤ… automatyzowane przy kaลผdej kompilacji. Prace eksploracyjne, ocena wizualna i obserwacja uลผytecznoล›ci pozostajฤ… rฤ™czne, poniewaลผ zaleลผฤ… od interpretacji czล‚owieka.

Pozwรณl analityce decydowaฤ‡. Obejmij przeglฤ…darki, wersje i rozmiary ekranรณw generujฤ…ce najwiฤ™kszy ruch, dodaj jednฤ… starszฤ… bazฤ™ danych, a resztฤ™ traktuj jako kontrole wyrywkowe. testy mobilne.

Podsumuj ten post nastฤ™pujฤ…co: