10 Eylül 2009 Perşembe

Yazılım Test Otomasyonu

Test otomasyonu test ile ilgili olsa da, aslında bir yazılım geliştirme işidir. Genellikle istenir fakat kendi içinde bir takım riskler taşır. Hazır da alınabilir, geliştirilmesi de gerekebilir. Yazılım geliştirmenin erken safhalarında otomasyon çalışmalarına başlamak gerekir. Başarılı test otomasyonu kararlılık, testçiler ve geliştiriciler arasında takım çalışması gerektirir.
Hem zaman kazandırır hem de insan faktörlerinden doğabilecek bir takım problemlerin önüne geçer. Örneğin bir otomasyon aracı hiç bir zaman koşturulması gereken bir test prosedürünü unuttuğu için size eksik sonuç vermez. Test sonuçlarını doğru bir şekilde kayıt altında tutar. Özellikle çok fazla regression test koşturulması gerekliyse yani aynı testler kod değiştikçe birden fazla kere koşturulacaksa otomasyon mutlaka yapılmalıdır.

Kritik iş süreçlerinde, karmaşık uygulamalarda ve bunları tehlikeye atan kullanım durumlarında otomasyon çabalarına odaklanmak anlamlıdır. Ama bir kurumun günde birçok saat çalışan birden çok yazılım testçisi varsa ve hala kalite ve işlevsel sorunlar bulunuyorsa, otomatik teste geçmek yararlı olabilir.
Otomasyon işine erken safhada başlamak gerekir. Çünki geç aşamalarda başlandığı zaman tüm test tasarımlarını, test stratejilerini, test sonuç formatını ve benzeriyi değiştirmek gerekebilir. Bu da maliyet ve aynı zamanda personelin demotivasyonu demektir. Bu etkileri en aza indirebilmek için, otomasyon mimarisini çok iyi yapmak gerekir.

Yazılım otomasyon işinde turnover yani devretme işinin yüksek olmaması gerekir çünki otomasyon işi deneyim isteyen bir iştir. Yoksa başarı şansı azalır.

Bu iş için özel personel ve zaman ayırmak gerekir.

Yazılım otomasyonu da bir yazılım geliştirme projesi olarak ele alınmalı, bu iş için de özel olarak asssign edilmiş testçiler bulunmalı, otomasyon fazının da normalde işleyen yazılım projelerinde olduğu gibi gereksinimlerinin çıkarılması, tasarımının yapılması, hata yönetimi yapılması ve testlerinin yapılması gerekmektedir.
Yazılımda Otomasyonun Avantajlarını şöyle sıralayabiliriz:
  • İnsan kaynaklı hataları minimize eder
  • Daha fazla hatayı daha erken teşhis eder
  • Testlerin yeniden kullanımını kolaylaştırır
  • Testlerle kapsanan kod yüzdesini artırır (Code Coverage)
  • Testler 7x24 çalışabilir
Ne zaman otomasyon yapmalıyız?
Aşağdıaki sorulardan en az bir tanesine "EVET" cevabı vermişseniz otomasyon yapmak projenin faydasına olacaktır fakat şunu da belirtmekte fayda var ki otomasyon manuel testlerin yerine konan bir yöntem değildir. İşleri kolaylaştırmak için yapılır, bazen en önemli hatalar Ad Hoc testler ile bulunur, yani testçi kendisini müşterinin yerine koyar ve çeşitli senaryolar dener ve genelde de önemli hatalar bu şekilde bulunur.
  • Test aktiviteleri ardışık olarak tanımlanabiliyor mu?
  • Ardışık aktiviteleri tekrarlamak gerekiyor mu?
  • Ardışık aktiviteler için otomasyon yapılabiliyor mu?
  • Testler, yarı-otomatik hale getirilebiliyor mu?
  • Testi yapılan yazılımın davranışları otomasyon olunca değişmiyor?
  • Programın kullanıcı arayüzü olmayan özellikleri mi test ediliyor?
  • Aynı testleri farklı donanım konfigürasyonlarında koşturmak gerekiyor mu?

Hiç yorum yok:

Yorum Gönder