Regresyon Testi ve Testin Önemi

Merve Ozdemir Çorapçı
3 min readDec 11, 2020

--

Yazılıma yapılan ekleme veya düzeltmeler uygulamalarda yeni hatalara sebep olabilmektedir. Bu nedenle uygulamalarda geliştirmeler tamamlandıktan sonra regresyon testinin yapılması gerekmektedir.

Bu yazımda regresyonun amacı, avantajları, dezavantajları ve yapılan test sonuçlarının raporlanması konularından bahsedeceğim.

Regresyon testinin amacı, yeni değişiklikler nedeniyle uygulamada oluşan hataları bulmaktır. Regresyon testi sayesinde uygulamalarda yapılan her değişiklik sonrası bir önceki versiyonda düzeltilen hataların tekrarlanıp tekrarlanmadığı, uygulamalardaki tüm ekranların hatasız açıldığı ya da butonların işlevselliğini kaybedip kaybetmediği kontrol edilir.

Regresyon testleri günümüzde genellikle otomasyon araçları ile yapılmaktadır. Çünkü hataların düzeltilmesi için aynı test tekrar tekrar yapılır. Testlerin manuel olarak yapılması bir süre sonra sıkıcı ve zaman alıcı hale gelmektedir.

Uygulamada sürekli değişiklikler veya iyileştirmeler yapıldığında regresyon testi çok önem kazanmaktadır. Bu değişiklikler veya geliştirmeler mevcut test edilmiş kodda yeni sorunlar ortaya koymamalıdır. Regresyon testi sayesinde uygulamanın yeni değişiklikleri ile birlikte ürünün kalitesinin korunmasına yardımcı olmaktadır.

Regresyon testinin yapılması gereken durumlar aşağıda maddeler halinde sıralanmıştır.

  • Uygulamaya herhangi bir yeni özellik eklendiğinde,
  • Uygulama üzerinde bir iyileştirme yapıldığında,
  • Uygulamadaki herhangi bir hata düzeltildiğinde,
  • Uygulamada performansa ilişkin herhangi bir sorun düzeltildiğinde.

Regresyon Test Teknikleri Türleri

4 çeşit regresyon test tekniği mevcuttur:

1. Düzeltici Regresyon Testi (Corrective Regression Testing): Spesifikasyonlar modifikasyon yapılmadığında ve test kutuları yeniden kullanılabilir olduğunda geçerli olan testtir.

2. Progresif Regresyon Testi (Progressive Regression Testing): Spesifikasyonlarda değişiklikler yapıldığında ve yeni test vakalarının tasarlanması gerektiği zamanlarda uygulanan test yöntemidir.

3. Yeniden Test Edilen Tüm Strateji (The Retest-All Strategy): Tüm testlerin yeniden uygulandığı test yönetimidir. Bu strateji gereksiz test durumlarının uygulanmasına neden olan tüm testleri tekrar kullanılması nedeniyle zaman ve kaynak harcamasına sebep olmaktadır. Uygulamada en ufak bir değişiklik yapıldığında bu stratejinin uygulanması sağlıklı olmamaktadır.

4. Seçici Strateji (Retest-All Strategy): Tekrar test çabasını ve maliyetini azaltmak için mevcut test durumlarının bir alt kümesi kullanılmaktadır. Uygulamada herhangi bir değişiklik yapıldığında (ör. fonksiyonlar, değişkenler vb.) bir test ünitesi yeniden çalıştırılmalıdır.

Regresyon testinin avantaj ve dezavantajlarını aşağıda maddeler halinde detaylandıracağım.

Regresyon Testinin Avantajları:

  • Uygulamadaki herhangi bir geliştirme veya değişikliğin var olan test edilmiş kodu etkileyip etkilemediğinden emin olmamıza yardımcı olur.
  • Uygulamalarda daha öncesinde bulunan hatalarla tekrar karşılaşılmamasını sağlar.
  • Regresyon testi otomasyon araçları ile de yapılabilir olduğundan Zaman + kaynak harcamalarının da önüne geçilir.
  • Ürünün kalitesini artırmaya yardımcı olur.

Regresyon testinin dezavantajları:

  • Regresyon testi otomatik araçlar kullanılmadan yapılırsa, aynı testler tekrar tekrar yapılacağından zamanla sıkıcı hale gelebilir ve zaman kaybına neden olabilir.
  • Regresyon testi, kodda yapılan en ufak bir değişiklik sonrasında bile gereklidir; çünkü bu küçük değişiklik mevcut işlevsellikte beklenmedik sorunları beraberinde getirebilir.

Yapılan Testlerin Sonuçlarının Raporlanması

Uygulamalarda yapılan testlerin sonuçları yazılım test raporları ile raporlanarak ilgili kişilere iletilmektedir. Testler sırasında tespit edilen hatalar Jira, ALM gibi hata takip araçlarına girilir. Açılan hata kayıtlarının ilgili kişiye atanıp doğrulanmasına kadar bu araçlar üzerinden takibi gerçekleştirilir.

Hata takip aracında kayıt altına alınan bir yazılım hatası, yazılım uzmanı tarafından incelenerek, yazılımda gerekli düzeltmeler yapıldıktan sonra girilen hatanın düzeltildiği aynı araç yoluyla test uzmanına bildirim sağlanır. Hatanın düzeltildiği bilgisini alan test uzmanı hatanın gerçekten düzeltildiğini, yazılımın yeni sürümü üzerinde ilgili testi tekrar gerçekleştirerek hatanın giderilip giderilmediğinin kontrolünü gerçekleştirir. Yapılan test sonucuna göre eğer sorun çözümlendiyse test uzmanı tarafından hata kaydı kapatılır ya da ilgili yazılım uzmanına geri yönlendirilerek bilgilendirme işlemi yapılır.

Hata Sonuçlarının Raporlanması

Özetle Test uzmanı ile yazılım uzmanı arasındaki hata takibi, JİRA, ALM gibi hata takip araçları kullanılarak yapılmaktadır. Böylelikle hataların sağlıklı bir şekilde kayıt altına alınması, hata kayıtları üzerinde yapılan işlemlerin loglanması, geçmişe dönük hata kayıtlarının kontrolünün gerçekleştirilmesi sağlanmaktadır.

Test sonuç raporunda; hatanın adı, beklenen ile gerçekleşen sonuçlar, yazılım yükü, önceliği, hatanın nasıl ortaya çıktığı ve tarihi gibi bilgiler yer almaktadır.

Hata seviyelerini (severity) ise aşağıdaki kavramlar ile ifade etmekteyiz.

  • Critical: Testlerin yapılmasını bloklayan, müşteriye teslim edilemeyecek yazılım hataları.
  • Major: Testlerin yapılmasını bloklamayan fakat müşteriye teslim edilemeyecek yazılım hataları.
  • Moderate: Müşteriye teslim edilmesinde sakınca olmayan fakat riskli olabilecek yazılım hataları.
  • Minor: Zararı olmayan ve önceliği düşük yazılım hataları.
  • Cosmetic: Bir sonraki evrelerde yapılabilecek iyileştirmeler ile ilgili olan yazılım hataları ve eksikliklerinin tanımlandığı seviyedir.

--

--