
Obecnie mało jest osób, które nie słyszały o sformułowaniu „ChatGPT”. Model oparty na sztucznej inteligencji zyskuje swoją popularność w różnych dziedzinach życia, zaczynając od edukacji przez finanse, biologię czy szeroko pojętą branżę IT. Zrozumienie i wykorzystanie potencjału jaki oferuje nam ChatGPT, pozwala nam rozwijać Naszą twórczość, poszerzyć swoją wiedzę i zaoszczędzić cenny czas pracy. Czy używając ChatGPT jesteśmy w stanie rzeczywiście poprawić jakość i wydajność swoich testów na każdej płaszczyźnie?
Działanie ChatGPT
Na początek wyjaśnienie – czym tak właściwie jest ChatGPT? Stworzony przez OpenAI jest rodzajem sztucznej inteligencji, która potrafi przetwarzać i generować tekst na podstawie wprowadzonych przez użytkownika informacji. Działa na zasadzie uczenia maszynowego z wykorzystaniem sieci neuronowych do analizy dostarczonej treści. Takie przekazywanie informacji w postaci polecenia czy zapytania do systemu AI określamy jako prompt. Na podstawie odpowiednio sformułowanego pytania, ChatGPT interpretuje kontekst, a następnie generuje rozwiązanie. Użyteczność tego modelu będzie największa jeżeli nauczymy się poprawnie formułować i zadawać pytania, aby otrzymywać odpowiedzi konkretne i zrozumiałe dla grupy docelowej.
W chwili obecnej możemy korzystać z bezpłatnej wersji modelu 3.5, ale dostępna jest również płatna wersja 4.0 dająca więcej możliwości dla użytkowników. Generowane odpowiedzi są szybsze, bardziej precyzyjne niż w modelu wersji niższej. Mamy możliwość tworzenia własnych botów do konkretnych zadań (w darmowej wersji możemy korzystać z botów utworzonych przez innych). Wersja 4.0 oferuje możliwość podpięcia plików do bezpośredniej analizy czy generowanie zdjęć na podstawie tego co zostało wpisane. Dodatkową korzyścią płatnej wersji jest także priorytet w kolejce czyli w przypadku przeciążenia serwisu, płatni użytkownicy mają do niego dostęp w pierwszej kolejności. ChatGPT był pierwszym publicznie dostępnym modelem tego typu. Obecnie na rynku możemy znaleźć jego wiele alternatyw z którymi warto również się zapoznać. Na stronie www.huggingface.co/models znajduje się ogromna lista modeli sztucznej inteligencji z których można korzystać. W tym artykule skupmy się na modelu ChatGPT wersji 3.5.
Zadawanie pytań w praktyce
Prawidłowo i precyzyjnie sformułowane pytania pozwalają uzyskać konkretne, użyteczne odpowiedzi. Jak zatem powinniśmy się komunikować z ChatGPT, aby rozumiał kontekst i udzielał informacji na wskazany temat. Źle określony prompt, który jest nieprecyzyjny, nie zawiera pewnych szczegółów prowadzi do uzyskania wyników ogólnych, ścian tekstu, często nieprzydatnych i nieoczekiwanych. Tracimy cenny czas i niekiedy nadal nie otrzymujemy tego na czym nam zależy – rozwiązania naszego problemu. Sztuczna inteligencja tak jak człowiek nie domyśli się wszystkiego, jeżeli użytkownik nie przekaże kluczowych informacji, ułatwiających rozpoznanie i uzyskanie wyniku. Innych odpowiedzi oczekuje 8 latek, a innych profesor wyższej uczelni.
Kontekst
Musimy nakierować AI jak ma odpowiadać na pytania i w jaki sposób. Najważniejsze o czym należy pamiętać to kontekst. Bez jego określenia nie osiągniemy celu. Podając jak najwięcej informacji uzyskamy zamierzony rezultat. Jak ChatGPT może być wsparciem w testach? Przecież testy są wykonywane manualnie lub przy wykorzystaniu konkretnych narzędzi. Zgadza się, ale może nam wskazać konkretne metody i programy, przybliżyć pojęcia, które ułatwią i zmodernizują Naszą pracę. Sprawdźmy to na przykładzie zapytania o testy automatyczne.
Zadajmy pytanie: Jak napisać testy automatyczne?

Otrzymujemy rozbudowaną odpowiedź z ogólnym opisem. Podsumowując – dostajemy ścianę tekstu, z której musimy wybrać interesujące nas informacje. Czy tego oczekiwaliśmy? Jeżeli chcemy poznać temat ogólnie to prawdopodobnie tak, ale w sytuacji, gdy interesuje nas bardziej precyzyjny wynik to nie. Zadając kolejne nowe pytania powinniśmy otrzymać odpowiedź, ale nie mamy pewności czy na pewno. Należy zmodernizować takie zapytanie, dostosowując je do konkretnego odbiorcy.
Zadajmy pytanie: Jestem testerem oprogramowania. Mam wiedzę z zakresu javascript – jaki framework wybrać do pisania testów automatycznych?

Dzięki temu sformułowaniu dostajemy już bardziej precyzyjną odpowiedź. Zostaje ona przystosowana do grupy docelowej – testera oprogramowania z konkretną umiejętnością – wiedzą z zakresu javascript. Taka zmiana pozwala otrzymać określony rezultat, a komunikacja z ChatGPT staje się bardziej efektywna. Określając kontekst w rozmowie i zadając kolejne pytania, obieramy określony kierunek w odpowiedziach. Jeżeli podzielisz się tym co już wiesz na dany temat unikniesz powtarzania się informacji i skoncentrujesz się na rzeczach nowych. Należy jednak pamiętać, że jeżeli czat jest zbyt długi, mogą w rezultacie przychodzić gorsze odpowiedzi. ChatGPT tak jak ludzie może mieć trudności z efektywnym przypominaniem sobie wszystkich podanych wcześniej szczegółów. Wtedy należy założyć nową konwersację. Model AI będzie utrzymywał kontekst wyłącznie w ramach trwania jednej sesji, więc jeżeli rozpoczniesz nową, informacja o nim nie zostanie przeniesiona, a AI nie będzie pamiętał ustaleń z poprzedniej rozmowy.
Nowa sesja, nowe pytania, stare ustalenia. Czy przypominanie od początku tego samego nie staje się czasochłonne oraz irytujące? Jeżeli chcemy otrzymywać odpowiedzi wg określonych danych wejściowych i/lub interesują nas wyniki zaprezentowane w odpowiedniej formie to możemy skorzystać z utworzenia chatbota. Takie spersonalizowane instrukcje nazywamy „Custom instructions”, które pozwalają dostarczyć więcej danych dla sztucznej inteligencji, aby wiedziała więcej o nas i naszych wymaganiach. Dzięki określeniu roli ChatGPT będzie wiedział jak odpowiadać.
W prawym górnym rogu ekranu głównego po wybraniu ikony z inicjałami użytkownika, rozwija się lista z dostępnymi akcjami – należy wybrać opcję Dostosuj chatbota ChatGPT. Wyświetla się okno modalne z polami do uzupełnienia instrukcji dla AI.


Na powyższym przykładzie widać kto będzie odbiorcą wiadomości. Im więcej podamy danych tym bardziej będziemy mieć zindywidualizowane odpowiedzi, dostosowane do poziomu wiedzy i oczekiwań. Nie tylko rola jest ważna, ale także określenie wzorca tych wyników narzucając sposób ich prezentacji. Chatbot będzie podążał za tymi regułami. Należy wprowadzić precyzyjne dane, dostosowując instrukcję do kontekstu – czy potrzebujemy prostego wyjaśnienia czy zaawansowanej dyskusji. Ogranicza nas tylko nasza wyobraźnia. Odpowiedzią nie musi być tylko tekst w postaci notatki, ale także może być ona zaprezentowana w postaci tabeli, podziału na podpunkty czy też kodu napisanego w określonym języku programowania. Wszystko zależy jak skonfigurujesz instrukcje, które są przekazywane do AI.
Autorefleksja
ChatGPT może być dostosowany do różnych zadań, zostać nauczony jak reagować na konkretne pytania, co pomaga w automatyzacji tworzonej treści. Jeżeli coś jest nadal niezrozumiałe zadajemy kolejne pytania. Sam proces możemy jeszcze bardziej udoskonalić wprowadzając metodę autorefleksji do swojej pracy z AI. Na początku pozwólmy na to, aby to sztuczna inteligencja przedstawiła rozwiązanie i na podstawie swojej odpowiedzi generowała dalsze wyniki. Zdolność do autorefleksji jest bardzo ważna, bo pozwala na lepszą interakcję z użytkownikiem. Systemy AI symulują proces myślowy jak u człowieka, analizują to co zostało wcześniej wprowadzone i na tej podstawie generują informacje. Możemy swoją rozmowę rozpocząć od narzucenia tematu, a dopiero później zadawania pytań. Analizując poprzednie wiadomości ChatGPT szuka najlepszego rozwiązania. ’
Rozpocznijmy czat formułą: Testy automatyczne w Visual Studio Code z wykorzystaniem Playwright.

Na podstawie wcześniejszej konfiguracji Chatbotu widzimy, że otrzymujemy odpowiedź w określonym formacie. Wynik kończy się pytaniem zadanym przez AI, aby doprecyzować odpowiedź, którą chcemy jako użytkownicy otrzymać. Taki sposób komunikacji jest zbliżony do „zwykłej” rozmowy. Zmieniając i kontrolując wprowadzone dane dostajemy oczekiwany rezultat. Należy pamiętać, aby nie pytać o kilka rzeczy jednocześnie, bo wtedy spadnie jakość naszych odpowiedzi. Tak jak w życiu codziennym, kiedy dowiadujemy się czegoś w określonym schemacie to lepiej taką wiedzę przyswajamy. Proces autorefleksji w ChatGPT powoduje, że użytkownicy czują się zaopiekowani, zrozumiani, a co najważniejsze otrzymują to czego chcą.
Pisanie testów automatycznych
Wyjaśnienie zagadnień w obszarze testów nie jest dla ChatGPT większym wyzwaniem. Co jednak w przypadku testów automatycznych? Pisanie kodu wymaga zrozumienia nie tylko w teorii, ale także w praktyce różnych rodzajów testów, wiedzy o sposobie pisania kodu w zależności od wybranego frameworku i narzędzi. W tym przypadku również świetnie sprawdza się współpraca z AI. Nieustający trening, dostosowanie się do różnych zadań pozwala nie tylko dostarczyć informacje, ale także napisać i zweryfikować kod, który został wprowadzony w postaci komendy. ChatGPT może pomóc w wyborze narzędzi do automatyzacji oprogramowania, bibliotek czy języka programowania. Możemy sugerować się dostarczoną odpowiedzią i zadawać kolejne pytania do kontekstu, który nas interesuje. Spróbujmy pozyskać przykładowy test automatyczny na podstawie wskazanych wytycznych.
Zadajmy pytanie: Napisz mi przykładowy test automatyczny napisany w języku javascript i bibliotece playwright.
W ciągu kilku sekund dostajemy kod przykładowego testu wraz z pełnym wyjaśnieniem kroków postępowania od momentu instalacji do utworzenia struktury projektu. Dodatkowo otrzymujemy opis działania takiego testu, który w całości został przygotowany przez ChatGPT. Ten prosty przykład pokazuje jak dużym jest wsparciem nie tylko przy dostarczaniu teorii, ale także wdrażaniu praktyki przy rozwiązywaniu problemów w obszarze testów automatycznych.

Implementacja kodu przez ChatGPT zajęła kilka sekund. Porównajmy to do sytuacji, gdy użytkownik wprowadza swój fragment kodu, aby ChatGPT pomógł mu zrozumieć i zoptymalizować wprowadzony skrypt testu automatycznego.
Zadajmy pytanie: Opisz mi poniższy fragment kodu i sprawdź czy nie zawiera błędów. Zaproponuj optymalizację kodu lub dodanie dodatkowych funkcji.

W tym przypadku również oczekiwanie na odpowiedź trwa dosłownie chwilę. ChatGPT weryfikuje kod, jego strukturę, logikę i funkcję poprzez przetwarzanie tekstu i analizę składniową. W odpowiedzi zwraca opis fragmentu kodu, a także zgodnie z poleceniem, sprawdza czy użyte deklaracje nie zawierają błędów. Wszystkie sugestie są opisane w sposób czytelny dla użytkownika. Wytłumaczenie wprowadzonych fragmentów kodu, pomaga zrozumieć, jak działają poszczególne części testu.
Poniżej fragment odpowiedzi otrzymanej na żądanie propozycji optymalizacji kodu.

ChatGPT nie przekazuje jedynie samej teorii, ale również analizuje kod i wykrywa potencjalne błędy w nim występujące. Przedstawia swoje propozycje optymalizacji i refaktoryzacji kodu, proponując rozszerzenie testów o nowe funkcje. Wprowadzone optymalizacje na pewno poprawiają czytelność, zwiększają stabilność i odporność testów na błędy. ChatGPT proponuje rozwiązania, które poprawią wydajność testów, np. poprzez redukcję zbędnych operacji czy bardziej efektywne wykorzystanie zasobów.
Bezpieczeństwo
Umiejętność tworzenia dobrych promptów może nauczyć się każdy. Używając ChatGPT musimy jednak mieć na uwadze, że w przypadku, kiedy będzie otrzymywał błędnie skonstruowane pytania, może wciąż popełniać te same błędy i generować nieoczekiwane przez odbiorcę informacje. Nie powinniśmy też wprowadzać treści, które w jakiś sposób mogłyby naruszyć naszą prywatność i bezpieczeństwo tj. pesel, adres zamieszkania, nasze dane medyczne czy bankowe. Użytkownicy mogą wpisywać pytania z każdego obszaru, niekoniecznie te zgodne z prawem. Na szczęście nie otrzymamy odpowiedzi ze szkodliwymi instrukcjami, a jedynie krótką informację o niewłaściwym postępowaniu. Tak przynajmniej wygląda to w większości przypadków. Niestety w sieci jest mnóstwo cyberprzestępców, którzy znajdują lukę w zabezpieczeniach i wykorzystują to w niewłaściwy sposób. ChatGPT jest na bieżąco monitorowany i udoskonalany pod tym względem, dlatego warto jest mieć najbardziej aktualną wersję i z niej korzystać. Ciekawostką jest fakt, że w przypadku, gdy ChatGPT nie zna odpowiedzi to często podaje błędne informacje i robi to w przekonujący sposób i łatwo się na to nabrać. AI przyjmuje wiele cech ludzkich, zachowuje się, a przynajmniej w dużym stopniu stara się być wirtualnym rozmówcą, który bardzo przypomina człowieka w swojej reakcji.
Podsumowanie
ChatGPT jest przykładem jak możemy wykorzystać sztuczną inteligencję na każdym etapie procesu wytwarzania oprogramowania. Przy wprowadzeniu określonych nawyków w komunikacji z ChatGPT jesteśmy w stanie otrzymać szybkie, bezpieczne i skuteczne odpowiedzi w postaci przystępnej treści dla użytkownika. Model AI przetwarza i generuje informacje błyskawicznie, w czasie którym człowiek nie jest w stanie wykonać takiego polecenia. Można się pokusić o stwierdzenie, że przy dobrej komunikacji z AI jesteśmy w stanie zastąpić zespół różnych specjalistów ze względu na wielozadaniowość i kreatywność odpowiedzi. W bardzo krótkim czasie może zostać wykonana praca, która jeszcze nie tak dawno była czasochłonna, niekiedy skomplikowana i bez potwierdzenia słuszności zastosowania niektórych rozwiązań. Najważniejsze jest, aby dobrze formułować pytania pamiętając o kontekście, a także o limicie pamięci i tworzeniu nowych sesji w przypadku, kiedy są one bardzo długie. Sztuczna inteligencja oferuje nam szereg możliwości, rozwiązań, podpowiedzi, a wraz z jej rozwojem i doskonaleniem ma ogromny wpływ na codzienne obowiązki wielu pracowników. Na rynku pracy możemy spotkać się z nową rolą Prompt Engineering, której zadaniem jest tworzenie i optymalizacja informacji wejściowych, aby uzyskać od modelu AI najtrafniejsze i prawidłowo wygenerowane dane wyjściowe. Zadaniem takiej osoby jest ciągłe testowanie wprowadzonych podpowiedzi w celu uzyskania optymalnych rozwiązań od sztucznej inteligencji. Wymaga to wielu godzin pracy i samodoskonalenia, umiejętności technicznych i analitycznych. Kiedy nauczymy się komunikować z AI skróci to nasz czas poświęcony na pisanie zapytań i otrzymywanie odpowiedzi. Jeżeli będziemy korzystać z takich narzędzi z rozwagą to na pewno osiągniemy zamierzone cele. Sztuczna inteligencja daje szerokie spektrum możliwości, ale nie powinniśmy zapominać o treningu także własnego umysłu i pozostawić uczenie maszynowe jako dodatek do Naszego rozwoju osobistego.
6 Comments
angie
Niezwykle interesujący artykuł! Musze przyznać, że sama mam pewne obawy jeśli chodzi o korzystanie z AI przy pracy, głównie ze względu na wyciek danych i prawa autorskie.
To zdanie: „Ciekawostką jest fakt, że w przypadku, gdy ChatGPT nie zna odpowiedzi to często podaje błędne informacje i robi to w przekonujący sposób i łatwo się na to nabrać. ” mnie trochę zmroziło muszę przyznać. Czy to jeszcze inteligencja, czy może jej brak? 🙂
rafal.szubert@domdata.com
Jak by się ktoś zastanawiał, czy zwrócony kod przez chataGPT w jednym z przykładów jest poprawny, to odpowiedź jest: „Raczej nie”
„` test(„describe”, async ({page})=>{
try{
await page.goto(„https://google.com”);
const loc = page.getByText(„google”);
await expect(loc).toHaveText(„some te+t Th@t #ill not 0ccUr”);
}catch (error){ //błąd łapany i nie rzucany dalej
console.log(„error”);
}
})„`
>>error
>> 1 passed (8.2s)
Michał Banaszyk
W artykule nie ma podanego takiego przykładu. Chodzi po prostu o zastosowanie takiej struktury try/catch w teście?
Paulina Jankowska
Rafał, warto właśnie brać poprawkę na to co zwraca Chatgpt. Na pewno AI zwraca dużo przydatnych informacji, które jesteśmy w stanie wykorzystać. Ważne jest, aby nie zakłócić zwrotek poprzednimi zapytaniami tylko tworzyć nowe konwersacje.
Michał Banaszyk
Praca z chatem na co dzień naprawdę potrafi zoptymalizować pracę z kodem oszczędzając przy tym dużo czasu, ale to prawda z tym, że nie można być bezkrytycznym wobec tego co dostaniemy od niego jako zwrotkę z zapytania – warto to wszystko filtrować przez pryzmat wiedzy własnej i kontekstu użycia.
Elzbieta Karolewska
Bardzo interesujący artykuł, dobrze opisane narzędzie które w odpowiedni sposób wykorzystane może ułatwić pracę.