Nyereség:
- Képes felismerni és ellenőrizni, hogy a mesterséges intelligencia hamis API-kat, nem biztonságos kódot és szerzői jog által védett tartalmat állíthat elő
- Képes kezelni az AI-használatot a forráskód titkosságának, a személyes adatoknak és a vállalati szabályzatnak a keretein belül
- Annak megértése, hogy a licencnek való megfelelés, a biztonság és az etika a végső felelősség a mérnöké marad.
Modul vizsga
1. Számítógépes mérnökként, ha mesterséges intelligencia kódgeneráló eszközzel dolgozik, az alábbiak közül melyiknek a végső felelőssége mindig az embert terheli?
- A) A gyártásba helyezett kód helyességének, biztonságának, valamint felülvizsgálatának és tesztelésének végleges jóváhagyása ✔
- B) Egy függvény első kódvázának létrehozása
- C) Változónevekre vonatkozó javaslatlista készítése
- D) Szövegvázlat készítése kód megjegyzésekhez
Leírás: AI; Felgyorsíthatja az olyan feladatokat, mint a kódváz, a tesztvázlat és a dokumentáció. A mérnök felelőssége azonban a generált kód áttekintése, tesztelése és jóváhagyása annak érdekében, hogy megbizonyosodjon arról, hogy az helyes, biztonságos és megfelel a követelményeknek, és gyártásba helyezi azt; ez független ellenőrzés nélkül nem delegálható MI-re.
2. A mesterséges intelligencia egy funkciót készített az Ön számára, és úgy tűnik, hogy a boldog úton működik. Mi a legjobb lépés a gyártás előtt?
- A) Mivel úgy tűnik, hogy a függvény működik, helyezze közvetlenül a termelésbe
- B) Ellenőrizze a viselkedést kis egységtesztek írásával és futtatásával, amelyek éles eseteket is tartalmaznak ✔
- C) Csak nézzük a függvény sorainak számát
- D) A függvény nevének leíróbbá tétele
Magyarázat: A munkának látszani nem azt jelenti, hogy igaza van. Kis egységtesztek írása és futtatása, amelyek lefedik az olyan szélső eseteket, mint az üres bemenet, a nulla, a negatív, a nagyon nagy érték és az eltérés, ellenőrzi a függvény tényleges viselkedését anélkül, hogy az élő környezetbe kerülne.
3. Az AI egy „array.sortStable()” nevű metódust javasolt, amely nem létezik az Ön nyelvén, és világosan elmagyarázta. Mi az első helyes lépés?
- A) A módszer közvetlen használata, mert az AI magabiztosnak tűnik
- B) Határozza meg saját maga a módszert, és használja pontosan a nevét
- C) A módszer meglétének ellenőrzése a nyelv/könyvtár hivatalos dokumentációjából ✔
- D) Zárja be a fordítói figyelmeztetést, és folytassa
Magyarázat: A nyelvi modellek valószínûleg olyan könyvtár-, csomag- vagy metódusneveket alkothatnak, amelyek valójában nem léteznek (hallucinál). Minden javasolt API-t szó szerint ellenőrizni kell a nyelv vagy könyvtár hivatalos és aktuális dokumentációjával; Ha nem szerepel a dokumentumban, akkor nem szabad használni.
4. Szeretné beilleszteni vállalata bizalmas forráskódját és egy beágyazott API-kulcsát egy nyilvános AI-eszközbe, és segítséget kérni. Melyik a leghelyesebb megközelítés?
- A) A kód beillesztése az API-kulccsal a sebesség érdekében
- B) Elég csak a cégnevet törölni, és minden mást megosztani
- C) Ossza meg a kódot, majd kérje meg az AI-t, hogy törölje
- D) A titkok és a rejtett logika eltávolítása és a probléma reprezentatív példára redukálása vagy intézményi eszköz használata ✔
Leírás: Titkos forráskód és hitelesítő adatok (API-kulcs, jelszó, kapcsolati karakterlánc); Vállalati titok és biztonság szempontjából kockázatos. Szükséges a titkokat és a rejtett üzleti logikát kiszedni, és a problémát egy névtelen/reprezentatív példára redukálni, vagy vállalati/nem adatmegosztó eszközt kell használni.
5. Az AI azt mondta, hogy az általa írt keresési függvény bonyolultsága O(n); de két egymásba ágyazott ciklus van a kódban. Mi a helyes mérnöki magatartás?
- A) Elemezze manuálisan a kódot, és saját maga vonja ki a bonyolultságot, és mérje meg, ha szükséges ✔
- B) Fogadja el az O(n)-t, és folytassa, mert az AI mondta
- C) A ciklusok számának feltételezése semmi köze a teljesítményhez
- D) Csak módosítsa a függvény nevét
Magyarázat: Az időbonyolultság (Big-O) azt mutatja, hogy a műveletek száma hogyan növekszik a bemenet növekedésével. Két beágyazott hurok általában O(n^2) jelentésű. Az AI komplexitási állítását a kód manuális elemzésével és szükség esetén növekvő bemenetekkel történő méréssel kell ellenőrizni; A követelésre való támaszkodás a teljesítés hamis feltételezését eredményezi.
6. AI által generált kód, amely közvetlenül szúrja be a felhasználói bevitelt egy SQL-lekérdezésbe szöveg összefűzésével. Mi itt a fő probléma és a helyes megoldás?
- A) Nem probléma; a szövegegyesítés a leggyorsabb módszer
- B) Fennáll az SQL injekció veszélye; A bemenetet elválasztó paraméterezett lekérdezést (előkészített utasítást) kell használni ✔
- C) Elég csak a lekérdezést nagybetűssé alakítani
- D) A lekérdezés rövidebb írása megoldja a problémát
Leírás: A felhasználói bevitel közvetlenül a lekérdezés szövegéhez való hozzáadása SQL-befecskendezési sebezhetőséget okoz; A támadó módosíthatja a lekérdezést a bemenettel. A helyes megoldás egy paraméterezett lekérdezés (előkészített utasítás) használata, amely elválasztja a bemenetet a lekérdezés szövegétől. Ez az egyik leggyakrabban kihagyott biztonsági hiba az AI-kódban.
7. Korlátozott idő áll rendelkezésére az AI által előállított kódrészlet áttekintésére. Mely kérdéseket érdemes előnyben részesíteni?
- A) Csak a formázási részleteket, például a behúzást és a térközt
- B) Csak a változónevek hossza
- C) Logikai helyesség, sebezhetőségek és szélső esetek viselkedése ✔
- D) Csak a fájl sorainak teljes száma
Leírás: A legmagasabb kockázat a kód felülvizsgálata során; Ezek súlyos károkat okozó problémák, például logikai hibák, biztonsági rések és bizalmas információk kiszivárogtatása. A formátum- és stílusproblémák automatikus eszközökkel javíthatók; A fő emberi figyelmet a pontosságra, a biztonságra és a szélsőséges viselkedésre kell fordítani.
8. Azt szeretné, hogy az AI megoldjon egy hibát. Melyik bemenet segítene a legjobban az MI-nek megtalálni a kiváltó okot?
- A) Csak azt mondod, hogy "a kód nem működik, javítsd ki"
- B) Csak adja meg a fájl nevét
- C) Csak mondja ki a várt eredményt, hibaszöveg nélkül
- D) Adja meg a teljes hibaüzenetet, a verem nyomkövetését, a vonatkozó kódot és a minimális reprodukciós példát ✔
Magyarázat: A hatékony hibakeresés érdekében meg kell adni az AI-nak a teljes hibaüzenetet, a veremkövetést, a vonatkozó kódrészletet és a hibát okozó legkisebb reprodukálható mintát. A „nem működik” homályos kijelentés arra kényszeríti az AI-t, hogy találgasson és általános ajánlásokat tegyen.
9. A mesterséges intelligencia által készített összes egységteszt az első futtatáskor sikeres. Melyik kockázatot nem szabad figyelmen kívül hagyni ebben a helyzetben?
- A) A tesztek megerősíthetik a kód aktuális állapotát, de nem a tényleges/várt viselkedést ✔
- B) A kód teljesen hibamentes, mert minden teszt sikeres volt
- C) A minőség garantált, ha nagy a vizsgálatok száma
- D) A teszt sikeres teljesítése bizonyítja, hogy a fedezet teljes
Magyarázat: Lehet, hogy a tesztek a kód jelenlegi (talán hibás) viselkedését érvényesítik, nem a tervezett viselkedését; vagy nem tartalmazhat értelmes állítást, és mindig elfogadásra kerül. Ahhoz, hogy lássuk, a tesztek a valós elvárásokat ellenőrzik, tudatosan meg kell törni a kódot, és meg kell győződni arról, hogy a teszt pirosra vált.
10. Az AI egy kész kódblokkot készített egy problémára. Azt gyanítja, hogy a kódot szó szerint másolhatták egy nyílt forráskódú projektből. Melyik a helyes megközelítés?
- A) Gondolkodás nélkül használja a licencet, mert a kód működik
- B) A kód forrásának/licencének ellenőrzése, szükség esetén átírása és a vállalati szabályzat betartása ✔
- C) Csak változtassa meg a változóneveket, és tekintse megoldottnak a problémát
- D) Feltételezve, hogy az engedélyezés csak a nagyvállalatokra vonatkozik
Leírás: A mesterséges intelligencia szó szerint képes reprodukálni a szerzői joggal védett/licenszelt kódot a képzési adatokban. A kereskedelmi termék licencsértése súlyos jogi kockázatokat rejt magában. Szükséges a kód forrásának és licencének ellenőrzése, szükség esetén saját szavaival történő átírása, valamint az intézmény engedélyezési rendjének betartása.
11. A mesterséges intelligencia azt javasolta, hogy azonnal váltson mikroszolgáltatási architektúrára a projektben. Mi a legmegfelelőbb mérnöki megközelítés ennek a javaslatnak az értékelésekor?
- A) Azonnal ossza fel a teljes rendszert mikroszolgáltatásokra, mert az AI javasolja
- B) Feltételezve, hogy a mikroszolgáltatás mindig a legjobb választás
- C) Értékelje a javaslatot a valós igény, terhelés, csapatfelépítés és plusz-mínusz mérleg szerint ✔
- D) A döntés meghozatala kizárólag az építészet népszerűsége alapján
Magyarázat: Az építészeti döntések a kontextustól függenek; A mikroszolgáltatások hozzáadott értéket jelentenek az olyan igényekben, mint a méretarány és a csoportok szétválasztása, de olyan költségekkel járnak, mint a működési összetettség, az elosztott hibakeresés és a költségek. Értékelje a javaslatot a tényleges igény, a terhelés, a csapat felépítése és az előnyök és hátrányok mérlege szerint; Az általános tanácsokat nem szabad vakon követni.
12. A mesterséges intelligencia leegyszerűsített README és API dokumentációt készített a kódjához; de egyes végpontok és paraméterek nem egyeznek a kódban. Mi a helyes viselkedés?
- A) A dokumentum közzététele úgy, ahogy van, mert a szöveg gördülékeny
- B) Csak javítsa ki a címet, és hagyja a többit úgy, ahogy van
- C) A bizonylat beadása a raktárba olvasás nélkül
- D) Hasonlítsa össze az egyes végpontokat és paramétereket a tényleges kóddal, és javítsa ki azokat, amelyek nem egyeznek ✔
Leírás: A dokumentációnak pontosan tükröznie kell a tényleges kódot; A rossz dokumentum arra készteti a fejlesztőket, akik elolvasták, hogy helytelenül használják. Minden végpontot, paramétert és visszatérési értéket ellenőrizni kell a tényleges kóddal, és az esetleges eltéréseket ki kell javítani.
13. Melyik bemeneti megközelítés megfelelő a legjobb minőségű kimenethez, amikor kódot kérünk az AI-tól?
- A) Világosan megadja a nyelvet/verziót, az input-output szerződést, a megszorításokat és a hibahelyzeteket ✔
- B) Csak azt mondja, hogy „írj egy működő kódot”
- C) Írja meg a legrövidebb kérést anélkül, hogy bármilyen kontextust megadna!
- D) Csak adja meg, hogy hány soros kód lesz
Leírás: Erőteljes felszólítás; Tartalmazza a használt nyelvet és verziót, a bemeneti-kimeneti szerződést, a teljesítmény- és stíluskorlátozásokat, a hibafeltételeket és a „maradjon csak a kért hatókörön belül” utasítást. A kontextus nélküli „írjon nekem egy függvényt” kérés általános, és gyakran nem megfelelő kódot állít elő.
14. Az AI létrehozott egy konfigurációt a CI/CD (folyamatos integráció/telepítés) folyamathoz, és beágyazta az adatbázis jelszavát egyszerű szövegben. Melyik a helyes javítás?
- A) Hagyja meg a jelszót egyszerű szövegként, mert működik
- B) Titkok áthelyezése környezeti változón vagy titkos kezelő eszközön keresztül, nem egyszerű szöveg elhelyezése a tárolóban ✔
- C) A jelszót csak a megjegyzés sorba helyezze át
- D) A fájlnév megváltoztatása megoldja a problémát
Magyarázat: A titkok, például jelszavak és kulcsok egyszerű szövegben történő beírása a konfigurációs fájlba a verziószabályozás kiszivárgásának és az illetéktelen hozzáférésnek a kockázatát jelenti. Titkok; Környezeti változóknak vagy egy speciális titokkezelőnek kell távol tartania, és soha nem szabad szöveges formában belépnie a tárba.