Nowa era w branży testerskiej – jakie trendy będą przeważać od 2021 roku?
Branża testerska nie ma wyboru – idzie nowe, od wdrożenia którego zależy rozwój jej i wytwarzanych dzięki niej produktów. Nadchodzący trend pozytywnie wpłynie także na zarządzanie i usprawnienie pracy działów IT. Rok 2021 może być pod tym względem przełomowy.
Autorzy artykułu
Paweł Maciążek. CEO TestRevolution & BugBug.io. Przedsiębiorca i lider zespołu z dość dużym międzynarodowym doświadczeniem, w ostatnich latach swojej kariery zawodowej odpowiadał za: ekspansję międzynarodową, projekty IT i zarządzanie zespołami, definiowanie odpowiednich strategii marketingowych / sprzedażowych oraz wdrażanie planów działań, sprzedaż produktów i usług, a także złożonych projektów, wdrażanie nadzoru konkurencji i narzędzi do sterowania działaniami, rekrutacja, szkolenia i prowadzenie międzynarodowych zespołów.
Paweł Bylina. CTO w BugBug.io. Pasjonat technologii związany z rynkiem IT od lat szkolnych, a czysto zawodowo od ponad 13 lat. Przeszedł w trakcie swojej dotychczasowej kariery przez najróżniejsze stanowiska i role w branży, w tym programisty i team lidera, DevOpsa, czy Product Ownera. Bliżej mu jednak do technologii i startupów niż managementu i korporacji, choć doświadczenie zdobywał w obu tych środowiskach. Osobowość przedsiębiorcy. Aktualnie w roli Co-foundera i CTO w startupie tworzącym narzędzie do testów end-to-end BugBug.io.
W branży IT od kilku lat jesteśmy świadkami pogłębiającej się dysproporcji między rozwojem sposobu zarządzania projektami oraz programowania a sytuacją testerów. Ci ostatni są jakby poza nawiasem korzyści, jakie dają prężnie rozwijające się metodyki Agile oraz DevOps, a także stające się już standardem CI/CD. Nie oznacza to oczywiście, że testerzy nie pracują w tych metodykach i nie są częścią stosujących je zespołów. Według opublikowanego w 2019 roku raportu „State of the Agile” testowanie znalazło się na czele wskazywanych przez ankietowanych czynności, które są w ten sposób zarządzane:
W ciągu 13 lat Agile z początkowo entuzjastycznie przyjętej nowinki stało się dominującym sposobem zarządzania projektami IT – w 2019 roku korzystało z niego aż 97 proc. przedsiębiorstw. Technologię DevOps łączyło z Agile lub zamierzało włączyć w ciągu 12 kolejnych miesięcy aż 73 proc. firm. Wśród wymienianych z powodu korzystania z Agile korzyści znalazło się m.in. przyspieszenie dostarczenia oprogramowania, zwiększenie możliwości zarządzania zmieniającymi się priorytetami i zwiększenie produktywności:
Jeśli jednak o skutki wdrożenia metodyki Agile zapytać testerów, to tak – zgodzą się zapewne z powyższymi twierdzeniami w odniesieniu do sposobu pracy, jednak w kontekście ich obowiązków wnioski nie będą już tak pokrzepiające. I nie ma w tym winy Agile – to problem systemowy, a ten konkretny sposób zarządzania projektami jeszcze bardziej go uwidocznił.
Jak zmiany w branży IT wpłynęły na sytuację testerów?
Sprawiły, że mają oni teraz jeszcze więcej pracy przy ograniczonych zasobach. Zwiększenie efektywności programistów spowodowało, że testerzy otrzymują coraz więcej kodu do sprawdzenia. Jednocześnie nie zwiększają się ani ich zasoby kadrowe, ani narzędziowe. Od lat wiadomo też, że na stanowisku testera/QA pracuje znacząco mniej osób niż na stanowiskach deweloperskich, co potwierdza ankieta StackOverflow z 2019 roku, obrazująca zatrudnienie w sektorze IT:
Z roku na rok liczba zatrudnionych jako testerzy/QA wzrosła o 1,1 proc. – to niewiele w porównaniu z dynamicznie rozwijającym się rynkiem pracy programistów. Niestety, ma to negatywne skutki dla całej branży IT, która cierpi na brak pokrycia testowego, czyli tzw. testing gap. Jako pierwszy opisał je w 2017 roku Jason Arbon. W artykule zatytułowanym „AI for software testing” wskazał, że złożoność kodu i nowych produktów rośnie wykładniczo, natomiast wzrost pokrycia testowego jest linearny.
W praktyce oznacza to albo brak odpowiedniego przetestowania wprowadzanych produktów, albo testowanie wybiórcze (często eksploracyjne). Dla części serwisów/aplikacji ich niedopracowanie może wywołać rynkową śmierć albo poważne straty wizerunkowe. Doświadczyła ich m.in. firma Uber, która stworzyła aplikację do automatycznego prowadzenia samochodu. W wyniku jej błędu życie straciła kobieta z USA, co wywołało medialną burzę.
Według przeprowadzonego w Wielkiej Brytanii przez Diffblue badania, aż 42 proc. deweloperów rezygnuje z pisania testów na rzecz szybszego wdrożenia produktu. Jak wyliczyli specjaliści z Softwaretestinggenius, jeśli bezpośrednie koszty testowania wynoszą 25 proc. budżetu całego projektu, to koszty pośrednie, w tym konsekwencje niewykrytych błędów, to już dwa razy tyle!
Lepszej jakości testy == lepszej jakości produkty. Jak to zrobić?
Zainwestować w odpowiednie narzędzia, które odciążą testerów i pozwolą zoptymalizować ich pracę. Dobra wiadomość jest taka, że na świecie to już się dzieje. W przygotowanym przez Techavio.com raporcie „Rynek usług testowania oprogramowania w podziale na produkty, użytkownika końcowego i regiony. Prognozy i analizy na lata 2020–2024” eksperci wskazują, że branża testerska będzie rosła 12,62 proc. rocznie. Liderem pod względem tempa wzrostu mają być kraje azjatyckie, Ameryka Południowa i Australia:
Co ciekawe, Ameryka Północna ma być odpowiedzialna aż za 41 proc. wzrostu w branży. Jego głównym motorem będzie rynek aplikacji mobilnych, które ze względu na ciągłe wprowadzanie nowych funkcji, a także zmieniające się szybko wymagania użytkowników i trendy podlegają nieustannym zmianom. To zjawisko widoczne jest także w Polsce, gdzie skala użytkowania urządzeń mobilnych stale rośnie:
Nowe trendy w testowaniu – na jaką jakość można będzie liczyć?
Rośnie zatem nie tylko ilość dostarczanego do testowania kodu, lecz także zapotrzebowanie na produkty mobilne (i nie tylko – strony internetowe i e-commerce nadal mają się dobrze). Dotychczasową odpowiedzią na te wyzwania były testy automatyczne. Choć narzędzia do ich przeprowadzania są w pracy testera niezbędne, to niestety wiele z tych dostępnych na rynku nie nadąża już za szybko zmieniającymi się wymaganiami klientów. Niektóre z nich powstały kilka, a nawet kilkanaście lat temu i były świetną pomocą w mniej dynamicznym otoczeniu. Dobrym przykładem jest powszechnie dostępna w takich programach funkcja nagrywania testów. W prężnie zmieniającym się środowisku Agile, kiedy często z każdym sprintem dodawane są nowe funkcjonalności lub zmieniane są obecne, starsze narzędzia nie umożliwiają łatwej zmiany parametrów testowania. W praktyce sprowadza się to do konieczności nagrywania od nowa każdego kroku, co zupełnie mija się z celem, bo przecież jest nim zmniejszenie i automatyzacja pracy do tej pory wykonywanej manualnie….
Nowy trend nr 1: Page Object Pattern bez programowania
Page Object Pattern to pojęcie dobrze znane osobom programującym testy. W dużym skrócie pozwala on pogrupować elementy na stronie w odrębne klasy, tak, aby zmiana w jednej z nich nie ingerowała w pozostałe części strony. Przykładem może być ekran logowania, w którym poszczególne pola (np. login, hasło, przycisk “Zaloguj”) stanowią odrębne komponenty. Dzięki temu w przypadku zaburzenia działania któregokolwiek z nich szybko można wprowadzić poprawki bez konieczności modyfikowania kodu całej strony.
Nowe narzędzia do tworzenia testów automatycznych będą umożliwiały zastosowanie rozwiązań typu Page Object Pattern bez konieczności ich programowania. Każdy element testowanej strony (np. wspomniany przycisk logowania) będzie w nich dostępny jako oddzielny komponent graficzny, który można swobodnie wykorzystywać na potrzeby różnych testów. Na przykładzie wspomnianej strony logowania: jeśli dany scenariusz testu automatycznego będzie uwzględniał właśnie tę stronę, szybko można dodać ją do scenariusza po prostu “przeciągając” ją do niego. To rozwiązanie ma także tę zaletę, że w przypadku zaburzenia działania jakiegoś komponentu można łatwo go naprawić wprowadzając zmiany w jednym miejscu – raz naniesiona w danym komponencie zmiana automatycznie aktualizuje się we wszystkich testach, w których został on wykorzystany. Możemy zatem oficjalnie obwieścić koniec ery, w której należało powtarzać nagrywanie testów automatycznych za każdym razem, kiedy jakikolwiek element przestawał działać poprawnie.
Nowy trend nr 2: możliwość dowolnej edycji nagranych już testów
Pieśnią przyszłości jest pełna swoboda i maksymalna szybkość w tworzeniu i edycji testów. Do tej pory modyfikacja już raz stworzonego scenariusza testu automatycznego była możliwa tylko po ponownym nagraniu całego testu od początku do końca. Narzędzia nowej generacji będą umożliwiać nie tylko edycję poszczególnych elementów już nagranego testu, lecz także dodawanie kolejnych jego części w dowolnym momencie.
Nowy trend nr 3: świetny UX/UI design
To kwestia czasu, aż interfejsy “starych” programów do testów automatycznych będziemy wspominać z rozrzewnieniem równym temu, który towarzyszył nam podczas zmiany Pegasusa na Playstation. UX oraz UI design nie powinny być pomijane w narzędziach dla osób, które dbają o zapewnienie jak najlepszych doświadczeń użytkownika końcowego, jakim jest klient! Ten paradoks towarzyszy nam od lat: testerzy pracują na programach, których wygląd nawiązuje do trendów sprzed dekady… To także odbija się na jakości ich pracy i dobrze, że na rynku są narzędzia, których autorzy zdecydowali się to zmienić.
Nowy trend nr 4: uruchamianie wysokospecjalistycznych testów z poziomu przeglądarki
Rozwiązanie w chmurze nie wyklucza szybkiego dostępu do narzędzia z poziomu przeglądarki www – takie motto będzie przyświecać twórcom nowoczesnych programów do automatyzacji testów. Tester nie musi mieć zaawansowanej wiedzy na temat programowania czy umiejętności technicznych administratora – do efektywnej pracy wystarczy mu, że zainstaluje rozszerzenie do przeglądarki. To samo tyczy się uruchamiania testów – narzędzia nowej generacji umożliwiają ich włączanie, nagrywanie i natychmiastową modyfikację tylko i wyłącznie z poziomu przeglądarki. Testerzy już nie muszą czekać na uruchomienie testów w chmurze i raporty – mogą działać od razu przy minimalnych wymaganiach technicznych.
Nowy trend nr 5: realna, a nie udawana, stabilność i niezawodność
Narzędzi, które obiecują dużo, jednak w praktyce rozczarowują i dają testerowi poczucie straconego czasu, jest wiele. Zawiedzeni użytkownicy napisali już na ich temat kilka artykułów, takich jak na przykład ten» Przyszłość należy do tych programów do testów automatycznych, które dadzą testerom poczucie kontroli i swobody w działaniu jednocześnie oraz będą spełniać obietnice opisywane w specyfikacji i materiałach reklamowych.
Co z nowymi technologiami i językami jak Idris, Zig, Odin, Beef, Vlang, Scala, Crystal, Nim jest szansa na ich wzrost na tiobe? Z tego co widzę z nowych języków Rust, Swift, Kotlin jest już wysoko w rankingu, a Java i PHP spada w dół.
Hej, Kamil. Ja osobiście nie podejmuję się takich prognoz – IT zmienia się zbyt dynamicznie, pożyjemy zobaczymy :)
Uczyłem się Ruby, ponoć lepsza opcja niż PHP, a teraz widzę że jest dla niego następca w postaci, Elixira i Crystal z frameworkiem Amber.
Sporo trendów w sumie trafionych patrząć retrospektywnie na 2021 ;)