Teknoloji ile birlikte gelişmekte olan dünyanın olmazsa olmazı yazılımların olası hatalarını minimuma indirerek kaliteyi yükseltmeyi amaçlayan yazılım testinin gelişimi hızla devam ediyor.
Günümüzde hem yazılım testine olan ihtiyaç hem de konu ile ilgili farkındalık daha da artmıştır. Bu sebeple artık test daha hızlı ve etkin nasıl yapılabilir ve nasıl otomatize edilebilir gibi konular günden güne daha çok tartışılmaktadır. Yapay zeka, teknolojinin neredeyse her alanında olduğu gibi yazılım testinde de oldukça gündemde. Öncelikli olarak yapay zeka hakkında ufak bilgiler edinelim.
Yapay zeka makinaları, yapay yollarla input kaynaklarından gelen verileri toplayan ve bu verileri işleyen makinalardır. Örneğin, kamera içinde filtresiz fotoğrafların daha güzel görünmesini sağlayan, sosyal medya mecralarında beğenilen gönderilere benzer gönderiler öneren, cep telefonunda arama geçmişine göre size daha iyi arama sonuçları getiren yapay zeka parçacıkları vardır. Şu anlık tabi ki Terminatör, Matrix gibi meşhur filmlerden gördüğümüz humanoid robotların olmasına biraz daha zaman var.
Yapay zeka veriyi nasıl toplayıp işler?
Veriler doğal yöntemlerle hala insanlar tarafından üretilmektedir. Birkaç veri kaynağı vardır ve bunlardan birisi de insanlardır. Örneğin, sosyal medya uygulamalarından birinde bir kişiyi, arkadaş olarak ekliyorsunuz, fotoğrafınızın altına insanları etiketliyorsunuz ya da yeni fotoğraf paylaşımı yapıyor ve gittiğiniz yerin adını ekliyorsunuz. Dolayısıyla bazı verileri siz direkt kendi elinizle üretmiş oluyorsunuz. Diğer bir veri üreten kaynak ise sensörlerdir. Sensör deyince aklımıza sıcaklık sensörü, basınç sensörü, yükseklik sensörü gibi özelleşmiş endüstriyel sensörlerin gelmesine gerek yok. Mobil cihazlarınızda da bir sürü sensör mevcut. Sensör, İngilizce’de “sense” duymak, algılamak kökünden gelen bir kelime. Bu bakımdan mobil cihazınızdaki kamera, GPS alıcısı, gsm alıcısı-vericisi, bluetooth alıcısı-vericisi birer sensördür. Bunların her biri bazı sinyalleri “sense” ediyorlar ve kaydediyorlar. Bundan dolayı veri üreten kaynaklardan bir tanesi de yanımızda taşıdığımız mobil cihazlardır. Bir diğeri ise her gün karşılaştığımız EDS kameraları; her an kayıt halinde ve nerede olduğumuzu algılamaktadırlar. Sonuç olarak bir sürü sensörle çevrelenmiş durumdayız, üstelik bu sensörlerden bazılarını gönüllü olarak yanımızda taşıyoruz. Birçok veriyi de gönüllü olarak üretiyor ve yapay zekanın kullanımına sunuyoruz.
Yapay zekanın bu kadar çok alanda kullanımının olması ve gelişimini düşündüğümüzde, test konusunun ne kadar önemli bir yere sahip olduğu da ortaya çıkıyor.
Gelecek günlerde, yapay zeka test alanında da oldukça kullanılacak gibi. AI (artificial intelligence-AI) ve ML (Machine Learning-ML)’nin giderek artan uygulamaları olacağını düşündüğümüzde; test senaryolarının oluşturulmasında, test komut dosyalarında, test verilerinin test edilmesinde ve test komut dosyalarının sürdürülmesinde ve yeniden kullanılmasında daha akıllı olan test otomasyon teknolojileri ve araçları olacağını söyleyebiliriz. Ayrıca, AI ve ML teknolojileri, test senaryoları oluşturmaya, uygulama davranışlarını ve buna karşılık gelen test seviyelerini tahmin etmeye yönelik ilerlemeler getireceklerdir. Akıllı test araçlarının, hataların daha iyi teşhis edilmesine, test sonuçlarının ve genel ürün kalitesinin çoklu kaynak verileri kullanılarak görselleştirilmesine yardımcı olmak için akıllı analizler sunulabilir.
Otomasyonu otomatikleştirmek için de AI / ML’den yararlanılabilir. Süreci testten öğrenip otomatikleştirebiliriz. Kalite mühendisinin otomasyon senaryosu yazması yerine, AI daha hızlı, daha ucuz ve daha iyi senaryolar yazabilir.
Yapay zeka konusunda uzmanlar “Çoğu sistem veya uygulama AI / ML tarafından gelecekte test edileceğini, API dünyasının buna en yakınlardan birisi olduğunu, bu sayede API’leri test etmenin daha kolay hale geleceğini” söylüyor.
Manuel test alanında AI etkilerine baktığımızda ise; bazı kurumlar hala ürün mühendisliği uygulamalarında AI kullanıp kullanmayacaklarını düşünmektedir. İnsanlar; yaratıcılık, keşif, anlayış, analiz ve bilginin uygulanması açısından şu anlık bir makineden daha iyi olduğu için, bu alanlardaki uygulamalar genelde manuel test ile yürütülecek, geri kalan alanlar ise yapay zekaya zamanla geçecek gibi görünmektedir.
Test otomasyon alanında AI etkilerine baktığımızda ise; test otomasyonu için bir AI sistemi kurmaya yönelik ilk yatırım yapıldığında, kuruluşlar daha az para ile daha fazla test yapabilecek. Bu tasarruflar daha sonra açığa çıkarılmamış alanları test etmek ve keşif amaçlı testlere daha fazla zaman ayırmayı sağlayarak, günümüzde artan QA inovasyon alanlarına yatırım yapılarak daha iyi yazılım hedeflenebilecek.
AI’dan sonra insan testçilerin kariyerlerinin eskimiş olmasından endişe etmelerine bence gerek yok. Sadece testin geleceği hakkında farklı düşünmeye başlanmalıdır. Ancak, bir denge de bulmak önemlidir. Örneğin, zamanla tekrar edilmesi gereken regresyon testleri yapılırken işleri kolaylaştırmak için AI ve otomasyonun buraya gelmesi önemli olacak. Bu, testçilerin yazılım testlerinin daha ilginç ve özel kısımlarına odaklanmasını sağlayacak ve daha kaliteli ürünlerin ortaya çıkmasına olan katkılarını artıracak.
Özetle; gelecekte yapay zeka ile test dünyası çok sıkı işbirliği içinde olacaktır. Bu işbirliğini en iyi şekilde değerlendiren ve fırsata çeviren testçiler, kazananlar arasında olacaktır.
En iyi yol, insanların ve makinelerin aynı anda var olmaları ve birbirlerinin güçlü yönlerine dayanmalarıdır.