Optimizing web application quality with test automation

Firma Innowise zintegrowała kompleksowe rozwiązanie do testowania automatyzacji jako usługę na każdym etapie procesu rozwoju.

Wyzwanie

Nasz klient zgłosił się do nas z konkretnym wyzwaniem. Potrzebował dokładnych testów interfejsu użytkownika dla kompleksowych scenariuszy testowych w różnych przeglądarkach dla swojej usługi audytu aplikacji internetowych. Co więcej, ich celem było zwiększenie wydajności aplikacji, zarówno po stronie klienta, jak i serwera. Oprócz rozwiązania tych podstawowych problemów, potrzebowali również szczegółowego systemu raportowania i dobrze skonfigurowanej infrastruktury testowej do obsługi szerokiej gamy środowisk testowych.

Rozwiązanie

Przeprowadzanie kompleksowych testów QA aplikacji internetowych

Firma Innowise zapewniła kompleksowy i ciągły cykl testowy na wszystkich etapach procesu tworzenia oprogramowania. Zespół AQA ukształtował wymagania testowe oraz sformułował plan i strategię testów. Nasze aktywne zaangażowanie i dogłębna wiedza specjalistyczna zapewniły, że proces testy QA aplikacji był rygorystyczny i dostosowany do unikalnych potrzeb i celów naszego klienta.

Wydajność dzięki testowaniu równoległemu

In our attempt to optimize testowania QA aplikacji internetowych zastosowaliśmy wysoce efektywne podejście – testowanie równoległe. W tej strategii przeprowadziliśmy równocześnie dwanaście różnych części testów, eliminując marnowanie czasu, które mogłoby wystąpić przy testowaniu sekwencyjnym. 

Test suites ran independently. This streamlined and agile testing method significantly expedited the overall testing process, enhancing productivity and efficiency while maintaining the highest quality assurance standards.

Playwright do kompleksowego testowania interfejsu użytkownika

Wraz z rosnącą złożonością nowoczesnych aplikacji internetowych, potrzeba solidnego frameworka do testowania interfejsu użytkownika staje się nadrzędna. Playwright pojawił się w naszym polu widzenia nie jako zwykłe narzędzie, ale jako narzędzie zmieniające zasady gry. Oferując wsparcie dla wielu przeglądarek, Playwright umożliwia natywne interakcje, zapewniając testy, które naśladują rzeczywiste zachowania użytkowników. 

Jego zdolność do przechwytywania zrzutów ekranu, nagrywania filmów i monitorowania aktywności sieciowej sprawiła, że było to kompleksowe rozwiązanie. Nasz zespół opracował skomplikowany zestaw skryptów testowych, wykorzystując w pełni możliwości Playwright, zapewniając, że żaden kamień nie został odwrócony.

Testowanie wydajności aplikacji: lighthouse i k6

Podczas gdy interfejs użytkownika odgrywa kluczową rolę w utrzymaniu użytkownika, wydajność działa jak cichy strażnik, który zapewnia płynne wrażenia użytkownika. LightHouse i k6 stały się naszymi ulubionymi narzędziami. LightHouse, zautomatyzowane narzędzie o otwartym kodzie źródłowym, znacznie zwiększyło dostępność z 69 do imponujących 95. Dane wyjściowe z LightHouse dostarczyły bogatej gamy zaleceń, służąc jako cenny przewodnik do ulepszeń. Programiści front-end wykorzystali te spostrzeżenia, używając ukierunkowanych sugestii LightHouse jako planu do udoskonalenia. Takie podejście nie tylko usprawniło proces rozwoju, ale także znacznie podniosło poprzeczkę w zakresie jakości aplikacji i dostępności dla użytkowników.

Z kolei k6, ze swoją nowoczesną architekturą, pozwolił nam wygenerować wysokie obciążenie po stronie serwera, symulując rzeczywiste warunki, aby zapewnić całościową ocenę. Identyfikując wąskie gardła i inne potencjalne pułapki, zapewniliśmy, że aplikacja pozostała zwinna, nawet pod presją.

Wypełnianie luk poprzez testy API E2E

Podczas gdy nasze testy interfejsu użytkownika koncentrowały się głównie na interakcjach z użytkownikiem, zdawaliśmy sobie sprawę z kluczowej roli przepływu danych i odpowiedzi serwera. Aby zapewnić płynne wrażenia użytkownika, wprowadziliśmy kompleksowe testy API, które zagłębiały się w rdzeń aplikacji.

Testy te działały jako istotne ogniwo, harmonizując interakcje użytkownika front-end z back-end procesów danych. Przeanalizowali integralność danych i czasy reakcji, naśladując rzeczywiste scenariusze. Skrupulatnie oceniliśmy wiarygodność danych, szybko zidentyfikowaliśmy rozbieżności i zweryfikowaliśmy czasy reakcji, zapewniając wysoce responsywne doświadczenie użytkownika.

Nasze kompleksowe podejście zapewniło całościową ocenę aplikacji internetowej, umożliwiając nam identyfikację i rozwiązanie potencjalnych wąskich gardeł, zapewniając nieprzerwane działanie aplikacji przy jednoczesnym zachowaniu integralności danych i szybkości reakcji.

Kompleksowe raportowanie i szkolenia

Solidna strategia testowania jest niekompletna bez jasnego mechanizmu raportowania. Zrozumienie niuansów każdego przebiegu testu, identyfikacja powtarzających się problemów i sformułowanie strategii działania staje się kluczowe. Raporty HTML Playwright, znane ze swojej szczegółowości, zapewniały mikro-wgląd w poszczególne scenariusze testowe. W połączeniu z szerokim przeglądem portalu raportów, przekształciły one surowe dane w przydatne informacje. 

Nasze działania wykraczały jednak poza samo dostarczanie spostrzeżeń. Zorganizowaliśmy szeroko zakrojone sesje szkoleniowe, upewniając się, że zespół testowy klienta zna i biegle wykonuje obowiązki związane z AQA. Obejmowało to wykonywanie testów wykrywających błędy i poruszanie się po cyklu życia błędu, szczególnie w kontekście automatyzacji. Dzięki warsztatom, sesjom praktycznym i rundom pytań i odpowiedzi umożliwiliśmy klientowi przejęcie sterów i pewną jazdę naprzód.

Mechanizm raportowania oparty na sztucznej inteligencji

Usprawniliśmy proces raportowania poprzez integrację rozwiązania opartego na sztucznej inteligencji do identyfikowania i kategoryzowania niepowodzeń testów i niespójności. W ramach pierwszej fazy system sztucznej inteligencji został starannie przeszkolony przy użyciu danych z poprzednich niepowodzeń testów, w których statusy były przypisywane ręcznie. Ten podstawowy etap pozwolił sztucznej inteligencji uczyć się na podstawie różnorodnych danych wyjściowych i dokładnie zrozumieć niuanse różnych wyników testów. 

W drugiej fazie, po zakończeniu szkolenia, system sugerował potencjalne statusy dla nowo niezaliczonych testów. Sugestie te, przekazywane do AQA w terenie, mogły być przeglądane i zatwierdzane w razie potrzeby. Sztuczna inteligencja została przeszkolona w zakresie identyfikowania różnych statusów, w tym błędu, problemu z automatyzacją i problemu z infrastrukturą, przyspieszając w ten sposób proces analizy testów oraz zwiększając wydajność i dokładność mechanizmów raportowania.

Technologie

TypeScript, React Native, Redux, react-navigation

Python, Django, Celery, Celery beat

TypeScript/JavaScript, Playwright, Lighthouse, K6, Grafana, Report Portal

VCS

Git, Bitbucket

Elastic Beanstalk, DynamoDB, AWS Grafana IAM, SNS, SQS, KMS, RDS(PostgreSQL), S3, Lambda, SES, KVS

Bitbucket Pipelines, DataDog, Nginx, Docker, Docker Compose

Proces

Nasz zespół AQA wykorzystał podejście Agile Scrum podczas testowania QA aplikacji, co było niezbędne do dostosowania się do zmieniających się potrzeb klienta. Takie podejście pozwoliło nam szybko dostarczyć istotne elementy, takie jak dokument Vision and Scope po odkryciu i zaprezentować mapę podróży klienta z interaktywnym prototypem podczas fazy Projektowanie UX/UI .

Wykorzystaliśmy Bitbucket CI do efektywnego zarządzania zadaniami i skupiliśmy się na otwartej komunikacji, aby upewnić się, że wszyscy są na tej samej stronie. Ta prosta strategia poprawiła naszą pracę zespołową, zmniejszyła przeszkody i zapewniła, że zawsze spełniamy lub przekraczamy oczekiwania klienta.

Team required

1
Delivery Manager
3
Programiści back-end
2
Programiści front-end
2
AQA
1
Manualnych QA

Wyniki

Stworzyliśmy kompleksową platformę testową do testowania interfejsu użytkownika, interfejsu API i wydajności aplikacji internetowej, achieving 100% coverage of already available features. To maintain quality, we implemented nightly regression end-to-end and deployment-based regression tests.

Ponadto uprościliśmy raportowanie, wykorzystując sztuczną inteligencję do identyfikacji nieudanych i niespójnych testów. Stworzyliśmy prosty system dystrybucji raportów oparty na wiadomościach e-mail, aby informować wszystkich na bieżąco. Dodatkowo wprowadziliśmy wizualne testy regresji dla krytycznych scenariuszy, zwiększając zaufanie do procesu testowania. 

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia.

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając "Wyślij", wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z naszą Polityką Prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przetworzeniu zgłoszenia skontaktujemy się z Tobą, aby szczegółowo opisać projekt i podpisać umowę NDA w celu zapewnienia poufności.

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami, nasz zespół opracuje projekt wraz z zakresem prac, wielkością zespołu, wymaganym czasem i szacunkowymi kosztami.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    strzałka