Üretken yapay zeka, programlama üretkenliğini önemli ölçüde artırdı. GitHub Research tarafından yapılan bir araştırma, geliştiricilerin kontrollü deneylerde programlama görevlerini yapay zeka desteğiyle desteksiz duruma göre yaklaşık %55 daha hızlı tamamladığını gösteriyor. Ancak yapay zeka sistemlerini kullanarak kod yazarken hızın artması, otomatik olarak yazılım projelerinin genel olarak daha hızlı ilerlediği anlamına gelmez. METR (Model Değerlendirme ve Tehdit Araştırması) araştırma enstitüsü tarafından yapılan bir araştırma, deneyimli geliştiricilerin tanıdık kod ortamlarında yapay zeka araçlarıyla çalışmalarının, çoğunlukla ek kontrol ve düzeltme adımları nedeniyle ortalama %19 daha uzun sürdüğünü gösteriyor. Bunun bir nedeni: Hatalar meydana gelirse, öncelikle yapay zeka tarafından oluşturulan koda aşina olmanız gerekir.
Duyurudan sonra devamını okuyun
Test etme, hata ayıklama ve doğrulama, geleneksel yazılım geliştirmede gereken sürenin yaklaşık yarısını oluşturduğundan, bu çalışmadaki gecikmelerin proje süresi üzerinde özellikle önemli bir etkisi vardır. Programlamada yapay zeka araçları kullanıldığında darboğaz değişiyor: Kod oluşturma daha kolay ve daha hızlı hale geliyor, düzgün çalıştığını ve yayınlanabileceğini kanıtlamak uzun zaman almaya devam ediyor. Bu daha da ciddidir çünkü hataların maliyeti projenin sonraki her aşamasında artar. IBM Sistem Bilimleri Enstitüsü'nün geniş çapta alıntılanan bir analizi aradaki farkı ortaya koyuyor: Uygulama sırasında bir hatayı düzeltmek, tasarım aşamasına göre altı kat daha pahalıdır. Faktör testlerde 15'e, üretimde ise 100'e kadar çıkıyor. Bu, özellikle karmaşık iş sistemlerinde bir sorun haline gelir. Modern uygulamalar çok sayıda hizmetten, uygulama programlama arabiriminden (API'ler) ve veri kaynaklarından oluşur. Bir yerdeki değişiklik birçok yerde beklenmedik yan etkileri tetikleyebilir. Yapay zeka araçları yeni kodu ne kadar hızlı üretirse, bu tür etkileşimler o kadar sık meydana gelir ve dolayısıyla ek hata kaynakları oluşur.
Testler olasılıksal hale geldiğinde
Bu darboğazı hafifletmek için yeni veya değiştirilmiş programları daha hızlı test etmek üzere tasarlanan yapay zeka sistemleri giderek daha fazla piyasaya çıkıyor. Ancak bu, test metodolojisinde temel bir değişikliğe yol açmaktadır. Klasik yazılım testi deterministik bir modeli izler: aynı girdi, aynı program, aynı çıktı. Bu tam olarak testlerin temel aldığı şeydir; işlevler tanımlanmış parametrelerle çağrılır ve tam olarak beklenen sonuçları vermesi gerekir. Ancak yapay zeka sistemleri söz konusu olduğunda bu prensip yalnızca sınırlı bir ölçüde geçerlidir. Büyük dil modelleri ve diğer üretken yöntemler, istatistiksel olasılıklara dayalı olarak çalışır ve bir dizi olası yanıt dahilinde sonuçlar sağlar. Bu nedenle bir sistemin kalitesi artık yalnızca evet-hayır testleriyle doğrulanamaz. Önemli olan davranışın kabul edilebilir sınırlar içerisinde olup olmadığıdır. Bu aynı zamanda kalite güvencesinin (QA) odağını da değiştirir. Kapsamlı test kapsamı yerine risk temelli bir yaklaşım ön plana çıkıyor: Ekipler kritik işlevleri ve arayüzleri daha yoğun, daha az alakalı parçaları daha az derinlikle test ediyor. Amaç matematiksel bütünlük değil, daha ziyade artık riskin güvenilir bir değerlendirmesidir.
Yapay zeka destekli araç sağlayıcıları arasında Keysight Eggplant, SmartBear, OpenText ve Tricentis yer alıyor. İkincisi yakın zamanda otonom yapay zeka temsilcilerinin kalite güvence görevlerini üstlendiği bir platform olan “Ajantik Kalite Mühendisliği Platformu”nu sundu. Diğer şeylerin yanı sıra SAP GUI ve web uygulamalarını da destekler. Bunu yapmak için platform, test senaryoları oluşturmak, mevcut testlere öncelik vermek ve büyük test çalışmalarının sonuçlarını özetlemek için üretken yapay zekayı kullanıyor. Teknik olarak, “Yapay Zeka test yazılımı”ndan ziyade tipik QA çalışma adımlarını desteklemekle ilgilidir: koddaki değişiklikleri analiz etmek, ilgili testleri seçmek, hata mesajlarını gruplandırmak veya kapsamlı günlük dosyalarını yoğunlaştırmak. Yaklaşım, test sürecinde en çok zaman harcayan adımlardan birini hedefler: büyük miktarlarda test sonuçlarının değerlendirilmesi. Sürekli entegrasyon ortamlarında, her bir taahhüt için genellikle birkaç bin test çalıştırılır ve sonuçlarının daha sonra geliştiriciler tarafından yorumlanması gerekir. Yapay zeka araçları, kalıpların daha hızlı belirlenmesine ve hataların nedenlerinin daha iyi izole edilmesine yardımcı olabilir. Avantaj daha sonra bireysel testler oluşturmaktan tüm test senaryolarını organize etmeye ve değerlendirmeye geçer.
Yapay zekanın testlerde çözemediği şeyler
Bu gelişmelere rağmen yapay zeka tabanlı testlerin kullanımı sınırlı kalıyor. Yazılım kalitesinin pek çok yönü test çalıştırmalarından öğrenilemez. Bunlar arasında güvenlik sorunları, koddaki yapısal zayıflıklar veya uzun vadeli geliştirme çabalarını artıran ertelenmiş bakım ve modernizasyon çalışması olan teknik borcun önlenmesi yer alır. Bu tür sorular bir uygulamanın yalnızca çalışma zamanı davranışıyla değil mimarisiyle de ilgilidir. Bu nedenle, yürütme gerektirmeden hataları ve güvenlik açıklarını tespit etmek için kaynak kodunu inceleyen statik kod analizi, güvenlik denetimleri ve klasik kod incelemeleri hala gerekli olmaya devam ediyor. Üretken yapay zeka bu anlamda en fazla ipucu verebilir ancak sistematik analizin yerini alamaz. Otomatik AI testi, özellikle güvenlik açısından kritik uygulamalar için yeterli kalite kanıtı değildir.
Duyurudan sonra devamını okuyun
Bu sınırlar, modern kalkınma süreçlerinin temel ilkesine geri dönüyor: İnsanlar karar verme zincirinin bir parçası olarak kalıyor. Otomatik testler ipuçları sağlayabilir ve büyük miktarda veriyi değerlendirebilir, ancak bir sürümün yayınlanması bir risk değerlendirmesi olmaya devam etmektedir. Pek çok şirkette geliştirme veya kalite kontrol ekipleri, yazılımın yeni bir sürümünün üretime geçip geçmeyeceğine karar vermeye devam ediyor. Yapay zeka, bilgileri yoğunlaştırarak ve rutin görevlerin kontrolünü ele geçirerek bu süreci hızlandırabilir. Ancak serbest bırakılma sorumluluğu erkeğe aittir. Yetersiz gözetim riski yakın zamanda Amazon'un yapay zeka araçlarının neden olduğu başarısızlıklarla ortaya çıktı ve bunun ardından şirket daha sıkı test mekanizmaları uygulamaya koydu.
Çözüm
Üretken yapay zeka, kod yazmayı önemli ölçüde hızlandırır ancak aynı zamanda kodu doğrulamak için gereken çabayı da artırır. Daha fazla oluşturulan kod, daha fazla değişken, daha fazla entegrasyon noktası ve dolayısıyla daha büyük potansiyel hata riski anlamına gelir. Yapay zeka, test senaryoları oluşturmaya ve büyük test çalıştırmalarını analiz etmeye yardımcı olabilir ancak tüm kalite sorunlarını çözmez. Güvenlik, mimari ve teknik borç sorunları geliştiricilerin ve inceleme süreçlerinin sorumluluğunda olmaya devam etmektedir. Önemli olan, bir yazılım sürümünün üretime geçip geçmeyeceği kararının insani bir karar olmasıdır.
Ayrıca okuyun
(fo)

Bir yanıt yazın