Jak używać Copilot do generowania testów jednostkowych
Microsoft i OpenAI we współpracy z GitHub opracowały rozszerzenie Copilot, narzędzie do optymalizacji i uzupełniania kodu oparte na sztucznej inteligencji. Może pomóc programistom, sugerując bloki lub nawet linie kodu w oparciu o dostępne i istniejące kody. Testowanie jednostkowe w tworzeniu oprogramowania odnosi się do testowania jednostek lub bloków kodu w celu zapewnienia ich właściwej funkcjonalności. Integracja sztucznej inteligencji w testowaniu kodu może nie tylko poprawić produktywność w tworzeniu oprogramowania, ale także ogólną jakość. W tym poście wyjaśniono, w jaki sposób można używać rozwiązania Copilot do generowania testów jednostkowych .
Krótki przegląd GitHub Copilot
GitHub Copilot to asystent kodowania oparty na sztucznej inteligencji, który sugeruje fragmenty kodu na podstawie kontekstu kodu. OpenAI i Github opracowały narzędzie do przetwarzania języka oparte na sztucznej inteligencji z modelem GPT-3 i Kodeksem, które zapewnia sugestie kodu oparte na kontekście. Jest przeszkolony w zakresie publicznie dostępnych kodów i można go zintegrować z popularnymi edytorami kodu, takimi jak Visual Studio.
Korzyści z automatycznego generowania testów jednostkowych za pomocą pilota Copilot
- Oszczędność czasu: Copilot może automatycznie i natychmiastowo wygenerować kod testu jednostkowego na podstawie opisu lub komentarzy, o których wspominamy. Może to pomóc nam zaoszczędzić dużo czasu niż ręczne pisanie kodów testowych, usprawniając i optymalizując w ten sposób cykl tworzenia oprogramowania.
- Mniej błędów ludzkich: Automatyzacja przyspiesza proces, ale także pomaga znacznie ograniczyć typowe błędy ludzkie. Przeglądając napisany kod, Copilot może łatwo zrozumieć cel i odpowiednio wygenerować test bez żadnych błędów ręcznych.
- Spójność: Copilot ma tendencję do wymuszania jednolitości struktur i wzorców testowych podczas generowania testów jednostkowych. Takie podejście może pomóc nam w utrzymaniu podobnego podejścia do testowania całej bazy kodu, ułatwiając zrozumienie całego programu.
- Copilot wspiera praktyki TDD poprzez dynamiczne sugestie kodu dla przypadków testowych. Jednocześnie piszemy kody, zachęcając do podejścia „najpierw testy”, w którym testy są tworzone przed implementacją kodu.
Jak używać Copilot do generowania testów jednostkowych
Aby wygenerować test, możemy zacząć od zainstalowania rozszerzenia GitHub Copilot i stworzenia programu przed umożliwieniem Copilotowi rozpoczęcia testów. Aby wygenerować przypadek testowy, można wykonać następujące kroki:
1] Zainstaluj rozszerzenie Github Copilot
Otwórz Visual Studio Marketplace , wyszukaj rozszerzenie GitHub Copilot i kliknij Zainstaluj .
2] Utwórz funkcję
Aby zademonstrować generowanie testów jednostkowych za pomocą Copilot, tworzymy program, który sprawdza, czy dana liczba jest pierwsza, za pomocą napisanej przez użytkownika funkcji Pythona is_prime() .
Zaczynamy od utworzenia pliku skryptu w Pythonie prime_number.py , zawierającego wspomnianą powyżej funkcję oraz niezbędne kody do sprawdzania liczb pierwszych. Po utworzeniu pliku możemy napisać kod w oparciu o logikę sprawdzającą liczby pierwsze.
3] Uruchom test jednostkowy
Aby wyjaśnić, w jaki sposób Copilot może wygenerować testy jednostkowe dla powyższego programu, możemy wykonać poniższe kroki:
- Tworzymy funkcję testową o nazwie unit_test_prime_number() , aby przetestować funkcję is_prime() .
- Po utworzeniu zapisujemy cel lub ciąg dokumentacji funkcji i dodajemy warunek asercji. Po wymienieniu ciągu dokumentu Copilot zaczyna sugerować warunek potwierdzenia dla testu.
Wskazówki dotyczące efektywnego generowania kodu jednostkowego
- Jasne Opis: Copilot generuje kody jednostek głównie poprzez przeglądanie komentarzy lub ciągów dokumentacji dostarczonych przez użytkownika w pliku. Dlatego dobrze napisane kody opisowe są niezbędne do generowania znaczących kodów testów jednostkowych.
- Nazewnictwo zmiennych: Używanie nazw zmiennych opisujących cel kodu może pomóc w generowaniu przypadków testowych. Przejrzystość nazw zmiennych gwarantuje, że automatycznie wygenerowane przypadki testowe odpowiadają naszym oczekiwaniom.
- Używanie technik drwiących i stubbingowych: Drwiące i stubbingowe to techniki testowania używane do tworzenia fikcyjnych środowisk w celu sprawdzania funkcji kodu. Mocking tworzy klon prawdziwego obiektu, takiego jak baza danych lub usługa internetowa, natomiast Stubbing tworzy uproszczoną wersję funkcji, od której zależy testowany kod.
- Przejrzyj sugerowany kod: Sugestie drugiego pilota należy sprawdzić, aby upewnić się, że spełniają wymagania testowe i standardy kodowania.
Ograniczenia testów jednostkowych przy użyciu GitHub Copilot
Czat GitHub Copilot ma na celu zapewnienie najbardziej odpowiedniej odpowiedzi na Twoje pytanie. Jednak nie zawsze może to zapewnić odpowiedź, której szukasz. Użytkownicy Copilot Chat są odpowiedzialni za przeglądanie i sprawdzanie odpowiedzi generowanych przez system, aby upewnić się, że są one dokładne i odpowiednie.
Mam nadzieję, że post był pomocny i zrozumiałeś zalety i ograniczenia korzystania z GitHuba do generowania testów jednostkowych.
Czy test jednostkowy wygenerowany przez Copilot obejmuje przypadki narożne?
Copilot jest pomocnym narzędziem do testów jednostkowych, ale może nie obejmować każdego scenariusza. Powinieneś dokładnie zapoznać się z sugestiami i wziąć pod uwagę nietypowe dane wejściowe lub błędy. Bądź kreatywny, aby zapewnić kompleksowe testy. Twoja wiedza jest kluczowa dla solidnych testów jednostkowych, nawet z Copilotem.
Czy w przypadkach testowych Copilot jest w stanie obsługiwać złożone algorytmy?
Drugi pilot ma trudności z testowaniem złożonych algorytmów. Chociaż może pisać podstawowe testy, nie może zastąpić Twojej wiedzy specjalistycznej. W przypadku złożonych algorytmów utwórz specjalne testy ukierunkowane na unikalną logikę. Drugi pilot może być pomocny, ale w przypadku skomplikowanych testów zawsze potrzebna jest Twoja wiedza specjalistyczna.
Dodaj komentarz