Test Dünyasında Büyülü Bir Pencere : “AI TESTING”

Test Dünyasında Büyülü Bir Pencere : “AI TESTING”

Yazılım test dünyasında bizleri kendine çeken, adeta büyüleyen, test otomasyondan performans testlerine, güvenlik testlerinden sanallaştırmaya kadar birbirinden farklı, kendimizi geliştireceğimiz, çalışacağımız, kariyerimize şekil vereceğimiz test alanlarına son zamanlarda bir yenisi daha eklendi. Endüstri sektöründen gıda sektörüne, metalürji sektöründen otomotiv sektörüne kadar birçok sektörde kendini iyiden iyiye gösteren yapay zeka kavramı IT sektöründe de karşımıza sıkça çıkmaya başlamış ve hatta şirketlerimizin yıllık ya da 5-10 yıllık hedefleri arasına girmiştir. Tabii ki tahmin edeceğiniz üzere bu kadar çok alanda karşımıza çıkan yapay zeka kavramı, en heyecan verici, en efektif şekliyle test dünyasına da ihtişamlı bir giriş yapmıştır. Fakat şu an birçok kurumda sadece hedefler arasına giren yapay zeka, bazı küçük çalışmalara da temel oluşturmaya başlamıştır.  Bununla birlikte, proaktif, kendisine ve sektöre bir şeyler katmak isteyen bazı start-upların konu ile ilgili ciddi çalışmalarının, uygulamalarının olduğunu söylememiz mümkündür. Yazılım test dünyasında yapay zekanın öneminin arttığını, yapılan anketlerde BT liderlerinin yaklaşık %21’inin, 2020-21 Dünya Kalite Raporu’na göre yapay zeka denemelerini veya kavram kanıtlarını uygulamaya koyduklarını söylemlerinden de anlıyoruz. Daha uzun vadeli trendlerle ilgili olarak, ankete katılan liderlerin yalnızca %2’sinin gelecek planlarında AI ile ilgili herhangi bir hedeflerinin olmadığını görüyoruz.

Tüm bu yapay zekâ uygulamalarının test süreçleri de tabii ki farklılık gösterecek, planlamasından uygulamasına kadar farklı bir bilgi birikimi ve deneyim gerektirecektir. Bu yazımda sizlere yapay zeka ile test süreçlerini, sektöre getirilerini ve yapay zekâ uygulamalarının getirdiği zorlukları paylaşacağım.

Yapay zeka sistemleri, bilgisayar programlarına öğrenme ve düşünme yeteneği kazandırılmasıdır. Yani yapay zeka, insan gibi düşünmeye programlanmış bir makinedir ve insan zekasının bir simülasyonu olarak düşünülebilir. Yapay zeka fikri ilk olarak 1943’ten 1956’ya kadar bilgisayar bilimcisi Alan Turing tarafından başlar ve sürdürülür. Alan Turing tarafından önerilen ve Turing Testi olarak bilinen test uygun yanıt için insan doğasına ve davranışına benzer veriler hesaplayan bir algoritmadır. Yapay zekanın gelişiminde önemli rol oynayan Turing Testi ve onun mucidi Alan Turing yapay zekanın babası olarak bilinir. Bu test, bir makine tarafından tanımlanan insan zekası ilkesine dayanır ve görevi insandan daha basit bir şekilde yürütmektedir.

Yazılım test dünyasında yapay zeka testleri (artificial intelligence testing), yazılım testlerinin daha akıllıca ve verimli olarak yapılmasını sağlar. Yapay zeka ve makine öğreniminde, testleri otomatik hale getirmek için, akıl yürütme ve problem çözme teknikleri kullanılır. Yazılım testlerinde yapay zekanın kullanılmasında asıl amaç yine test otomasyonda olduğu gibi manuel testlere harcanan süre ile iş yükünü azaltmak ve test uzmanlarını yenilikçi özellikler oluşturacak daha teknik ve spesifik alanlara yönlendirebilmektir.

Gün geçtikçe yapay zeka hayatımıza daha fazla etki etmeye başlarken, yapay zeka içerisindeki işlevselliği, güvenliği, güvenilirliği, performansı, kullanılabilirliği ve stabilizasyonu doğrulamak yani test etmek giderek önemli ve kritik bir hal almıştır. Yani test süreçlerini bu sefer büyük bir titizlikle AI için uygulanması gerekmektedir. Maalesef AI tabanlı sistemlerin test süreçlerinde çok fazla bir ilerleme kaydedilememiştir. Neyseki, AI tabanlı sistemle uğraşan kurum ve kişiler, test süreçleri konusunda varolan eksikliğin farkındadırlar. Dolayısıyla yapay zeka sistemleri geliştiren bir çok kurum yapay zeka destekli otomasyon test araçları da geliştirmektedir.

2014’ten bu yana yapay zekaya dayalı test otomasyon hizmetleri sunan firma sayısında gözle görülür bir artış olmuştur. Bu artış çoğunlukla mobil uygulamaların sistem düzeyinde test edilmesini hedefleyen yeni kuruluşlardır. Bu nedenle AI sistemlerinin yazılım test süreçlerine ihtiyacı olduğu gibi, yazılım test süreçlerininde AI sistemlerine ihtiyacı olduğunu görüyoruz. Yazılım testi için yapay zekanın bazı yönleri hala yeterince ilgi görmese de, son on yılda üç alanın kesişiminden doğan bir disiplin olarak ortaya çıktığını görüyoruz. Ortaya çıkan disiplinleri şu şekilde sıralamamız mümkün;

  • AI-Driven Testing: Yazılım test süreçleri için AI araçlarının geliştirilmesi.
  • Testing AI Systems: AI sistemlerinin test edilmesi için yöntemlerin geliştirilmesi.
  • Self-Testing Systems: Kendi kendini test edebilen ve kendi kendini editleyebilen sistemlerin geliştirilmesi.
  • AI in Software Testing: AI ve Yazılım Test dünyasındaki güncel durum.

AI in Software Testing süreçlerinde, uygulama keşfi, modelleme, test oluşturma ve hata algılama gibi etkinlikleri otomatikleştirmek için “test botları” olarak adlandırdığımız araçlar kullanılır. Test botlarının uygulanmasında yapay zeka ile makine öğrenimi tekniklerinin bir kombinasyonu kullanılır. Bunlar karar ağacı öğrenimi, sinir ağları ve pekiştirmeli öğrenmeyi içerir, ancak asla bunlarla sınırlı değildir. Makine öğrenimi, yapay zeka testlerinde kullanılan test botlarının, sağlam ve klasik test otomasyon araçlarında kullanılan frameworklerin aksine, belirsiz koşullar altında da hareket etmesini sağlamaktadır.

Son on yılda oluşan AI merkezli test yaklaşımlarını şu şekilde örnekleyebiliriz;

  • Differential Testing: Uygulama sürümlerinin üst yapılarının karşılaştırılması, farklılıkların sınıflandırılması ve yapılan sınıflandırmalarla ilgili geri bildirimlerin alınmasını sağlayan etkili ve gerekliliği tartışılmaz bir test yaklaşımı.
  • Visual Testing: Otomasyon test süreçlerinin yetersiz kaldığı visual testingde,  teste AI sistemlerin dahil olmasıyla uygulamanın görünümünü, kullanıcıya verdiği hissi test etmek ve bununla birlikte görüntü tabanlı öğrenme ve ekran karşılaştırmalarından yararlanma kolaylıkla gerçekleştirilir.
  • Declarative Testing: Yapay zeka alanında kullanılan bir dilde, bir testin amacını belirtmek ve sistem testlerinin nasıl gerçekleştirileceğinin bulmasını sağlayan testlerdir.
  • Self-Healing Automation: UI değişikliklerinde otomatik düzeltme elemanı seçiminin yapıldığı testlerdir.

Yazılım testine uygulanan yapay zekanın temel elemanları, makine öğrenimi ve sinir ağlarıdır.

          Makine öğrenimi, bilgisayarların nesneleri sınıflandırmasına veya sahip olduğu verilere dayanarak olasılıklar hakkında tahminler yapmasına olanak tanır.

          Sinir ağları ise, beynin insanlardan önceki bölümünün nasıl ilişki kurduğunu esnek bir şekilde taklit eder.

Günümüzün AI araçlarının çoğu, yazılım test alanında karşımıza çıkan zorluklarını şu şekilde çözer:

  • AI araçları, uygulamaların görüntülerini görsel olarak karşılaştırır ve farklı kriterlerde detaylı raporlamalar oluşturur.
  • AI test araçları, insanların yapabileceğinden çok daha fazla uygulama etkileşimini öğrenerek uzun vadede zaman ve maliyetten tasarruf sağlayacaktır”.
  • Sistemin sonuçlarını veya durumlarını önceki veya bilinen “iyi” durumlarla karşılaştırarak sistemin en verimli şekilde izlenebilirliğini sağlar.
  • Mevcut testlerin sonuçlarını karakterize edip, insanların bunları kolayca anlayabilmesi için büyük ve çeşitli veri setlerini AI araçları sayesinde oluşturabiliriz.

Yapay zekâ testlerini 5 ana seviyede incelememiz mümkün.

  • Level 0 – No Automation – Level 0 manuel test seviyesidir, hala günümüzde sektörde %70 gibi yüksek bir oranda kullanım yoğunluğuna sahiptir.
  • Level 1 – Driver Augmentation – Level 1 seviyesini kodlama yani scripting seviyesi olarak isimlendirebiliriz. Bu da sektörde %25’lik bir bölümü kapsar.
  • Level 2 – Close Supervision – Herhangi bir kodlama ya da kayıt aşamasının olmadığı %5’lik bölümdür.
  • Level 3 – Semi-Autonomous – Level 3, kendi kendini fixleyebilen komut dosyaları veya monkey botlarla makine öğreniminin ilk ipuçlarını sunar. Appvance, 2016’da kendi kendini fixleyen ve geliştiren komut dosyalarını ilk tanıtan kişi olmuştur.
  • Level 4 – Automation – Appvance’in 2017’nin sonlarında 4. Seviyeyi açıklar. Otomasyon ile iş başına oluşturulan veya sürdürülen otomasyon testlerde suitlerinde 2 kattan fazla bir iyileşme olmadığı gibi üst düzey bir verimde sağlanamamıştır.
  • Level 5 – Full Automation – Seviye testlerinde artık kendi kendine test caseler üreten; testleri, alınan aksiyonları, verileri, veri setlerini, doğrulayabilir ve bunları insan yeteneklerinin üzerinde, bağımsız bir sistemle gerçekleştirir.

AI testingin test dünyasına getirdiği avantajları çok büyüktür ve saymakla bitirmek çok mümkün olmasa gerek. Yapay zeka uygulamaları test dünyası gibi birçok profesyonel sektörde devrim yaratacak yenilik ve avantajlara sahiptir. Bunlara örnek olarak;

  1. İnsan Hatasında Azalma:

“İnsan hatası” kavramı, insanların zaman zaman sistem ve uygulama üzerinde yaptıkları hatalardan dolayı ortaya çıkmış bir kavramdır. Fakat söz konusu bilgisayarlar olduğunda doğru kodlanmaları şartıyla bu hataların gerçekleşmediğini görmemiz mümkün. Yapay zeka ve yapay zeka testleri ile, belirli bir dizi algoritma uygulanarak önceden toplanan büyük veri setleri belirli kurallar dahilinde alınarak işenir. Böylece sistem içerisinde olası hatalar azalırken daha yüksek bir hassasiyetle doğruluğa ulaşma şansı olasılığını korur. Örneğin AI teknolojisi kullanarak hava durumu tahminlerindeki birçok insan hatası elenmiş oldu.

  1. İnsanlar Yerine Risk Alır:

Yapay zekanın en büyük avantajlarından biri insanlar yerine risk alarak sağlıklı testler yapmamızı sağlamasıdır. Birçok riskli durum testleri geliştirilen bir AI uygulaması ile başarılı bir şekilde geliştirilebilir. Özellikle savunma sanayinde hem test uzmanlarına destek olurken hem de testin sınırlarını AI sayesinde zorlayabiliriz. Ayrıca programlanan AI Robotları müdahale edilmesi tehlikeli ve oldukça zor olan durumlar için harika bir seçimdir.

  1. 7/24 Hazır:

Kendi günlük aktif ve verimli çalışma saatlerimizi de göz önünde bulundurarak gün içerisinde çalışma saatimizi 4-6 saat arası olarak söyleyebiliriz. Ancak yapay zekayı kullanarak makinelerin 7 gün 24 saat ara vermeden çalışmasını sağlayabiliriz. Bu noktada “aynı şeyi otomasyon ile de yapabilirim” dediğinizi duyar gibiyim. 🙂 Burada AI testingin ürettiği sonsuz case ve raporlama seçeneği tercih nedeni olacaktır.

  1. Tekrarlayan İşlerden Kurtulma:

Test otomasyonda da asıl amacımız tekrarlı işlerden kurtulmak olsa da, bazen tekrarlı senaryolarla koşumlar gerçekleştirdiğimiz zamanlar olur. Fakat AI testingde büyük veri kümelerinin doğru bir şekilde işlenip olası sayısız senaryonun tekrarlanmadan oluşturulması mümkündür.

  1. Hızlı Karar Verme Mekanizması:

Yapay zeka uygulamalarında karar verme mekanizmaları birçok faktör üzerinde çalışarak sonuçları daha hızlı bir şekilde sunar. AI testingdeki bu durum kısa bir süre içerisinde olası birçok kritik senaryonun hazırlanıp, koşulup ve raporlanması anlamına gelmektedir.

Yapay zekanın test dünyasına getirdiği avantajlar kadar bazı eksi yönleri de elbette mevcuttur.

  1. Yüksek Üretim Maliyeti:

AI teknolojileri de diğer tüm teknolojiler gibi yazılım ve donanım alanındaki en son trendleri yakalamak zorundadır. AI sistemleri sürekli kendini güncelleyebilmeli, ve kurulum ve bakım ve güncelleme maliyetleri sürekli göz önünde bulundurulmalıdır. AI test sisteminin gerek kurulum aşamasında kullanılan teknoloji ve insan gücü maliyeti diğerlerinden çok daha fazla olacağı düşünülmelidir. Kurulacak AI test sistemi çok karmaşık olacağından dolayı yüksek maliyet  göz önünde bulundurulmalıdır.

  1. İnsanları Tembelleştirmesi:

Yapay zeka söz konusu olduğunda en büyük dezavantajlarından biri, insanları tembelleştireceğinden bahsedilir. Kullanıcı tarafından düşünüldüğünde kullanıcıya sağladığı kolaylığın ve rahatlığın yanında ciddi bir tembellik durumunun ortaya çıktığı söylenebilir ancak, biz mutfak ekibi çalışanları olarak gerek AI sistemlerinin analiz edilmesi, dataların toplanması ve oluşturulmasından gerekse de geliştirilip test edilmesine kadar olan sürede daha aktif, daha büyük bir birikim ve deneyime sahip olacağımız, olmamız gerektiği apaçık ortadadır.

  1. İşsizlik:

AI sistemlerinde ve AI test süreçlerinde, hedeflenen asıl amaçlardan biri de tekrarlanan işlerin makinelere yaptırılarak zaman ve insan gücünden kar sağlanmasıdır. Bu durum belirli iş alanları için geçerli olsa da test dünyasında daha kalifiye, daha teknik donanımlı insan gücüne ihtiyaç duyulacağına ve kariyerini yapay zeka alanına yönlendirenler için işsizlik değil aksine test dünyasında da yapay zeka ile ilgili yeni bir kapı açılması anlamına gelmektedir.

  1. Alışılmışın Dışında Düşünme Eksikliği:

AI test sistemleri de diğer yapay zeka sistemleri gibi çökme eğiliminde olabilirler, bu tür durumlarda sistemin tekrar ayağa kaldırılması güç ve zaman alacaktır. Bu süre zarfında da hatalı raporlamalar ve alakasız çıktılar verebilir.

Yapay zeka ilerleyen zamanlarda test dünyasına yeni trendler, teknolojiler getirmeye devam ederken, yazılım test alanında AI testing adını sık sık duymaya başlayacağız. Kariyerini yapay zeka testleri üzerine şekillendirmek isteyen, kendini geliştirmeyi huy edinmiş, öğrenmeye ve yeniliklere açık arkadaşlar için bulunmaz bir alan olduğunu düşünüyorum, bir dahaki yazımda görüşmek üzere.

yazı

Ben Göknur BATI. Farklı projelerde test uzmanı, test analist ve test otomasyon uzmanı pozisyonlarında çalışıyorum. Şu anda bir finans projesinde test otomasyon uzmanı olarak çalışmaya devam ediyorum. Teste aşkla bağlı olduğumdan her konuyu testle birleştirip, harmanlayıp, araştırmak incelemek en büyük zevkim. Psikolojiye karşı özel bir ilgim var. Fırsat buldukça tiyatro ve müzik yapmayı çok seviyorum.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir