Regresyon Testleri Neden Önemli?

Munevver Turan
Akbank Teknoloji
Published in
3 min readMay 10, 2024

Yazılım geliştirmeleri sonrasında veya kod üzerinde herhangi bir değişiklik yapıldığında, eklenen özelliklerin veya düzeltilen hataların, mevcut sistem üzerinde istenmeyen etkilere neden olup olmadığını kontrol etmemizi sağlayan testlerdir.

Aynı zamanda var olan fonksiyonların hala düzgün çalıştığını doğrulamak için kullanılan bir test sürecidir. Bu sayede değişikliklerin daha az zaman harcanarak, kolaylıkla test edebilmemizi ve olabildiğince sıfır hataya yakın bir şekilde üretim ortamına kaliteli yazılım geçişi sağlayacaktır.

Regresyon testlerinin faydalarını gözden geçirecek olursak;

Yazılımın değişiklik sonrasında son kalitesinin kontrol edilmesini, daha önce çıkan hataların düzeldiğinin kontrolünü ve üretim ortamındaki hataları azaltır ve bu da geliştirme sürecindeki maliyeti düşürür. Ayrıca, hataların üretim ortamına geçmeden önce tespit edilmesi, hataların düzeltilmesi için daha az zaman harcanmasını sağlar. Bu sayede az zamanda, kaliteli işler çıkarmak, sistemi otomatize ederek fayda sağlar. Hatayı minimum seviyeye indirirken, bu hatayı ayrıştırarak fark edilebilirliğini kolaylaştırır.

Regresyon testlerinin otomatize edilmesi önerilmektedir. Regresyon testlerinin otomatize yapılıyor olması daha sık üretim ortama geçiş yapılmasına da uygunluk sağlayacaktır.

Regresyon testlerinin otomatize edilmesi neden önemlidir? Neden manuel testlerden kaçınmalıyız?

· Otomasyon, manuel testlere göre daha hızlıdır.

· Tekrarlanabilirdir.

· Değişiklikler kolaylıkla test edilebilir.

· Zaman kaybının önüne geçmektedir.

· Test süresini kısaltır.

· Tutarlılık sağlamaktadır.

Peki, Regresyon testlerinin otomatize edilme süreçlerinde neler yapılmalıdır?

Öncelikle regresyon test süreçlerini belli bir süre ile sınırlı tutmamalıyız. Başarılı bir regresyon süreci için, testleri otomatize ederek, farklı test ortamlarında (Geliştirme, entegrasyon, kullanıcı kabul varsa preprod ortamları) günlük olarak planlı bir şekilde işletebiliriz. Bu sayede farklı test ortamlarında yapılan değişikliklerin bulgu takibi kolaylaşacaktır. Bu şekilde bir regresyon sürecini kontrollü şekilde organize etmiş oluruz. Amacımız regresyon süresini kısaltmak ve regresyon süresinde hata payını azaltmak olacaktır.

Literatürde test piramidi aşağıdaki gibidir.

Regresyonu otomatize ederek, manuel testleri olabildiğince yazmamak kaliteli bir otomasyonun göstergesi olacaktır. Regresyon testlerinde birim testi ve servis testlerinin yapılıyor olması regresyon sürecinde karşılaşılacak bulgu sayısını azaltacaktır.

Birim testlerinin yapılması kodun küçük parçalarını ayrı ayrı test edilebilmesine olanak sağlar. Bu sayede düzgün ve temiz kod yazılmasını ve kodun üretim ortamına minimum riskle taşınmasında etkili olacaktır.

Servis testlerinin regresyon sürecine dahil edilmesi çok önemlidir. İş (Business) akış kontrollerinin yapılması, iş kurallarının test edilebilmesi, hızlı olması ve stabil olması özellikleriyle regresyona katkısı oldukça büyüktür. Hatanın yakalanma olasılığını arttırır.

Servis testi (API) nedir?

API (Application Programming Interface)’ler, bir uygulamanın farklı sistemleri veya katmanları arasındaki bağlantıdır. API kullanımı ile farklı sistemler ve uygulamalar arasında veri alışverişi oldukça kolay hale gelmektedir.

Peki, servis test yazımı beraberinde ne tür kolaylıklar getirecektir;

Önyüz testleri için bakım maliyetini azaltır. Yani hatayı daha küçük parçada ayrıştırarak hatanın kısa sürede fark edilebilirliğini sağlayacaktır. Daha hızlı sonuçlar üretip, hatayı ayıklamak daha kolay olacaktır. Önyüz test koşmadan önce servis test koşumu önyüz test kalitesini arttıracaktır. Aynı zamanda servis test senaryoları, önyüz test senaryolarının aksine dakikalar içerisinde bitebilir ve bu sayede kısa sürede birçok hata tespit edilebilir.

Servis testlerinin, önyüz testlerinin sürecine etkisi:

  • Önyüz testlerinin regresyon sürecine entegre edilmesiyle, ekran akışlarının kolaylıkla test edebilmemizi sağlayacaktır. Ekranda eklenen yeni alanların kolaylıkla fark edilebilmesinde etkili olacaktır. Sayfa akışlarının kontrolünü daha da kolaylaştıracaktır.

Servis testlerinin yazımında dikkat edilmesi gereken hususlar nedir?

  • Servisin koşacağı ortam bilgisi olmalıdır.
  • Servise hangi sunucu üzerinden erişmemiz gerektiğini gösteren endpoint adres bilgisi olmalıdır.
  • Servisin Request (Input) bilgisi olmalıdır.
  • Servisin başarı kriteri, response bilgisi belirlenmelidir.

Peki regresyon sürecinde yapılan hatalı pratikler nelerdir? Ne yapılmamalıdır?

  • Regresyon bir defa tamamlanıp bitirilmesi gereken bir şey olarak görülmemelidir.
  • Regresyona hata bulmama bakış açısıyla değil hataları ayıklama bakış açısıyla yaklaşılmalıdır.
  • Test bakımı ihmal edilmemelidir.
  • Hard-coded data kullanılmamalıdır.

Regresyon testleri ile güncellenen veya geliştirilen uygulamalarda zaman, maliyet, performans ve kalite açısından önemli kazanımlar sağlanmış olur. Bu sayede ortaya çıkan ürün, kullanıcıların olumlu bir kullanıcı deneyimi yaşamalarına olanak sağlar.

Bir sonraki yazıda görüşmek üzere.

--

--