Yazılım testinde artımlı test, ekiplerin tek tek modülleri parçalara ayırmasına, bunları ayrı ayrı test etmesine ve aşamalı olarak entegre etmesine olanak tanıyan bir metodolojidir. Hataları erken bulmaya yardımcı olur, karmaşıklığı azaltır ve test kapsamını artırır.
Bu makale artımsal testi derinlemesine inceleyecek, ne olduğunu açıklayacak ve bu faydalı metodolojiyle ilişkili farklı türleri, süreçleri, yaklaşımları, araçları ve daha fazlasını keşfedecektir.
Artımlı test nedir?
Test, yazılım geliştirme yaşam döngüsünün (SDLC) en önemli aşamalarından biridir. Tıpkı SDLC’de olduğu gibi, testler de farklı mantıksal adımlara ayrılır. Artımlı test bu aşamalardan biridir ve tipik olarak aşağıdakiler sırasında gerçekleşir
entegrasyon testleri
ve hemen ardından
birim testi
.
Artımlı test büyük veya karmaşık programları yönetilebilir, ısırık büyüklüğünde parçalara ayıran pragmatik bir yazılım testi yaklaşımıdır. Tüm bir yazılım sistemini bir kerede entegre etmek ve test etmek yerine, artımlı test modüllere bakar ve aşamalı bir doğrulama süreci uygular.
Yazılım modülleri genellikle belirli görevleri veya işlevleri yerine getiren bağımsız kod birimleridir. Bu modüllerin ne kadar ayrıntılı olacağı kodlama uygulamaları, geliştirme metodolojileri ve hatta kullandığınız programlama dili gibi çeşitli faktörlere bağlıdır.
Modüller birim testleri sırasında bağımsız olarak test edilir. Ardından, entegrasyon testi sırasında her modül parça parça veya aşamalı olarak entegre edilir. Bu süreç, her modülün birlikte iyi çalışmasını sağlar. Ancak, her bir modülü tam olarak doğrulamak için, test uzmanlarının henüz uygulanmamış bileşenleri veya harici sistemleri simüle etmesi gerekir. Bunu yapmak için taslakların ve sürücülerin yardımına ihtiyaçları vardır.
Artımlı testlerde saplamalar ve sürücüler nedir?
Stub’lar ve sürücüler kritik yazılım test araçlarıdır. Bu geçici kod parçaları entegrasyon testi sırasında kullanılır çünkü ekiplere çeşitli modüllerin veya bileşenlerin davranışlarını ve arayüzlerini taklit etme olanağı sunar.
1. Taslaklar:
Stub’lar henüz geliştirilmemiş modülleri taklit eder ve bu nedenle test için kullanılamaz. Test edilen modülün (MUT) tamamlanmamış modülleri çağırmasına izin verirler. Buradan çıkan sonuç, ilgili modüller mevcut olmasa bile MUT’un tek başına test edilebilmesidir.
2. Sürücüler:
Öte yandan sürücüler, MUT’u çağıran modüllerin davranışını simüle eder. Test ortamında, bu sürücüler MUT test verilerini gönderebilir. Yine bu, harici bağımlılıklara ihtiyaç duymadan modüllerin izole bir şekilde test edilmesini kolaylaştırır.
Taslakların veya sürücülerin kullanılması geliştirme süresini kısaltır, kod kalitesini iyileştirir ve ekip verimliliğini artırır. Ancak hangisinin kullanılacağına karar vermek, hangi test metodolojisinin en uygun olduğuna bağlıdır. Bu konuyu aşağıda farklı artımlı entegrasyon testi türlerini ele alan bir bölümde genişleteceğiz.
Farklı artımlı tipler
entegrasyon testleri
Artımlı test türleri genel olarak üç kategoriye ayrılabilir. Her birini inceleyelim.
1. Yukarıdan aşağıya artan entegrasyon
Yukarıdan aşağıya artımlı entegrasyon, bir sistemdeki en üst düzey modülleri test ederek başlar. Buradan, daha düşük seviyeli modülleri kademeli olarak entegre eder ve test eder.Yukarıdan aşağıya artan entegrasyonun kullanıldığı iki ana senaryo vardır. Onlar:
- Bir sistem çok büyük veya son derece karmaşık olduğunda
- Geliştirme ekibi aynı anda birçok modül üzerinde çalıştığında.
Yukarıdan aşağıya artan entegrasyonlar için adımlar
- Kritik modülleri belirleyin
- Düşük dereceli modülleri taklit etmek için saplamalar oluşturun
- Veri göndermek ve modülün çıktılarını yorumlamak üzere üst düzey modüllerle etkileşim kuracak sürücüler geliştirin
- Kritik modülleri sürücüler ve taslaklarla birim testi
- Düşük mertebeli modülleri entegre edin ve taslakları kademeli olarak gerçek uygulamalarla değiştirin
- Sürücüleri yeni modüllere uyum sağlayacak şekilde yeniden düzenleyin
- Tüm alt düzey modüller entegre edilip test edilene kadar tekrarlayın.
2. Aşağıdan yukarıya artan entegrasyon
Aşağıdan yukarıya artan entegrasyonlar ters yönde ilerler. Bu yaklaşımla, sistemin daha düşük dereceli (veya en az kritik) modülleri test edilir ve daha yüksek dereceli modüller kademeli olarak eklenir. Bu yaklaşım aşağıdaki gibi farklı senaryolar için uygundur:
- Daha küçük sistemlerle uğraştığınızda
- Bir sistem modüler hale getirildiğinde
- Taslakların doğruluğu veya eksiksizliği konusunda bazı endişeleriniz olduğunda.
Aşağıdan yukarıya artan entegrasyonlar için adımlar
- Alt düzey modülleri tanımlama
- Bireysel işlevselliklerini doğrulamak için alt düzey modülleri birim testi
- Alt düzey modüllerle aracı olarak hareket edecek sürücüler geliştirin
- Üst düzey modüllerin davranışını simüle etmek için taslaklar oluşturun
- Sonraki modülleri düşük mertebeden yüksek mertebeye doğru entegre edin ve taslakları kademeli olarak gerçek uygulamalarla değiştirin
- Sürücüleri yeni modüllere uyum sağlayacak şekilde yeniden düzenleyin
- Tüm üst düzey modüller entegre edilip test edilene kadar tekrarlayın.
3. Fonksiyonel artımlı entegrasyon
Fonksiyon artımlı entegrasyon testi, yazılım testinde bir sonraki yaygın artımlı test türüdür. Önceki iki tür daha yüksek ve daha düşük dereceli modüllere odaklanırken, işlevsel artımlı test belirli bir modülün işlevselliğine dayanır.
Fonksiyonel artımlı entegrasyon şu alanlarda kullanılır
Çevik/DevOps metodolojileri
ve modüller veya bileşenler arasında karmaşık bağımlılıkları olan uygulamalar için mükemmel bir seçimdir.
İşlevsel artımlı entegrasyon için adımlar
- İyi tanımlanmış arayüzlere sahip bireysel modülleri ve bileşenleri tanımlama
- Birim testi aracılığıyla her modülün işlevselliğini doğrulayın
- Sistemin en minimal çekirdek modüllerini entegre edin ve çalışmasını sağlayın
- Her adımda işlevselliği test ederek kademeli olarak tek modüller ekleyin
- Her modül eklendikçe kodu yeniden düzenleyin
- Tüm modüller eklendiğinde, işlevselliği ve performansı test edin
Artımlı test yaklaşımının artıları ve eksileri
Şimdiye kadar, artımlı testin neden popüler bir yaklaşım olduğu hakkında bir fikriniz olmalı. Bununla birlikte, tüm yazılım test metodolojileri gibi, avantajları ve dezavantajları vardır. Şimdi bu artı ve eksilerden bazılarını inceleyelim.
Artımlı test yaklaşımının artıları
1. Esneklik
Tüm yazılım geliştiricilerin ve test uzmanlarının çok iyi bildiği gibi, gereksinimler SDLC sırasında bazen oldukça dramatik bir şekilde değişebilir ve gelişebilir. Artımlı test, ekiplerin test süreci boyunca uyum sağlamasına ve yeni plan ve yönergeleri dahil etmesine olanak tanıyacak kadar dinamiktir.
2. Erken hata tespiti
Bir hatayı veya kusuru tespit etmek için en iyi zaman mümkün olduğunca erken zamandır. Geliştiriciler küçük boyutlu modülleri tek tek doğruladığında, sorunları tespit etmek ve düzeltmek çok daha kolay olur. Dahası, geliştirmenin ilerleyen aşamalarında büyük sorunların ortaya çıkma olasılığını azaltmaya yardımcı olur.
3. Basitlik
Yazılım testi oldukça karmaşık bir süreç olabilir. Artımsal testin en ilgi çekici yönlerinden biri, test şehrini uygulanabilir parçalara ayırmasıdır. Test uzmanları bunaltıcı karmaşıklıkla uğraşmak yerine belirli modüllere odaklanabilir ve hatta bunlara öncelik verebilir. Bu avantaj, büyük ve karmaşık uygulamalar için bulunmaz bir nimettir.
4. Daha düşük regresyon riski
Regresyon, yazılım geliştirmede zaman alıcı ve karmaşık bir konudur. Artımlı test, ekiplerin modülleri ayrı ayrı test etmesine ve sorunları ortaya çıktıkça ele almasına olanak tanıdığı için regresyonun neden olduğu sıklığı ve riskleri azaltabilir. Katı madde ile kullanıldığında
regresyon testi
ekipler çok fazla zaman ve gönül yarası kurtarabilir.
5. Geri bildirim fırsatları
Artımlı testin sıklıkla göz ardı edilen bir faydası da ekiplere prototip ve MVP’leri bir araya getirme serbestliği sağlamasıdır. Buradan paydaşlar ve yatırımcılar sürecin temel işlevselliğini değerlendirebilir ve çok değerli geri bildirimler sağlayabilir. Bu durum çok fazla zaman ve para tasarrufu sağlayabilir ve daha sağlam ürünlerin ortaya çıkmasını sağlayabilir.
Artımlı test yaklaşımının eksileri
1. Entegrasyon sorunları
Modüllerin ayrı ayrı test edilmesi, karmaşık bir uygulamayı yönetilebilir parçalara ayırdığı için arzu edilir. Ancak bu modüllerin entegre edilmesi yeni ve beklenmedik hatalara yol açabilir. Bu nedenle, artımlı test yaklaşımı dikkatli ve bilinçli bir şekilde planlanmalıdır.
2. Test paketi karmaşıklığı
Her modül için birden fazla test senaryosu ve bunların birbirleriyle olan etkileşimleri nedeniyle test paketlerinin izlenmesi ve yönetilmesi karmaşık hale gelebilir. Büyük ve karmaşık uygulamalar için bu, kapsamlı dokümantasyon veya test yönetimi araçlarını bir gereklilik haline getirir.
3. Daha fazla çalışma
Monolitik test, daha karmaşık olsa da daha az test gerektirir. Çok sayıda modülü ayrı ayrı test ederek, artımlı test daha fazla çalışma gerektirir. Bununla birlikte, hataların erken keşfedilmesi gibi artımlı testin faydaları, ekstra çabanın zaman kazandıran bir yatırım olduğu anlamına gelir. Tabii ki,
yazılım test otomasyonu
bu çabaları azaltmaya yardımcı olabilir.
4. Artan yönetim talepleri
Artımlı test, birden fazla ekibin birlikte çalışmasını gerektirir. Örneğin, geliştirme, test ve DevOps ekiplerinin uyum içinde çalışması gerekecektir. Bu durum ek yönetim talebi yaratır ve aynı hedeflere odaklanmalarını sağlamak için bu ekipler arasında iyi bir iletişim gerektirir.
Artımlı test örneği
Artımsal test yaklaşımını anlamanın belki de en kolay yolu bir örnek üzerinde düşünmektir. İşte süreci görselleştirmeye yardımcı olacak basit bir durum.
1. Bir mobil bankacılık uygulaması için artımlı test örneği
Senaryo: Bir ekip bir mobil bankacılık uygulaması geliştiriyor. Uygulama, aşağıdakileri sağlayan birkaç farklı modülden oluşur:
- 2FA ve biyometrik kullanıcı doğrulaması
- İşlem işleme
- Finansal veri yönetimi gösterge tablosu
Amaç: Ekip, her bir modülün entegrasyonunu test etmek ve birlikte iyi çalışıp çalışmadıklarını belirlemek istiyor. Sonuç olarak, üç test senaryosu oluştururlar.
Test senaryosu 1
İlk test durumunda ekip, biyometrik veya parola verilerini girerek kullanıcının hem işlem sürecine hem de finansal veri yönetimi panosuna erişim kazanmasını sağlamak istiyor.
Kullanıcı bilgilerini girebiliyor ve işlemlere erişebiliyorsa uygulama testi geçecektir.
Test senaryosu 2
Bir sonraki test durumu, uygulamanın yetkisiz işlemleri nasıl ele aldığını görmek için tasarlanmıştır.
Yetkisiz bir işlem yapma girişimi engellenirse ve uygulama bir hata mesajı üretirse uygulama testi geçer.
Test senaryosu 3
Son entegrasyon testi, uygulamanın eşzamanlı olarak işlem yapıp yapamayacağını doğrulamayı içerir.
Kullanıcı aynı anda herhangi bir veri tutarsızlığı veya sorunu olmadan bir işlem başlatabilir ve finansal bilgilerine erişebilirse uygulama testi geçecektir.
Artımsal test yaklaşımı
artımlı test ile aynı mı?
Hayır. Artımsallık testi, belki de en iyi ilişkilendirme modellemesi olarak bilinen istatistiksel bir pazarlama yöntemini ifade eder. Kısacası, pazarlama ekiplerinin reklam kampanyalarının, pazarlama kanallarının veya belirli stratejilerin etkisini anlamalarına yardımcı olur.
Çerezlerin ve üçüncü taraf verilerinin “ölümü” sayesinde bu tür modellemeye olan ilgi son yıllarda artmış olsa da, artımlı test ile tek ilişkisi ortak bir kelimedir.
Artımlı test için en iyi 3 araç
#1. ZAPTEST
Birinci sınıf hizmet sunmanın yanı sıra
RPA
yeteneklerine sahip olan ZAPTEST, artımlı testler için mükemmel olan bir dizi yazılım test otomasyon aracı sunar. Bazı özellikler şunlardır:
Test verisi yönetimi
: Ekiplerin test verilerini yeniden kullanmasına olanak tanıyarak artımlı testlerle ilgili zaman ve çaba miktarını azaltın- Senaryo kaydı ve oynatma: Bu kodsuz araç, ekiplerin komut dosyalarını kaydedip yürütmesine ve artımlı testler sırasında çok zaman kazanmasına olanak tanır
- Yeniden kullanılabilir test modülleri: ZAPTEST son derece modülerdir ve ekiplerin test modülleri oluşturmasına ve yeniden kullanmasına ve test sürecinden önemli miktarda zaman kazanmasına olanak tanır.
Sonuç olarak ZAPTEST, artımlı testler de dahil olmak üzere her türlü test için uygun olan güçlü ve çeşitli bir test otomasyon paketi sunar.
#2. Selenyum
Selenium, mobil uygulama testlerini kolaylaştırmak için oluşturulmuş açık kaynaklı bir test otomasyon platformudur. Araçlar çeşitli mobil platformları (Android, iOS, Windows) destekler ve modülleri simüle etmek için taslaklar ve sürücüler kullanır.
#3. Testsigma
Testsigma, bulut tabanlı bir test otomasyon platformudur. Web ve mobil uygulamaları test etmek için kullanılabilir ve kodsuz test oluşturma ve CI / CD boru hatları ile entegrasyon sayesinde artımlı testler için uygundur.
Son düşünceler
Yazılım testinde artımlı test, entegrasyon testinin önemli bir parçasıdır. Ekiplerin modülleri yavaşça entegre etmeden önce kolayca test edilebilir parçalara ayırmasına olanak tanır. Buradaki avantajlar, her modülün hatalar için doğrulanabilmesi ve daha sonra bağlı parçalarıyla nasıl entegre edildiğinin doğrulanabilmesidir.
Sınıfının en iyisi ürünlerimizin yanı sıra
RPA
araçları ile ZAPTEST, hem platformlar arası hem de uygulamalar arası kodsuz yazılım test otomasyonu sunar. Ayrıca, test paketimiz CI/CD entegrasyonu, güçlü raporlama ve analizler ve birinci sınıf destek ve müşteri hizmetleri gibi özelliklerle birlikte gelir.