
Yapay zekâ, yazılım geliştirme dünyasında sadece ürünlerin tasarlanma şeklini değil; bunun yanında geliştirilen ürünlerin test edilme yöntemlerini de önemli ölçüde değiştiriyor. Geleneksel yöntemlerle yürütülen test süreçleri; hız, kapsam ve doğruluk beklentilerinin artmasıyla zorlayıcı bir sınama yaşamakta. Yapay zekâ bu zorlayıcı sınamada, test edicilerin yanında güçlü bir müttefik konumunda. Diğer taraftan yapay zekâ destekli yazılımların güvenilirliğini, doğruluğunu ve etik değerlerle uyumluluğunu da değerlendirmek, test edicilerin konusu haline gelmekte. Bu yeni gündemin sebebi; yapay zekâ destekli geliştirilen ürünlerin öğrenen, uyum sağlayan ve zaman içinde evrimleşen sistemler olması.
Bu yazıda iki temel konuya odaklanacağız. İlk olarak, yapay zekânın test sürecine katkılarını ele alalım. Sonrasında ise bu tür sistemlerin nasıl test edilmesi gerektiğine bakalım.
1) Yapay zekâ yazılım testini nasıl destekler?
Yapay zekâ (YZ) teknolojileri, yazılım test süreçlerinin verimini ve testin kapsamını genişletmek için olumlu imkânlar sunmaktadır. ISTQB YZ Test Uzmanlığı Müfredatı, YZ’nin özellikle otomatik test ve hata öngörüsünde nasıl destek sağlayabileceğini vurgulamaktadır. YZ’nin yazılım testine başlıca katkı alanları aşağıda listelenmiştir:
Test Senaryolarının ve Verilerinin Otomatik Oluşturulması: Yapay zekâ, geçmiş kullanım verilerini ve log kayıtlarını analiz ederek yeni test senaryoları ve test verileri türetebilir. Örneğin, web sunucusu günlüklerini işleyen bir makine öğrenimi (öğrenen yazılım) modeli, kullanıcı davranışından sık karşılaşılabilecek sıra dışı durumları öğrenebilir. Buna uygun test durumları oluşturabilir. YZ tabanlı araçlar sistem akış grafiklerinden veya kullanım kayıtlarından test senaryoları türetebilir. Bu da test edicilere ciddi zaman kazandırır. Sonuçta test kapsamı genişler ve insan eliyle tasarlanmamış beklenmedik senaryoların da sınanması mümkün olur.
Test Otomasyonunda Görüntü Tanıma ve Doğal Dil İşleme:
Geleneksel otomatik test araçları kullanıcı arayüzündeki bileşenleri, genellikle kimlik veya konum bazlı olarak yakalar. Yapay zekâ ise görsel tanıma kabiliyetiyle, arayüz elemanlarını insan gözü gibi tanıyabilir. Örnek olarak, YZ destekli bir test aracı, butonları veya ikonları piksel düzeyinde sınıflandırarak tıklamalar yapabilir. Bu yaklaşım, arayüz değişikliklerinde kırılganlıkları azaltır. Geleneksel lokasyon referansları yerine görsel tanıma teknolojisi ile nesne tanıyan YZ destekli test araçları, dinamik arayüzlerde daha kararlı testler sağlar. YZ benzer şekilde, doğal dil işleme ile chatbot veya sesli asistan testlerinde, kullanıcı girdilerini anlayıp otomatik test cevapları üretebilir.
Hata Gruplandırma ve Önceliklendirme:
Yapay zekâ, geçmişte raporlanmış hataları kategorilere ayırmada ve yeni bulunan bir hatanın hangi kategoriye gireceğini öngörmede kullanılabilir. Öğrenen yazılım modeli, bir hata raporundaki anahtar kelimelere ve hata geçmişine bakarak bu hatanın daha önceki hangi sınıfa benzediğini belirleyebilir. Çok sayıda hata kaydı olan projelerde YZ’nin yeni bulunan hataları uygun geliştirici ekibe otomatik olarak yönlendirmesi mümkündür. Bu sayede, binlerce hata arasından acil ve kritik olanlar önceliklendirilebilir ve benzer nitelikteki sorunlar için çözüm süreci hızlanır.
Regresyon Testi Optimizasyonu:
Öğrenen yazılım, önceki test koşumlarının sonuçlarını ve kod değişikliklerini analiz ederek hangi testlerin güncel değişikliklerden etkilenebileceğini tahmin eder. Misal olarak, bir evrimsel hesaplama yöntemi veya istatistiksel model, defalarca çalıştırılmış test setlerindeki geçmiş başarısızlıkları inceleyip gereksiz yinelenen testleri belirleyebilir. Yapay zekâ tabanlı bir araç, geçmiş test çalışması verilerini analiz ederek regresyon testi için en yüksek öncelikli test senaryo alt kümesini önerebilir. Böylece yüzlerce test içinden, sadece değişen modüllere temas eden kritik testler çalıştırılarak tatmin edici bir zaman kazancı mümkün olabilir. Kısacası YZ’nin önceki test aktivitelerinin bilgisini kullanarak gereksiz testleri elemesi ve böylece test setini küçültmesi mümkündür.
Hata Tahmini ve Önleyici Kalite Analizi:
Yapay zekâ, kaynak kodu metrikleri ve versiyonlama geçmişi üzerinden öğrenerek, sistemde hata çıkma ihtimali yüksek bileşenleri önceden belirleyebilir. Mesela bir öğrenen yazılım modeli; kod karmaşıklığı, geliştirme geçmişi ve geliştirici etkileşimleri gibi verileri kullanarak belli bir modülde hata yoğunluğu tahmini yapabilir. Benzer projelerin hata desenlerini inceleyip yeni projede riskli bölgeleri işaret eden YZ uygulamaları mevcuttur. Bu sayede test ekipleri, sınırlı kaynaklarını riskli kısımlara odaklayarak proaktif test stratejileri geliştirebilir. Bir modül için “bu modülün önceki sürümlerinde %80 olasılıkla hatalar çıktı” uyarısı alınırsa, o modül için ek statik analizler ve derinlemesine testler planlanabilir.
Yukarıda belirtilen katkılar düşünüldüğünde, yapay zekânın, test faaliyetlerini memnuniyet verici ölçüde hızlandırması ve yazılım kalitesini artırması beklenir. Bir ekip; YZ destekli hata tahmin araçları kullanarak, sonraki sürümde en riskli bileşenin hangisi olduğunu öngörebilir ve oraya daha fazla test yazabilir. Yine görsel karşılaştırma yapan YZ araçları, uygulama arayüzündeki beklenmedik değişiklikleri piksel düzeyinde yakalayarak, insan gözünden kaçabilecek hataları ortaya çıkarabilir. Kısaca, iyi uygulandığında yapay zekâ test edicilerin yükünü azaltan bir “akıllı asistan” işlevi görmektedir.
2) Yapay Zekâ destekli yazılımlar nasıl test edilmeli?
Yapay zekâ destekli sistemleri test etmek, klasik yazılımları test etmekten daha farklı zorluklar içermektedir. Bu tür sistemler genellikle öğrenen, çevresine uyum sağlayan ve tahmin edilemez yapıda olduğu için test yaklaşımlarında dikkat gerektiren noktalar mevcuttur. ISTQB müfredatında, YZ tabanlı sistemlerin testine ilişkin kalite özellikleri ve zorluklar ayrıntılı şekilde ele alınmıştır. Kendi deneyimime göre bu tarz testlerde de yapay zekâ desteğinden faydalanmak kaçınılmazdır. Aşağıda, yapay zekâ içerikli yazılımları test ederken özellikle göz önünde bulundurulması gereken başlıca hususlar açıklanmaktadır:
Veri Kalitesi ve Önyargılar:
Yapay zekâ modellerinin başarısı büyük ölçüde kullanılan eğitim verisinin kalitesine bağlıdır. Eğer eğitim veya test verilerinde hatalar, tutarsızlıklar ya da insan kaynaklı önyargılar varsa, modelin çıktıları da hatalı ve taraflı olacaktır. Bu yüzden test ediciler, öncelikle kullanılan veri setlerini incelemelidir. Veri kaynaklı hata durumları arasında; örnekleme önyargısı ve algoritmik önyargı önemli yer tutar. Bir yapay zekâ destekli kredi onay sisteminin, sadece yüksek gelir gruplarının verileriyle eğitildiğini var sayalım. Bu durum bir hayal kırıklığına yol açabilecek ve düşük gelirli ama krediye layık kişilerin başvuruları reddedilebilecektir. Bu bir uygunsuz önyargı örneğidir. Test ederken, farklı demografik gruplara ait senaryolar çalıştırarak modelin tutarlı karar verip vermediği kontrol edilmelidir. Öğrenen yazılım modelinin eğitiminde kullanılan veride istenmeyen önyargılar olup olmadığı istatistiksel analizlerle anlaşılabilir. Örneğin, eğitim verisinde belirli bir müşteri grubunun eksik temsil edilip edilmediği tespit edilmelidir. Önyargı tespiti için deneysel test teknikleri de uygulanabilir. Modele bir girdi üzerinde ufak değişiklikler yaparak, mesela kişinin sadece cinsiyet bilgisini değiştirerek, çıktının orantısız şekilde farklılaşıp farklılaşmadığı gözlemlenir. Sonuç olarak, YZ sistemlerinin adil ve tarafsız çalıştığını doğrulamak test sürecinin kritik bir parçasıdır.
Beklenen Sonuçların Belirsizliği:
Klasik yazılımlarda, belirli bir girdi için beklenen çıktıyı kesin olarak tanımlamak genellikle mümkündür. Ancak Yapay zekâ tabanlı sistemlerde kesin beklenen sonuç tanımlamak zor olabilir. Bir resim tanıma sistemine verdiğimiz fotoğraf için “kedidir” sonucu bekliyoruz diyelim. Model çıktıyı %92 olasılıkla kedi, %5 olasılıkla tilki, %3 olasılıkla rakun şeklinde verebilir. Test ediciler için böyle durumlar bir "oracle sorunu" meydana getirir. Çözüm olarak, toleranslı karşılaştırmalar kullanılabilir. Şöyle ki: belirli bir doğruluk eşiği (ör. %90 üzerinde kedi diyorsa başarılı say) kabul kriteri yapılır. Girdiyi değiştirip çıktının tutarlılığını kontrol etme gibi teknikler de oracle problemini hafifletmede yararlı olur. Bu teknikte model tutarlılığı şöyle test edilir: Giriş verisi bilinçli şekilde değiştirilir, çıktı da beklenen şekilde değişiyor mu diye bakılır. YZ sistemlerde her test için sabit bir “beklenen sonuç” yerine, olası davranış aralığı düşünülmelidir. Test oracle’ları da bu esnekliği kapsayacak şekilde tanımlanmalıdır.
Açıklanabilirlik ve Yorumlanabilirlik:
Geleneksel sistemlerde geliştiriciler, kodun nasıl çalıştığını anlayabildiği için, bir hatanın nedeni izah edilebilir. Ancak derin öğrenme gibi karmaşık Yapay zekâ modelleri adeta “kara kutu” gibidir. İç karar süreçleri insan için, yorumlaması zor matris çarpımları ve aktivasyon değerleriyle doludur. YZ sistemlerinin şeffaflık, yorumlanabilirlik ve açıklanabilirlik özelliklerinin test edilmesi özellikle önemlidir. Modelin, verdiği kararları ne ölçüde açıklayabildiğini değerlendirmek güven sağlar. Bir kredi notu tahmin modelinin, neden bir müşteriye düşük puan verdiğini açıklayıp açıklayamadığını anlamak için, LIME gibi araçlar kullanabilir. Bu araçlar, makine öğrenmesi modellerinin verdiği tekil bir tahminin, neden o şekilde çıktığını insanın anlayabileceği biçimde sunmaya yarar. LIME aracı, bir tahmin modelinin girdilerindeki hangi özelliklerin, sonuca ne kadar etki ettiğini yüzdesel olarak çıkarır. Örnek olarak test edici, reddedilen bir kredi başvurusunda; modelin “gelir düzeyi”ne %70 ağırlık, “yaş”a %20 ağırlık, “bölge”ye %10 ağırlık verdiğini görür ve bu dağılımın makul olup olmadığını değerlendirir. Eğer model, anlaşılmaz veya mantıksız bir şekilde karar veriyorsa (ör. görünürde alakasız bir özelliğe aşırı ağırlık veriyorsa) bu bir kalite sorunudur. Açıklanabilirlik testleri kullanıcı perspektifinden de yapılmalıdır. Son kullanıcıya, YZ sisteminin kararı anlaşılabilir biçimde iletiliyor mu? Mesela bir tıbbi teşhis sistemi “Bu hastalığa %87 ihtimalle X teşhisi koydum” diyorsa, doktor için yeterince açıklayıcı mı? Bu gibi değerlendirmeler, anket veya uzman görüşmeleriyle de yapılabilir. Sonuç olarak, test süreçlerinde modelin “neden bu kararı verdiği” hususu irdelenmeli, gerektiğinde geliştiricilere geri bildirim sağlanarak modelin ya da çıktı açıklamalarının iyileştirilmesi istenmelidir.
Otonom Davranışların Testi:
Sürücüsüz araçlar, otonom iha’lar gibi heyecan verici otonom sistemler, dış dünyadan gelen karmaşık girdilere kendi kararlarını uygular. Bu tür sistemlerin, kontrolü ne zaman insana devretmesi gerektiği ve bunu doğru yapıp yapmadığı konusu kritiktir. Örneğin, seviye-3 otonom bir otomobil normal şartlarda kendi giderken, şerit çizgileri kaybolursa veya sensörleri arızalanırsa kontrolü sürücüye bırakmalıdır. Test mühendisleri, aracın bu "insana devretme" davranışını, farklı senaryolar oluşturarak doğrulamalıdır. Yoğun sis içinde aracın sensörleri güvenilirliğini yitirdiğinde; sistem uyarı verip derhal sürücü kontrolünü talep ediyor mu? Veya tam tersi, çok basit bir engelde gereksiz yere panikleyip kontrolü bırakıyor mu? Bu durumlar sınır değer analizi ve karar testleri ile incelenmelidir. Araç hızı 60 km’ye düştüğünde kendi karar verebiliyorken 59 km’de insan müdahalesi gerekiyorsa, bu eşik etrafında testler yoğunlaştırılır. Otonom sistem testlerinde simülatörlerin etkin kullanımını da önerilmektedir. Zira gerçek dünyada tehlikeli veya nadir durumları denemek mümkün olmayabilir. Özetle, otonom bir YZ sisteminin ne zaman “bu şartlar benim kapasitemi aştı” deyip yardım isteyeceği net kriterlerle tanımlanmalı ve testlerle doğrulanmalıdır.
Otomasyon Yanlılığı:
İnsanlarla etkileşim halinde çalışan yapay zekâ destekli yazılımlar için bir diğer test alanı da kullanıcıların bu sistemlere aşırı güven duyup duymadığıdır. İnsanların akıllı sistem önerilerini sorgulamadan kabullenmesi veya sistem hata yapsa bile fark etmeyip müdahale etmemesi durumuna otomasyon yanlılığı denir. Bir doktor destek yazılımı, belirli bir hastaya yanlış bir teşhis önerdiğinde; doktor bunu sorgulamayıp aynen alırsa, bu otomasyon yanlılığına kurban gitmek demektir. Test ediciler, kullanılabilirlik testleri ile bu durumu değerlendirebilir. Senaryolar kurgulanır ve (doktorlar gibi) gerçek kullanıcılar sistemle çalışırken gözlemlenir. Sistem yanıltıcı bir öneri verdiğinde kullanıcı tereddüt ediyor mu? Ya da sistemin önerisini reddedip kendi kararını uygulayabiliyor mu? Eğer kullanıcılar sistemi aşırı derecede “yanılmaz” olarak görüyorsa, burada rahatsız edici bir kullanım riski vardır. Bu durumda, sistem arayüzünde karar gerekçelerini daha görünür yapmak veya kullanıcı eğitimini artırmak çözüm olabilir. Test raporlarında “kullanıcılar, sistem önerilerini gereğince sorguluyor mu?” sorusuna yanıt aranmalı ve gerekirse ilgili bulgular paydaşlara iletilmelidir.
Kasıtlı Yanıltıcı Saldırılara ve Veri Zehirlenmesine Karşı Dayanıklılık: Kötü niyetli saldırganlar, Yapay zekâ modellerini yanıltmak için kasıtlı yanıltıcı örnekler oluşturabilir veya eğitim verisini bozabilir. Kasıtlı yanıltıcı örnek, modelin yanlış tahminde bulunmasına yol açan kasıtlı olarak değiştirilmiş girdidir. Bir görüntünün bazı piksellerini insan gözüne fark edilmez biçimde değiştirerek modelin onu bambaşka bir şey olarak tanımlamasına yol açmak, bu konuya örnek verilebilir. Test esnasında, modelin bu tür kasıtlı yanıltıcı girdilere karşı davranışı mutlaka sınanmalıdır. Güvenlik testi kapsamında, öğrenen yazılım modeline ufak eklemeler içeren görüntüler verilip, sınıflandırma çıktıları gözlenebilir. Eğer model, örnek olarak bir trafik levhasının fotoğrafını ufak bir eksik yüzünden (“Dur” levhasını “Hız Limiti 90” okuması gibi) yanlış tanıyorsa, bu sorunlu bir güvenlik açığıdır. Kasıtlı yanıltıcı dayanıklılık testleri, hem modelin içini bilerek hem de modeli dışarıdan gözlemleyerek yapılabilir. Benzer şekilde, veri zehirlenmesi testleri de kritiktir. Eğitim verisine, kasıtlı hatalı örnekler eklenerek modelin performansı takip edilir. Bu tür testler sonucunda, modelin güvenlik açıkları ortaya konur ve (eğitim verisini temizleme algoritmaları, kasıtlı yanıltıcı eğitim teknikleri gibi) önleyici tedbirler önerilir.
Sürekli Öğrenme ve Konsept Kayması:
Bazı yapay zekâ sistemleri kullanıldıkça kendi kendini yeniler, öğrenir ve ortama uyum sağlar. Zamanla konsept kayması denilen olgu gerçekleşebilir. Çevresel şartların veya veri dağılımının değişmesiyle sistemin karar kalıpları amacından sapabilir. Kullanıcı tercihleri zamanla değiştiği halde, bir öneri sistemi eski alışkanlıklara göre öneri yapmaya devam ediyorsa yetersiz hale gelir. Test ediciler, modelin performansını belirli aralıklarla yeniden ölçerek konsept kaymasını tespit etmelidir. Modelin belirli aralıklarla yeniden eğitilip eğitilmediği ve güncel verilerle hâlâ doğru çalışıp çalışmadığı kontrol edilmelidir. Bu kapsamda istatistiksel süreç denetimi uygulanabilir. Modelin son aylarla eski aylar arasındaki tahmin başarıları karşılaştırılır, anlamlı düşüş var mı bakılır. Eğer sistem kendi kendini çevrimiçi güncelliyorsa, bu güncellemelerin hatasız gerçekleştiğini de test etmek gerekir. Yeni öğrenilen bir bilginin önceki bilgileri bozmadığı, düzenli gerçekleştirdiğimiz regresyon testlerine benzer şekilde doğrulanmalıdır. Kısaca, YZ destekli yazılımların yıllandıkça veya ortam değiştirdikçe tutarlılığını koruyup korumadığı, testlerin sürekliliği içinde izlenmelidir.
Etik ve Yasal Uyum:
Yapay zekâlı sistemler, kararlarıyla insanlar üzerinde manipülatif etkiler oluşturabilir. Bu nedenle etik ilkelere uygunluk ve adil davranış, testin bir parçası olmalıdır. Özellikle kredi onayı, işe alım, adli karar destek gibi otomatik karar veren sistemlerde ayrımcılık yapmama ve hesap verebilirlik ilkelerine uyum test edilmelidir. Sistem, aynı niteliklere sahip iki adaydan sadece cinsiyeti farklı olana, sistematik olarak olumsuz yanıt veriyorsa bu etik dışıdır. Bu tarz durumlar Avrupa Birliği Genel Veri Koruma Tüzüğü (GDPR) gibi düzenlemelerce de yasaklanmıştır. Test edici; ırk, cinsiyet, yaş gibi farklı grup üyeliklerine sahip ama özde eşit profiller oluşturarak sistem çıktılarının tutarlı olup olmadığını denetler. Etik ilkelere uygunluk için güvenilir yapay zekâ değerlendirme listeleri kullanılabilir. Mesela Avrupa Birliği’nin yayımladığı YZ etik kılavuzundaki gereklilikler, kontrol listesi olarak alınabilir ve sistem bu maddelere göre gözden geçirilebilir (ör. “Kararlar şeffaf ve izah edilebilir mi?”, “İnsan onuruna saygı korunuyor mu?” gibi). Eğer sistem bu açılardan eksikse, test raporunda bu bulgular vurgulanır ve düzeltilmesi istenir. Sonuçta, yapay zekâ destekli yazılımların sadece teknik olarak değil, toplumsal ve etik açılardan da kabul edilebilir olması beklenir; bu da test sürecinin sorumluluk alanına girer.
Yukarıdaki noktalar, yapay zekâ destekli yazılımların testini geleneksel test yaklaşımlarından farklı kılmaktadır. Test ekipleri; bu sistemlerde veri kalitesi, model davranışı, kullanıcı etkileşimi ve güvenlik boyutlarına özel test senaryoları geliştirmelidir. Gerekirse; farklı girdilerle test, çift yönlü test, keşif testi gibi yeni test teknikleri uygulanmalıdır.
Sonuç:
Yapay zekâ, yazılım test süreçlerini hızlandırıp zenginleştirmektedir. YZ içeren sistemlerin de titizlikle ve çok yönlü test edilmesi gerekir. YZ, test otomasyonunda akıllı araçlar sunarak test edicilerin yükünü azaltır. Daha fazla kusuru daha erken bulmamıza yardımcı olur. Öte yandan, YZ’li sistemlerin önyargısız, açıklanabilir ve güvenli olduğundan emin olmak gerekir. Bunun için test sürecinde ek önlemler ve teknikler kaçınılmazdır. ISTQB müfredatında da belirtildiği gibi, YZ destekli yazılımların başarılı olması için teknik doğruluk tek başına yeterli değildir. Sistemin çıktılarının adil, anlaşılabilir ve kullanıcı tarafından benimsenebilir olması da kritiktir. Dolayısıyla YZ destekli projelerde test ediciler hem mühendislik hem de etik bakış açılarıyla donanarak, bu sistemlerin hem zeki hem de güvenilir olmasını sağlamalıdır.
Kaynakça:
1. ISTQB® Certified Tester – AI Testing (CT-AI) Syllabus, v1.0, 01 Ekim 2021
– Yapay zekâ sistemlerinin test edilmesine yönelik ISTQB müfredatı.
2. ISTQB® Sertifikalı Test Uzmanı – Yapay Zekâ Testi Ders Programı, Türkçe Çeviri, 25 Nisan 2025
– CT-AI müfredatının resmi Türkçe çevirisi.
3. ISTQB® CT-AI Sample Exam – Questions/Answers, v1.2, 08 Aralık 2024
– Yapay zekâ testi sertifikası için örnek sınav soruları ve cevapları.
4. ISTQB® Certified Tester – Foundation Level (CTFL) Syllabus, v4.0, 21 Nisan 2023
– Yazılım testi temel seviyesine yönelik güncel ISTQB müfredatı.
5. ISTQB Yazılım Testi Terimler Sözlüğü, V1.0, 2014
6. Garousi, V. et al. (2024). AI-powered Software Testing Tools: A Systematic Review and Empirical Assessment
– 55 AI tabanlı test aracının sistematik incelemesi ve ampirik değerlendirmesi.
– Erişim: arXiv:2409.00411