Test Otomasyon Süreçlerinde Yapay Zeka Kullanımı | by Tolga Bayram | AgeSA İş Teknolojileri | Apr, 2024


Test otomasyon süreçleri uygulamaların yaşam döngüsü içerisinde sağlıklı olarak yaşamını sürdürebilmesi için giderek zorunluluk halini almaktadır. Manuel testlerin güvenilirliği ve uygulanabilirliği iş süreçlerinde kullanılan uygulamaların giderek karmaşıklaşması ve test edilmesi gereken senaryo sayısının artması nedeniyle giderek azalmaktadır.

Örnek bir hesaplama yapacak olursak;

10 farklı zorunlu olmayan text input alanı içeren sadece kayıt işlemi yapan bir ekranda uygulanabilecek test senaryo sayısı her metin giriş alanının doldurulması veya boş bırakılması durumunda toplam 2^n (n = zorunlu olmayan metin giriş alanı sayısı) farklı kombinasyon oluşturur. Ancak, zorunlu olmayan metin giriş alanlarının hepsi boş bırakılabilir olduğu için, her bir alanın dolu veya boş olma durumunu ele alarak farklı test senaryoları oluşturulabilir.

Bu durumda, her bir zorunlu olmayan metin giriş alanı için iki durum olduğundan, toplam test senaryosu sayısı 2¹⁰ = 1024 olacaktır.

Her bir testin iyimser bir bakış açısıyla 30 saniyede tamamlandığı hesaplanırsa 8 saat 53 dakikalık bir manuel test süresi oluşturacaktır.

Bu hesaplama kapsamında test otomasyon süreçlerinin bu test maliyetlerinin ve hata oranının azaltılması için ne kadar önemli olduğunu görebiliriz.

Peki süreçlerimizi test otomasyon süreçleriyle yönetiyorsak bu maliyetlerden uzaklaştıysak nasıl bir adım ileriye götürebiliriz mevcut testlerimizi nasıl daha akıllı hale getirebiliriz sorusu ortaya çıkıyor.

Bunun cevabı mevcut test otomasyon süreçlerinde AI ürünleriyle birlikte kullanmak!

Peki bunu nasıl sağlayabiliriz?

Test otomasyon süreçlerinde en yaygın kullanılan Selenium üzerine AI tooları implemente ederek mevcut test otomasyonlarını daha akıllı ve öğrenir hale getirebiliriz.

Örnek bir kod üzerinden bunu aktaracak olursam;

Web üzerinde bir resim sınıflandırma görevi gerçekleştireceğiz. Selenium’u kullanarak bir web sitesine erişecek ve orada bulunan bir resmi TensorFlow ile sınıflandıracağız. Bu örnek için TensorFlow’un önceden eğitilmiş bir modelini kullanacağız.

Öncelikle, Python’da TensorFlow ve Selenium kütüphanelerini yüklüyoruz:

bash

pip install tensorflow
pip install selenium

Ardından, aşağıdaki gibi bir Python kodu kullanarak Selenium ve TensorFlow’u birleştirerek basit bir test otomasyonu oluşturabiliriz:

python

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import tensorflow as tf
import numpy as np
from PIL import Image
import requests
from io import BytesIO

# TensorFlow modelinin yüklenmesi

model = tf.keras.applications.MobileNetV2(weights='imagenet', input_shape=(224, 224, 3))

# Resmi indirme ve sınıflandırma fonksiyonu

def classify_image(url):
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img = img.resize((224, 224))
img_array = tf.keras.preprocessing.image.img_to_array(img)
img_array = tf.expand_dims(img_array, 0)
img_array = tf.keras.applications.mobilenet_v2.preprocess_input(img_array)
predictions = model.predict(img_array)
decoded_predictions = tf.keras.applications.mobilenet_v2.decode_predictions(predictions, top=1)[0]
return decoded_predictions[0][1]

# Selenium ile tarayıcıyı açma

driver = webdriver.Chrome()

# Web sitesine gitme ve resmi bulma

driver.get("https://www.AITEST.com")
image_element = driver.find_element_by_xpath("//img[@class='example-class']")
image_url = image_element.get_attribute("src")

# Resmi sınıflandırma

classification_result = classify_image(image_url)

# Sonucu yazdırma

print("Resim Sınıflandırması:", classification_result)

# Tarayıcıyı kapatma

driver.quit()

Bu kod örneği, tarayıcıyı açar, belirli bir web sitesine gider, bir resmi bulur, bu resmi TensorFlow kullanarak sınıflandırır ve sonucu yazdırır. TensorFlow kullanarak sınıflandırma işlemi için önceden eğitilmiş bir MobileNetV2 modeli kullanılmıştır.

Bu örnek kapsamında test otomasyon süreçlerinde AI süreçlerinin uygulanabilirliğini incelemiş olduk.

İlerleyen günlerde bu yöntemlerin çeşitlenerek artacağını ve iş süreçlerimizde verimlilik ve stabilitenin arttırılması için gündemimizde giderek daha fazla olacağını düşünüyorum.

Sevgilerle…



Source link

Be the first to comment

Leave a Reply

Your email address will not be published.


*