Test Otomasyonu Nasıl Yapılır? QA'dan Otomasyona Yol Haritası
Beceri rehberi

Test Otomasyonu Nasıl Yapılır? QA'dan Otomasyona Yol Haritası

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Test otomasyonuna nereden başlanır: neyin otomatikleşeceği, test senaryosu tasarımı, araç seçimi, çevik ortamda QA ve sık yapılan hatalar.

Test otomasyonu nedir, neyi otomatikleştirmek mantıklıdır?

Test otomasyonu, bir yazılımın beklenen davranışını el ile tek tek denemek yerine, kod ya da araç yardımıyla otomatik çalışan testlerle doğrulamaktır. Amaç testçiyi devre dışı bırakmak değil, tekrar eden ve her sürümde yinelenmesi gereken kontrolleri hızlı ve tutarlı yapmaktır.

Her şeyi otomatikleştirmek ne mümkün ne de mantıklıdır. Otomasyona uygun adaylar şunlardır: sık tekrarlanan regresyon kontrolleri, kritik iş akışları (giriş, ödeme, sipariş), çok sayıda veri kombinasyonunun denenmesi gereken durumlar ve farklı ortamlarda aynı kontrolün çalıştırılması. Keşif amaçlı testler, yeni kullanılabilirlik değerlendirmeleri ve sık değişen arayüzler ise çoğunlukla el ile yapılmaya devam eder.

Otomasyondan önce QA temelleri

Otomasyon, iyi tasarlanmış testin hızlandırılmasıdır; kötü testi otomatikleştirmek yalnızca kötü sonucu hızlı üretir. Bu yüzden önce şu temelleri oturtun:

  • Yazılım kalitesi ve test türleri: birim, entegrasyon, sistem, kabul testi ve her birinin amacı.
  • Test senaryosu tasarım teknikleri: eşdeğer sınıflar, sınır değer analizi, karar tabloları, durum geçişi.
  • Kapsam yönetimi: Neyin test edilip edilmeyeceğine risk üzerinden karar vermek.
  • Hata yönetimi: Hatanın nasıl raporlanacağı, önceliğin nasıl belirleneceği ve nasıl takip edileceği.

Bu bilgiler olmadan yazılan otomasyon betikleri genellikle yalnızca mutlu yolu (her şeyin yolunda gittiği senaryoyu) doğrular ve gerçek hataları kaçırır.

Adım adım: ilk otomasyondan sürdürülebilir pakete

Test otomasyonu kurarken tipik akış şöyledir:

  • Hedefi netleştirin: Hangi riski azaltmak istiyorsunuz? Örneğin her sürümden sonra giriş ve ödeme akışının bozulmadığını görmek.
  • Adayları seçin: Kritik, kararlı ve tekrar eden senaryoları işaretleyin.
  • Test katmanını seçin: Mantığı birim testle, servis sözleşmesini API testiyle, kullanıcı yolculuğunu arayüz testiyle doğrulayın. Maliyet ve kırılganlık açısından arayüz testi en pahalı katmandır.
  • Aracı ve dili seçin: Ekibin zaten kullandığı dil ve uygulamanın türü (web, mobil, API) belirleyici olur.
  • Test verisini yönetin: Testler birbirine bağımlı olmamalı, kendi verisini hazırlayıp temizlemeli.
  • Düzenli çalıştırın: Testleri sürekli entegrasyon hattına bağlayın, kırılan testi aynı gün inceleyin.
  • Raporlayın ve bakım yapın: Sonuçları okunur biçimde raporlayın; ürün değiştikçe testleri güncelleyin.

İlk haftalarda başarıyı yazılan test sayısıyla değil, bulunan gerçek regresyonlarla ve kırılgan testlerin azalmasıyla ölçün. Test adlarını bir iş davranışı anlatacak biçimde yazmak, kırıldığında kimin neye bakacağını netleştirir.

Araç seçimi nasıl yapılır?

Tek bir doğru araç yoktur; seçim üç soruya bağlıdır: ne test ediyorsunuz, ekip hangi dili biliyor, ve test nerede çalışacak? Web arayüzü için tarayıcıyı otomatik süren araçlar (Selenium ailesi ve yeni nesil alternatifleri), API için istek-yanıt doğrulayan araçlar, birim testi için dilin kendi test çerçevesi kullanılır.

Seçimde şu ölçütleri tartın:

  • Ekibin mevcut becerisi ve öğrenme eğrisi.
  • Topluluk desteği ve bakım sürekliliği.
  • Sürekli entegrasyon ile uyum ve paralel çalıştırabilme.
  • Rapor ve hata ayıklama kolaylığı.

Araç gösterişli demoyla değil, kendi uygulamanızın küçük bir akışını gerçekten otomatikleştirip birkaç gün çalıştırarak değerlendirilmelidir.

Çevik ortamda QA ve otomasyon

Çevik ekiplerde kalite yalnızca testçinin işi değildir. Gereksinimler netleşirken kabul ölçütleri yazılır, geliştiriciler birim testlerini koda birlikte teslim eder, testçiler riskli alanlara odaklanır ve otomasyon sürümler arasında güvenlik ağı sağlar. Kısa yinelemelerde el ile regresyon yapmak sürdürülemez olduğu için otomasyon burada zorunluluğa yaklaşır.

Çevik QA'nın özü erken ve sık geri bildirimdir. Hata ne kadar geç bulunursa düzeltme maliyeti o kadar artar. Bu yüzden testleri geliştirme sürecinin sonuna değil, her değişikliğin hemen ardına koymak hedeflenir. Testçi rolü de el ile uygulayıcıdan kalite danışmanına, test stratejisi ve risk analizi sahibine doğru genişler.

Örnek senaryo: e-ticaret ödeme akışı

Örneğin bir e-ticaret ekibinde her sürümden sonra sepet ve ödeme akışını el ile denemek birkaç saat sürüyor. Ekip önce iş kurallarını kapsayan birim testlerini ve ödeme servisinin yanıtını doğrulayan API testlerini otomatikleştirir. Ardından arayüzde yalnız en kritik yolculuğu, yani ürünü sepete ekleyip ödemeyi tamamlamayı, tek bir uçtan uca testle kapsar.

Bu testler her kod değişikliğinde sürekli entegrasyon hattında çalışır. Bir test kırılırsa hangi adımda ve hangi ekranda hata verdiğini gösteren rapor ekibe iletilir. Yeni bir ödeme yöntemi eklendiğinde testçi önce keşif amaçlı el testi yapar, kalıcı senaryoları sonra otomasyona ekler.

Sık yapılan hatalar

  • Her şeyi arayüz testiyle kapsamaya çalışmak: Yavaş, kırılgan ve bakımı pahalı bir paket çıkar. Alt katmanlarda daha çok test yazın.
  • Beklenmedik durumları kapsamamak: Hata mesajları, boş alanlar, sınır değerler ve yetki kontrolleri atlanırsa otomasyon yanlış güven verir.
  • Sabit bekleme sürelerine güvenmek: Zamanlama kaynaklı kırılmaların başlıca nedenidir; durum bekleyen akıllı beklemeler kullanın.
  • Kırılan testi görmezden gelmek: Sürekli kırılan test ekibin testlere güvenini bitirir. Ya düzeltin ya da kaldırın.
  • Test verisini ortak kullanmak: Testlerin birbirini etkilemesi tutarsız sonuç üretir.
  • Bakım zamanı ayırmamak: Otomasyon bir kez yazılıp bırakılan bir iş değil, ürünle birlikte yaşayan bir koddur.

Bir diğer sık hata, hatanın nedenini bulmadan testi yeniden çalıştırıp geçmesini beklemektir. Zaman zaman geçip zaman zaman kırılan testi sessizce yeniden denemek hatayı gizler. Kırılgan testin sebebini (bekleme, veri, ortam) kaydedip gidermek hem paketi hem ekibin güvenini korur.

Mindset programlarında nerede çalışılır?

Mindset'in Test Otomasyonu ve QA Temelleri programı şu modülleri içerir: Yazılım Kalitesi ve QA Temelleri, Test Türleri ve Kapsam Yönetimi, Test Senaryosu Tasarım Teknikleri, Test Otomasyon Temelleri ve Araç Seçimi, Hata Yönetimi ve Raporlama, Çevik Ortamda QA. Sıra, bu sayfadaki öğrenme sırasıyla paralel ilerler.

İlgili Mindset programı

Test Otomasyonu ve QA Temelleri

Sık sorulanlar

Sık sorulan sorular

Test otomasyonu için programlama bilmek gerekir mi?

Genellikle evet, ama başlangıç düzeyi yeterlidir. Değişken, koşul, döngü ve fonksiyon mantığını bilmek, bir test çerçevesinin dokümantasyonunu okuyabilmek ilk adımlar için yeter. Kodsuz araçlar da vardır, ancak karmaşık senaryolarda sınırlı kalabilir.

Manuel test tamamen ortadan kalkar mı?

Kalkmaz. Keşif testi, kullanılabilirlik değerlendirmesi ve yeni özelliklerin ilk denemesi insan gözlemi ve yaratıcılık ister. Otomasyon tekrar eden doğrulamayı üstlenir; manuel test daha değerli keşif işine zaman bırakır. Örneğin yeni bir ödeme yöntemi eklendiğinde ilk olarak testçi onu kurcalar, kalıcı senaryolar sonra otomasyona taşınır.

Hangi testleri öncelikle otomatikleştirmeliyim?

Sık tekrarlanan, kararlı ve iş açısından kritik senaryolarla başlayın: giriş, ödeme, sipariş gibi temel akışlar ile regresyon kontrolleri. Sık değişen arayüz parçalarını sona bırakın. Bir senaryo her sürümde elle denenip sürekli aynı sonucu veriyorsa, otomasyon için en doğru adaylardan biridir; değişim hızı yüksek ve değeri belirsiz senaryolar ise bekleyebilir.

Selenium mu başka bir araç mı öğrenmeliyim?

Seçim, test ettiğiniz uygulamaya ve ekibin diline bağlıdır. Selenium köklü bir ekosistemdir; yeni nesil araçlar da yaygınlaşıyor. Hangisini seçerseniz seçin test tasarımı ve kapsam yönetimi becerisi araçtan bağımsız aktarılır. Kendi uygulamanızda küçük bir akışı iki aracla da deneyip kurulum, hata ayıklama ve rapor kolaylığını karşılaştırmak, tartışmaktan daha güvenilir bir karar verir.

Otomasyon testleri neden zamanla bozulur?

Arayüz ve iş kuralları değiştikçe testlerin de güncellenmesi gerekir. Sabit beklemeler, ortak test verisi ve kırılgan seçiciler de kırılmaya yol açar. Bakım için zaman ayırmak ve testleri küçük, bağımsız tutmak sorunu azaltır.

Yazılım Test Otomasyonu Nasıl Yapılır? Adım Adım