AplikacjeBranża ITProgramowanieRynek
Zwinne i zautomatyzowane – tak będzie wyglądało testowanie oprogramowania w najbliższych latach
Znaczenie segmentu testowania oprogramowania 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.
Trendy związane z QA i testowaniem są zbieżne z trendami w tworzeniu oprogramowania. Najwyższym priorytetem QA jest więc obecnie możliwość błyskawicznego zmierzenia poziomu jakości w projektach IT. Dział Testowania w Capgemini w ostatnich latach również przeszedł dużą transformację – dziś opieramy się na przemyśleniach i dziesiątkach lat doświadczeniach w obsłudze firm z różnych branż, m.in. z listy Fortune 500. Łączymy więc wiedzę branżową z uznanymi w branży ramami i metodologiami testowania, aby sprostać obecnym i przyszłym potrzebom klientów w zakresie zapewniania jakości. Z perspektywy klienta oznacza to jakościową transformację i możliwie najszybsze wejście na rynek. I tak, z wewnętrznych danych Capgemini wynika, że czas, w jakim wprowadzamy oprogramowanie na rynek jest nawet o 15% krótszy niż średnia rynkowa. Jesteśmy także w stanie zmniejszyć koszty całego procesu testowania o 30%. Nasze zespoły pracują natomiast nad poprawą jakości oprogramowania i są w stanie zapobiec 98% poważnych defektów. To możliwe dzięki stosowaniu nowoczesnych narzędzi połączonych z holistycznym podejściem do QA.
Kluczowe znaczenie ciągłej integracji
Testing na przestrzeni ostatnich lat bardzo mocno ewoluował w stronę nowych technologii. Od testera wymaga się dziś znajomości języków programowania, 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ło o jej przewadze konkurencyjnej. Stąd tester z umiejętnościami programowania automatyzacji w obszarze testingu jest obecnie 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. 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ą rolę w projekcie. Będąc integralną częścią zespołu są zaangażowani w proces 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ą.
Ludzie i ich umiejętności
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, łą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 bogatym świecie Digital Assurance i Quality Engineering powoduje, że zawód testera staje się interesującą i prestiżową ścieżką oraz 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 raportu Techavio.com, branża testerska może liczyć się ze wzrostem na poziomie niemal 13% w skali rok do roku.
Nowe znaczenie organizacji pracy
To, na czym będą skupiać się zespoły testerskie w najbliższych latach, to wzrost testowania w obszarze chmury, bezpieczeństwa DevSecOps oraz obciążeń i wydajności, 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.
Tomasz Gorczyński, Szef Działu Testowania we wrocławskim oddziale Capgemini Polska