Ostatnio bardzo dużo mówi się o wykorzystywaniu sztucznej inteligencji w wielu obszarach. Niedawno social media zalała fala grafik wygenerowanych przez AI (Artificial Intelligence) – między innymi przez aplikację Lensa. Jest to więc ciekawy temat do zbadania w kontekście wykorzystania tej technologii do testów.
W artykule zajmę się zastosowaniem AI w testowaniu, koncentrując się na narzędziu ChatGPT. W tekście znajdziecie kilka pytań i kwestii związanych z testingiem oraz pokażę, w jaki sposób ChatGPT na nie zareagował. Sprawdzę odpowiedzi AI dotyczące m.in.:
- tworzenia przypadków testowych,
- testów automatycznych.
- dostępności.
Czym jest ChatGPT?
Zapytajmy sam ChatGPT, czym jest i jakich źródeł używa do udzielania odpowiedzi:
Zastosowanie AI w testowaniu
Przypadki testowe
Zacznijmy od zagadnienia, z którym większość testerów spotyka się na początku swojej drogi zawodowej. Zobaczymy, jak ChatGPT poradzi sobie z dwoma pytaniami związanymi z tworzeniem przypadków testowych. Zapytałem ChatGPT o przypadek testowy dotyczący logowania do strony internetowej oraz dotyczący aplikacji mobilnej. Odpowiedzi znajdziecie poniżej.
Obecnie pracuję w projekcie aplikacji mobilnej związanej z rynkiem medycznym. Dlatego do powyższego zapytania dodałem więcej szczegółów.
Oto wynik:
Odpowiedź ChatGPT była dla mnie zaskakująca, gdyż – mimo kilku różnic – mógłbym ten przypadek testowy zastosować w projekcie.
Pytania o testy automatyczne
Teraz zerkniemy, jak AI poradzi sobie z trudniejszym tematem dotyczącym testów automatycznych.
Zacznijmy od czegoś łatwiejszego, czyli od zapytania, jak otworzyć stronę www, wykorzystując Selenium.
Powyższy kod można uznać za prawidłowy w przypadku języka Python.
W naszym zapytaniu nie podaliśmy nazwy żadnego języka programowania. Zobaczymy, co się stanie, jak uściślimy je i wskażemy konkretny język.
Pokusiłem się o sprawdzenie, czy powyższy kod działa. Poniżej wynik:
Nie miałem problemu z uruchomieniem powyższego kodu, a rezultat był zgodny z oczekiwanym, czyli strona Sii została poprawnie otwarta w przeglądarce.
Oczywiście, możemy w dalszym ciągu udoskonalać nasze zapytanie. Poniżej zmodyfikowałem je tak, żeby ChatGPT spróbował sprawdzić, czy tytuł strony jest prawidłowy.
Naturalnie, w prawdziwym życiu nie powinniśmy używać takiego kodu – zamiast niego zastosować asercję. Dlatego teraz zapytamy ChatGPT o asercję.
W powyższych przykładach ChatGPT nie ma problemu ze wskazaniem bibliotek, które należy zaimportować, żeby kod działał prawidłowo. Byłem jednak zaskoczony faktem, że narzędzie poradziło sobie także z przygotowaniem kodu z uwzględnieniem asercji w TestNG.
Pytanie o Robot Framework
Niestety, nie zawsze ChatGPT w taki sposób generuje odpowiedzi. W przypadku zapytania dotyczącego Robot Framework narzędzie nie wskazało biblioteki niezbędnej do zaimportowania.
W tej sytuacji należy zaimportować bibliotekę SeleniumLibrary.
Pytania o Selenium, Cypress i Playwright
W przypadku Selenium najczęściej zadawane pytanie dotyczy różnic między implicit wait a explicit wait. Warto więc sprawdzić, czy z tą kwestią poradzi sobie sztuczna inteligencja.
Ocenę powyższej odpowiedzi pozostawiam Wam 😉 Może w niej pomóc fragment dokumentacji na temat tego zagadnienia
ChatGPT jest w stanie odpowiedzieć nawet na bardziej złożone zapytania:
Nie samym Selenium tester żyje 😉 Obecnie często wykorzystywany jest także Cypress oraz rośnie popularność frameworku Playwright. Czy w tym przypadku ChatGPT może być pomocny?
W przypadku Cypress kod wygenerowany przez narzędzie działał i wykonał test prawidłowo:
describe('www.sii.pl', () => {
it('should open the homepage', () => {
cy.visit('https://www.sii.pl');
// Assert that the page has loaded successfully
cy.title().should('eq', 'Strona główna - SII');
});
});
Przykład:
Niestety, sytuacja nie wyglądała tak kolorowo w przypadku Playwrighta. ChatGPT przygotował dla mnie poniższy kod:
const { chromium } = require('playwright');
describe('www.sii.pl', () => {
it('should open the homepage', async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://www.sii.pl');
// Assert that the page has loaded successfully
expect(await page.title()).toEqual('Strona główna - SII');
await browser. Close();
});
});
Uwzględniając format, który ChatGPT przyjął, moim zdaniem kod powinien wyglądać tak:
import { test, expect } from '@playwright/test'
test.describe.only('www.sii.pl', () => {
test('should open the homepage', async ({ page }) => {
await page.goto('https://www.sii.pl');
// Assert that the page has loaded successfully
expect(await page.title()).toEqual('Strona główna - SII');
})
})
Oczywiście, w swoim badaniu sprawdzałem także inne zagadnienia związane z testami automatycznymi i programowaniem, między innymi składałem zapytania dotyczące:
- Appium,
- HTML,
- JavaScript.
ChatGPT a zagadnienie dostępności
Od jakiegoś czasu jestem mocno zainteresowany tematem dostępności (więcej na jej temat możesz dowiedzieć się z napisanych przeze mnie artykułów: część I i część II). Z tym zagadnieniem powiązane są standardy WCAG.
ChatGPT odpowiada w różnych językach. Mnie osobiście zaskoczyła odpowiedź w języku polskim. Uważam też, że bardzo ciężko jest tworzyć treści internetowe, które są dostępne również dla niemowląt 😉
Oczywiście, także w przypadku a11y (accessibility) możemy zadawać bardziej szczegółowe pytania.
Należy tutaj wspomnieć, że ChatGPT nie zawsze działa zgodnie z oczekiwaniami. W powyższym przykładzie pytanie zadałem po angielsku, natomiast odpowiedz została udzielona po polsku.
Kontrowersje związane z AI
Głównym celem artykułu było przedstawienie możliwość AI w kontekście testowania, jednak uważam, że warto wspomnieć o kontrowersjach związanych ze sztuczną inteligencją.
Prawa autorskie
Media oraz autorzy donoszą, że AI bardzo często wykorzystuje cudze dzieła. Twórca Midjourney dla magazynu Forbes powiedział:
Nie, nie ma sposobu, by pobrać setki milionów obrazów i wiedzieć, skąd one są. Byłoby oczywiście fajnie, gdyby zawierały zabudowane metadane o posiadaczu praw autorskich, ale to i tak nie pomoże: nie są zarejestrowane. A więc nie ma sposobu, by znaleźć grafikę w Internecie, automatycznie odnaleźć jej właściciela i w jakikolwiek sposób potwierdzić jego prawa.
Z powyższych słów można moim zdaniem wywnioskować potwierdzenie dotyczące wykorzystywania cudzych dzieł przez sztuczną inteligencję. Ma to szczególne znaczenie choćby w kontekście kolejnej sprawy naruszenia praw milionów twórców, którzy zdecydowali się na zbiorowy pozew.
Edukacja i krytyczne myślenie
Szkoły w Nowym Jorku ograniczyły dostęp do ChatGPT. Poniżej słowa Jenny Lyle, rzeczniczki Departamentu Edukacji:
Ze względu na obawy dotyczące negatywnego wpływu na naukę uczniów oraz obawy dotyczące bezpieczeństwa i dokładności treści, dostęp do ChatGPT jest ograniczony w sieciach i urządzeniach szkół publicznych w Nowym Jorku.
Chociaż narzędzie może być w stanie zapewnić szybkie i łatwe odpowiedzi na pytania, nie buduje umiejętności krytycznego myślenia i rozwiązywania problemów, które są niezbędne do osiągnięcia sukcesu w nauce i przez całe życie.
Zgadzam się z powyższymi słowami. Mieszkam w mieście bez dostępu do morza i jeziora, a ChatGPT próbuje mnie przekonać do tego, że w Redzie są piękne plaże.
Czy można polegać na AI?
Nasuwają się pytania:
- Czy AI jest w stanie zastąpić człowieka?
- Czy można odpowiedziom generowanym przez te narzędzia ufać?
Programy wykorzystujące sztuczną inteligencję wciąż wskazują często błędne odpowiedzi lub podają informacje, które nie są aktualne.
Wyżej zaprezentowałem przykład kodu, który, żeby działać, wymagał korekty oraz odpowiedź, w której ChatGPT proponował zapewnienie dostępności stron internetowych w przypadku niemowląt.
W swojej historii korzystania z narzędzia spotkałem się także prawdopodobnie z sytuacją podawania nieaktualnych informacji. Zapytałem o różnice między Cypress i Playwright. Odpowiedź była następująca:
Playwright supports a wider range of browsers than Cypress, including Chromium (used by Google Chrome), Firefox, and WebKit (used by Safari). Cypress currently only supports Chromium.
Postanowiłem przyjrzeć się tej odpowiedzi i ją zweryfikować. Na oficjalnej stronie Cypress informuje o wsparciu wielu przeglądarek i silników m.in.: Chrome, Firefox, Edge, Webkit. Tutaj możemy mieć do czynienia z ograniczeniem ChatGPT. ChatGPT zawiera informacje do 2021 roku.
Jest to więc potwierdzenie, że człowiek i jego kontrola są niezbędne.
Również inne obszary w IT zastanawiają się nad możliwościami użycia AI w ich pracy. W serwisie YouTube można znaleźć materiały dotyczące wykorzystania sztucznej inteligencji w procesie tworzenia strony internetowej lub aplikacji. Warto zerknąć, co mówią.
Podsumowanie
Moim zdaniem sztuczna inteligencja może być wykorzystywana jedynie jako pomoc w codziennej pracy np. testera i nie powinniśmy na niej bezgranicznie polegać. Dane uzyskane poprzez AI należy weryfikować i podchodzić do nich z dużą ostrożnością. Jestem zdecydowanym przeciwnikiem tworzenia treści na podstawie odpowiedzi z ChatGPT na zasadzie kopiuj/wklej.
Otwartym tematem pozostaje wciąż kwestia zasad etycznych i praw autorskich. Wydaje mi się, że jest to coś, z czym musimy się zmierzyć w ciągu kilku następnych lat. W związku z powyższymi wątpliwości uważam, że AI nie jest w stanie zastąpić człowieka.
***
Temat sztucznej inteligencji został poruszony również w innych artykułach naszych ekspertów – zachęcamy do zapoznania się z nimi.
Zostaw komentarz