Otomasyon QATest Otomasyon Mühendisi, QA Takım Lideri

Mevcut bir projeye daha önce manuel test yapıldıysa, nasıl otomatik test entegrasyonu sağlanır?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Mevcut bir projeye otomatik test entegrasyonu sağlamak, karmaşık ve çok aşamalı bir süreçtir.

Sorunun geçmişi: Uzun süredir manuel test yapılan bir organizasyonda, süreçler, belgeler ve kod mimarisi genellikle otomasyon için gerekli şartlara uygun değildir. Test mühendisleri otomatik araçları bilmiyor olabilir ve testlerin ve uygulamaların mimarisi otomatik testlerin hızlı bir şekilde başlatılmasını desteklemiyor olabilir.

Problemler: Entegrasyonun ana zorlukları:

  1. Otomasyon kültürünün olmaması: deneyim, araçlar, süreçler yok.
  2. Eski kodla zorluk: testlerin entegrasyonu, test edilebilir arayüzlerin ve elementlerin kararlı yapısının olmaması.
  3. Önceliklendirme kriterlerinin olmaması: öncelikle neyi otomatikleştirmeliyiz ve en büyük etki nerede elde edilir?

Çözüm: Ekip şu aşamaları geçmelidir:

  1. Hazırlık değerlendirmesi: zaman tasarrufu sağlayacak en kritik ve en sık tekrar eden manuel testleri belirlemek.
  2. Pilot uygulama: sistemin küçük bir bölümünü seçip, hipotezleri hızlı bir şekilde test etmek için pilot bir otomatik test seti uygulamak.
  3. Aşamalı entegrasyon: pilot başarıldıkça otomatik test kapsamını genişletmek ve aynı anda ekibi otomasyona eğitmek.

Anahtar özellikler:

  • Otomasyona regresyon ve "smoke" testleri ile başlamak avantajlıdır.
  • Otomatik testleri mevcut geliştirme sürecine entegre etmek önemlidir (örneğin, pull request'e göre çalıştırmak).
  • İletişimi dikkate almak gerekir - otomasyonun faydalarını ve sınırlamalarını iş dünyasına ve test mühendislerine açıklamak gereklidir.

Kandırıcı sorular.

Otomatik testler manuel testlerin yerini tamamen alabilir mi?

Hayır. Otomatik testlerin yüksek örtüşmesine rağmen, yalnızca tekrarlanan, deterministik senaryolar için uygulanabilir. Kullanılabilirlik hataları, keşif, tasarım hataları ve alışılmadık "insani" hatalar genellikle elle tespit edilir.

Tüm test durumlarını otomatikleştirmek zorunlu mu?

Hayır. Tüm test durumlarını otomatikleştirmek mantıklı değildir: düşük frekanslı veya karmaşık senaryoları, maliyeti ve düşük dönüş oranı nedeniyle manuel testler için bırakmak daha iyidir.

Başarılı bir otomasyon için test mühendislerinin kesinlikle programcı olması gerekir mi?

Hayır, ancak temel programlama bilgisi istenmektedir. Ekip genellikle şunları içeren bir yapı üzerine kurulmaktadır: deneyimli bir test mühendisi - otomatik testlerin mimarı, otomasyona yönelik mühendisler - geliştiriciler.

Tipik hatalar ve antipatternler

  • Öncelikleri belirlemeden hemen her şeyin otomatik testlerle kaplanmaya çalışılması.
  • Manuel test mühendisleri ve otomasyon mühendisleri arasında yetersiz iletişim.
  • Araçların "popülerliğine göre" seçilmesi, proje için uygun olan yerine.
  • Otomatik testlerin desteklenmesi ve güncellenmesine yönelik sürecin olmaması: "başlatıldı ve unutuldu".

Hayattan bir örnek

Olumsuz vaka

Şirket, ayrı bir ekip belirlemeden ve öncelikleri tartışmadan tüm manuel testleri aynı anda otomatikleştirmeye karar verdi. Popüler bir araç satın alındı, ancak gerekli tarayıcıların bir kısmını desteklemiyordu. Sonuç olarak, testlerin yarısı üç ay içinde çalışmamaya başladı.

Artılar:

  • Hızlı ilk uygulama, ekibin heyecanı.

Eksiler:

  • Yüksek maliyetler, hızla gelen hayal kırıklığı, eğitim masrafları, gerçekten ihtiyaç duyulan senaryoların düşük kapsamı.

Olumlu vaka

Ekip, elle en sık yapılan 10 regresyon senaryosunu seçti. Python (Selenium) otomasyonu üzerine eğitim verdi, testleri CI'ye ekledi. Altı ay sonra, regresyon kontrollerinin %70'i otomatik olarak başlatıldı, manuel test mühendisleri yaratıcılıkla meşguldü.

Artılar:

  • Gerçek zaman tasarrufu, ekibin uzmanlığı arttı, insani faktör azaldı.

Eksiler:

  • Arayüz değişikliklerinde otomatik testlerin güncellenmesi için masraflar, zorlu başlangıç.