Praktyczne TC z ChatGPT

mar 9, 2023 | Nowoczesne technologie

Sprawdźmy jak ChatGPT poradzi sobie z realnym zadaniem testerskim, czyli z przygotowaniem Przypadków Testowych.

Testy czarnoskrzynkowe

W pierwszym podejściu mamy bardzo uproszczone wymagania biznesowe, do niewielkiej funkcjonalności:

Aplikacja do zarządzania kompetencjami.
Kompetencje zbudowane w postaci drzewa taksonomii.
Kompetencje zapisane w relacyjnej bazie danych.

 

Jako administrator mogę:

  • dodać kompetencję,
  • usunąć kompetencję,
  • przesunąć kompetencję w inne miejsce drzewa,
  • wyedytować nazwę kompetencji i jej opis.

I dajemy zadanie ChatGPT:

Podaj przypadki testowe do sprawdzenia wymienionej funkcjonalności

Przykładowe przypadki testowe do sprawdzenia funkcjonalności aplikacji do zarządzania kompetencjami:

  1. Dodanie nowej kompetencji:
    • Sprawdzenie, czy nowa kompetencja została poprawnie dodana do bazy danych
    • Sprawdzenie, czy nowa kompetencja została poprawnie wyświetlona w drzewie taksonomii
    • Sprawdzenie, czy nowa kompetencja posiada unikalne identyfikatory
  2. Usunięcie istniejącej kompetencji:
    • Sprawdzenie, czy istniejąca kompetencja została poprawnie usunięta z bazy danych
    • Sprawdzenie, czy istniejąca kompetencja nie jest już widoczna w drzewie taksonomii
    • Sprawdzenie, czy nie ma problemów związanych z usunięciem kompetencji, które mogą wpłynąć na funkcjonowanie innych elementów aplikacji
  3. Przesunięcie istniejącej kompetencji w inne miejsce drzewa:
    • Sprawdzenie, czy istniejąca kompetencja została poprawnie przesunięta w drzewie taksonomii
    • Sprawdzenie, czy wszystkie powiązania z innymi kompetencjami są poprawne po przesunięciu
  4. Edycja nazwy i opisu istniejącej kompetencji:
    • Sprawdzenie, czy istniejąca kompetencja posiada poprawną nazwę i opis po edycji
    • Sprawdzenie, czy zmiany w nazwie i opisie zostały poprawnie zapisane w bazie danych
    • Sprawdzenie, czy zmiany są widoczne w drzewie taksonomii
  5. Sprawdzenie poprawności relacji między kompetencjami:
    • Sprawdzenie, czy wszystkie kompetencje są prawidłowo powiązane w drzewie taksonomii
    • Sprawdzenie, czy istnieją jakieś niepoprawne lub błędne powiązania między kompetencjami
  6. Testowanie wydajności:
    • Sprawdzenie, jak długo trwa dodawanie, usuwanie, edycja i przesuwanie kompetencji w drzewie taksonomii
    • Sprawdzenie, jak szybko aplikacja ładuje się i działa dla dużych drzew taksonomii

Powinno się także przetestować, jak aplikacja obsługuje błędy, takie jak próba dodania kompetencji z istniejącym identyfikatorem lub próba usunięcia kompetencji, która ma przypisane zadania lub osoby odpowiedzialne.

Podsumowanie – TC w testach czarnoskrzynkowych

Warto skorzystać z ChatGPT do generowania przypadków testowych. Przyśpiesza to pracę, szczególnie na samym początku, dając jakiś zbiór przypadków, który warto dalej rozwijać.

 

Testy białoskrzynkowe

Mamy poniższy fragment kodu w Python:

def szukaj(igly, stogi):
    """
    szukanie igły w stosie siana, czyli część wspólna zbiorów
    :param igly: zbiór wyszukiwanych elementów (np. lista kompetencji)
    :param stogi: zbiór w którym szukamy elementów (np. cv)
    :return znalezione: elementy będące częścią wspólną zbiorów
    :return ilosc: ilość elementów w części wspólnej
    """

    # usuwamy duplikaty ze stogi
    # igły powinny być już wyczyszczone z duplikatów
    stogi = list(dict.fromkeys(stogi))

    # szukamy części wspólnej
    znalezione= list(set(stogi).intersection(igly))
    ilosc = len(znalezione)

    return znalezione, ilosc

Poprosimy teraz ChatGPT o przygotowanie testów w pytest.

 

Przygotuj przypadki testowe w pytest dla podanej funkcji

Oto kilka przypadków testowych, które można przetestować w pytest dla powyższej funkcji:

Testuj zbiór pusty:

def test_szukaj_dla_pustych_zbiorow():
    igly = set()
    stogi = set()
    wynik, ilosc = szukaj(igly, stogi)
    assert wynik == []
    assert ilosc == 0

Testuj zbiór igieł i stogu zawierające tylko jedno takie samo wyrażenie:

def test_szukaj_dla_zbiorow_z_tym_samym_wyrazeniem():
    igly = set(["test1"])
    stogi = set(["test1"])
    wynik, ilosc = szukaj(igly, stogi)
    assert wynik == ["test1"]
    assert ilosc == 1

Testuj zbiór igieł i stogu zawierające wiele takich samych wyrażeń:

def test_szukaj_dla_zbiorow_z_wieloma_takimi_samymi_wyrazeniami():
    igly = set(["test1", "test2"])
    stogi = set(["test1", "test2", "test2"])
    wynik, ilosc = szukaj(igly, stogi)
    assert wynik == ["test1", "test2"]
    assert ilosc == 2

Testuj zbiór igieł i stogu zawierające różne wyrażenia:

def test_szukaj_dla_zbiorow_z_roznymi_wyrazeniami():
    igly = set(["test1", "test2"])
    stogi = set(["test3", "test4"])
    wynik, ilosc = szukaj(igly, stogi)
    assert wynik == []
    assert ilosc == 0

Testuj, czy funkcja usuwa duplikaty ze stogu:

def test_szukaj_czy_usuwa_duplikaty_ze_stogu():
    igly = set(["test1", "test2"])
    stogi = set(["test1", "test1", "test2"])
    wynik, ilosc = szukaj(igly, stogi)
    assert wynik == ["test1", "test2"]
    assert ilosc == 2

Teraz testy trzeba przerzucić do pliku, zaimportować niezbędne biblioteki (tego ChatGPT już nie podpowiedział), w tym wypadku:

import pytest
from dyskryminator import szukaj

I Już można wywołać polecenie pytest.

Zaskakujący rezultat

Powiem szczerze, tego się nie spodziewałem. ChatGPT znalazł błąd w moim kodzie 🙂

I to w kodzie, którego z powodzeniem używam od wielu miesięcy. Błąd jest subtelny i w zastosowaniach, do których używam tej funkcji nie ma znaczenia. Ale w innym przypadku użycia, mógłbym pewnie całe godziny spędzić, zastanawiając się gdzie tkwi błąd. Nie podejrzewałbym tego fragmentu, wielokrotnie przeze mnie używanego.

=========================== short test summary info ============================
FAILED test_dyskryminator.py::test_szukaj_dla_zbiorow_z_wieloma_takimi_samymi_wy
razeniami - AssertionError: assert ['test2', 'test1'] == ['test1', 'test2']
FAILED test_dyskryminator.py::test_szukaj_czy_usuwa_duplikaty_ze_stogu - Asserti
onError: assert ['test2', 'test1'] == ['test1', 'test2']
========================= 2 failed, 3 passed in 0.06s ==========================

Na czym polega? Czyszczenie duplikatów z listy z wykorzystaniem „dict” nie zachowuje ich kolejności, a ChatGPT założył, że wrócą w takiej samej kolejności, tylko z usuniętymi duplikatami. Z jednej strony to wiem, tak działa „dict” w python, ale z drugiej, nie pomyślałem jakie może mieć to praktyczne znaczenie. Kodu nie będę poprawiał, bo w zastosowaniu, do którego go używam to nie przeszkadza, ale dopiszę komentarz do docstringa w tej funkcji, tak na zaś, na przyszłość, jak kiedyś przyjdzie mi do głowy reużyć ten kod i będę się głowił, dlaczego nie działa 🙂

Polecamy również

Jak zaprojektować optymalny dashboard?

Właściwie przygotowane Dashboardy to klucz do efektywnego zarządzania testami w dużych projektach IT

Jak zaprojektować optymalny dashboard? Na co warto zwrócić szczególną uwagę, aby narzędzia, które zbudujemy były skuteczne, dostarczały wartościowych informacji i przyczyniały się do zwiększenia efektywności projektu? Odpowiedzi na te i wiele innych pytań znajdują się w poniższym artykule.

generowanie danych testowych

Poznaj sposoby generowania danych testowych na przykładzie dostępnych narzędzi

Na etapie projektowania testów jednym z kluczowych zadań jest przygotowanie przypadków testowych bazujących na kryteriach akceptacji określonych w dokumentacji. Aby poprawnie przejść wszystkie przygotowane przypadki, często potrzebujemy określonych zasobów, w tym danych testowych.

Soflab Technology – największa polska firma „pure-play” w obszarze Quality Assurance

W tym roku odbyła się już 31. edycja badania Computerworld TOP200, które jest najważniejszym raportem na temat kondycji polskiego rynku teleinformatycznego. W zestawieniu znajdują się kluczowi dostawcy w branży ICT, pośród których wysoko uplasowało się Soflab Technology.

Różne rodzaje i charakterystyka środowisk nieprodukcyjnych

W dzisiejszym dynamicznym świecie technologii oprogramowania, tworzenie oraz utrzymanie wysokiej jakości aplikacji i systemu jest kluczową kwestią dla firm. W tym celu niezbędne jest posiadanie różnych rodzajów środowisk nieprodukcyjnych, które umożliwią deweloperom, testerom i innym specjalistom, pracę nad aplikacjami w bezpiecznym i kontrolowanym otoczeniu.

Prawne aspekty przetwarzania danych wrażliwych w systemach informatycznych i chmurze obliczeniowej

Wraz z rozwojem nowych technologii pojawiają się również nowe wyzwania w zakresie przetwarzania danych osobowych w postaci cyfrowej. Wymusza to także konieczność wypracowania nowych regulacji prawnych, które należycie zabezpieczą dane osobowe przetwarzane przez różne podmioty w infrastrukturze informatycznej (instytucje, organizacje, przedsiębiorstwa).

zmiany-w-sylabusie-istqb

Nowy sylabus ISTQB® Certified Tester Foundation Level – zmiany u podstaw

Nowa wersja sylabusa nie jest jedynie aktualizacją, tudzież wymieszaniem treści istniejących już w sylabusach Foundation i Agile, ale kompletnym przemodelowaniem integrującym niezmienne podstawy testowania z najnowszymi elementami zwinnymi, dodatkowo wzbogaconym o aktualne trendy pozwalające lepiej przygotować się do „testowania przyszłości”.

ChatGPT kłamie jak z nut czyli halucynacje AI

Szukałem tłumaczenia dosyć starej ale specjalistycznej książki na język polski. Postanowiłem skorzystać z ChatGPT, żeby ułatwić sobie te poszukiwania. I jaki jest rezultat? No coż… wniosek jest prosty, jak ChatGPT nie zna odpowiedzi, to ją sobie wymyśli, ale kłamie tak sprawnie, że na początku można mu nawet uwierzyć.

generowanie danych testowych

Poznaj sposoby generowania danych testowych na przykładzie dostępnych narzędzi

Na etapie projektowania testów jednym z kluczowych zadań jest przygotowanie przypadków testowych bazujących na kryteriach akceptacji określonych w dokumentacji. Aby poprawnie przejść wszystkie przygotowane przypadki, często potrzebujemy określonych zasobów, w tym danych testowych.

Soflab Technology – największa polska firma „pure-play” w obszarze Quality Assurance

W tym roku odbyła się już 31. edycja badania Computerworld TOP200, które jest najważniejszym raportem na temat kondycji polskiego rynku teleinformatycznego. W zestawieniu znajdują się kluczowi dostawcy w branży ICT, pośród których wysoko uplasowało się Soflab Technology.

Różne rodzaje i charakterystyka środowisk nieprodukcyjnych

W dzisiejszym dynamicznym świecie technologii oprogramowania, tworzenie oraz utrzymanie wysokiej jakości aplikacji i systemu jest kluczową kwestią dla firm. W tym celu niezbędne jest posiadanie różnych rodzajów środowisk nieprodukcyjnych, które umożliwią deweloperom, testerom i innym specjalistom, pracę nad aplikacjami w bezpiecznym i kontrolowanym otoczeniu.

Prawne aspekty przetwarzania danych wrażliwych w systemach informatycznych i chmurze obliczeniowej

Wraz z rozwojem nowych technologii pojawiają się również nowe wyzwania w zakresie przetwarzania danych osobowych w postaci cyfrowej. Wymusza to także konieczność wypracowania nowych regulacji prawnych, które należycie zabezpieczą dane osobowe przetwarzane przez różne podmioty w infrastrukturze informatycznej (instytucje, organizacje, przedsiębiorstwa).

zmiany-w-sylabusie-istqb

Nowy sylabus ISTQB® Certified Tester Foundation Level – zmiany u podstaw

Nowa wersja sylabusa nie jest jedynie aktualizacją, tudzież wymieszaniem treści istniejących już w sylabusach Foundation i Agile, ale kompletnym przemodelowaniem integrującym niezmienne podstawy testowania z najnowszymi elementami zwinnymi, dodatkowo wzbogaconym o aktualne trendy pozwalające lepiej przygotować się do „testowania przyszłości”.

ChatGPT kłamie jak z nut czyli halucynacje AI

Szukałem tłumaczenia dosyć starej ale specjalistycznej książki na język polski. Postanowiłem skorzystać z ChatGPT, żeby ułatwić sobie te poszukiwania. I jaki jest rezultat? No coż… wniosek jest prosty, jak ChatGPT nie zna odpowiedzi, to ją sobie wymyśli, ale kłamie tak sprawnie, że na początku można mu nawet uwierzyć.

Soflab Technology – największa polska firma „pure-play” w obszarze Quality Assurance

W tym roku odbyła się już 31. edycja badania Computerworld TOP200, które jest najważniejszym raportem na temat kondycji polskiego rynku teleinformatycznego. W zestawieniu znajdują się kluczowi dostawcy w branży ICT, pośród których wysoko uplasowało się Soflab Technology.

Różne rodzaje i charakterystyka środowisk nieprodukcyjnych

W dzisiejszym dynamicznym świecie technologii oprogramowania, tworzenie oraz utrzymanie wysokiej jakości aplikacji i systemu jest kluczową kwestią dla firm. W tym celu niezbędne jest posiadanie różnych rodzajów środowisk nieprodukcyjnych, które umożliwią deweloperom, testerom i innym specjalistom, pracę nad aplikacjami w bezpiecznym i kontrolowanym otoczeniu.

Prawne aspekty przetwarzania danych wrażliwych w systemach informatycznych i chmurze obliczeniowej

Wraz z rozwojem nowych technologii pojawiają się również nowe wyzwania w zakresie przetwarzania danych osobowych w postaci cyfrowej. Wymusza to także konieczność wypracowania nowych regulacji prawnych, które należycie zabezpieczą dane osobowe przetwarzane przez różne podmioty w infrastrukturze informatycznej (instytucje, organizacje, przedsiębiorstwa).

zmiany-w-sylabusie-istqb

Nowy sylabus ISTQB® Certified Tester Foundation Level – zmiany u podstaw

Nowa wersja sylabusa nie jest jedynie aktualizacją, tudzież wymieszaniem treści istniejących już w sylabusach Foundation i Agile, ale kompletnym przemodelowaniem integrującym niezmienne podstawy testowania z najnowszymi elementami zwinnymi, dodatkowo wzbogaconym o aktualne trendy pozwalające lepiej przygotować się do „testowania przyszłości”.

ChatGPT kłamie jak z nut czyli halucynacje AI

Szukałem tłumaczenia dosyć starej ale specjalistycznej książki na język polski. Postanowiłem skorzystać z ChatGPT, żeby ułatwić sobie te poszukiwania. I jaki jest rezultat? No coż… wniosek jest prosty, jak ChatGPT nie zna odpowiedzi, to ją sobie wymyśli, ale kłamie tak sprawnie, że na początku można mu nawet uwierzyć.

Różne rodzaje i charakterystyka środowisk nieprodukcyjnych

W dzisiejszym dynamicznym świecie technologii oprogramowania, tworzenie oraz utrzymanie wysokiej jakości aplikacji i systemu jest kluczową kwestią dla firm. W tym celu niezbędne jest posiadanie różnych rodzajów środowisk nieprodukcyjnych, które umożliwią deweloperom, testerom i innym specjalistom, pracę nad aplikacjami w bezpiecznym i kontrolowanym otoczeniu.

Prawne aspekty przetwarzania danych wrażliwych w systemach informatycznych i chmurze obliczeniowej

Wraz z rozwojem nowych technologii pojawiają się również nowe wyzwania w zakresie przetwarzania danych osobowych w postaci cyfrowej. Wymusza to także konieczność wypracowania nowych regulacji prawnych, które należycie zabezpieczą dane osobowe przetwarzane przez różne podmioty w infrastrukturze informatycznej (instytucje, organizacje, przedsiębiorstwa).

zmiany-w-sylabusie-istqb

Nowy sylabus ISTQB® Certified Tester Foundation Level – zmiany u podstaw

Nowa wersja sylabusa nie jest jedynie aktualizacją, tudzież wymieszaniem treści istniejących już w sylabusach Foundation i Agile, ale kompletnym przemodelowaniem integrującym niezmienne podstawy testowania z najnowszymi elementami zwinnymi, dodatkowo wzbogaconym o aktualne trendy pozwalające lepiej przygotować się do „testowania przyszłości”.

ChatGPT kłamie jak z nut czyli halucynacje AI

Szukałem tłumaczenia dosyć starej ale specjalistycznej książki na język polski. Postanowiłem skorzystać z ChatGPT, żeby ułatwić sobie te poszukiwania. I jaki jest rezultat? No coż… wniosek jest prosty, jak ChatGPT nie zna odpowiedzi, to ją sobie wymyśli, ale kłamie tak sprawnie, że na początku można mu nawet uwierzyć.

Prawne aspekty przetwarzania danych wrażliwych w systemach informatycznych i chmurze obliczeniowej

Wraz z rozwojem nowych technologii pojawiają się również nowe wyzwania w zakresie przetwarzania danych osobowych w postaci cyfrowej. Wymusza to także konieczność wypracowania nowych regulacji prawnych, które należycie zabezpieczą dane osobowe przetwarzane przez różne podmioty w infrastrukturze informatycznej (instytucje, organizacje, przedsiębiorstwa).

zmiany-w-sylabusie-istqb

Nowy sylabus ISTQB® Certified Tester Foundation Level – zmiany u podstaw

Nowa wersja sylabusa nie jest jedynie aktualizacją, tudzież wymieszaniem treści istniejących już w sylabusach Foundation i Agile, ale kompletnym przemodelowaniem integrującym niezmienne podstawy testowania z najnowszymi elementami zwinnymi, dodatkowo wzbogaconym o aktualne trendy pozwalające lepiej przygotować się do „testowania przyszłości”.

ChatGPT kłamie jak z nut czyli halucynacje AI

Szukałem tłumaczenia dosyć starej ale specjalistycznej książki na język polski. Postanowiłem skorzystać z ChatGPT, żeby ułatwić sobie te poszukiwania. I jaki jest rezultat? No coż… wniosek jest prosty, jak ChatGPT nie zna odpowiedzi, to ją sobie wymyśli, ale kłamie tak sprawnie, że na początku można mu nawet uwierzyć.

zmiany-w-sylabusie-istqb

Nowy sylabus ISTQB® Certified Tester Foundation Level – zmiany u podstaw

Nowa wersja sylabusa nie jest jedynie aktualizacją, tudzież wymieszaniem treści istniejących już w sylabusach Foundation i Agile, ale kompletnym przemodelowaniem integrującym niezmienne podstawy testowania z najnowszymi elementami zwinnymi, dodatkowo wzbogaconym o aktualne trendy pozwalające lepiej przygotować się do „testowania przyszłości”.

ChatGPT kłamie jak z nut czyli halucynacje AI

Szukałem tłumaczenia dosyć starej ale specjalistycznej książki na język polski. Postanowiłem skorzystać z ChatGPT, żeby ułatwić sobie te poszukiwania. I jaki jest rezultat? No coż… wniosek jest prosty, jak ChatGPT nie zna odpowiedzi, to ją sobie wymyśli, ale kłamie tak sprawnie, że na początku można mu nawet uwierzyć.