
Business & Integration IT konzultant
S narastajúcou zložitosťou softvérových systémov sa význam efektívneho a komplexného testovania stáva prvoradým. Developeri čelia výzve zabezpečiť dôkladné pokrytie testov a zároveň optimalizovať svoje pracovné postupy, aby dodržali termíny projektu. GitHub Copilot ponúka sľubné riešenie tejto výzvy poskytovaním relevantných návrhov kódu.
GitHub Copilot je nástroj poháňaný umelou inteligenciou integrovaný do editora kódu, ktorý dokáže sám písať kód na základe kódu, ktorý si už napísal v projekte. Jediné, čo musíš urobiť, je zadať názov funkcie alebo niekoľko komentárov a Copilot automaticky doplní implementáciu. Nástroj spracuje vstupné údaje používateľa v cloude a vráti ti snippet (úryvok kódu), ktorý stačí prijať, odmietnuť alebo požiadať o ďalšie návrhy riešenia. Tento nástroj vyvinula spoločnosť GitHub v spolupráci s OpenAI.
GitHub Copilot pomáha vývojárom tým, že im poskytuje kontextovo relevantné návrhy kódu pri písaní kódu v integrovaných vývojových prostrediach (IDE). Analýzou kontextu kódu a komentárov ponúka GitHub Copilot návrhy na dokončenie fragmentov kódu, písanie funkcií a dokonca aj generovanie celých metód alebo tried. Cieľom tohto nástroja je zvýšiť produktivitu vývojárov a zefektívniť proces kódovania tým, že sa zníži potreba ručného písania opakujúceho sa alebo šablónovitého kódu.
Ak si chceš prečítať o GitHub Copilot viac, stačí kliknúť sem – github copilot documentation. Ak ťa zaujíma cenová ponuka, klikni sem – github copilot pricing.
Napíšeš reťazec kódu alebo komentár a on ti navrhne nejaký úryvok kódu. V niektorých prípadoch stačí len názov funkcie alebo jej časť, aby vygeneroval zvyšok kódu. Kód je pre vygenerovaný jedinečne pre teba, čiže ti patrí.
Nižšie je uvedený stručný prehľad ako presne Copilot pracuje:
ZDROJ: github.com
Copilot vytvára desať návrhov naraz. Keď zadáš viac kódu, návrhy budú presnejšie.
IDE alebo editory, ktoré Copilot v súčasnosti podporuje sú Visual Studio Code, Visual Studio, Vim, Neovim, JetBrains (PyCharm), Azure Data Studio.
Ak chceš využiť silu nástroja Copilot na testovanie softvéru, môžeš ho jednoducho nastaviť ako rozšírenie Visual Studio Code. Po nainštalovaní sa Copilot stane neoceniteľným prínosom v tvojom vývojovom prostredí a bude ponúkať návrhy na dokončenie kódu v reálnom čase prispôsobené tvojmu aktuálnemu kontextu.
VS Code ako jedno z najpopulárnejších IDE v komunite vývojárov poskytuje vynikajúcu podporu pre rozšírenia, takže je ideálnou voľbou na integráciu Copilota.
Poďme sa pozrieť na praktický prístup k pochopeniu vplyvu systému Copilot na testovanie softvéru. Predstavme si scenár, v ktorom potrebujeme napísať testovacie prípady pre registračný formulár webovej aplikácie. Začneme vytvorením nového testovacieho súboru v projekte a definovaním počiatočnej štruktúry testovacieho scenára vrátane testovacích krokov a očakávaných výsledkov.
// Testovací scenár: Registračný formulár používateľa
describe('User Registration', () => {
it('should allow users to register with valid credentials', () => {
// Testovacie kroky, ktoré sa majú dokončiť pomocou návrhov systému Copilot
});
it('should display an error message for invalid email addresses', () => {
// Testovacie kroky, ktoré sa majú dokončiť pomocou návrhov systému Copilot
});
it('should require a password with a minimum length of 8 characters', () => {
// Testovacie kroky, ktoré sa majú dokončiť pomocou návrhov systému Copilot
});
});
Keď začneme písať testovacie scenáre pre náš registračný formulár používateľa, Copilot sa ukáže ako nenahraditeľný pomocník. Keď zadávame testovacie kroky, Copilot okamžite začne navrhovať úryvky kódu, ktoré zodpovedajú kontextu. Pozrime sa, ako nám Copilot pomáha pri vykonávaní niektorých testovacích krokov.
it('should allow users to register with valid credentials', () => {
// Návrh Copilota pre zadanie a odoslanie formulára
cy.visit('/register');
cy.get('#username').type('testuser');
cy.get('#email').type('testuser@example.com');
cy.get('#password').type('secretpassword');
cy.get('#submit').click();
cy.url().should('include', '/dashboard');
});
Copilot poskytol účinný úryvok kódu na interakciu s prvkami registračného formulára a simuláciu registrácie používateľa s platnými prihlasovacími údajmi. Tým sa výrazne znížil čas a úsilie potrebné na napísanie testovacích krokov.
it('should display an error message for invalid email addresses', () => {
// Návrh Copilot pre zadanie neplatnej e-mailovej adresy
cy.visit('/register');
cy.get('#email').type('invalidemail');
cy.get('#submit').click();
cy.get('.error-message').should('be.visible').and('have.text', 'Invalid email address');
});
V tomto príklade Copilot efektívne navrhol testovací prípad na overenie zobrazenia chybovej správy pri zadaní neplatnej e-mailovej adresy do registračného formulára.
V poskytnutom kontexte kódu .cy odkazuje na funkciu, ktorá sa zvyčajne používa pri testovaní end-to-end (E2E) pomocou Cypress, populárneho testovacieho frameworku JavaScript. Cypress je navrhnutý na uľahčenie testovania E2E pre webové aplikácie a poskytuje elegantné a ľahko použiteľné API na interakciu s prvkami na webovej stránke.
V Cypress je cy.get() príkaz, ktorý sa používa na vyhľadávanie a výber prvkov DOM na stránke. Umožňuje testerom interagovať s týmito prvkami vykonávaním akcií, ako je klikanie, písanie alebo overovanie ich vlastností a obsahu. Príkaz cy.get() používa selektor CSS alebo výraz podobný jQuery na identifikáciu prvku(-ov), ktoré sa majú vybrať.
Uvažujme napríklad o nasledujúcom úryvku kódu, ktorý používa cy.get() v teste Cypress:
cy.get(‚#username‘).type(‚testuser‘);
V tomto prípade cy.get(‚#username‘) vyberie vstupné pole s atribútom ID nastaveným na „username“ na webovej stránke. Metóda .type(‚testuser‘) potom simuluje zadanie textu „testuser“ do vybraného vstupného poľa.
GitHub Copilot rozumie aj iným jazykom ako angličtine! To je užitočné pre vývojárov všetkých národností, pretože programovacie jazyky sú založené na americkej angličtine. Zabudnutie na správny pravopis a syntax môže často viesť k preklepom, neočakávaným chybám a strate času.
Napríklad keď napíšeš komentár v španielčine, ktorý znie „importar“, čo v preklade znamená „importovať“, GitHub Copilot rýchlo doplní komentár v španielčine a importuje potrebné knižnice podľa opisu v komentári. Okrem toho GitHub Copilot pomáha prekladať slová z angličtiny do iných jazykov.
GitHub Copilot je skvelý na vytváranie slovníkov s vyhľadávacími údajmi. Vyskúšaj to tak, že napíš komentár, v ktorom dáš programu GitHub Copilot pokyn, aby vytvoril slovník dvojpísmenových kódov krajín ISO a ich názvov krajín. Napísanie komentára a prvých niekoľkých riadkov kódu by malo pomôcť programu GitHub Copilot vygenerovať požadované výsledky. Vizuálne znázornenie nájdeš na obrázku nižšie.
Písanie testov je dôležitým, ale niekedy zdĺhavým krokom v životnom cykle vývoja softvéru. Keďže GitHub Copilot vyniká v rozpoznávaní a dopĺňaní vzorov, môže urýchliť proces písania unit testov, vizuálnych regresných testov a ďalších.
Vďaka GitHub Copilot môžeš stráviť menej času hraním sa s Regex playgroundom alebo prechádzaním StackOverflow, aby si našiel kombinácie znakov v reťazcoch. Namiesto toho môžeš napísať komentár alebo názov funkcie a spustiť návrhy GitHub Copilota.
Použitie Copilota, aby pomohol overiť telefónne číslo:
GitHub Copilot ti taktiež pomôže odstrániť white spaces z reťazca:
Hoci to môže znieť netradične, vývojári používajú GitHub Copilot na štúdium na pohovory.
Tu je stratégia:
Najprv sa pokús vyriešiť problém bez aplikácie GitHub Copilot. Ak sa pri riešení problému cítiš extrémne zaseknutý a znechutený, aktivuj GitHub Copilot a použi ho na generovanie nápadov, ako problém vyriešiť lepšie.
Následne vymaž kód vygenerovaný programom GitHub Copilot, deaktivuj program GitHub Copilot a skús znovunájsť riešenia s novými informáciami v hlave. Osvojením si tejto metódy si udržíš dynamiku, keď si v pokušení skončiť. Namiesto toho, aby si sa vzdal, získaš novú perspektívu, aj keď nemáš mentora alebo kolegu, ktorý by ťa viedol.
Vývojári, ktorí sú nováčikmi vo Vime, sa často pýtajú, ako ukončiť editor. Ťažkosti s ukončením editora Vim sú také časté, že sa z nich na internete stalo meme. Keďže GitHub Copilot je k dispozícii vo Visual Studio Code, JetBrains a Neovim, forknutej verzii Vimu s ďalšími funkciami, môžeš NeoVim ukončiť pomocou GitHub Copilot. V nasledujúcom videu Brian Douglas používa GitHub Copilot na ukončenie NeoVimu tak, že napíše komentár, ktorý znie: „Ako ukončím vim?“
GitHub Copilot Labs je doplnkové rozšírenie, ktoré sa dodáva s prístupom do služby GitHub Copilot. Tím GitHub Next vyvinul GitHub Copilot Labs, experimentálny bočný panel, ktorý pomáha vývojárom prekladať kód z jedného programovacieho jazyka do druhého a získať postupné vysvetlenie úryvkov kódu.
Hoci má Github Copilot svoje obmedzenia, predstavuje významný krok vpred vo využívaní sily umelej inteligencie pri testovaní softvéru. Keďže sa táto technológia naďalej vyvíja, Copilot a podobné nástroje AI sú pripravené stať sa neoceniteľnými prostriedkami v arzenáli testovania softvéru.
Dosiahnutím správnej rovnováhy medzi automatizáciou a ľudskou vynaliezavosťou môžu testeri naplno využiť potenciál Copilota na optimalizáciu svojho testovacieho úsilia. Ak si chceš rovno Copilot vyskúšať, tu je odkaz na copilot extension.
Ak vieš po nemecky a hľadáš si prácu ako IT tester alebo automatizovaný tester, prezri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.