Automatyzacja testów w dużej organizacji
Testy automatyczne zaczęły odgrywać kluczową rolę w procesie zapewnienia jakości oprogramowania. Jak wygląda złożony proces automatyzacji testowania w organizacji, której systemy podlegają dynamicznemu rozwojowi oraz muszą spełniać rygorystyczne wymagania jakościowe ze względu na ich kluczową rolę w sektorze ochrony zdrowia?
W jaki sposób można efektywnie rozwijać i modyfikować kompleksowe systemy Centrum e-Zdrowia (CeZ), jednocześnie utrzymując najwyższe standardy oprogramowania i minimalizując zakłócenia w codziennym funkcjonowaniu systemów wykorzystywanych przez miliony obywateli Polski?
Odpowiedzi na te i inne pytania znajdziesz w poniższym artykule, który prezentuje analizę jak skutecznie automatyzować procesy testowe w dużych organizacjach, bazując na konkretnym przypadku implementacji w Centrum e-Zdrowia (CeZ). W celu uzyskania efektywnej automatyzacji testów, priorytetem było stworzenie środowiska umożliwiającego częste i bezpieczne wdrożenia w wielu równolegle prowadzonych projektach, przy jednoczesnym zagwarantowaniu najwyższej jakości i niezawodności modyfikowanych systemów.
Organizacja odpowiadająca za realizację strategicznych projektów IT dla polskiego systemu ochrony zdrowia stanęła przed wyzwaniem modernizacji podejścia do testowania oprogramowania. Skala działalności CeZ jest naprawdę imponująca – portfolio obejmuje ponad 50 kluczowych systemów, włączając w to tak strategiczne rozwiązania jak internetowe konto pacjenta, system e-recept, platformę e-skierowań, aplikację mojeIKP oraz kompleksowe rejestry medyczne.
Automatyzacja testowania to nie tylko technologia, ale kluczowy element strategii zapewniania jakości w złożonych środowiskach IT. W projektach takich jak cyfryzacja usług zdrowotnych, na skuteczność testów wpływa przede wszystkim prawidłowe zaplanowanie procesu, a nie jedynie dobór narzędzi.
Soflab Technology wspiera organizacje w budowie efektywnych procesów testowych, dostosowanych do skali i specyfiki systemów. Łączymy automatyzację testów, testy wydajnościowe, integracyjne i bezpieczeństwa z nowoczesnym podejściem do danych testowych, pomagając naszym klientom minimalizować ryzyko i zapewniać stabilność wdrożeń – zapewniając przy tym idealny balans między jakością, czasem i kosztami testowania. Zdajemy sobie sprawę, że właściwie zorganizowany proces testowania oraz dobór odpowiednich narzędzi do automatyzacji testów gwarantuje wysoką jakość oprogramowania i sukces naszych klientów.
Nasze doświadczenie w realizacji projektów dla dużych organizacji pozwala nam dostarczać rozwiązania, które nie tylko przyspieszają testowanie, ale również podnoszą jego skuteczność i wartość biznesową.
Podjęcie tego wyzwania było możliwe dzięki wygranej w konkursie na partnera w zakresie zapewniania jakości w rozwoju systemów platformy P1. Wybór Soflab Technology potwierdził nasze doświadczenie i kompetencje w realizacji testów w skali Enterprise.
Dzięki dojrzałemu podejściu do testowania, szerokiemu zakresowi dostępnych narzędzi oraz autorskiej metodyce Soflab Test Approach, nasz zespół wdrożył centralne i skalowalne rozwiązanie do automatyzacji testów, dostosowane do specyfiki wielu równolegle realizowanych projektów rozwojowych.

Automatyczny proces testowy - wyzwania w skali Enterprise
Skala Enterprise jaką niewątpliwie jest CeZ, mierzy się z typowymi wyzwaniami, które można podzielić na 5 głównych obszarów:
1. Strategia i planowanie:
- brak spójnej strategii i centralnej odpowiedzialności w zakresie automatycznego testowania oprogramowania na poziomie całej organizacji, co skutkuje nieskoordynowanym podejściem do implementacji rozwiązań testowych,
- niezależnie działające projekty prowadzą do nieefektywnego powielania narzędzi, środowisk testowych oraz różnorodnych podejść do automatyzacji, generując dodatkowe koszty operacyjne,
- niewystarczająca komunikacja dotycząca strategicznych celów i wymiernych korzyści płynących z automatyzacji testowania na szczeblu kierowniczym.
2. Złożoność techniczna i utrzymanie:
- zbyt wysokie koszty utrzymania rozbudowanych testów automatycznych,
- poważne wyzwania w zakresie utrzymania stabilności automatyzacji w dynamicznie ewoluujących środowiskach i projektach informatycznych,
- nadmiernie złożone scenariusze testów E2E, generujące znaczne obciążenie zespołu i wpływające na efektywność procesu testowego.
3. Narzędzia i kompetencje:
- brak odpowiednich narzędzi lub korzystanie z darmowych rozwiązań (open-source), co zwiększa potrzebę kodowania i poszerza zakres prac zespołu.
- wysokie wymagania techniczne stawiane zespołowi (np. korzystanie z narzędzi deweloperskich, takich jak Cypress), co podnosi koszty i wymaga zaawansowanych umiejętności.
4. Środowisko testowe oraz dane testowe:
- problemy z niespójnością danych testowych i brak właściwie zintegrowanych środowisk testowych, utrudniające efektywną automatyzację,
- niestabilność środowisk testowych w połączeniu z nieefektywnym zarządzaniem danymi testowymi, prowadzące do trudności w precyzyjnej identyfikacji źródeł problemów.
5. Raportowanie oraz efektywność:
- błędne postrzeganie procesu automatyzacji testów jako uniwersalnego rozwiązania wszystkich problemów z jakością, prowadzące do nadmiernych oczekiwań na początku i późniejszego rozczarowania brakiem natychmiastowych rezultatów,
- niewłaściwa prezentacja wyników testów automatycznych dla interesariuszy biznesowych, skutkująca niedocenianiem wartości automatyzacji przez kadrę zarządzającą,
- brak widocznego szybkiego zwrotu z inwestycji w automatyczne testowanie aplikacji, prowadzące do ograniczonego wsparcia dla długoterminowych inicjatyw.
Kluczowe dla sukcesu wdrażania automatyzacji jest określenie, które wyzwania występują w naszej organizacji i co ma dla nas kluczowe znaczenie. Nie inaczej było w przypadku CeZ, gdzie wspólnie zdiagnozowaliśmy trzy główne wyzwania:
- Brak centralizacji, który znacznie utrudniał zarządzanie i podejmowanie decyzji w skali całej organizacji.
- Wysokie koszty automatyzacji, ponieważ wiele realizowanych prac było duplikowanych pomiędzy projektami.
- Duża złożoność organizacji wymuszajaca dużą samodzielność projektów, więc ich decyzyjność w tym w obszarze testów jest bardzo duża.
Ponadto w strukturach CeZ pracują osoby, które mają ogromną wiedzę w zakresie całości projektów realizowanych w organizacji, a jednocześnie rozumieją korzyści i wyzwania jakie niesie za sobą automatyzacja testów. Takie osoby nazywamy Champion’ami i to ich zadaniem jest uświadamianie kierowników projektów jakie korzyści jakie niesie nowe podejście.
W celu sprostania wymienionym wyzwaniom, wspólnie z CeZ wypracowaliśmy kompleksowe podejście do automatyzacji testów. Ze względu na specyfikę organizacji i zupełnie różne wymagania i oczekiwania poszczególnych projektów kluczowe okazały się cztery aspekty:
1. Centralizacja procesów i kompetencji – model hybrydowy
Utworzono centralny zespół automatyzacji testów podlegający jednej osobie, która stała się punktem decyzyjnym w tematach związanych z automatyzacją i określa kierunek jej rozwoju w ramach całej organizacji. Zespół centralny odpowiada przede wszystkim za rozwój frameworka, środowiska uruchomieniowego, a także świadczy kompleksowe wsparcie w procesie wdrażania podejścia w poszczególnych projektach.
Zespół tworzą również testerzy automatyzujący (automatycy) realizujący prace w poszczególnych projektach, którzy posiadają wiedzę techniczną jak i biznesową, umożliwiającą implementacje rozwiązania w ramach danego projektu. Ze względu na ilość projektów i ich zróżnicowanie, tworzenie i utrzymywanie skryptów w ramach zespołu centralnego byłoby dużym wyzwaniem – w związku z tym zastosowaliśmy model powszechnie nazywany hybrydowym.
2. Wykorzystanie narzędzi do testowania oprogramowania typu open source
W Centrum e-Zdrowia była już stosowana automatyzacja opensource i część zakresów była pokryta skryptami testowymi. Dodatkowo zakres aplikacji, jak i technologie w których są tworzone, pozwalały na wykorzystanie Selenium nie szkodząc przy tym pokryciu testów czy procesów E2E.
Warto dodać, że organizacja CeZ posiadała już kompetencje w tym obszarze, a część skryptów mogła zostać w prosty sposób zaimplementowana do nowego podejścia. Dzięki temu znacząco ograniczyliśmy koszty implementacji oraz zapewniliśmy ciągłość automatyzacji w projektach, które już z niej korzystały.
3. Modułowy framework
Modułowość pozwala zachować dużą elastyczność i swobodę wdrażania jedynie niezbędnych dla nas modułów. Pozwoliło to na systematyczne wdrażanie rozwiązania w różnych projektach przy zredukowaniu i rozłożeniu w czasie wykonania pracy należącej do zespołów projektowch. Decyzje o czasie i kolejności wdrażania poszczególnych modułów pozostawiono zespołom projektowym.
Elastyczność wdrożenia rozwiązania pozytywnie wpłynęła na odbiór naszego podejścia i wdrażanych rozwiązań. Doceniono rzeczywiste korzyści, jakie oferuje to rozwiązanie, bez narzucania sztywno ustalonego standardu.
4. Usprawnienie komunikacji
Dzięki standaryzacji podejścia i kompetencji wszyscy automatycy w CeZ zaczęli komunikować się “spójnym językiem” Każdy w przynajmniej podstawowym stopniu rozumie framework wykorzystywany w innych projektach. Miało to decydujący wpływ na stworzenie społeczności, która wspólnie dba o jakość dostarczanych rozwiązań poprzez takie mechanizmy jak:
- System PR’ów – osoby spoza projektu sprawdzają poprawność kodu i dają sugestie odnośnie poprawek. Pozwala to utrzymać standard kodowania pomiędzy projektami, a jednocześnie jest bardzo rozwojowe dla osób z mniejszym doświadczeniem.
- Dedykowana grupa na komunikatorze – szybki kanał komunikacji w ramach Teams wykorzystywany między innymi do rozwiązywania nietypowych problemów. Czasami wyzwania techniczne są rozwiązywane jeszcze zanim wystąpią w danym projekcie, a jest to możliwe dzięki doświadczeniu z poprzednich projektów.
Konsultacje – framework jest stale rozwijany, a dzięki dużej społeczności mamy możliwość konsultacji naszych pomysłów, a także możemy czerpać z doświadczeń osób z innych projektów – co pozwala poznać odmienną perspektywę i punkt widzenia.

Automatyzacja testów oprogramowania w CeZ - podsumowanie projektu
Rezultaty wdrożenia w liczbach:
- 1 punkt decyzyjny dotyczący narzędzi i kierunków rozwoju
- 2 osoby w centralnej automatyzacji zarządzają i utrzymują całość rozwiązania
- jednocześnie kilkanaście projektów korzysta z wdrożonego rozwiązania
- 150 wątków uruchomieniowych
- ponad 10 000 skryptów.
Co nam właściwie mówią te liczby i co oznaczają w praktyce:
1. Redukcja czasu testów regresyjnych
Pełna regresja w największym projekcie, która wcześniej zajmowała nawet 8h, została zoptymalizowana i skrócona do zaledwie 3h. To znacząco przyspieszyło proces wdrażania nowych funkcjonalności. Dodatkowo redukcja czasu potrzebnego na wykonanie testów pozwala nam wykonywać je częściej, na większej ilości środowisk bez znaczącego zwiększenia zaangażowania testerów.
2. Skalowalność procesu
Zespół centralny testów automatycznych, mimo tego, że składa się jedynie z dwóch osób, efektywnie wspiera i koordynuje działania kilkunastu zespołów projektowych. Imponujący jest fakt, że zaimplementowana platforma uruchomieniowa pozwala na równoległe wykonywanie ponad 150 skryptów testowych co znacząco redukuje czas potrzebny na wykonanie regresji. Co ważne, nie ma znaczenia czy testy są uruchamiane w ramach jednego projektu czy kilku – mechanizm load balancera dba o to, żeby zasoby były optymalnie wykorzystywane.
3. Optymalizacja zasobów
W tak dużej organizacji dwie osoby są w stanie utrzymać całą warstwę techniczną wykorzystywaną przez zespoły projektowe. Co więcej, zdejmują odpowiedzialność z tych zespołów i pozwalają im się skupić jedynie na aspektach biznesowych i tworzeniu skryptów, bez martwienia się czy:
- Testy nie będą blokować dalszej pracy
- Będą trwały “wieki”, bo nie mamy stacji roboczych do uruchamiania
- Mamy odpowiednie artefakty np. nagranie z przebiegu testów.
4. Usprawniona komunikacja i transparentność
Wprowadzenie ustandaryzowanych formatów raportowania oraz przejrzystych procesów automatyzacji znacząco zwiększyło zaufanie interesariuszy do wyników testów. Systematyczne raporty, zawierające szczegółowe metryki i wskaźniki, umożliwiają szybką identyfikację potencjalnych problemów oraz efektywne podejmowanie decyzji.
Co warto zapamiętać ?
W ramach podsumowania warto zaznaczyć, że automatyzacja testów nie powinna być celem samym w sobie, ponieważ nie każdy projekt wymaga automatyzacji. Na samym początku należy przeanalizować, czy przykładowo problemu nie stanowi sama organizacja procesu testowego. Na tym etapie warto zwrócić się o pomoc do profesjonalnego partnera, który pomoże rzetelnie ocenić sytuację. Równocześnie pamiętajmy, że JAKOŚĆ aplikacji czy systemu to nie tylko różne rodzaje testów oprogramowania – to holistyczne podejście do całego procesu QA. Zapraszamy na konsultacje z ekspertami w dziedzinie automatyzacji .