
Bir yazılımda yaptığınız değişiklik, başka bir özelliği bozmuş olabilir mi?
Yeni bir özellik eklemek, mevcut bir hatayı düzeltmek veya kod üzerinde yapılan bir değişiklik; daha önce sorunsuz çalışan bir fonksiyonun beklenmedik şekilde bozulmasına neden olabilir.
Regresyon Testi, yazılımda yapılan değişikliklerin mevcut işlevleri olumsuz etkileyip etkilemediğini kontrol eden test yaklaşımıdır.
Vidius Project olarak değişiklik sonrasında yalnızca yeni geliştirilen alanı değil, bu değişiklikten etkilenebilecek mevcut fonksiyonları da bağımsız bir gözle test ediyoruz. Çünkü bir yazılımın yeni özelliği çalışırken eski bir özelliğinin bozulması, kullanıcı açısından hâlâ bir hatadır.
Regresyon Testi Nedir?
Regresyon Testi, yazılımda yapılan değişikliklerin daha önce çalışan işlevlerde yeni hatalara veya beklenmeyen davranışlara yol açıp açmadığını doğrulamak amacıyla gerçekleştirilen bir yazılım test sürecidir. Bir değişiklik yalnızca bulunduğu ekranı veya fonksiyonu etkilemeyebilir. Örneğin bir e-ticaret uygulamasında ödeme altyapısında yapılan bir değişiklik:
- Sepet hesaplamalarını,
- Kupon kullanımını,
- Sipariş oluşturmayı,
- Stok güncellemelerini,
- Kullanıcı bildirimlerini
etkileyebilir. Bu nedenle regresyon testinin amacı yalnızca “Yeni geliştirme çalışıyor mu?” sorusunu cevaplamak değildir.
Asıl soru: “Yaptığımız değişiklik, daha önce çalışan başka bir şeyi bozdu mu?”
Regresyon Testi Hangi Durumlarda Yapılır?
Regresyon Testi, yazılımın mevcut işlevlerinde değişiklik yaratabilecek pek çok durumda uygulanabilir.
Özellikle:
- Yeni özellik geliştirildiğinde: Yeni fonksiyonun mevcut sistemle uyumlu çalıştığını doğrulamak için.
- Hata düzeltmesi yapıldığında: Düzeltilen problemin başka işlevleri etkilemediğinden emin olmak için.
- Kod veya altyapı değiştirildiğinde: Teknik değişikliklerin kullanıcıya yansıyan işlevleri bozup bozmadığını kontrol etmek için.
- Üçüncü parti entegrasyon değiştiğinde: Ödeme, kargo, SMS, e-posta veya API entegrasyonlarındaki değişikliklerin mevcut akışlara etkisini görmek için.
- Büyük sürüm güncellemelerinde: Yeni sürümün mevcut fonksiyonları koruduğunu doğrulamak için.
- Yayın öncesinde: Güncellemelerin canlı ortama alınmadan önce mevcut sistem üzerindeki etkisini değerlendirmek için.
- Sık geliştirme yapılan projelerde: Düzenli değişikliklerin birikerek mevcut fonksiyonları etkilemesini kontrol altında tutmak için.
Regresyon Testinde Nelere Bakılır?
Regresyon Testinin kapsamı, yapılan değişikliğin niteliğine ve yazılımın yapısına göre belirlenir. Test sırasında özellikle değişiklikten doğrudan veya dolaylı olarak etkilenebilecek alanlara odaklanılır.
Etkilenen Fonksiyonlar
Yapılan değişiklikten doğrudan etkilenen özelliklerin beklenen şekilde çalışıp çalışmadığı kontrol edilir.
Kritik Kullanıcı Akışları
Giriş, kayıt, ödeme, sipariş, başvuru veya veri kaydetme gibi iş açısından kritik akışların çalışmaya devam edip etmediği doğrulanır.
Entegrasyonlar
Değişiklikten etkilenme ihtimali bulunan üçüncü parti servisler ve sistemler kontrol edilir.
Veri ve İş Kuralları
Hesaplamalar, kayıt işlemleri, fiyatlandırma, yetkilendirme ve diğer iş kurallarının değişiklik sonrasında doğru şekilde çalışıp çalışmadığı incelenir.
Daha Önce Çalışan Fonksiyonlar
Değişiklikle doğrudan ilişkili görünmeyen ancak teknik veya işlevsel olarak etkilenebilecek mevcut fonksiyonlar da kontrol kapsamına alınabilir. Çünkü regresyon testinin en önemli noktalarından biri şudur: Sorun her zaman değişiklik yaptığınız yerde ortaya çıkmaz.
Regresyon Testi Süreci Nasıl İlerler?
Her değişiklik aynı risk seviyesine sahip değildir. Bu nedenle regresyon testinin kapsamını projenin yapısına, yapılan değişikliğe ve olası etki alanlarına göre belirliyoruz.
1. Değişikliği ve etki alanını inceleriz
Hangi özellikte değişiklik yapıldığını, değişikliğin hangi bileşenleri etkileyebileceğini ve kritik kullanıcı akışlarını değerlendiririz.
2. Regresyon kapsamını belirleriz
Değişiklikten etkilenebilecek fonksiyonları belirleyerek test edilecek alanları önceliklendiririz.
3. Testleri uygularız
Belirlenen test senaryolarını ve gerekli görülen kontrolleri uygulayarak mevcut işlevlerin çalışmaya devam edip etmediğini doğrularız.
4. Hataları doğrularız
Tespit edilen sorunların tekrar üretilebilirliğini kontrol eder, değişiklikle olan ilişkisini değerlendirir ve gerekli teknik detayları toplarız.
5. Sonuçları raporlarız
Test sonuçlarını, tespit edilen hataları ve kritik bulguları geliştirme ekibinin doğrudan aksiyon alabileceği şekilde raporlarız.
Regresyon Testinde Otomasyon Kullanmak Gerekir mi?
Regresyon Testi hem manuel hem de otomasyon kullanılarak gerçekleştirilebilir. Özellikle sık tekrarlanan, stabil ve geniş kapsamlı testlerde otomasyon önemli zaman avantajı sağlayabilir. Ancak her regresyon testinin otomatikleştirilmesi gerektiği anlamına gelmez.
Yeni geliştirilen veya sık değişen özelliklerde, kullanıcı deneyiminin değerlendirilmesinde ve test uzmanının yorumunu gerektiren durumlarda manuel regresyon testi daha uygun olabilir. Bu nedenle hangi testlerin otomasyona uygun olduğuna, projenin ihtiyaçlarına ve test kapsamına göre karar verilmelidir.
Vidius Project olarak gerektiğinde manuel regresyon testleriyle yazılımınızı bağımsız bir gözle değerlendiriyoruz.
Regresyon Testi Sonunda Neler Teslim Edilir?
Test kapsamına göre aşağıdaki çıktıları sunabiliriz:
- Regresyon test senaryoları
- Test kapsamı ve kontrol edilen alanların özeti
- Test sonuçları
- Detaylı hata (bug) raporları
- Hataların tekrar üretim adımları
- Beklenen ve gerçekleşen sonuçlar
- Ekran görüntüleri ve gerektiğinde ekran kayıtları
- Hata önem ve kritiklik seviyeleri
- Başarılı ve başarısız testlerin özeti
- Gerekli görülen iyileştirme önerileri
Amacımız yalnızca hatayı bulmak değil, yapılan değişikliğin yazılımın geri kalanını nasıl etkilediğini görünür hale getirmektir.
Regresyon Testi ile Yeniden Test (Retest) Aynı Şey mi?
Hayır.
Bu iki kavram sıklıkla birbirine karıştırılır.
Retest, daha önce tespit edilen belirli bir hatanın düzeltildikten sonra tekrar test edilmesidir.
Regresyon Testi ise yapılan değişikliğin yalnızca düzeltilen hatayı değil, sistemin diğer mevcut işlevlerini de olumsuz etkileyip etkilemediğini kontrol eder.
Örneğin:
Bir ödeme hatası tespit edildi ve geliştirici bu hatayı düzeltti. Öncelikle ödeme hatasının gerçekten giderildiğini kontrol etmek retest kapsamındadır. Ardından yapılan değişikliğin sepet, kupon, sipariş ve diğer ödeme akışlarını bozup bozmadığını kontrol etmek ise regresyon testi kapsamına girer. İkisi farklı amaçlara hizmet eder ve çoğu durumda birlikte uygulanır.
Neden Vidius Project?
Regresyon testini yalnızca eski test senaryolarını tekrar çalıştırmak olarak görmüyoruz. Öncelikle neyin değiştiğini ve bu değişikliğin nereyi etkileyebileceğini anlamaya çalışıyoruz. Ardından test kapsamını değişikliğin riskine göre şekillendiriyoruz.
18 yılı aşkın QA deneyimimizi bağımsız bir bakış açısıyla birleştiriyoruz.
Böylece geliştirme ekibinin odaklandığı değişikliğin dışına çıkarak, kullanıcıların hâlâ kullandığı mevcut fonksiyonları da kontrol ediyoruz. Çünkü bir yazılımda:
Yeni özellik çalışıyor olabilir. Ama önemli olan, eski özelliklerin de hâlâ çalışıyor olmasıdır.
Sık Sorulan Sorular
Regresyon Testi nedir?
Regresyon Testi, yazılımda yapılan değişikliklerin daha önce çalışan mevcut işlevleri bozup bozmadığını kontrol eden bir test yaklaşımıdır.
Regresyon Testi ne zaman yapılmalıdır?
Yeni özellik geliştirme, hata düzeltme, kod değişikliği, altyapı güncellemesi, entegrasyon değişikliği veya büyük sürüm güncellemeleri gibi mevcut işlevleri etkileyebilecek değişikliklerden sonra uygulanabilir.
Regresyon Testi manuel yapılabilir mi?
Evet. Regresyon Testi manuel olarak gerçekleştirilebilir. Özellikle kullanıcı deneyimi, sık değişen özellikler ve test uzmanının değerlendirmesini gerektiren alanlarda manuel test önemli bir rol oynar.
Regresyon Testi otomatik yapılabilir mi?
Evet. Tekrarlanan, stabil ve geniş kapsamlı testler otomasyon için uygun olabilir. Ancak hangi testlerin otomatikleştirileceği projenin yapısına ve ihtiyaçlarına göre belirlenmelidir.
Regresyon Testi ile Retest arasındaki fark nedir?
Retest, düzeltilen belirli bir hatanın tekrar kontrol edilmesidir. Regresyon Testi ise yapılan değişikliğin sistemin diğer işlevlerini etkileyip etkilemediğini kontrol eder.
Regresyon Testi tüm uygulamayı kapsar mı?
Her zaman değil. Regresyon testinin kapsamı yapılan değişikliğin niteliğine, etki alanına ve yazılımın risk seviyesine göre belirlenir. Kritik ve etkilenme ihtimali yüksek alanlara öncelik verilebilir.
Test sonunda nasıl bir rapor alacağım?
Test kapsamına göre test sonuçlarını, başarılı ve başarısız senaryoları, tespit edilen hataları, tekrar üretim adımlarını, görsel kanıtları ve hata önem seviyelerini içeren bir rapor sunulur.
Değişiklik Yaptınız. Peki Başka Neyi Bozdunuz?
Yeni özelliklerinizi ve yaptığınız değişiklikleri canlıya almadan önce, mevcut sisteminiz üzerindeki etkilerini birlikte kontrol edelim.
