/ We know how

Shift Left Strategy w automatyzacji – co warto wiedzieć o tej strategii i czy jest w stanie dobrze działać z AI?

Jak donosi prasa[i], rząd USA wyasygnował 30 mld dolarów na to, aby do 2034 roku powstał robot, który dzięki sztucznej inteligencji będzie w stanie samodzielnie przeprowadzić zabieg chirurgiczny. Zasadne jest zatem pytanie, jak przetestować takie urządzenie i oprogramowanie nim sterujące, aby nikomu nie zaszkodzić? W sukurs przychodzą nowe strategie testowania oprogramowania, które zmniejszają ryzyko wystąpienia błędów i usterek w systemach informatycznych.

 

Sprawdzona zasada wywodząca się z branży motoryzacyjnej z lat 50[ii]. mówi, aby nie kierować do dalszej produkcji żadnego elementu, czy podzespołu, który nie spełnia wymagań jakościowych. Ta oczywista prawda trwale wpisała się także do reguł rządzących zapewnieniem jakości (QA – Quality Assurance) w produkcji oprogramowania. Do tej pory testowanie i sprawdzanie efektów pracy analityków, architektów,  inżynierów systemowych i programistów odbywało na końcu cyklu produkcyjnego. Ponieważ na popularnych wykresach z osią czasu i poszczególnymi fazami cyklu życia oprogramowania testy były zdecydowanie po prawej stronie, strategię przeniesienia testów na lewo, na początek cyklu, nazwano Shift Left Strategy[iii].

 

 

Na czym polega Shift Left Strategy?

 

Strategia „Shift Left” oznacza w istocie zaangażowanie testerów na każdym etapie produkcji. Nie testuje się systemów po ukończeniu ich tworzenia, ale w sposób ciągły, począwszy od analizy wymagań użytkowników. Jest to prosta konsekwencja zasady 1:10:100[iv], która mówi, że koszty naprawy usterek i błędów rosną dziesięciokrotnie wraz z przechodzeniem od etapu definiowania wymagań i architektury, przez implementację, testowanie i walidację systemową aż do weryfikacji działania programu przez użytkowników. Testom podlega każdy, najmniejszy nawet moduł i fragment kodu, a stałe i ciągłe wykonywanie czynności testowych pozwala deweloperom na przejęcie większej odpowiedzialności za swój kod. Nowe opakowanie starej zasady podziałało – procesy testowania znalazły się w centrum uwagi  tak dostawców, jak i użytkowników oprogramowania.

 

 

Kluczowe elementy strategii Shift Left

 

Strategia Shift Left w IT oznacza jak najwcześniejsze wyszukiwanie błędów i usterek za pomocą wszelkich dostępnych środków. Zatem przystępując do realizacji jakiegokolwiek projektu informatycznego, od samego początku powinno się zaangażować zespół testujący do współpracy z zespołem biznesowym i operacyjnym. Pozwala to na dogłębne zrozumienie istoty przedsięwzięcia przez wszystkich zaangażowanych pracowników i daje jasny obraz tego, co będzie tworzone i testowane.

Testerzy zyskują szansę na efektywne planowanie swoich potrzeb związanych z rozbudową zespołu, niezbędnymi szkoleniami i określeniem wymagań dotyczących narzędzi testowych, co w przyszłości zaowocuje płynnym przebiegiem testów.

Współpraca testerów z interesariuszami biznesowymi ułatwia zaprojektowanie ujednoliconej strategii testowania oraz automatyzacji testów w ramach planu zarządzania danymi testowymi. Na etapie planowania wymagań funkcjonalnych i biznesowych, zespół testujący musi mieć możliwość ich przeanalizowania i zrozumienia tak, aby uniknąć jakichkolwiek niejednoznaczności. Pozwala to wykryć ewentualne rozbieżności, które mogą prowadzić do błędów w testowaniu. Dobrą praktyką jest omówienie poszczególnych procesów na prawdziwych przykładach, bo jest to najlepsza droga do rzeczywistego zrozumienia całego projektu. W ten sposób ułatwia się opracowanie mocnych i niezawodnych scenariuszy testowych, które sprawdzą wszystkie możliwe przepływy biznesowe. Procentuje to wychwyceniem wszystkich błędów jeszcze na wstępnym etapie tworzenia kodu.

 

 

Strategia Shift Left w automatyzacji

 

Stosowanie strategii Shift Left Testing w automatyzacji to konieczność. Dobrze napisany i łatwy do zrozumienia kod źródłowy pozwala całemu zespołowi pracować zgodnie z przyjętą metodyką DevOps plus Agile. Minimalizacja liczby błędów obniża koszty tworzenia kodu i znacząco redukuje koszty opieki posprzedażowej i serwisowej. Jest to szczególnie istotne w czasach, gdy rośnie presja na dostarczanie oprogramowania wysokiej jakości w krótkim czasie. Na dodatek w automatyzacji mamy do czynienia z dużą liczbą punktów styku użytkownika z zestawem różnorodnych technologii – od OCR (Optical Character Recognition) i VR (VoiCe Recognition), poprzez NLP (Natural LanguageProcessing) aż do uczenia maszynowego (ML – Machine Learning) i sztucznej inteligencji (AI- Artifical Intelligence). Każdy taki punkt to potencjalne źródło błędów i usterek, miejsce wymagające szczegółowego testowania nie tylko kodu, ale i wymagań biznesowych, ergonomii oraz zasad UX (User Experienece). Zatem, zgodnie ze strategią Shift Left w IT, odpowiednio wcześnie dobrane i prawidłowo zaprojektowane testy wręcz zapobiegają nieprawidłowościom w robotyzacji procesów biznesowych.

Strategia Shift Left jest szczególnie ważna tam, gdzie do gry wchodzi uczenie maszynowe i sztuczna inteligencja – analiza poprawności wejściowych zbiorów danych jest kluczowa dla uzyskania odpowiedniego efektu końcowego. Bez realistycznych testów i szczegółowego zbadania zależności w takich dużych zbiorach danych może dojść do naprawdę bolesnych dla ludzi zdarzeń, np. gdy dotyczy to wymiaru sprawiedliwości. O takich przypadkach pisze Hannah Fry w swojej książce „Hello World, jak być człowiekiem w epoce maszyn”[v].

Także osiągnięcie odpowiedniej wydajności w działaniu botów RPA (Robotic Process Automation) wymaga rozbudowanych testów i optymalizacji mapy procesów tak, aby uniknąć kosztownych przeróbek na późniejszych etapach cyklu życia aplikacji. Oznacza to także, że zespoły testujące zintegrowane na stałe z działami projektowania i dostarczania aplikacji (AD&D) pracują w trybie CT (Continous Testing).

 

 

Problemy z Shift Left w automatyzacji

 

To, co w teorii funkcjonuje perfekcyjnie, w realnym świecie zgrzyta z powodu złych nawyków ludzi. Presja na dotrzymanie terminu najczęściej kończy się powstaniem długu technologicznego. Powstaje on z niezrozumienia przez wszystkie strony projektu informatycznego jakości funkcjonalnej, niefunkcjonalnej oraz architektury oprogramowania, co jest szczególnie widoczne w dużych, wielomodułowych systemach klasy ERP. Dług technologiczny powstaje zawsze, jeśli w projekcie próbuje się pójść na skróty, nie dba o skalowalność rozwiązania albo przeciwstawia się sobie jakość kodu z terminem jego dostarczenia. Kontrola długu jest to o tyle trudna, że koszty z nim związane najczęściej nie są widoczne na bieżąco – one pojawią się w przyszłości.

Problemy pojawiają się wszędzie tam, gdzie nie pilnuje się testowania wymagań, gdzie redukuje się w trakcie projektu budżet i czas na testy albo tam, gdzie testy zostały źle zaprojektowane lub nie w pełni zrealizowane. Powszechnym grzechem jest także nie wyciąganie wniosków z informacji płynących od testerów. Czasami poprawienie błędu to nie wszystko, bo jego pojawienie się wskazuje na inne, dużo ważniejsze niedostatki w samym projekcie lub jego architekturze.

 

 

Największe zalety stosowania Shift Left

 

Shift Left Testing, w połączeniu z narzędziami do automatyzacji testowania, znacząco się przyczynia do tworzenia wydajnego, bezpiecznego i niezawodnego oprogramowania w całym jego cyklu życia. Wczesne rozpoczęcie testów pozwala zaoszczędzić czas, zasoby i pieniądze – wyższa jakość kodu ogranicza liczbę niezbędnych poprawek w potoku programistycznym. Usterki usuwa się najwcześniej, jak to możliwe, a to gwarantuje wyższą skuteczność i wiarygodność testów. Zautomatyzowanie prostych zadań i skonfigurowanie przejrzystych schematów testowych daje testerom i programistom czas na myślenie, planowanie i doskonalenie aplikacji, chociażby poprzez szybsze reagowanie na informacje zwrotne od klientów. Dodatkowo, jeśli zespoły testujące i deweloperskie korzystają z rozwiązań chmurowych, firma może zredukować koszty utrzymania infrastruktury IT.

Efekty? Szybsze i tańsze wprowadzenie produktu na rynek bez konieczności natychmiastowego łatania, poprawiania i edycji kolejnych wersji – zespół projektowy może się skupić na rozwoju funkcjonalnym, a to zwiększa przewagę konkurencyjną – lepszy produkt w krótszym czasie, z szybko rosnącą funkcjonalnością to śmiertelne zagrożenie dla konkurencji na rynku.

Dla firmy Shift Left Testing to także okazja do poprawy jakości zarządzania, mniej stresów dla testerów i programistów, mniej monotonnej pracy dla menedżerów. Łatwiejsze staje się równoważenie harmonogramów pracy i sprawiedliwy podział zadań. Dzięki temu firma może przyciągnąć i utrzymać najlepszych pracowników.

 

 

Jak zaimplementować Shift Left w automatyzacji?

 

Wdrożenie Shift left w automatyzacji nie doczekało się jeszcze swojego kanonu, dostępne są raczej ogólne wskazówki[vi]. Implementację należy rozpocząć od planowania i konsultacji z końcowymi użytkownikami. Najwcześniej jak to możliwe rozpocząć statyczne testowanie, walidację wymagań i projektów, jednocześnie włączając programistów w działania testowe. Dzięki temu scalony kod jest czystszy i mniej podatny na błędy. Prawidłowe działanie strategii Shift Left wymaga opracowania planu testowania wszystkich obszarów kontroli jakości, od testów jednostkowych poprzez testy manualne, aż po testy akceptacyjne i powdrożeniowe. Pomaga to ograniczyć nakłady na testy oraz uniknąć dublowania prac. Bardzo przydaje się przeprowadzenie analizy ryzyka i ustalenie, które fragmenty oprogramowania są kluczowe dla końcowej jakości aplikacji.

Menedżerowie odpowiedzialni za testy i jakość muszą wiedzieć, jak kształtowany jest kod i czego oczekuje się od produktu końcowego, aby stworzyć odpowiednie zadania testowe.

Podstawą sukcesu wdrożenia Shift Left w automatyzacji jest zbiorowy wysiłek, współpraca testerów, programistów i zespołu biznesowego. Programiści powinni być w stanie prowadzić testy na poziomie średnim, a testerzy znać na tyle programowanie, aby skutecznie, czytać, oceniać i modyfikować prosty kod. Oprogramowanie powinno być tworzone z myślą o jego możliwościach testowania – wtedy wdrożenie strategii Shift Left staje się znacznie łatwiejsze.

[i] Gazeta Wyborcza, 5 listopada 2021 r., dodatek „Nowotwory jelita grubego” – Rewolucja robotyczna na świecie idzie jak burza.

[ii] https://kanbantool.com/pl/metoda-kanban

[iii] https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/#

[iv] https://testerzy.pl/baza-wiedzy/shift-left-testing-czyli-wczesne-testowanie

[v] Hannah Fry, „Hello World, jak być człowiekiem w epoce maszyn”, Wydawnictwo Literackie 2019, rozdział „Wymiar sprawiedliwości”.

[vi] https://www.browserstack.com/guide/what-is-shift-left-testing