Przejdź do Treści

Podcast techchatter
czwarty odcinek specjalny

AI w Quality Assurance, czyli testujemy pracę AI, a ona… naszą? (odcinek specjalny).

Quality Assurance może wydawać się jednym z pierwszych obszarów, w którym AI mogłoby w całości zastąpić człowieka. Ale czy rzeczywiście tak się stanie? Jeśli oddamy testowanie oprogramowania maszynie, to ktoś będzie musiał skontrolować to, czy maszyna wykonała dobrą pracę. Równie ważnym aspektem jest też jakość kodu, który tworzy AI. Bo jak przetestować ten kod, jeśli nie jesteśmy w stanie określić wszystkich możliwych parametrów wejściowych i wyjściowych?

Zapraszamy do słuchania!

W dzisiejszym odcinku edycji specjalnej TechChattera tworzonej wspólnie z serwisem Niebezpiecznik.pl odpowiadamy m.in. na pytania:

  • jak AI wspiera testowanie oprogramowania
  • dlaczego AI nie zabierze pracy Quality Engineerom
  • jak GitHub Copilot pomaga z testami automatycznymi
  • co to są testy metamorficzne i jak je wykorzystać
  • jak testować rezultaty pracy sztucznej inteligencji

Eksperci Capgemini:

Hanna Porożyńska – Jako People Units Manager praktyki specjalizującej się w Quality Engineering i testach, skupia się na rozwoju ludzi i optymalizacji procesów. Z bogatym doświadczeniem jako menadżerka testów w dużych projektach, wprowadzała innowacyjne oprogramowanie i rozwiązania w różnych branżach. Pasjonuje ją sztuczna inteligencja i jej potencjał do usprawnienia i oszczędności czasu.

Tomasz Czyżewski-Klimkiewicz – Starszy Konsultant Oprogramowania z ponad 10-letnim doświadczeniem w testowaniu oprogramowania. Jako Test Manager buduje i wdraża strategie testowania w różnych projektach. Interesuje się optymalizacją procesu testowania i lubi poszukiwać niestandardowych rozwiązań. Jest jednym z koordynatorów w testerskim community Software Watch i chętnie dzieli się swoją wiedzą. W wolnym czasie przygotowuje się do swojego pierwszego ultramaratonu rowerowego.

Prowadzący:

Jakub Orlik – Trener techniczny z Niebezpiecznik.pl, absolwent Wydziału Matematyki i Informatyki UAM w Poznaniu, mający na koncie prace dyplomowe o kryptologii bezpieczeństwie aplikacji webowych. Od lat realizuje się jako programista aplikacji internetowych. Fascynują go wszelakie nieoczywiste sposoby, w jakie technologia wpływa ludzkie decyzje, samopoczucie i bezpieczeństwo. Z własnej inicjatywy prowadził warsztaty z ochrony przed atakami cyfrowymi dla pracowników szkół oraz dla młodzieży. W trakcie ich prowadzenia odkrył w sobie uznawaną za niepowszechną wśród informatyków zdolność do czerpania przyjemności z prowadzenia przemówień publicznych. Łączy odkryte w sobie cechy i umiejętności aby pomóc obywatelom cyfrowego świata sprawiać, by technologia rozwiązywała więcej problemów, niż tworzy.

Linki do polecanych materiałów:

https://www.tmap.net/book/testing-digital-age-ai-makes-difference

https://www.aidevs.pl/

Jeśli odcinek Ci się spodobał, daj nam o tym znać wystawiając ocenę w Spotify lub Apple Podcasts.

Podcast Capgemini Polska

Produkcja: Cleverhearted Showrunners

MODERATOR: AI pomaga nie tylko programistom, może także wspomóc pracę osób pracujących jako Quality Engineers. Czy tak zwani testerzy mają się bać o swoje stanowiska pracy, bo AI ich zastąpi? W tej rozmowie Hanna Porożyńska, People Units Manager praktyki specjalizującej się w Quality Engineering i testach, oraz Tomasz Czyżewski-Klimkiewicz, starszy konsultant oprogramowania z ponad 10-letnim doświadczeniem w testowaniu oprogramowania, opowiadają o tym, jak AI zmienia pracę w dziedzinie Quality Assurance.
Cześć! Słuchasz drugiego sezonu podcastu TechChatter, audycji Capgemini Polska, w której eksplorujemy świat technologii. Dołącz do rozmowy naszych ekspertów i ekspertek. Posłuchaj, co tworzymy tutaj, w Polsce. Odkryj z nami projekty, które kształtują przyszłość i przekonaj się, jak interesująca może być praca w sektorze IT. To co? Zaczynamy? 
MODERATOR: Wiemy już, jak AI działa. Wiemy, jak możemy hakować AI albo hakować za pomocą AI. Omówiliśmy sobie w poprzednim odcinku także o różnych wyzwaniach etycznych i jak możemy sprawić, żeby nas AI nie zjadło. I… No pozostaje nam temat testowania, czyli co możemy zrobić, żeby mieć większą pewność, że produkt, który oddajemy klientowi, ma takie cechy, jakie pożądamy. Oraz wyobrażam sobie, że sama obecność AI zmienia pracę osób, które pracują w Quality Engineering. Haniu, powiedz, mam rację? 
HANNA POROŻYŃSKA: Tak. Myślę, że jak najbardziej masz rację i tak jak AI wpływa na całe IT, to oczywiście również na Quality Engineering. I tutaj mamy już dostępne modele i dostępne rozwiązania, z których możemy korzystać. To jest głównie Generative AI, czyli przetwarzanie tekstu na tekst, przetwarzanie tekstu na audio albo na wideo. Albo moim zdaniem najciekawsze przetwarzanie tekstu na taski, czyli na to, jak AI może za nas pewne rzeczy robić. I tak jak AI jest wykorzystywane przez programistów albo będzie wykorzystywane, tak samo możemy w testach wykorzystać kod automatyzacji testów. I tutaj złotem okazują się takie narzędzia jak już istniejący na przykład GitHub Copilot, który może nam wspomóc pisanie kodu do testów automatycznych. Sam AI może nam pomóc przepisać już istniejące testy automatyczne z jednego języka na inny. Może nam pomóc rozwiązać skomplikowany problem logiczny albo przełożyć jakiś algorytm na test. Ale też potencjalnie, myślę, że to się wydarzy, sprawi, że będziemy mieli mniej tych błędów, ponieważ jeżeli programiści zaczną korzystać z AI przy programowaniu, no to on sam już będzie mógł wyeliminować takie najczęstsze błędy ludzkie jak literówki, błędy w zmiennych czy w podstawowej logice. Natomiast mówimy tutaj o wspomaganiu tworzenia tych testów automatycznych, czyli AI nam napisze jakiś kod według zadanego pytania. Natomiast na końcu człowiek będzie musiał zweryfikować, czy on faktycznie działa i czy faktycznie odpowiada naszym potrzebom. 
MODERATOR: Czyli taki QA. W ogóle to jest OK, jak ja mówię QA. Nigdy nie wiem, czy jak nazywam kogoś skrótem, to jest to traktowane jako OK czy nie. 
HANNA POROŻYŃSKA: Jest OK. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Jak najbardziej powszechne. 
HANNA POROŻYŃSKA: Tak naprawdę to byli testerzy, potem QA, a teraz są quality inżynierowie.
MODERATOR: OK, quality inżynierowie. Dobrze. 
HANNA POROŻYŃSKA: Tak. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: QE. 
MODERATOR: QE. You’re such a QE. Czyli taki quality inżynier więcej w pracy z AI będzie czytał właściwie kod, niż go pisał. Czyli znowu używał bardziej tej swojej ludzkiej strony i intuicji zrozumienia kontekstu bardziej niż klepania kodu i wyklepywania kolejnych scenariuszy tekstów. Tak rozumiem, że się już teraz zmienia praca w QE? 
HANNA POROŻYŃSKA: Tak naprawdę to teraz się na to przygotowujemy, ponieważ obecne modele nie są jeszcze bezpieczne pod kątem wycieku danych. Dlatego nie możemy tam do nich wrzucić pełnej dokumentacji, która będzie zawierała dane klientów albo dane poufne. Tak samo jak kodu, który tworzymy dla naszych klientów i nie możemy pozwolić na to, żeby on wypłynął gdzieś indziej. Ale moim zdaniem jest to kwestia czasu. Tak naprawdę czekamy już na rozwiązanie samego OpenAI, który zapowiedział wersję czatu GPT biznesową, która, miejmy nadzieję, będzie już bezpieczna i wtedy faktycznie wszystko wskazuje na to, że będziemy mogli wyeliminować te najbardziej powtarzalne zadania, te takie zadania, które zajmują nam najwięcej czasu i skupić się na tej części kreatywnej, w której człowiek jest niezbędny. 
MODERATOR: A ta wersja biznesowa w jaki sposób miałaby być bardziej bezpieczna? Jakie zmiany miałyby sprawić, że byłaby tutaj bardziej adekwatna do takich zastosowań? 
HANNA POROŻYŃSKA: Nie znam specyfikacji produktu, natomiast wyobrażam sobie w ten sposób, że dane nie będą wypływały na serwery OpenAI, a teraz tak to działa. 
MODERATOR: Czyli są zamknięte np. w sieci firmy, model znajduje się u firmy a nie w chmurze. Coś takiego?
HANNA POROŻYŃSKA: Tak. Mam nadzieję, że to będzie tak działało. 
MODERATOR: Tomek, bawiłeś się już Copilotem przy tworzeniu testów? 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Nie. Natomiast sprawdzałem jego możliwości, jak najbardziej, bo wszyscy mówią właściwie o wykorzystaniu tych modeli AI w programowaniu, w pisaniu właśnie zautomatyzowanych testów. Ale też jest ciekawe właśnie, w jaki sposób tego rodzaju modele mogą pomóc testerom manualnym bądź menadżerom na przykład, test menadżerom. I tutaj też już ma naprawdę fajne możliwości, jeśli mówimy o pisaniu przypadków testowych, pisaniu całej strategii testów. Natomiast problemem jest właśnie kwestia tego, że nie możemy dzielić się danymi firmowymi, prawda? To już wcześniej była o tym mowa, że w niektórych przypadkach można zapytać klienta, czy się zgadza na coś takiego albo inna sytuacja, kiedy realizujemy jakiś projekt samodzielnie, gdzie to nie jest nic innowacyjnego, gdzie to nie są jakieś poufne dane, tylko możemy, nie wiem, chcemy zrobić kolejną stronę taką, jakich jest już multum, tylko naszą własną i tutaj nie musimy jakby martwić się o poufność danych, prawda? Więc w takim przypadku możemy nakarmić taki model naszymi wymaganiami i on jak najbardziej będzie w stanie wówczas napisać nam do tego przypadki testowe, zaproponować jakiego rodzaju testy powinniśmy przeprowadzić. Może nam również wygenerować dane testowe, chociaż tutaj też to różnie bywa, bo tutaj się pojawia problem z kreatywnością, bo to jest tak naprawdę praca odtwórcza. To jest taka pozorna kreatywność, ponieważ to, co tworzą nam modele AI, to jest zlepek tego, co już poznały. Więc w takim przypadku ja zrobiłem taki sobie mały test na zasadzie, że poprosiłem go o wygenerowanie danych testowych zgodnie z jakąś tam specyfikacją, wypisałem ileś pól, powiedziałem, jakie tam mogą być wartości, jak najbardziej wypluł mi zestaw, iluś tam wierszy danych testowych, tyle o ile go poprosiłem. Natomiast w drugiej próbie poprosiłem go o wygenerowanie błędnych danych testowych, które nie będą się zgadzały ze specyfikacją, ponieważ chciałbym przetestować walidację tych danych testowych w systemie. I tu już był problem, ponieważ jeżeli mu nie podawałem przykładów, to on robił bardzo małe modyfikacje, np. numery identyfikacyjne, w ogóle tego nie ruszył, wszystkie były unikalne i zgodnie z formatką, którą podałem. Więc tutaj wydaje mi się, że jednak ludzka kreatywność jest na zupełnie innym poziomie, prawda? Bo jednak model byłby w stanie to odtworzyć, tylko że najpierw musielibyśmy mu podać dużo różnych możliwości, w jaki sposób te dane mogą być błędne, każde po kolei pole w inny sposób pokazać, że to może być tak, to może być inaczej. No ale pytanie właśnie, czy to jest, w tym momencie przynajmniej, czy to jest sens, ponieważ to jest trochę za dużo, wydaje mi się, pracy w stosunku do otrzymanych wyników. 
MODERATOR: Bo rozumiem, że gdyby człowiekowi dać takie zadanie, doświadczonemu quality engineerowi, żeby popsuł jakieś dane, żeby sprawdzić, czy prawidłowo będą psuły to, co mają psuć, no to człowiek sam pomyśli, OK, no ID-ki są unikalne, to zrobię tak, żeby się powtarzały albo nie wiem, niektóre dane będą puste i tak dalej. I to już nawet nie trzeba tego mówić, tylko po prostu człowiek sam ze znajomości tego kontekstu by to wykombinował. Tutaj myślę, że być może można byłoby zrobić model, który byłby uczony na tym, że daje mu się dane dobre, potem popsute i on sobie jakoś to tam wywnioskuje. Ale te modele, które teraz są raczej uczone na tekstach znajdowanych w Internecie, które, obstawiam, dosyć rzadko znajdują w sobie takie elementy jak: “są tutaj dane dobre, proszę, żeby ktoś mi je zepsuł, ooo, to są zepsute”. Więc rozumiem, że ta ogólność tej wiedzy tutaj nie wystarcza, a taki specjalista jak quality engineer, który wie z doświadczenia, byłby tutaj skuteczniejszy. 
HANNA POROŻYŃSKA: Mamy też inne zastosowania AI-a w quality engineeringu, w testach, np. jak visual validation, gdzie możemy porównać np. wymarzony wygląd interfejsu do tego, jaki otrzymujemy od programistów. I tutaj AI sprawdziłby się prawdopodobnie tak samo dobrze jak ludzkie oko, a czasami nawet lepiej, bo mógłby to zrobić co do piksela. 
MODERATOR: I zdać raport na ten temat, tutaj się rozmiar fontu nie zgadza albo coś jest przesunięte czy kolory są nie takie? 
HANNA POROŻYŃSKA: Dokładnie. 
MODERATOR: Uwalniając od takiej dosyć żmudnej gry – znajdź 10 różnic na dwóch obrazkach.
HANNA POROŻYŃSKA: Tak jest. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Chociaż z drugiej strony jeszcze kwestia implementacji samych testów właśnie tej warstwy kodowej tego interfejsu graficznego, bo pytanie, jak ten interfejs będzie zachowywał się w przypadku jakichś sytuacji dynamicznych, czyli jak będzie skalował. Tutaj by trzeba było właśnie mu wygenerować ileś tam obrazów do porównania, więc też są jakiegoś rodzaju ograniczenia. Natomiast jak najbardziej może usprawnić taki proces, szczególnie również biorąc pod uwagę fakt, że ta technologia idzie cały czas do przodu i coraz to nowsze rozwiązania się pojawiają. 
HANNA POROŻYŃSKA: Można też wykorzystać AI do analizy danych oczywiście i w przypadku testów mogą to być dane historyczne dotyczące defektów w danej aplikacji, czyli na przykład może nam pomóc wskazać obszary, w których najczęściej mogą występować błędy i dla nich skupić nasze testy. Także może to być nasz taki asystent pracy codziennej, a także takiego dynamicznego znajdowania błędów w trakcie pracy aplikacji, niekoniecznie z potrzebą tam działań ludzkich. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Ja mam w sumie dla porównania taką sytuację, ponieważ Amazon był znany z tego swego czasu, teraz troszeczkę to się zmieniło, ale swego czasu chwalił się tym, że prawie nie testuje swojego oprogramowania, które wrzuca na produkcję. Dokładnie. I oni mieli za to ustawione dużo procesów monitorujących na produkcji i w momencie, kiedy była wrzucana nowa wersja jakiegoś feature’a i w systemie pojawiały się w logach różnego rodzaju błędy, to system monitorujący był w stanie z automatu po przekroczeniu pewnego thresholdu zrobić rollback do poprzedniej wersji i dać znać deweloperowi, że coś jest nie tak w nowo wgranej wersji. 
MODERATOR: Ale tutaj mówimy o tym, że aplikacja po prostu rzucała jakimiś errorami w logach, a mogłaby zachowywać się w sposób niewłaściwy, którego nie widać po errorach w logach, nie? Więc wydaje mi się bardzo ryzykownym podejściem. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: No to jeżeli tutaj byśmy zastosowali model AI, który byłby w stanie tego typu sytuację analizować, to mógłby również na przykład obserwować ilość niedokończonych transakcji, które zostały przerwane z jakiegoś powodu innego niż kliknięcie “wróć do strony głównej” albo ilość problemów z płatnością, bo to również użytkownicy zgłaszają i mogłaby dawać znać. 
MODERATOR: Albo ilość problemów, w których użytkownik zamówił coś skutecznie z dowozem, ale nie wykonał płatności, bo była jakaś luka. Ryzykowne podejście, ale przypomina mi trochę to, co Netflix swojego czasu, chyba nawet nadal robi, że oni mają ten system Chaos Anki, że ubijają sobie randomowo serwery produkcyjne, bo są tak pewni tego, jak ich infrastruktura działa. Macie jeszcze jakieś narzędzia, które przychodzą Wam na myśl, jeżeli chodzi o to, jak AI usprawnia pracę QA Engineera? Bo z tych, które powiedzieliście, to widzę, że właśnie znowu chodzi o to, żeby usprawniać pracę, nie zastępować i dawać więcej przestrzeni na tę kreatywną pracę. Czyli jakby tak wnioskuję, że raczej nie czujecie, że pozbawi was pracy AI. 
HANNA POROŻYŃSKA: Nie. Wydaje mi się, że AI nam wspomoże naszą pracę i przesunie nas w stronę właśnie kreatywności, w stronę tych takich bardziej ciekawych tasków, a te powtarzalne będzie robił trochę za nas. I tak jak mówiłam wcześniej, że jeszcze to oprogramowanie nie jest gotowe na to, no ale to jest kwestia czasu, kiedy w tą stronę pójdziemy. Także AI jest świetny do generowania pracy, do przetwarzania tego, co chcemy zrobić. Też bardzo wspiera takie nawet per-programming czy sprawdzenie swojego pomysłu. Czyli możemy poprosić np. AI, żeby zadawał nam pytania, które miałyby pokazać słabe strony naszego rozwiązania. Więc możemy go traktować trochę jak takiego partnera do rozmowy. Natomiast finalny efekt pracy i tak musi być zweryfikowany przez człowieka. I to jest nasza odpowiedzialność, co ostatecznie zaimplementujemy. Także nie możemy tej odpowiedzialności oddać AI. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Można również spojrzeć na to, że generatywne modele AI są po prostu kolejnym narzędziem wspomagającym pracę deweloperów. Więc w efekcie najprawdopodobniej będzie jeszcze więcej oprogramowania, a jeszcze więcej oprogramowania oznacza jeszcze więcej testów. Więc raczej nie mamy czym się martwić, jeśli chodzi o pracę dla QA. 
HANNA POROŻYŃSKA: Nie, natomiast będzie to szło w inną stronę. Będzie wymagało od nas innego zestawu umiejętności i zaoszczędzi nam bardzo dużo czasu. Natomiast podejrzewam, że tak jak we wszystkim, co się teraz dzieje, ten czas nie zostanie u nas przeznaczony na relaks, tylko będzie większa efektywność, co za tym idzie większe tempo wytwarzania oprogramowania i zmian, jakie wprowadzamy. 
MODERATOR: A jak się testuje samo AI?
HANNA POROŻYŃSKA: To jest dobre pytanie. [śmiech] To jest cały czas obszar, który jest rozwijany, więc zaczynając od takich najprostszych rzeczy jak na przykład: po uczeniu modelu możemy sprawdzić, czy ten model już rozpoznaje prawidłowo zdjęcie psa i prawidłowo zdjęcie kota albo oczywiście bardziej skomplikowane rzeczy, po to jak faktycznie możemy weryfikować już działanie złożonego modelu, który był szkolony na terabajtach danych. I cały czas to jest dziedzina, którą rozwijamy, ale która w przyszłości będzie bardzo potrzebna. Oczywiście pod kątem również etyki, bo AI może też się uczyć zachowań, które w pewien sposób będą wykluczały albo będą wprowadzały nas w błąd. Więc jako ludzie to będzie nasza odpowiedzialność, żeby tego nie dopuścić i żeby takie rzeczy wychwytywać.
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Trzeba również wziąć pod uwagę, że testerzy będą musieli wypracować sobie nowe kompetencje, spojrzeć na proces testowy również troszeczkę inaczej. To nie jest coś nowego, prawda? Uczenie maszynowe, modele AI to jest coś, co już od jakiegoś czasu istnieje. Natomiast dzięki czatowi GPT zyskało na dużej popularności, dostało po prostu bardzo dobrą reklamę i teraz wszyscy o tym mówią. Są już pewne techniki testowania AI, chociażby trzeba wziąć pod uwagę sam proces uczenia, który również ma w częściach składowych coś w rodzaju testowania go, ponieważ najpierw jest to czynnik ludzki, czyli model generuje odpowiedzi na zadane pytania i po drugiej stronie człowiek ocenia poprawność tych odpowiedzi, ustawia je w odpowiedniej kolejności, które były najlepsze, które były najgorsze. Jest to powtarzane wielokrotnie, potem następuje również część, w której taki model sam sobie pozycjonuje poprawność odpowiedzi i to jest część treningu. Natomiast jeżeli mówimy o testowaniu modeli AI już po takim treningu, no to tutaj trzeba zwrócić uwagę na to, że to nie są takie same testy jak w przypadku oprogramowania komercyjnego. Ciężko jest tam wyróżnić takie same poziomy testowania jak np. testy jednostkowe, integracyjne, systemowe. Tu trzeba na to spojrzeć troszeczkę w inny sposób. Możliwe, że trzeba będzie zastosować inne techniki testowania, tak jak ostatnio właśnie czytałem o testach metamorficznych. Są to testy, technika, która powstała już w latach 90. właśnie przy okazji nauczania maszynowego i tak jak w przypadku normalnych testów z reguły wiemy, jakie są wartości wejściowe, mamy mapowanie do wartości wyjściowych, tak w tym przypadku, jeżeli testujemy taki model typu ChatGPT, to nie jesteśmy w stanie określić wszystkich parametrów wejściowych, wszystkich promptów, jakie możemy napisać i nie wiemy, jaka ma być poprawna tak do końca odpowiedź. I w tym przypadku testy metamorficzne skupiają się bardziej na tym, żeby zobaczyć, jakie są relacje między tym, co ja mu zadam, między danymi wejściowymi a wyjściowymi, ale bez znajomości tego całego mapowania. Raczej kwestia obserwacji. Musielibyśmy też się zastanowić, czy na pewno te same metryki powinniśmy używać, co w przypadku testowania komercyjnego. Może bardziej powinniśmy skupić się na metrykach jakościowych, może jakieś nowe wprowadzić, rozwinąć. 
HANNA POROŻYŃSKA: AI jest też niedeterministyczny, co oznacza, że jeżeli zadamy mu pytanie, to samo pytanie kilka razy, za każdym razem odpowiedź może być inna. Więc to jest chyba największe wyzwanie, jeżeli chodzi o testowanie AI, bo wcześniejsze modele oprogramowania, jakie testowaliśmy, zakładało, że przy danej wejściowej zawsze mamy tu przewidywalną daną wyjściową. 
MODERATOR: Teraz mamy do czynienia z jakąś rzeczą, której sposobu działania nie jesteśmy w stanie zbadać i której wyniku nie jesteśmy w stanie przewidzieć, ale mimo wszystko próbujemy to ująć w jakąś ramę, która pozwoli nam zwiększyć pewność tego, że to robi to, co robi i spełni nasze wymagania produktowe. 
HANNA POROŻYŃSKA: Dokładnie.
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: To jest podobnie, jakbyś chciał poznać drugą osobę, prawda? Nie wiesz, co siedzi w jej głowie, więc bazując na tym, jakie pytania zadajesz i jakie odpowiedzi dostajesz, możesz starać się domyśleć, jak wyglądał proces myślowy u drugiej osoby. 
MODERATOR: Czyli sugerujecie, że należy wziąć modele językowe na randkę? 
HANNA POROŻYŃSKA: Świetny pomysł! [śmiech]
MODERATOR: Ale opowiedzcie mi, bo praca QE, przepraszam, quality engineerów, się zmieni, z tego, co mówicie, to całkiem znacząco. Co ktoś, kto pracuje w quality engineering, powinien dołączyć do swojego zbioru kompetencji, żeby być gotowym na te zmiany? 
HANNA POROŻYŃSKA: Przede wszystkim powinien nie bać się zmiany, bo nie mamy na to wpływu, po prostu powinniśmy iść z prądem i poznać sposób działania AI, poznać sposób, jak możemy uczyć AI, jak możemy go wykorzystać, jak najlepiej może nas wesprzeć. Bo finalnie to do tego się sprowadza, że to jednak ma być narzędzie, czyli coś, co nam pomoże w pracy, a nie przeszkodzi. I tutaj bardzo się przydadzą w przyszłości, jak będziemy mieli więcej czasu na tę kreatywną pracę, to bardzo się przydadzą umiejętności programowania mimo wszystko, umiejętność czytania kodu, ale także wejście w tematy takie low-code, no-code, czyli żeby usprawnić sobie pracę, “budowanie z klocków programowania”, żeby po prostu szło to szybciej. Powinniśmy też zwracać dużą uwagę do wszystkich etycznych aspektów, czyli coś, czego maszyna za nas nie zrobi. Powinniśmy nauczyć się budować prompty, prompt engineering, czyli w jaki sposób efektywnie rozmawiać ze sztuczną inteligencją. Powinniśmy umieć łączyć ją z innymi narzędziami, które wykorzystujemy, czyli tutaj np. chat GPT jest fajny do dyskusji, do generowania pomysłów, natomiast jeżeli połączymy chat GPT-4 na przykład przez API z narzędziami, które na co dzień wykorzystujemy w pracy, to wtedy daje to już nam zupełnie inne możliwości i faktycznie może nam usprawnić pracę. 
MODERATOR: Mam wrażenie, że to jest taka opowieść o kompetencjach, które właściwie każdy z nas, w szczególności pracujący w IT, warto, żeby w sobie pielęgnował, jeżeli faktycznie ta fala tego AI nas wszystkich zabierze w głąb morza, to trzeba jakoś pod tą wodą nauczyć się oddychać wtedy.
HANNA POROŻYŃSKA: Ja tutaj byłabym bardziej entuzjastyczna, że to nie zabiera nas w głąb morza pod wodę, tylko właśnie na szerokie wody oceanu nas wypuszcza w piękne rejony. 
MODERATOR: W poprzednich odcinkach rozmawialiśmy dużo o zagrożeniach związanych z AI, wynikających z halucynacji, prompt engineeringu. Haniu, jak możemy sobie radzić z tymi zagrożeniami? 
HANNA POROŻYŃSKA: Zawsze jak są zagrożenia, to oczywiście szukamy tutaj lekarstwa na nie. No i w przypadku wykorzystania AI też takie lekarstwa się pojawiają. Więc np. tutaj w przypadku halucynacji czy jakichś takich danych niespójnych czasami możemy mieć wrażenie, że model nam odpowiada, lejąc tak zwaną wodę, to możemy użyć techniki reflection. To jest technika, której pytamy, czy to, co napisałeś/napisałaś, odpowiada na moje pytanie, czy to jest wszystko, co można w tym temacie powiedzieć, czy to jest najlepsze rozwiązanie. I wtedy ta technika naprawdę ma świetne rezultaty. Jest mega prosta, ale zazwyczaj wtedy odpowiedź dostajemy, że ups, faktycznie, to jeszcze weźmy pod uwagę to i to albo napiszę to w inny sposób.
MODERATOR: Po prostu przypomina mi się te wszystkie sytuacje w szkole, kiedy pani od matematyki np. przechodziła obok mnie, jak pisałem sprawdzian i mówiła na głos: “przeczytajcie uważnie treść zadania 4”. Cieszę się, że na roboty też to działa. 
HANNA POROŻYŃSKA: Tak jest. Ich też musimy challenge’ować. Inną taką metodą to jest to, co wcześniej mówiliśmy o prompt engineeringu, czyli żeby te zapytania były jak najbardziej trafne. To z jednej strony możemy się tego nauczyć, a z drugiej strony możemy poprosić samego AI, żeby nas tego nauczyła. Są już takie plug-iny do chata GPT, które pomagają w tworzeniu meta-promptów, czyli to są prompty o tym, jak napisać najlepszy, najbardziej adekwatny prompt, dzięki któremu dostaniemy tę odpowiedź, na której nam zależy. Bo nie zawsze, nawet rozmawiając z jakimś ekspertem, potrafimy się najlepiej wyrazić, co mamy na myśli, więc są już narzędzia, które nam w tym pomagają. No i tak jak w większości technik takich w IT, możemy też w AI użyć reverse engineeringu i to wyeliminuje nam problem niespójnych danych. Czyli np. jeżeli mamy pół książki napisane w jakimś stylu, to możemy to wrzucić i poprosić, żeby naśladując ten styl, kontynuując ten temat, dopisał resztę albo żeby np. zrobił listę jakichś wpisów na bloga w ten sam sposób, więc to też działa od drugiej strony. 
MODERATOR: Tomku, bo dzisiaj tutaj zrobiliśmy niezłą reklamę modelom językowym, ale obstawiam, że nie jest tak, że są w stanie nas, quality engineerów, wyręczyć w zupełności. Są, bstawiam, jakieś aspekty, w których pozostaniecie niezastąpieni.
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Dokładnie. Tutaj są pewne obszary w testowaniu, w których generatywne modele AI jeszcze tak nie do końca sobie radzą. Można tutaj wspomnieć np. o accessibility albo o user experience, ponieważ to są… Tu możemy korzystać z modeli AI jako takich analyticsów, które będą wspomagały nas w określeniu zadowolenia użytkowników z danego rozwiązania, ale nie będą w stanie przetestować tego w żaden sposób. Mogą oczywiście zasymulować feedback użytkowników, ale będzie to jedynie symulacja a nie prawdziwe odczucia, prawda? Więc są obszary, w których po prostu te modele AI mogą wygenerować nam dane, ale niekoniecznie te dane będą zasadne w danym przypadku. 
MODERATOR: Myślę sobie o tych wszystkich bardzo memogennych przykładach, kiedy czat doklejony do wyszukiwarki Bing odpowiadał użytkownikom w sposób, że “nie, nie masz racji, masz mnie przeprosić” i tego typu rzeczy albo upierał się, że jest inny rok. Czy tutaj któreś z narzędzi, które wymieniliście do poprawy jakości i oprogramowania AI mogłyby być użyteczne, żeby czemuś zapobiec? Czy to jest tak, że Microsoft po prostu zapomniał albo w pośpiechu nie użył którychś z dostępnych narzędzi? Czy to jest tak, że w AI nie mamy dostępu do narzędzi, które byłoby nas przed tym w stanie uchronić w 100%? 
HANNA POROŻYŃSKA: AI uczy się od nas, więc widocznie tacy jesteśmy, że tak reaguje. Natomiast, żeby wyeliminować takie sytuacje, to tutaj się przydadzą modele prywatne, czyli możemy zaprogramować albo nauczyć model, że ma odpowiadać tylko w konkretny sposób, jego poziom kultury, odpowiadać tylko na konkretne pytania i z dużym prawdopodobieństwem tak zrobi. Mówię z dużym prawdopodobieństwem dlatego, że ciągle da się jeszcze oszukać model i wyciągnąć z niego informacje, które teoretycznie powinien nam nie przekazać. Natomiast z wersji na wersję są one bardziej sprytne i zachowują się bardziej adekwatnie do tego, jak zostały stworzone. 
MODERATOR: Czyli jeżeli chcielibyśmy, żeby model nigdy nie dawał niegrzecznej odpowiedzi, powinniśmy dawać mu dane uczące, w których tylko są grzeczne odpowiedzi?
HANNA POROŻYŃSKA: Myślę, że tak. 
MODERATOR: To była metoda? OK. Więc moglibyśmy wziąć wszystkie dane uczące, przerzucić je przez AI, które sprawdza, czy to jest grzeczna odpowiedź czy nie i zrobić nowy, taki troszeczkę niedouczony, który nie potrafi być niegrzeczny? 
HANNA POROŻYŃSKA: Dokładnie. I taki, który nie rozumie ironii na przykład. [śmiech]
MODERATOR: Żeby jeszcze bardziej upodobnić go do typowego informatyka. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Przy czym tutaj, jak mówimy o modelach prywatnych, pojawia się jeszcze taki mały problem, bo z jednej strony OK, to mogłoby być fajne rozwiązanie i najprawdopodobniej w najbliższym czasie pojawią się takie rozwiązania. Natomiast wydaje mi się, że tutaj największym problemem mogłaby być kwestia właśnie tych danych, na których on się uczy, prawda? No bo żeby dobrze rozumiał na przykład właśnie wymagania oprogramowania i dobrze dobierał do nich przypadki testowe, to najpierw musimy mu dobrej jakości wymagań dostarczyć. Niestety nie wszystkie są dobrej jakości, prawda? Więc bazując na tym, że on się uczył na danych znalezionych w Internecie, garbage in, garbage out, w obecnej chwili jeszcze to nie jest, powiedzmy, takie idealne, ale chwilę poczekamy i myślę, że to da radę ogarnąć. 
MODERATOR: Zastanawia mnie jeszcze, jak mówimy o programie, który pisze testy do jakiegoś konwencjonalnego programu, nie mówię tutaj o jakimś już AI-u, ale AI miałby pisać te testy, no to jeżeli to byłby formularz internetowy albo algorytm sortowania, coś takiego dosyć… Czego przykładów jest dużo w Internecie, spodziewałbym się, że nie miałby AI problemów z testowaniem czegoś takiego. Zachodzę jednak w głowę, jak zachowałby się model językowy, gdyby zadano mu przetestować jakiś egzotyczny algorytm albo jakiś nowy koncept programistyczny, z którym jeszcze nie miał do czynienia.
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: No to tutaj jest jeszcze takie pytanie, czy ten algorytm jest napisany w istniejącym kodzie, który jest znany modelowi, czy mówimy na przykład o totalnie nowym języku. Możemy sobie pomyśleć nad taką sytuacją, że dzisiaj wychodzi nowy język oprogramowania, który jest bardzo zbliżony już do istniejącego, znanego modelowi języka oprogramowania i prosimy właśnie ten model, żeby przeanalizował, szukając zbieżności ze znanymi mu językami i postarał się w jakiś sposób zaproponować testy albo po prostu przeanalizował kod w poszukiwaniu błędów. On zacznie wówczas próby tego typu, ale nawet jeżeli mu damy instrukcję, to on się uczy na przykładach. On by potrzebował najpierw próbek takiego kodu, żeby być w stanie go przeanalizować, zrozumieć, nauczyć się go i wtedy mógłby z nim pracować. Ale nawet jeżeli byśmy mieli duże podobieństwo, to on i tak zacznie po prostu wrzucać na przykład fragmenty kodu właśnie z tego drugiego języka, ewentualnie zmieniając tam jakieś pojedyncze rzeczy, starając się dopasować do nowego, ale tutaj by sobie z tym nie poradził. Natomiast jeżeli mówimy o nowej, unikalnej kombinacji kodu, ale w języku, który jest mu już znany, w składni, która jest mu znana, to w takim przypadku raczej by sobie poradził. Może nie do końca by zrozumiał logikę, może nie byłby w stanie Ci wytłumaczyć, co ten kod robi, ponieważ brakowałoby mu kontekstu bądź dodatkowych informacji albo po prostu całościowego projektu, ale byłby w stanie powiedzieć, co poszczególne elementy robią, byłby w stanie napisać do nich testy jednostkowe.
MODERATOR: O ile dobrze rozumiem, jeżeli ma dostęp do struktury samego języka, to jest w stanie wydobyć z tego troszeczkę tego znaczenia odnośnie nowej struktury kodu, żeby przetłumaczyć go na scenariusze testowe, które będą przynajmniej częściowo pokrywały te przypadki brzegowe.
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Tak, dokładnie. To jest podobnie jak w muzyce. Jest skończona liczba akordów, więc wszystkie piosenki to jest po prostu kwestia kombinacji w różnej kolejności tych samych akordów, prawda? Wszystkie piosenki już gdzieś w dziesiętnym liczbie pi gdzieś są napisane. 
MODERATOR: Dokładnie. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Więc tutaj jest podobna kwestia. Jeżeli to są fragmenty kodu tylko po prostu z jakąś tam nową logiką, to on sobie z tym poradzi.
HANNA POROŻYŃSKA: Tak, właśnie chciałam powiedzieć, że jeżeli to jest kod w znanym języku, to jak najbardziej sobie poradzi, bo nawet czasami AI jest wykorzystywane do tego, żeby tłumaczyć kod. I to jest też szansa dla testerów, którzy nie programują, że np. mogą na podstawie kodu zrozumieć za tym idącą logikę i ewentualnie znaleźć jej jakieś słabe strony. I faktycznie, jeżeli już mamy kod, to napisanie testów powinno być dla AI proste. Później oczywiście musimy zweryfikować, czy one są poprawne. Natomiast samo stworzenie takiego nowego kodu, nowej funkcjonalności, która nigdzie nie występowała, myślę, że to byłoby większe wyzwanie dla AI. 
MODERATOR: W kolejnym odcinku właśnie słyszę ten duży nacisk na potrzebę weryfikacji, na potrzebę obecności ludzi, którzy znają ryzyka i znają sposoby działania tych modeli. Więc to jest kolejny kamyk na tę stertę optymizmu wobec tego, myślę, który jest kontrą do tego strachu, który pojawił się na początku tego roku, kiedy były te wszystkie gify z tym, jak tylko się prosił GitHub Copilota, żeby napisał jakiś projekt i wszystko się właściwie wyrobi samo. No i właściwie nic nie pozostaje, tylko pakować walizki i właśnie uczyć się jakiegoś zawodu, którego jeszcze AI nie przechwycił. Ale rozumiem, że w Waszym zrozumieniu, i coraz bardziej też w moim, to jest narzędzie, które ma nas wspierać. Tylko musimy sprawić, żebyśmy to my mieli cały czas kontrolę nad nim, a nie w drugą stronę.
HANNA POROŻYŃSKA: Tak jest. I musimy go mądrze używać. Ja osobiście jestem bardzo entuzjastycznie nastawiona do AI i do tego, jak wspomoże naszą pracę. Już nie mogę się doczekać, jak przejmie ode mnie wszystkie nudne zadania i wszystkie raporty i segregację maili, pomoże mi z moim kalendarzem. Ja sobie wyobrażam przyszłość w ten sposób, że każdy z nas zyska takiego asystenta, kogoś, komu będziemy mogli oddać te mniej przyjemne zadania, żeby się skupić na tych ciekawszych. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Dokładnie, jak najbardziej się z tym zgadzam. To jest moim zdaniem chyba największa rewolucja technologiczna moich czasów, przynajmniej w których żyję. I niestety trochę taka chaotyczna, bardziej chaotyczna niż następowały te poprzednie rewolucje technologiczne, gdzie dzieje się ze wszystkich stron po prostu, we wszystkich dziedzinach. Ja chcę być częścią tego, chcę obserwować, co się dzieje i zobaczyć, w jaki sposób możemy to wykorzystać w naszym życiu, właśnie dla naszych potrzeb. Ale właśnie musimy cały czas pamiętać również o obecnych ograniczeniach, o zagrożeniach takich rozwiązań. 
MODERATOR: Żadne AI nie wyręczy nas z obowiązku posiadania ostrożności i zdrowego rozsądku. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Kiedy rozmawiamy o tych wszelkiego rodzaju copilotach, asystentach wirtualnych bazujących na modelach AI, to się zastanawiam, jaka przyszłość czeka nasze dzieci tak naprawdę. Ostatnio była też mowa o kalkulatorze, prawda, że to było na początku takie, co z tym zrobić, bo to spowoduje, że ludzie przestaną sami liczyć, bo zawsze będzie kalkulator pod ręką. Ale zostało to zmienione w sytuację, kiedy to jest po prostu kolejne narzędzie. No i teraz tak jak patrzę na swojego syna, w jaki sposób on szuka informacji w Internecie, bo tam regularnie też oczywiście rozmawiamy o źródłach informacji, o bezpieczeństwie w Internecie i do tej pory stosował Google jako podstawową wyszukiwarkę informacji. Ale jak pojawił się czat GPT, to mu pokazałem właśnie jego możliwości i teraz na przykład regularnie również z tego korzysta, ponieważ jest to łatwiejszy czasami dostęp do informacji, na zasadzie, że nie musi przejrzeć sobie iluś stron, żeby znaleźć interesującą go informację, ale może zadać pytanie, uzyskać odpowiedź. Oczywiście też przypominam mu o tym, że trzeba to zweryfikować. Ale z drugiej strony jeszcze chciałbym tak powiedzieć, można wykorzystać również te niedoskonałości modeli AI w pewien sposób. Mój syn na przykład robi sobie z kolegami takie zabawy, że wymyślają różnego rodzaju gry, coś jak RPG-i powiedzmy i wykorzystuje halucynacje czatu GPT, żeby po prostu wpadać na nowe pomysły. Więc wpisuje mu na przykład… Chyba pamiętam, zapytał się o szczegóły na temat jakiegoś silnika i podał zlepek słów i czat GPT, wykorzystując swoją pseudokreatywność, oczywiście wypluł pewnego rodzaju halucynacje i pisząc, że jest to silnik wymyślony czy tam skonstruowany przez daną osobę w takim i takim roku, działa na takiej zasadzie, jakaś tam firma go produkuje i on w ten sposób zadając pytania, sobie budował historię do swoich gier z kolegami.
MODERATOR: Świetne. Czyli możemy mieć nie tylko partnerów do rozwiązywania naszych biznesowych wyzwań, ale także do urozmaicenia naszego czasu wolnego. Wyobrażam sobie, jak bardzo, nie chcę powiedzieć uzależniony w znaczeniu jakby jako narkotyku, ale jak bardzo polegać będziemy w przyszłości na tego typu asystentach w sytuacji, w których… Jak będziemy sobie radzili, kiedy ich nie będzie. Chociaż z drugiej strony, znowu sięgając do tej metafory kalkulatora, myślę, że wtedy też były obawy. No to co, rozładuje Ci się kalkulator i nie będziesz wiedział ile czasu, o której przyjedziesz do pracy, jeżeli wiesz, że droga zajmuje pół godziny, a jest 12:30.
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Dokładnie, ale teraz z drugiej strony każdy ma swój kalkulator w telefonie, a telefony raczej trzymamy z reguły naładowane, chyba że nie chcemy, żeby były naładowane, zamykamy w szufladzie, żeby mieć wolne. Ale generalnie telefon jest teraz część naszego życia, prawda? Więc za chwilę w tych telefonach możemy mieć też nasze prywatne modele, które będą się nas uczyły tak naprawdę. Nie będą tylko bazowały na informacjach w Internecie, ale będą starały się nas zrozumieć i dopasować odpowiedzi właśnie do naszych cech specyficznych, prawda? 
MODERATOR: Nie wiem, czy się bać jeszcze…
HANNA POROŻYŃSKA: Nie bój się. [śmiech]
MODERATOR: Czy poczekać jeszcze tak 5 dni. Dobrze drodzy, dziękuję Wam bardzo za tę rozmowę. Znowu mam tę taką mieszankę uczuć pozytywnych i negatywnych, ale w tej całej serii chyba tak wychodzę na plus. Każde z Was także w tym odcinku napełniło mnie swego rodzaju spokojem. Fajnie było porozmawiać z osobami, które ewidentnie nie surfują na fali hype’u, tylko podchodzą do tego rzeczowo i bardzo narzędziowo, jak to każdy inżynier powinien. Więc jeszcze raz Wam dziękuję. 
HANNA POROŻYŃSKA: Dzięki ogromne. 
TOMASZ CZYŻEWSKI-KLIMKIEWICZ: Dzięki również. 
To jeszcze nie koniec. Jeśli temat Cię zainteresował, na końcu odcinka znajdziesz materiały, dzięki którym poszerzysz swoją wiedzę i umiejętności z obszarów omawianych w tym odcinku. A w międzyczasie, żeby nie przegapić kolejnych odcinków, zasubskrybuj podcast TechChatter w swojej ulubionej aplikacji do słuchania podcastów. Jeśli ten odcinek Ci się spodobał, daj nam o tym znać, wystawiając ocenę w Apple Podcasts lub Spotify. Linki do tych serwisów oraz do zagadnień wspomnianych w odcinku znajdziesz w jego opisie. A teraz czas na polecane materiały. 
MODERATOR: Jeżeli dzisiejsza rozmowa Cię zainteresowała i chciałbyś/chciałabyś zagłębić się bardziej w temat, eksperci z Capgemini polecają Twojej uwadze dodatkowe materiały, do których linki znajdziesz w opisie tego odcinka. Znajdziesz tam książkę traktującą o testowaniu w erze AI, kurs “Programowanie w parze z AI” oraz podcast, w którym poruszane są tematy wpływu AI na środowisko pracy.
KONIEC