what is system integration testing
Sistem Entegrasyon Testi nedir?
Sistem Entegrasyon Testi (SIT), birçok alt sistemden oluşan tüm sistemin genel testidir. SIT'nin temel amacı, tüm yazılım modülü bağımlılıklarının düzgün çalışmasını ve tüm sistemin farklı modülleri arasında veri bütünlüğünün korunmasını sağlamaktır.
SUT (Sistem Test Ediliyor), donanım, veritabanı, yazılım, donanım ve yazılım kombinasyonundan veya insan etkileşimi gerektiren bir sistemden (HITL - Döngüde İnsan) oluşabilir.
Yazılım mühendisliği ve yazılım testi bağlamında, SIT, yazılım sisteminin diğerleriyle bir arada olup olmadığını kontrol eden bir test süreci olarak düşünülebilir.
SIT, birden fazla temeldeki entegre sistemin sistem testinden geçtiği ve geçtiği bir ön koşula sahiptir. SIT daha sonra bu sistemler arasındaki gerekli etkileşimleri bir bütün olarak test eder. SIT'nin çıktıları UAT'ye (Kullanıcı kabul testi) aktarılır.
Ne öğreneceksin:
- Sistem Entegrasyon Testi İhtiyacı
- SIT'nin Ayrıntı Düzeyi
- Sistem Entegrasyon Testi Nasıl Yapılır?
- Sistem Testi Vs Sistem Entegrasyon Testi
- Sistem Entegrasyon Testi - Kullanıcı Kabul Testi
- SIT Örneği
- SIT Teknikleri
- Sonuç
- Önerilen Kaynaklar
Sistem Entegrasyon Testi İhtiyacı
SIT'nin ana işlevi, farklı sistem bileşenleri arasındaki bağımlılıkları test etmektir ve bu nedenle, regresyon testi SIT'nin önemli bir parçasıdır.
İşbirliğine dayalı projeler için SIT, STLC'nin (Yazılım Testi yaşam döngüsü) bir parçasıdır. Genel olarak, müşteri kendi SIT test durumlarını çalıştırmadan önce yazılım sağlayıcı tarafından bir SIT öncesi tur gerçekleştirilir.
Agile sprint modelini izleyen BT projelerinde çalışan kuruluşların çoğunda, her sürümden önce QA ekibi tarafından bir SIT turu gerçekleştirilir. SIT'de bulunan kusurlar geliştirme ekibine geri gönderilir ve düzeltmeler üzerinde çalışırlar.
Sprint'ten MVP (Minimum Uygulanabilir Ürün) sürümü yalnızca SIT'den geçtiğinde geçerlidir.
Entegre alt sistemler arasında etkileşim meydana geldiğinde ortaya çıkan hataları ortaya çıkarmak için SIT gereklidir.
Sistemde kullanılan birkaç bileşen vardır ve bunlar tek tek ünite test edilemez. Ünite ayrı ayrı test edilse bile, alt sistemler birbirleriyle etkileşime girdiğinde ortaya çıkan birçok sorun olduğu için sistemde birleştirildiğinde başarısız olma olasılığı da vardır.
Bu nedenle, sistemi kullanıcı tarafında dağıtmadan önce arızaları ortaya çıkarmak ve düzeltmek için SIT'ye çok ihtiyaç vardır. SIT, kusurları erken bir aşamada tespit eder ve böylece daha sonra düzeltmek için zaman ve maliyet tasarrufu sağlar. Ayrıca modülün kabul edilebilirliği hakkında daha erken geri bildirim almanıza yardımcı olur.
SIT'nin Ayrıntı Düzeyi
SIT, üç farklı ayrıntı düzeyinde yürütülebilir:
(i) Sistem İçi Test: Bu, birleşik bir sistem oluşturmak için modülleri bir araya getirmeyi amaçlayan düşük düzeyde bir entegrasyon testidir.
(ii) Sistemler Arası Test: Bu, bağımsız olarak test edilen sistemlerde arayüz oluşturmayı gerektiren üst düzey testtir.
(iii) İkili Test: Burada, tüm sistemdeki birbirine bağlı yalnızca iki alt sistem bir seferde test edilir. Bu, diğer alt sistemlerin halihazırda iyi çalıştığını varsayarak iki alt sistemin birlikte birleştirildiğinde iyi çalışmasını sağlamayı amaçlamaktadır.
Sistem Entegrasyon Testi Nasıl Yapılır?
SIT gerçekleştirmenin en basit yolu Veriye dayalı yöntemdir. Yazılım test araçlarının minimum kullanımını gerektirir.
daha taze teknik için java mülakat soruları ve cevapları
İlk olarak, sistem bileşenleri arasında veri alışverişi (veri içe aktarma ve dışa aktarma) gerçekleşir ve ardından her bir veri alanının bireysel katman içindeki davranışı incelenir.
Yazılım entegre edildikten sonra, aşağıda belirtildiği gibi üç ana veri akışı durumu vardır:
# 1) Entegrasyon Katmanı içindeki veri durumu
harici sabit disk için ücretsiz yedekleme yazılımı
Entegrasyon katmanı, veri içe aktarma ve dışa aktarma arasında bir arayüz görevi görür. Bu katmanda SIT gerçekleştirmek, şema (XSD), XML, WSDL, DTD ve EDI gibi belirli teknolojiler hakkında bazı temel bilgiler gerektirir.
Veri alışverişinin performansı bu katmanda aşağıdaki adımlarla incelenebilir:
- Bu katmandaki veri özelliklerini BRD / FRD / TRD'ye göre doğrulayın (İş gereksinimi belgesi / İşlevsel gereksinim Belgesi / Teknik gereksinim belgesi).
- XSD ve WSDL kullanarak web hizmeti talebini çapraz kontrol edin.
- Bazı birim testleri çalıştırın ve veri eşlemelerini ve istekleri doğrulayın.
- Ara yazılım günlüklerini inceleyin.
# 2) Veritabanı katmanındaki veri durumu
Bu katmanda SIT gerçekleştirmek, temel SQL bilgisi ve saklı prosedürler gerektirir.
Bu katmandaki veri alışverişinin performansı aşağıdaki adımlarla incelenebilir:
- Tümleştirme katmanındaki tüm verilerin veritabanı katmanına başarıyla ulaşıp ulaşmadığını ve kaydedilip kaydedilmediğini kontrol edin.
- BRD / FRD / TRD'ye göre tablo ve sütun özelliklerini doğrulayın.
- Veritabanında uygulanan kısıtlamaları ve veri doğrulama kurallarını iş özelliklerine göre doğrulayın.
- Herhangi bir işleme verisi için saklanan prosedürleri kontrol edin.
- Sunucu günlüklerini inceleyin.
# 3) Uygulama katmanındaki veri durumu
SIT, bu katmanda aşağıdaki adımlarla gerçekleştirilebilir:
- Kullanıcı arayüzünde gerekli tüm alanların görünür olup olmadığını kontrol edin.
- Bazı pozitif ve negatif test durumlarını yürütün ve veri özelliklerini doğrulayın.
Not: Veri içe aktarma ve dışa aktarmaya karşılık gelen birçok kombinasyon olabilir. Size uygun zamanı göz önünde bulundurarak en iyi kombinasyonlar için SIT'yi yürütmeniz gerekecektir.
Sistem Testi Vs Sistem Entegrasyon Testi
Sistem Testi ile SIT arasındaki farklar:
SIT (Sistem Entegrasyon Testi) | Sistem Testi |
---|---|
SIT, esas olarak tek tek modüllerin bir bütün olarak bir sisteme entegre edildiğinde birbirleriyle nasıl etkileşime girdiğini kontrol etmek için yapılır. | Sistem testi, esas olarak, belirtilen gereksinimlere göre tüm sistemin beklendiği gibi çalışıp çalışmadığını kontrol etmek için yapılır. |
Birim testinden sonra yapılır ve sisteme her yeni modül eklendiğinde yapılacaktır. | Son seviyede, yani entegrasyon testinin tamamlanmasından sonra ve UAT için sistemi teslim etmeden hemen önce gerçekleştirilir. |
Düşük seviyeli bir testtir. | Üst düzey bir testtir. |
SIT test senaryoları, sistem bileşenleri arasındaki arayüze odaklanır. | Test senaryoları, bu durumda, gerçek hayat senaryolarını simüle etmeye odaklanır. |
Sistem Entegrasyon Testi - Kullanıcı Kabul Testi
İşte SIT ve UAT arasındaki fark:
SIT (Sistem Entegrasyon Testi) | UAT (Kullanıcı Kabul Testi) |
---|---|
Bu test, modüller arasında arayüz oluşturma perspektifindedir. | Bu test, kullanıcı gereksinimleri perspektifindedir. |
SIT, geliştiriciler ve testçiler tarafından yapılır. | UAT, müşteriler ve son kullanıcılar tarafından yapılır. |
Birim testinden sonra ve sistem testinden önce yapılır. | Bu, testin son seviyesidir ve sistem testinden sonra yapılır. |
Genel olarak, SIT'de bulunan sorunlar veri akışı, kontrol akışı vb. İle ilgili olacaktır. | UAT'de bulunan sorunlar genellikle kullanıcı gereksinimlerine göre çalışmayan özellikler gibi olacaktır. |
Test seviyeleriyle ilgili aşağıdaki resim, Birim testinden UAT'ye akışı size açık hale getirecektir:
SIT Örneği
Bir şirketin müşteri ayrıntılarını depolamak için yazılım kullandığını varsayalım.
Bu yazılımın kullanıcı arayüzünde iki ekranı vardır - Ekran 1 ve Ekran 2 ve bir veritabanı vardır. Ekran 1 ve Ekran 2'de girilen detaylar veri tabanına girilir. Şirket şu an itibariyle bu yazılımdan memnun.
Ancak birkaç yıl sonra şirket, yazılımın gereksinimleri karşılamadığını ve geliştirmeye ihtiyaç duyulduğunu fark etti. Bu nedenle, bir Ekran 3 ve bir veritabanı geliştirdiler. Artık Screen 3 ve veri tabanına sahip bu sistem eski / mevcut yazılım ile entegre edilmiştir.
Artık entegrasyon sonrası tüm sistem üzerinde yapılan teste Sistem Entegrasyon testi deniyor. Burada, tüm entegre sistemin iyi çalıştığından emin olmak için yeni bir sistemin mevcut bir sistemle birlikte varlığı test edilir.
SIT Teknikleri
Temel olarak, SIT yapmak için 4 yaklaşım vardır:
- Yukarıdan Aşağıya Yaklaşım
- Aşağıdan Yukarı Yaklaşım
- Sandviç Yaklaşımı
- Big Bang Yaklaşımı
Yukarıdan aşağıya yaklaşım ve aşağıdan yukarıya yaklaşım, bir tür artan yaklaşımlardır. Tartışmaya önce Yukarıdan aşağıya yaklaşımıyla başlayalım.
# 1) Yukarıdan Aşağıya Yaklaşım:
Bunun altında, test, bir uygulamanın yalnızca en üstteki modülü, yani test sürücüsü olarak adlandırdığımız UI ile başlar.
Temel modüllerin işlevselliği, saplamalarla simüle edilir. Üst modül, alt seviye modül saplamasıyla tek tek entegre edilir ve daha sonra işlevsellik test edilir.
Her test tamamlandığında, saplama gerçek modül ile değiştirilir. Modüller, en başta ya da derinlik olarak entegre edilebilir. Test, tüm uygulama inşa edilene kadar devam eder.
Bu yaklaşımın avantajı, sürücülere ihtiyaç olmaması ve test durumlarının sistemin işlevselliği açısından belirlenebilmesidir.
Bu tür bir yaklaşımdaki ana zorluk, daha düşük seviyeli modül işlevselliğinin mevcudiyetine olan bağımlılıktır. Gerçek modüller saplamalarla değiştirilene kadar testlerde gecikme olabilir. Taslak yazmak da zordur.
# 2) Aşağıdan Yukarıya Yaklaşım:
Yukarıdan aşağıya yaklaşımın sınırlamalarını ortadan kaldırır.
Bu yöntemde ilk olarak en düşük seviyeli modüller kümeler oluşturmak için bir araya getirilir. Bu kümeler, uygulamanın bir alt işlevi olarak hizmet eder. Ardından, test senaryosu girdisini ve çıktısını yönetmek için bir sürücü oluşturulur. Bundan sonra küme test edilir.
Küme test edildikten sonra sürücü kaldırılır ve küme bir sonraki üst düzeyle birleştirilir. Bu süreç tüm uygulama yapısına ulaşılana kadar devam eder.
Bu yaklaşımda taslaklara gerek yoktur. İşlem yukarı doğru ilerledikçe ve sürücü ihtiyacı azaldıkça basitleşir. Bu yaklaşım, nesne yönelimli sistemler, gerçek zamanlı sistemler ve katı performans gereksinimleri olan sistemler için SIT yapmak için tavsiye edilir.
Bununla birlikte, bu yaklaşımın sınırlaması en önemli alt sistemdir, yani UI en sonunda test edilir.
# 3) Sandviç Yaklaşımı:
Burada yukarıda tartışılan yukarıdan aşağıya ve aşağıdan yukarıya yaklaşımlar bir araya getirilmiştir.
Sistem, hedef katman olan orta katman, hedefin üzerindeki katman ve hedefin altındaki katman olmak üzere üç katmana sahip olarak algılanır. Test, ortadaki hedef katmanda hem yönlerde hem de topluluklarda yapılır ve bu aşağıdaki resimde gösterilmiştir.
Sandviç Test Stratejisi
Bu yaklaşımın bir avantajı, sistemin üst katmanı ve alt katmanının paralel olarak test edilebilmesidir. Bununla birlikte, bu yaklaşımın sınırlaması, entegrasyondan önce bireysel alt sistemleri kapsamlı bir şekilde test etmemesidir.
Bu sınırlamayı ortadan kaldırmak için, üst, orta ve alt katmanların entegrasyonunun stub'lar ve sürücüler kullanılarak paralel olarak test edildiği sandviç testini değiştirdik.
c ++ 'da hızlı sıralama
# 4) Big Bang Yaklaşımı:
Bu yaklaşımda, uygulamanın tüm modülleri tamamen hazır olduğunda entegrasyon yapılır. Tüm modüllerin entegrasyonundan sonra entegre sistemin çalışıp çalışmadığını kontrol etmek için test yapılır.
Artımlı testlerin aksine her şey aynı anda entegre edildiğinden, bu yaklaşımda sorunun temel nedenini bulmak zordur. Bu yaklaşım genellikle yalnızca bir tur SIT gerekli olduğunda benimsenir.
Sonuç
Bu yazıda Sistem Entegrasyon Testinin (SIT) ne olduğunu ve bunu yapmanın neden önemli olduğunu öğrendik.
SIT'nin gerçekleştirilmesiyle ilgili temel kavramları, teknikleri, yaklaşımları ve yöntemleri anladık. Ayrıca SIT'nin UAT ve sistem testinden ne kadar farklı olduğunu da inceledik.
Umarım bu mükemmel makaleyi beğenmişsinizdir !!
Önerilen Kaynaklar
- Bileşen Testi veya Modül Testi Nedir (Örneklerle Öğrenin)
- Karşılaştırma Testi Nedir (Örneklerle Öğrenin)
- Entegrasyon Testi Nedir (Entegrasyon Testi Örneği ile Eğitim)
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Birim Testi, Entegrasyon Testi ve İşlevsel Test Arasındaki Farklar
- Fonksiyonel Test ve Fonksiyonel Olmayan Test
- Selenium'un JMeter ile entegrasyonu
- Selenyum ile Entegrasyon ve Fonksiyonel Test İçin Spock