A Microsoft és az OpenAI a GitHubbal együttműködve kifejlesztette a Copilot kiterjesztést, egy mesterséges intelligencia által vezérelt kódoptimalizáló és -kiegészítő eszközt. Segíthet a fejlesztőknek, ha blokkokat vagy akár kódsorokat javasol a rendelkezésre álló és meglévő kódok alapján. Az egységtesztelés a szoftverfejlesztésben kódegységek vagy blokkok tesztelésére vonatkozik, hogy biztosítsák azok megfelelő működését. Az AI kódtesztelésbe való integrálása nemcsak a szoftverfejlesztés termelékenységét javíthatja, hanem az általános minőséget is. Ez a bejegyzés elmagyarázza, hogyan teheted használja a Copilotot az egységtesztek generálásához .
A GitHub Copilot rövid áttekintése
A GitHub Copilot egy mesterséges intelligencia-alapú kódolási asszisztens, amely a kód környezete alapján kódrészleteket javasol. Az OpenAI és a Github mesterséges intelligencia-alapú nyelvfeldolgozó eszközt fejlesztett ki a GPT-3 modellel és a Codex-szel, amely környezetalapú kódjavaslatokat nyújt. Nyilvánosan elérhető kódokra van kiképezve, és integrálható olyan népszerű kódszerkesztőkkel, mint a Visual Studio.
Az automatizált egységteszt-generálás előnyei a másodpilóta segítségével
- Időtakarékos: A Copilot az általunk említett leírás vagy megjegyzések alapján azonnal automatikusan generál egységteszt kódot. Ezzel sok időt takaríthatunk meg, mintha manuálisan írnánk meg a tesztkódokat, ezáltal javítva és optimalizálva a szoftverfejlesztési ciklust.
- Csökkentett emberi hibák: Az automatizálás felgyorsítja a folyamatot, de jelentősen csökkenti a gyakori emberi hibákat is. Az írott kódon keresztül a Copilot könnyen megértheti a célt, és ennek megfelelően manuális hibák nélkül generálja a tesztet.
- Következetesség: A másodpilóta hajlamos egységességet kikényszeríteni a tesztstruktúrákban és mintákban, miközben egységteszteket generál. Egy ilyen megközelítés segíthet abban, hogy hasonló tesztelési megközelítést tartsunk fenn a teljes kódbázisra vonatkozóan, megkönnyítve a teljes program megértését.
- Tesztvezérelt fejlesztés: A szoftvertesztelési környezetben a tesztvezérelt fejlesztés egy olyan módszer, amely szoftverkód teszteket használ visszajelzésként, hogy segítse a fejlesztőket a szoftver írásában vagy módosításában. A Copilot a tesztesetek dinamikus kódjavaslatai révén támogatja a TDD gyakorlatokat. Ugyanakkor megírjuk a kódokat, ösztönözve a teszt-first megközelítést, ahol a tesztek a kód implementálása előtt jönnek létre.
Hogyan használja a Copilotot egységtesztek generálására
A teszt generálásához kezdhetjük a GitHub Copilot bővítmény telepítésével és a program létrehozásával, mielőtt engedélyeznénk a Copilot számára a tesztelést. A következő lépések követhetők a teszteset generálásához:
1] Telepítse a Github Copilot bővítményt
Nyissa meg a Visual Studio Marketplace , keresse meg a GitHub Copilot bővítményt, és kattintson Telepítés .
2] Hozzon létre egy függvényt
A Copilot segítségével történő egységteszt-generálás demonstrálásához létrehozunk egy programot, amely a Python felhasználó által írt parancsával ellenőrzi, hogy egy adott szám prím-e. függvény is_prime() .
Windows telefon fájl átvitele
Kezdjük egy Python szkriptfájl létrehozásával, prímszám.py , amely tartalmazza a fent említett függvényt és a prímszámok ellenőrzéséhez szükséges kódokat. A fájl létrehozása után megírhatjuk a kódot a prímszámokat ellenőrző logika alapján.
3] Futtassa az egységtesztet
Annak elmagyarázására, hogy a Copilot hogyan tud egységteszteket generálni a fenti programhoz, kövesse az alábbi lépéseket:
- nevű tesztfüggvényt készítünk egység_teszt_prímszám() tesztelni a is_prím() funkció.
- A létrehozás után megírjuk a függvény célját vagy dokumentációs karakterláncát, és hozzáadjuk az állítási feltételt. A doc karakterlánc megemlítése után a Copilot elkezdi javasolni a teszt érvényesítési feltételét.
Tippek a hatékony egységkód generálásához
- Tiszta leírás: A Copilot főként a felhasználó által a fájlban megadott megjegyzések vagy dokumentációs karakterláncok áttekintésével állít elő egységkódokat. Ezért a jól megírt leírási kódok elengedhetetlenek az értelmes egységteszt kódok generálásához.
- Változó elnevezése: A kód célját leíró változónevek használata segíthet tesztesetek létrehozásában. A változónevek egyértelműsége biztosítja, hogy az automatikusan generált tesztesetek megfeleljenek az elvárásainknak.
- Gúnyolódás és csúfolástechnikák használata: A Mocking és Stubbing olyan tesztelési technikák, amelyek álkörnyezetek létrehozására szolgálnak a kód funkcióinak vizsgálatára. A Mocking egy valós objektum, például adatbázis vagy webszolgáltatás klónját hozza létre, míg a Stubbing egy olyan függvény egyszerűsített változatát hozza létre, amelytől a tesztelt kód függ.
- Tekintse át a javasolt kódot: A Copilot javaslatait felül kell vizsgálni, hogy megbizonyosodjon arról, hogy megfelelnek a tesztelési követelményeknek és a kódolási szabványoknak.
A GitHub Copilot használatával végzett egységtesztelés korlátai
A GitHub Copilot Chat célja, hogy a legrelevánsabb választ nyújtsa kérdésére. Előfordulhat azonban, hogy nem mindig adja meg a keresett választ. A Copilot Chat felhasználói felelősek a rendszer által generált válaszok áttekintéséért és érvényesítéséért, hogy biztosítsák azok pontosságát és megfelelőségét.
Remélem, hogy a bejegyzés hasznos volt, és megértette a GitHub használatának előnyeit és korlátait az egységtesztek generálásához.
A Copilot által generált egységteszt kiterjed a saroktokokra?
A Copilot egy hasznos eszköz az egységtesztekhez, de nem feltétlenül fedi le az összes forgatókönyvet. Alaposan tekintse át a javaslatait, és vegye figyelembe a szokatlan beviteleket vagy hibákat. Legyen kreatív az átfogó tesztek biztosítása érdekében. Az Ön szakértelme kulcsfontosságú a szilárd egységek teszteléséhez, még a Copilot esetében is.
Tesztesetek esetén a Copilot képes komplex algoritmusok kezelésére?
A másodpilóta bonyolult algoritmusok tesztelésével küszködik. Bár alapvető teszteket írhat, nem helyettesítheti a szakértelmét. Összetett algoritmusok esetén készítsen egyedi teszteket, amelyek az egyedi logikát célozzák meg. A másodpilóta hasznos lehet, de az Ön szakértelmére mindig szükség van az összetett tesztekhez.