Bir geliştirici, bir kullanıcının raporu indirebilme yetkisine sahip olup olmadığını kontrol eden bir fonksiyon için asistandan yardım ister. Kod derlenir. Başarılı senaryo testi geçer. Çekme isteği düzgün görünür. İki hafta sonra bir meslektaş, fonksiyonun kullanıcının oturum açmış olup olmadığını kontrol ettiğini, ancak raporun onlara ait olup olmadığını asla kontrol etmediğini fark eder.
Bu, belgelenmiş bir olay değil, açıklayıcı bir senaryodur. Yapay zeka tarafından oluşturulan kod inceleme eğitiminin kapatması gereken boşluğu tanımlar: Temel bir kontrolü geçen oluşturulmuş kod, yine de yetkilendirme veya eşzamanlılık hatası içerebilir ve inceleyen kişinin bunu bulması ve neden önemli olduğunu açıklaması gerekir.
Bu kılavuz, mühendislik yetkilendirme liderleri ve mühendislik yöneticileri içindir. Performans sorununu nasıl tanımlayacağınızı, eksiklikleri nasıl teşhis edeceğinizi, tasarım hazırlığını ve uygulamasını, bir vaka üzerinde çalışmayı ve becerinin gerçek incelemelere aktarılıp aktarılmadığını değerlendirmeyi kapsar. Eğitim tasarımına odaklanmaktadır. Programınızdaki her hata, test ve inceleme kuralı, kıdemli mühendisler ve güvenlik ekibiniz tarafından doğrulanmalıdır.
Yapay zekâ destekli kod inceleme eğitimi nedir?
Yapay zekâ destekli kod inceleme eğitimi, geliştiricilere bir asistana net bir şekilde komut vermeyi, ardından gelenleri değerlendirmeyi ve denetlemeyi öğretir: Doğru mu, güvenli mi, eş zamanlı yük altında nasıl davranıyor, yeterince verimli mi? Bu, belirli bir araç üzerine bir kurs değildir. Araç değiştiğinde bile aynı kalan bir inceleme alışkanlığı kazandırır.
Hızlı gerçekler
| Soru | Kısa cevap |
|---|---|
| Görev nedir? | Oluşturulan kodu denetleyin ve her riski bir testle doğrulayın. |
| Kaç puan aldınız? | Doğrulama kalitesi ve ilgili kusurların bulunup bulunmadığı. |
| Güvenli kodlama kuralları üzerine bir sınav yeterli mi? | Hayır. Ön koşulları doğrular, ancak bir geliştiricinin makul görünen bir kod hatasını tespit edip edemeyeceğini doğrulamaz. |
| İçeriği kim doğruluyor? | Bir mühendislik yöneticisi ve güvenlik ekibiniz. |
| Eğitim neleri düzeltemez? | İnceleme süresi, araçlar, belirsiz sorumluluklar ve hızlı birleşme baskısı. |
| İşe yaradığını nereden biliyorsun? | Daha önce görülmemiş yeni bir kod alıştırması, üzerinde anlaşılmış kriterlere göre puanlanacak ve gerçek incelemelerle takip edilecektir. |
1. Performans sorununu açıklayın.
Görevle başlayalım: oluşturulan kodu denetleyin ve riskleri testlerle doğrulayın. Denetleme, şüpheyle okumaktır. Doğrulama ise şüpheyi kanıta dönüştürmektir; genellikle başarısız olan bir test veya hatayı gösteren bir yeniden üretimdir.
Araştırma, bunun neden bilinçli bir uygulama gerektirdiğini ortaya koyuyor. GitHub Copilot üzerine yapılan bir çalışmada, Pearce ve meslektaşları, bilinen zayıflık türleri için seçilen 89 senaryoda 1,689 program ürettiler ve bunların yaklaşık yüzde 40'ının savunmasız olduğunu buldular (Pearce ve meslektaşları, 2021Bu, erken dönem bir araç ve belirli bir senaryo setiydi, bu nedenle bu rakamı günümüzdeki asistanlar için bir oran olarak değerlendirmeyin. Ayrı bir kullanıcı araştırmasında katılımcılardan yapay zeka asistanı ile ve asistan olmadan kod yazmaları istendi. Asistanı olanlar önemli ölçüde daha az güvenli kod yazdılar ve kodlarının güvenli olduğuna inanma olasılıkları daha yüksekti (Perry ve meslektaşları, 2023Aynı çalışma, asistana daha az güvenen ve onun yönlendirmeleriyle daha fazla etkileşim kuran katılımcıların daha az zaaf gösterdiğini ortaya koydu.
Eğitim tasarımı için iki önemli ders çıkarılabilir. Makul sonuçlar için aktif bir değerlendiriciye ihtiyaç vardır. Ve güven, kanıt değildir; bu nedenle egzersiz, görüşü değil, testi istemelidir.
Performans değerlendirmesini tek bir cümleyle yazın ve bir mühendislik yöneticisine kontrol ettirin: "Oluşturulan bir değişiklik göz önüne alındığında, geliştirici gördüğü güvenlik, eşzamanlılık ve verimlilik risklerini listeler ve her biri için bunu gösterecek bir test tanımlar veya yazar."
2. Öğrenme ve bağlam eksikliklerini teşhis edin.
Herhangi bir şey inşa etmeden önce, görevi mevcut programınızın uyguladığı ve değerlendirdiği şeylerle karşılaştırın. Genellikle üç soru, bir eğitim açığını başka bir şeyden ayırır:
- Mevcut uygulamada gerçek görev kullanılıyor mu? Eğer eğitim, komut satırı yazımını kapsıyor ancak geliştiricilerden çıktıları incelemelerini hiç istemiyorsa, kimse denetim pratiği yapmamıştır. Eğer değerlendirme, güvenli kodlama kuralları üzerine çoktan seçmeli bir test ise, hatırlamayı ölçer.
- Bilişsel talep nedir? Bloom'un revize edilmiş taksonomisinde, kodun güvenli olup olmadığını değerlendirmek ve bunu kanıtlayan testi seçmek analiz ve değerlendirme seviyelerinde yer alırken, daha iyi bir uyarı veya düzeltme tasarlamak oluşturma seviyesine ulaşır. Etkinliklerin bu seviyelerle eşleştirilmesi, kılavuzumuzda ele alınmıştır. Öğrenme etkinliklerini Bloom Taksonomisi ile eşleştirmek.
- Beceriden başka bir şey mi engel oluyor? İnceleme süresini, araçları ve sorumluluğu kontrol edin. İnceleyicilerin her çekme isteği için beş dakikası varsa, hiçbir eğitim denetim üretmeyecektir. İşlem hattında statik analiz veya test altyapısı yoksa, bir geliştirici bir risk bulabilir ancak bunu kanıtlayamaz. Eğitim dışı nedenleri, bunları düzeltebilecek kişilere bildirin.
3. Tasarım hazırlığı ve uygulaması
Eğitimin hangi eksiklikleri giderebileceğini öğrendikten sonra, her aşamaya ayrı bir görev atayın.
Hazırlık. Kısa bir teşhis testiyle ön koşulları kontrol edin: testlerinizin karşılaştığı yaygın zayıflık kategorileri, testlerinizin yapısı, ekibinizin kullandığı inceleme kontrol listesi. Kendi hızınızda çalışma bu aşamaya uygundur. Hatırlama testi yalnızca ön koşulları doğrular.
Uygulama. Gerçekçi şekilde oluşturulmuş koddan yola çıkarak denetim egzersizleri kullanın. Her birine, sahiplik kontrolünün eksikliği, iki istek arasında yarış durumu ve verimsiz bir döngü gibi farklı türde az sayıda hata ve sorunsuz çalışan bazı kodlar ekleyin. Geliştirici, her riski inceler, adlandırır, ciddiyetini belirtir ve bunu gösterecek testi önerir. Satır numaralarının listesini değil, gerekçeyi isteyin.
Geri bildirim. Toplam puandan ziyade kararlarla ilişkilendirin. "Paylaşılan sayaçta döngüyü işaretlediniz ancak yarış durumunu işaretlemediniz ve testiniz bunu yakalayamazdı çünkü istekleri tek tek çalıştırıyor" ifadesi, "3'te 2 bulundu" ifadesinden daha kullanışlıdır.
Canlı giriş mi yoksa eşzamansız inceleme mi? Canlı geri bildirim, risk belirsiz olduğunda ve geliştiriciler kıdemli bir mühendisin birleştirmeyi neden engelleyeceğini açıklamasını dinleyerek öğrendiklerinde en büyük değeri katar. Geliştiricinin bulgularını açıklamalı bir uzman incelemesiyle karşılaştırmak için eşzamansız inceleme yeterlidir. Birçok ekip her ikisini de kullanır: önce kendi hızlarında hazırlık, ardından zor durumlar için kolaylaştırılmış bir oturum.
4. Gerçekçi bir örnek üzerinde çalışın.
Örnek niteliğindedir. Kullanmadan önce bir mühendislik yöneticisinin durumu ve cevap kriterlerini doğrulaması gerekir.
Dosya. Oluşturulan uç nokta, fatura kimliğine göre müşterinin faturasını döndürür. Çağrı yapanın geçerli bir oturuma sahip olduğunu kontrol eder, parametreli bir sorgu kullanır ve temel testi geçer. Aynı işlev, kilit kullanmadan paylaşılan bir indirme sayacını artırır.
Görev. Geliştirici, gördüğü her riski belirtir, sıralar ve her birini doğrulayacak testi açıklar.
İlk deneme. "Sorun yok gibi görünüyor. Sorgu parametrelendirilmiş ve test başarılı." Geliştirici, başarılı testi kanıt olarak kabul etmiş ve testin neleri kapsamadığını sormamıştır.
Geri bildirim ve yeniden deneme. İncelemeci, geliştiriciden oturum kontrolünün neyi kanıtladığını ve neyi kanıtlamadığını belirtmesini ister. Yeniden deneme işlemi, onlardan iki farklı müşteriyi ve iki eş zamanlı isteği dikkate almalarını ister.
Daha güçlü bir girişim. "Oturum kontrolü, arayan kişinin kim olduğunu kanıtlar, faturanın kime ait olduğunu değil. Müşteri A'nın müşteri B'nin fatura kimliğini talep ettiği ve reddedilme beklediği bir test yazardım. Sayaç senkronizasyon olmadan artırılıyor, bu nedenle aynı anda iki istekte bulunmak bir güncellemenin kaybolmasına neden olabilir. Eş zamanlı bir test çalıştırır ve sayıyı karşılaştırırdım. Sorgunun kendisi parametrelendirilmiş olduğundan, orada zaman harcamazdım." Dikkat edin, bu cevap riskleri sıralıyor ve her birini bir testle ilişkilendiriyor.
Her bir yanıtın neden savunulabilir veya eksik olduğu. Her birini, değerlendiricinin tercihine göre değil, onaylanmış kriterlere göre değerlendirin. İlk girişim bir alışkanlığı takip eder ancak kanıtları göz ardı eder. Daha güçlü girişim ise spesifik, öncelikli ve test edilebilir niteliktedir.
5. Kapasiteyi değerlendirin ve devri planlayın
Yeterlilik kanıtı, öğrencinin daha önce görmediği yeni bir alıştırmadaki performansıdır. Puan doğrulama kalitesi ve ilgili eksikliklerin belirlenmesi. Basit bir değerlendirme ölçeği, her kriter için 0 ila 2 arasında bir puan kullanır:
| Kriter | Gözlemlenebilir kanıtlar |
|---|---|
| Görev yürütme | Oluşturulan kodu denetler ve her bulgunun ardındaki kanıtları kaydeder. |
| muhakeme | Kısıtlamaları, alternatifleri ve belirsizliği açıklıyor ve riskleri sıralıyor. |
| Sınırları | Ekibin inceleme kurallarına uyar ve risk kendi yetki alanının dışında olduğunda durumu bir güvenlik uzmanına iletir. |
Çapa noktaları: 0 eksik veya desteklenmiyor, 1 ilgili eksikliklerle kısmi, 2 ise kabul edilen kriterlere göre eksiksiz ve gerekçelendirilmiş anlamına gelir. Korunmasız erişim yoluna sahip kodu onaylamak gibi kritik hataları ayrı olarak tanımlayın, böylece genel puan bunlardan birini gizleyemez. Bu değerlendirme bir öneridir, onaylanmış bir hazırlık standardı değildir: bir mühendislik yöneticisiyle uyarlayın ve pilot uygulamasını yapın. Kılavuzumuz Faydalı geri bildirim içeren etkileşimli uygulama tasarımı Kararlara bağlanan geri bildirimlerin nasıl yazılacağını gösterir.
Aktarımı bilinçli bir şekilde planlayın. Egzersizden sonra, her geliştiriciyi oluşturulan kodu içeren gerçek bir çekme isteğiyle eşleştirin ve bulgularını birlikte gözden geçirin veya bir şeyi gözden kaçıran yakın tarihli bir incelemeye ilişkin kısa bir retrospektif yapın.
Etkileşimli sunumun yardımcı olduğu yerler
Etkileşimli formatlar, herkesin grup sunumunu görmeden önce katkıda bulunması gereken durumlarda yardımcı olur. Canlı bir oturumda, kolaylaştırıcı oluşturulmuş bir kod parçasını gösterebilir, her geliştiriciden gördüğü riskleri ve yazacağı testi yazmasını isteyebilir ve ardından tartışmadan önce sonuçları ortaya çıkarabilir. Aynı alıştırma, hazırlık için kendi hızınızda da çalıştırılabilir. AhaSlides, etkileşimli öğrenmeyi ve canlı ile kendi hızınızda sunum arasında geçişi destekler. Bu bir sunum ve öğrenme aracıdır, kod çalıştırma yeri değildir; bu nedenle kod alıştırmalarını kendi ortamınızda çalıştırın. Kullanmayı planladığınız herhangi bir yazma, geri bildirim veya raporlama işlevini kendi iş akışınıza göre kontrol edin. Format seçimi konusunda rehberlik için makalemize bakın. Uyarlanabilir, etkileşimli ve canlı öğrenmeyi ne zaman kullanmalı?.
Değişenleri ölçün
Geliştiricilerin görevi yapabileceğini gösterecek unsurları önceden belirleyin. Daha önce görülmemiş bir uygulama üzerinde doğrulama kalitesini ve hata tespitini bir temel ölçütle karşılaştırın. Kimlerin dahil edileceğini, paydayı ve zamanlamayı tanımlayın. Sonuçlar iyileşirse, eğitimi onaylamadan önce aynı dönemde başka nelerin değiştiğini (örneğin yeni bir statik analiz kuralı, revize edilmiş bir inceleme kontrol listesi veya asistan değişikliği) kontrol edin.
Kalabilecek kısıtlamalar
- Değerlendirme zamanı. Bir denetim, yüzeysel bir incelemeden daha uzun sürer ve son teslim tarihleri yüzeysel incelemeye doğru yönlendirir.
- Takım. Test düzeneği veya tarama işlemi olmadan bir riski doğrulamak zordur.
- Alet değiştirme. Asistanlar hızla değişir, bu nedenle egzersizleri tek bir ürüne değil, değerlendirme alışkanlığına odaklayın.
- Dava kapsamı. Bir alıştırma birkaç hata türünü göstermektedir. Puan, bir geliştiricinin genel değerlendirme yeteneğini yansıtmaz.
- Aktarım. Bir atölyedeki performans, yoğun bir değerlendirme kuyruğundaki performansla aynı değildir.
Bunları sponsorlara erkenden bildirin ve ayrı düzeltmeler planlayın. Eğitim, bir geliştiricinin bulabileceği ve kanıtlayabileceği şeyleri geliştirir. Ancak zamanı veya araçları yaratmaz.
Sık Sorulan Sorular
Yapay zekâ destekli kod inceleme eğitimi nedir?
Bu araç, geliştiricilere yapay zekâ asistanı tarafından üretilen kodu sorgulamayı, değerlendirmeyi ve denetlemeyi, güvenlik, eşzamanlılık ve verimlilik sorunlarını bulmayı ve her birini bir testle desteklemeyi öğretir.
Üretilen kod, insan eliyle yazılan koda göre daha mı az güvenlidir?
Çalışmalar risklere işaret ediyor, ancak sonuçlar kullanılan araca, göreve ve çalışma tasarımına bağlı. Bir kullanıcı araştırması, asistanı olan katılımcıların daha az güvenli kod yazdığını ve bu konuda daha özgüvenli hissettiklerini ortaya koydu; bu da gözden geçirme alışkanlığını eğitmenin bir nedenidir.
Geliştiricilerin oluşturdukları kodu denetleyebilme yeteneklerini nasıl değerlendirirsiniz?
Yeni bir kod alıştırması verin ve doğrulama kalitesini ve hata tespitini, üzerinde anlaşılan kriterlere göre puanlayın. Güvenli kodlama kuralları hakkındaki bir sınav yalnızca ön koşulları teyit eder.
Eğitim için bir kod test ortamına ihtiyacınız var mı?
Egzersizleri çalıştırabileceğiniz bir yere ihtiyacınız var, bu genellikle kendi ortamınızdır. Herhangi bir aracı kullanmadan önce, ihtiyaçlarınızı desteklediğinden emin olun.
Nerede başlar
Kod tabanınızda tekrar eden bir tür değişiklik seçin. Performans raporunu yazın, mühendislik yöneticisine yerleştirilen hataları ve bunları gösterecek testleri doğrulatın ve 0 ile 2 arasında bir ölçek ve kritik hataların listesini içeren üç kriterli bir değerlendirme tablosu hazırlayın. Uygulamaya geçmeden önce küçük bir grupla pilot olarak test edin.
Denetim uygulamasının kendi ekibinizle nasıl canlı olarak yürütülebileceğini ve sonrasında kendi hızınızda nasıl yeniden kullanılabileceğini görmek için AhaSlides'ı inceleyin.








