Trendy i priorytety w QA Testingu
Komentarza udzielił Tomasz Gorczyński, Szef Działu Testowania we wrocławskim oddziale Capgemini Polska
Zwinne i zautomatyzowane – tak będzie wyglądało testowanie oprogramowania w najbliższych latach. Znaczenie tego segmentu rośnie już od kilku lat, ale to w najbliższej dekadzie prognozuje się największe wzrosty w tym sektorze. Bezpowrotnie minęła już era, kiedy testy przeprowadzano dopiero po zakończeniu procesu programowania. Te długie i kosztowne rozwiązania to już przeszłość. Dziś testowanie jest integralną częścią biznesu, a testerzy, których zawód znacząco ewoluuje, są dziś równie pożądani na rynku pracy, co programiści. Testowanie oprogramowania musi równoważyć koszty, szybkość wdrożenia i jakość realizacji, wspierając przy tym rozwój biznesu.
Jeszcze do niedawna testowanie było czynnością pozostawianą na sam koniec procesu programowania – po kilku tygodniach prac następowało kilka tygodni testowania, po których deweloperom zgłaszano błędy. W tym modelu jeden cykl mógł trwać nawet kilka miesięcy. Dziś klienci chcą mieć możliwość wprowadzania aktualizacji oprogramowania z tygodnia na tydzień, a czasami nawet z dnia na dzień. Sam testing z kolei jest zintegrowany z bieżącymi pracami projektowymi. W ostatnich latach podejście do QA (ang. quality and assurance) profesjonalizuje się i nabiera coraz większego znaczenia.
W cyfrowej rzeczywistości kluczowe są szybkie wdrożenia efektywnych rozwiązań, a trendy związane z QA i testowaniem są ściśle zbieżne z trendami w tworzeniu oprogramowania. Najwyższym priorytetem QA jest obecnie możliwość błyskawicznego zmierzenia poziomu jakości w projektach IT. Dział Testowania w Capgemini w ostatnich latach również przeszła dużą transformację – dziś opieramy się na odważnych przemyśleniach i dziesiątkach lat doświadczeniach w obsłudze firm z różnych branż, m.in. z listy Fortune 500. Łączymy swoją głęboką wiedzę branżową z naszymi uznanymi w branży ramami i metodologiami testowania, aby sprostać dzisiejszym i przyszłym potrzebom naszych klientów w zakresie zapewniania jakości. Z perspektywy klienta to oznacza jakościową transformację i możliwie najszybsze wejście na rynek – z wewnętrznych danych Capgemini wynika, że czas, w jakim wprowadzamy oprogramowanie na rynek jest nawet o 15 proc. krótszy niż średnia rynkowa. Dodatkowo, jesteśmy w stanie także zmniejszyć koszty całego procesu testowania aż o 30 proc. Nasze zespoły pracują nad poprawą jakości oprogramowania i są w stanie zapobiec 98 proc. poważnych defektów, co w dalszej perspektywie pozwala na znaczące ograniczenie ryzyka technicznego i biznesowego. To możliwe dzięki stosowaniu nowoczesnych narzędzi połączonych z holistycznym podejściem do QA, jakie stosujemy w naszym Centrum Testowania we Wrocławiu.
Testing na przestrzeni ostatnich lat bardzo mocno ewoluował w stronę nowych technologii. Od testera wymaga się dziś znajomości języków programowania, ci specjaliści muszą mieć coraz więcej kompetencji i znać coraz więcej narzędzi. To stawia nowe wyzwania, ale także tworzy nowe, interesujące ścieżki rozwoju. Z uwagi na to, że w branży mamy do czynienia z tzw. testing gap, czyli niedoborem specjalistów ds. testowania, przy jednoczesnym wzroście liczby programistów i wytwarzanego oprogramowania – kluczowa staje się automatyzacja. Bez niej może dojść do sytuacji wybiórczego testowania, co w konsekwencji mogłoby przynieść straty biznesowe oraz wizerunkowe. Powodem większego zapotrzebowania na testerów automatycznych jest potrzeba szybkiej adaptacji w systemach, co bez Continuous Testing nie będzie możliwe. Dodatkowo w czasach Covid-19, zdolność firm do błyskawicznej reakcji na zmianę, jeszcze mocniej niż dotychczas będzie stanowiła o jej przewadze konkurencyjnej. Stąd tester z umiejętnościami programowania automatyzacji w obszarze testingu jest dziś na rynku pracy na wagę złota.
W odniesieniu do tej sytuacji kluczowe znaczenie zyskuje ciągła integracja – CI (ang. continuous integration). To sposób na przełamanie ograniczeń zwinności. Wiemy, jak wbudować w CI automatyzacje obejmujące całą piramidę testów. Aby cały proces CI był zautomatyzowany, automatyczne dostarczanie danych testowych staje się integralną jego częścią. W DevOps zaciera się granica pomiędzy rozwojem oprogramowania, a jego operacyjnym działaniem, natomiast w celu zwiększenia szybkości wdrażania nowych wersji łączymy ją z podejściem Continuous Testing, która w połączeniu dają jeszcze bardziej efektywne podejście DevTestOps. W DevTestOps testerzy pełnią istotną role w projekcie, będąc integralną częścią zespołu są zaangażowani w procesu i zadania związane z zapewnieniem jakości od momentu definiowania wymagań, przez development aż do momentu, w którym system działa na środowisku produkcyjnym. Dzięki zastosowaniu podejścia DevTesOps, w naszych projektach, większość bugów jesteśmy w stanie wychwycić na bardzo wczesnym etapie SDLC, co znacząco obniża koszt ich naprawy, a bliska współpraca developerów i testerów przyczynia się do dużo lepszego poziomu wiedzy biznesowej w zespole. Doświadczenie pokazuje, że niekoniecznie powinniśmy dążyć do 100% pokrycia funkcjonalności testami automatycznymi, natomiast zawsze powinniśmy pamiętać o zarządzaniu jakością w ujęciu End-2-End używając, narzędzi oraz rozwiązań przynoszących największą wartość biznesową.
Naturalnym i najistotniejszym trendem i priorytetem w segmencie testowania oprogramowania są i zawsze pozostaną ludzie. Oczywiście równie ważne są i ich umiejętności – nowe technologie, frameworki, będą wymagały rozwoju nowych kompetencji i często znajomości języków programowania (Java, Javascript oraz Phyton). Nie każdy tester musi jednak być testerem automatycznym. Profesjonalizacja testingu, która dzieje się od lat, daje także wiele możliwości rozwoju osobom analitycznym, osobom łączącym wiedzę QA z wiedzą domenową, a także strategom testów i test managerom odpowiedzialnym za dobór najlepszego podejścia do zarządzania jakością, będącego integralną częścią „delivery”.
Różnorodność możliwości rozwoju w bardzo bogatym świecie Digital Assurance i Quality Engineering powoduje, że zawód testera staje się interesującą i prestiżową ścieżką, zawodem, w którym trudno o stagnację. Co ciekawe, w testingu pracuje też nieproporcjonalnie więcej kobiet niż w innych specjalizacjach IT – w Capgemini proporcje w zespole są niemal równe.
Narzędzia, którymi operują specjaliści powinny jednak także odciążać zespoły, optymalizując przy tym czas wykonywania zadań – stąd też olbrzymie znaczenie w testingu zyskują obecnie sztuczna inteligencja i uczenie maszynowe. W ramach Grupy Capgemini stworzyliśmy rozwiązanie nazywane Artificial Data Amplifier (ADA), jest to narzędzie wytwarzające z wykorzystaniem AI syntetyczne dane testowe na bazie prawdziwych zbiorów danych, gwarantując pełną zgodność danych pod względem wymogów GDPR/RODO, a jednocześnie jakość danych testowych bliską danym produkcyjnym.
To staje się szczególnie istotne w obliczu prognoz dla tej części rynku – jak wynika z badań, branża testerska może liczyć się ze wzrostem na poziomie niemal 13 proc. w skali rok do roku.1
To, na czym będą skupiać się zespoły testerskie w najbliższych latach, to wzrost testowania w obszarze chmury, testy bezpieczeństwa DevSecOps oraz obciążeń i wydajności, testowanie rozwiązań mobilnych i platform biznesowych (SAP, Salesforce, Guidewire), AI i kognitywna kontrola jakości. Wyzwaniem będzie także odpowiednie zarządzanie procesami związanymi z big data i internetem rzeczy (IoT) oraz opanowanie automatycznego udostępniania syntetycznych danych testowych. Wyzwanie, które z kolei stanie przed kadrą managerską, to zarządzanie i integracja zespołów, które w świecie post COVID’owym, będą pracowały w jeszcze bardziej dynamicznym otoczeniu projektowym, w którym wymiar organizacji pracy nabiera zupełnie nowego znaczenia. Należy przede wszystkim dokładnie rozumieć zasady integracji oraz zaszczepić w zespołach programistyczno-testerskich myśl, że jakość stała się częścią cyklu życia oprogramowania, a sami testerzy stają się facylitatorami jakości w zadaniach związanych z tworzeniem oprogramowania.
-
1 Raport Techavio.com: Rynek usług testowania oprogramowania w podziale na produkty, użytkownika końcowego i regiony. Prognozy i analizy na lata 2020–2024
Tomasz Gorczyński, Capgemini