differences between unit testing
Birim, Entegrasyon ve İşlevsel Testin Ayrıntılı Karşılaştırması:
Herhangi bir yazılım uygulaması için, hem Birim testi hem de Entegrasyon testi çok önemlidir, çünkü her biri bir yazılım uygulamasını test etmek için benzersiz bir süreç kullanır.
Ancak herhangi biri veya hatta ikisi hiçbir noktada Fonksiyonel testin yerini alamaz.
Ne öğreneceksin:
- Birim Testi - Entegrasyon Testi - İşlevsel Testi -
- Birim Testi nedir?
- Entegrasyon Testi nedir?
- Birim Testi ve Entegrasyon Testi
- Fonksiyonel test
- Tam Fark
- Sonuç
- Önerilen Kaynaklar
Birim Testi - Entegrasyon Testi - İşlevsel Testi -
Birim testi kodun işleri doğru yaptığını doğrulamak için bir uygulamanın tek tek modüllerini tek başına (bağımlılıklarla herhangi bir etkileşim olmadan) test etmek anlamına gelir.
ağaç veri yapısı c ++
Entegrasyon testi farklı modüllerin bir grup olarak birleştirildiğinde iyi çalışıp çalışmadığını kontrol etmek anlamına gelir.
Fonksiyonel test kodun doğru şeyleri yaptığını onaylamak için sistemdeki bir işlevsellik diliminin test edilmesi (bağımlılıklar ile etkileşime girebilir) anlamına gelir.
İşlevsel testler entegrasyon testleri ile ilgilidir, ancak, neredeyse bir süper entegrasyon testi olan tüm kodun birlikte çalıştığı tüm uygulamanın işlevselliğini kontrol eden testleri ifade ederler.
Birim testi, sistemin tek bir bileşenini kontrol etmeyi dikkate alırken, işlevsellik testi, bir uygulamanın çalışmasını, sistem gereksinimi özelliklerinde açıklanan amaçlanan işlevselliğe göre kontrol etmeyi dikkate alır. Öte yandan, entegrasyon testi, sistemdeki entegre modülleri kontrol etmeyi düşünür.
Ve en önemlisi, yatırım getirisini (ROI) optimize etmek için, kod tabanınızda olabildiğince çok birim testi, daha az entegrasyon testi ve en az sayıda işlevsel test olmalıdır.
Bu, aşağıdaki test piramidinde en iyi şekilde gösterilmiştir:
Birim testlerinin yazılması daha kolay ve yürütülmesi daha hızlıdır. Testleri uygulamak ve sürdürmek için gereken zaman ve çaba, yukarıdaki piramitte gösterildiği gibi birim testinden fonksiyonel teste kadar artar.
Misal:
Bu üç tür testi aşırı basitleştirilmiş bir örnekle anlayalım.
Örneğin . İşlevsel bir cep telefonu için gerekli ana parçalar 'pil' ve 'sim karttır'.
Birim testi Örneği - Pil ömrü, kapasitesi ve diğer parametreler açısından kontrol edilir. Sim kartın aktivasyonu kontrol edilir.
Entegrasyon Testi Örneği - Pil ve sim kart entegre edilmiştir, yani cep telefonunu çalıştırmak için monte edilmiştir.
Fonksiyonel Test Örneği - Bir cep telefonunun işlevselliği, özellikleri ve pil kullanımı ile sim kart özellikleri açısından kontrol edilir.
Meslekten olmayanların terimleriyle bir örnek gördük.
Şimdi, bir giriş sayfasının teknik bir örneğini ele alalım:
Hemen hemen her web uygulaması, kullanıcılarının / müşterilerinin oturum açmasını gerektirir. Bunun için, her uygulamanın şu öğelere sahip bir 'Oturum Aç' sayfasına sahip olması gerekir:
- Hesap kullanıcı adı
- Parola
- Giriş / Giriş Düğmesi
Birim Testi için, aşağıdaki test durumları olabilir:
- Alan uzunluğu - kullanıcı adı ve şifre alanları.
- Giriş alanı değerleri geçerli olmalıdır.
- Oturum açma düğmesi, yalnızca her iki alana da geçerli değerler (Biçim ve uzunlamasına) girildikten sonra etkinleştirilir.
Entegrasyon Testi için aşağıdakiler test durumları olabilir:
- Kullanıcı, geçerli değerleri girip oturum açma düğmesine bastıktan sonra karşılama mesajını görür.
- Kullanıcı, geçerli girişten ve Oturum Aç düğmesine tıkladıktan sonra hoş geldiniz sayfasına veya ana sayfaya yönlendirilmelidir.
Şimdi, birim ve entegrasyon testleri tamamlandıktan sonra, ek olarak görelim. fonksiyonel test için düşünülen test senaryoları:
- Beklenen davranış kontrol edilir, yani kullanıcı, geçerli bir kullanıcı adı ve şifre değerleri girdikten sonra oturum açma düğmesine tıklayarak oturum açabilir mi?
- Başarılı bir oturum açtıktan sonra görünecek bir karşılama mesajı var mı?
- Geçersiz bir girişte görünmesi gereken bir hata mesajı var mı?
- Giriş alanları için saklanmış site çerezleri var mı?
- Devre dışı bırakılmış bir kullanıcı oturum açabilir mi?
- Şifrelerini unutan kullanıcılar için 'şifremi unuttum' bağlantısı var mı?
Fonksiyonel testler yapılırken fonksiyonel test cihazının aklına gelen çok daha fazla durum vardır. Ancak bir geliştirici, Birim ve Entegrasyon test durumları oluştururken tüm durumları ele alamaz.
Bu nedenle, ünite ve entegrasyon testlerinden sonra bile henüz test edilmemiş birçok senaryo vardır.
Şimdi Birim, Entegrasyon ve Fonksiyonel testleri tek tek inceleme zamanı.
Birim Testi nedir?
Adından da anlaşılacağı gibi, bu seviye bir 'Üniteyi' test etmeyi içerir.
Burada birim, bir uygulamanın test edilebilen en küçük parçası olabilir, en küçük bireysel işlev, yöntem vb. Yazılım geliştiriciler, birim test durumlarını yazanlardır. Buradaki amaç, gereksinimleri ve birimin beklenen davranışını eşleştirmektir.
Aşağıda, birim testi ve faydaları hakkında birkaç önemli nokta bulunmaktadır:
- Birim testi, yazılım geliştiriciler tarafından entegrasyon testinden önce yapılır. beyaz kutu test teknikleri .
- Birim testi yalnızca olumlu davranışı, yani geçerli girdi durumunda doğru çıktıyı değil, aynı zamanda geçersiz girdi ile ortaya çıkan arızaları da kontrol eder.
- Sorunları / hataları erken bir aşamada bulmak çok faydalıdır ve genel proje maliyetlerini azaltır. Kod entegrasyonundan önce Birim testi yapıldığı için bu aşamada bulunan sorunlar çok kolay çözülebilir ve etkileri de çok azdır.
- Bir birim testi, küçük kod parçalarını veya bağımsız işlevleri test eder, böylece bu test senaryolarında bulunan sorunlar / hatalar bağımsızdır ve diğer test durumlarını etkilemez.
- Bir diğer önemli avantaj, birim test durumlarının basitleştirmesi ve kodun test edilmesini kolaylaştırmasıdır. Bu nedenle, yalnızca koddaki en son değişiklik test edileceği için sorunları daha sonraki bir aşamada çözmek daha kolay hale gelir.
- Birim testi zamandan ve maliyetten tasarruf sağlar, yeniden kullanılabilir ve bakımı kolaydır.
JUnit ( Java çerçevesi ), PHPUnit (PHP çerçevesi), NUnit (.Net çerçevesi) vb. Farklı diller için kullanılan popüler birim test araçlarıdır.
Entegrasyon Testi nedir?
Entegrasyon testi, sistemin farklı bölümlerinin birlikte entegrasyonunu test etmektir. Sistemin iki farklı parçası veya modülü önce entegre edilir ve ardından entegrasyon testi yapılır.
Entegrasyon testinin amacı, entegre edildiğinde sistemin işlevselliğini, güvenilirliğini ve performansını kontrol etmektir.
Öncelikle ünite testi yapılan modüller üzerinde entegrasyon testi yapılır ve daha sonra entegrasyon testi modüllerin kombinasyonunun istenilen çıktıyı verip vermediğini tanımlar.
Entegrasyon testi, bağımsız test uzmanları veya geliştiriciler tarafından da yapılabilir.
3 farklı Entegrasyon testi yaklaşımı türü vardır. Her birini kısaca tartışalım:
android için en iyi ücretsiz müzik indirici uygulaması nedir
a) Big Bang Entegrasyon Yaklaşımı
Bu yaklaşımda, tüm modüller veya birimler tek seferde bir bütün olarak entegre edilir ve test edilir. Bu genellikle tüm sistem tek bir noktada entegrasyon testine hazır olduğunda yapılır.
Lütfen bu entegrasyon testi yaklaşımını sistem testi ile karıştırmayın, sadece modüllerin veya birimlerin entegrasyonu test edilir ve sistem testinde yapıldığı gibi tüm sistem test edilmez.
Big bang yaklaşımı önemli avantaj entegre olan her şeyin tek seferde test edilmesidir.
Bir büyük dezavantaj başarısızlıkları tespit etmenin zorlaşmasıdır.
Misal: Aşağıdaki şekilde, Ünite 1 ila Ünite 6 entegre edilmiştir ve Büyük patlama yaklaşımı kullanılarak test edilmiştir.
b) Yukarıdan Aşağıya Yaklaşım
Ünitelerin / modüllerin entegrasyonu yukarıdan aşağıya kademeli olarak test edilir.
İlk ünite ayrı ayrı yazılarak test edilir STUBS'ı test et . Bundan sonra, son seviye bir araya getirilip test edilene kadar alt seviyeler tek tek entegre edilir.
Yukarıdan aşağıya yaklaşım, gerçek ortamda olayların nasıl gerçekleştiğiyle tutarlı olduğu için çok organik bir bütünleştirme yoludur.
Tek ilgilendirmek bu yaklaşımla, ana işlevsellik sonunda test edilir.
angularjs .net'te deneyimli için mülakat soruları ve cevapları
c) Aşağıdan Yukarı Yaklaşım
Üniteler / modüller, tüm seviyelerdeki üniteler / modüller tek bir ünite olarak entegre edilene ve test edilene kadar aşağıdan üst seviyeye kadar adım adım test edilir. Stimülatör programları adı verilen SÜRÜCÜLER bu yaklaşımda kullanılmaktadır. Alt düzeylerdeki sorunları veya hataları tespit etmek daha kolaydır.
Büyük dezavantaj Bu yaklaşımdan biri, üst düzey sorunların ancak tüm birimler entegre edildiğinde sonunda tespit edilebileceğidir.
Birim Testi ve Entegrasyon Testi
Birim testi ve entegrasyon testi hakkında yeterince tartıştıktan sonra, aşağıdaki tabloda ikisi arasındaki farkları hızlıca gözden geçirelim:
Birim Testi | Entegrasyon Testi |
---|---|
Testin ilk aşamasında gerçekleştirilir ve daha sonra her zaman yapılabilir | Ünite testinden sonra ve sistem testinden önce yapılmalıdır |
Tüm sistemin tek bileşenini test eder, yani bir üniteyi tek başına test eder. | Birlikte çalışan sistem bileşenlerini test eder, yani birden fazla birimin işbirliğini test eder. |
Yürütmek için daha hızlı | Yavaş koşabilir |
Dış bağımlılık yok. Herhangi bir dış bağımlılıkla alay edilir veya ortadan kaldırılır. | Harici bağımlılıklar ile etkileşim gerektirir (ör. Veritabanı, donanım vb.) |
Basit | Karmaşık |
Geliştirici tarafından yürütülür | Test uzmanı tarafından yapılır |
Bir tür beyaz kutu testidir | Bir tür kara kutu testidir |
Ucuz bakım | Pahalı bakım |
Modül spesifikasyonundan başlar | Arayüz spesifikasyonundan başlar |
Birim testi, yalnızca her küçük kod parçasının yapılması amaçlanan şeyi yapıp yapmadığını kontrol ettiği için dar bir kapsama sahiptir. | Tüm uygulamayı kapsadığı için daha geniş bir kapsama sahiptir. |
Birim testinin sonucu, kodun ayrıntılı görünürlüğüdür | Entegrasyon testinin sonucu, entegrasyon yapısının ayrıntılı görünürlüğüdür |
Yalnızca bireysel modüllerin işlevselliği içindeki sorunları ortaya çıkarın. Entegrasyon hatalarını veya sistem genelindeki sorunları ortaya çıkarmaz. | Genel sistemi oluşturmak için farklı modüller birbirleriyle etkileşime girdiğinde ortaya çıkan hataları ortaya çıkarın |
Fonksiyonel test
KİME kara kutu test tekniği , belirli bir girdinin sağlanmasında istenen çıktıyı oluşturmak için uygulamanın işlevselliğinin test edildiği yerde 'İşlevsel test' denir.
Bizim yazılım test süreçleri Bunu, gereksinimlere ve senaryolara göre test senaryoları yazarak yapıyoruz. Herhangi bir işlev için, yazılan test senaryolarının sayısı birden çoğa değişebilir.
Test senaryoları temelde aşağıdaki bölümlerden oluşur:
- Test Özeti
- Ön koşullar (varsa)
- Test senaryosu giriş adımları
- Test verileri (varsa)
- Beklenen çıktı
- Notlar (varsa)
'Gereksinim Bazlı' ve 'İş senaryosuna dayalı' gerçekleştirilen iki fonksiyonel test şeklidir.
Gereksinim bazlı testlerde, ihtiyaca göre test senaryoları oluşturulur ve buna göre test edilir. İş senaryosuna dayalı fonksiyonel testte, testler iş açısından tüm senaryolar göz önünde bulundurularak gerçekleştirilir.
Ancak, büyük dezavantaj Fonksiyonel test, testteki olası fazlalık ve bazı mantıksal hataları gözden kaçırma olasılığıdır.
Tam Fark
Farklılıklarına bakalım.
İşte önemli olanlardan bazıları:
Birim testi | Entegrasyon testi | Fonksiyonel test | |
---|---|---|---|
Tanım ve amaç | En küçük birimleri veya modülleri ayrı ayrı test etme. | Görevleri gerçekleştirmek için birleştirilmiş iki veya daha fazla birimin / modülün entegrasyonunu test etme. | Gereksinime göre uygulamanın davranışını test etmek. |
Karmaşıklık | En küçük kodları içerdiği için hiç de karmaşık değil. | Birim testlerinden biraz daha karmaşık. | Birim ve entegrasyon testlerine göre daha karmaşık. |
Test teknikleri | Beyaz kutu test tekniği. | Beyaz kutu ve kara kutu test tekniği. Gri kutu testi | Kara kutu test tekniği. |
Büyük ilgi | Bireysel modüller veya birimler. | Modüllerin veya birimlerin entegrasyonu. | Tüm uygulama işlevselliği. |
Hata / Kapsanan sorunlar | Birim testleri, modüllerde sıklıkla meydana gelebilecek sorunları bulur. | Entegrasyon testleri, farklı modülleri entegre ederken ortaya çıkabilecek sorunları bulur. | İşlevsel testler, bir uygulamanın işlevselliğini gerçekleştirmesine izin vermeyen sorunlar bulur. Bu, bazı senaryo temelli sorunları da içerir. |
Sorun kaçış | Sorunun kaçma şansı yok. | Daha az sorun kaçma şansı. | Çalıştırılacak testlerin listesi her zaman sonsuz olduğundan daha fazla sorun kaçma şansı vardır. |
Ayrıca => okuyun Özellik Testi nedir
Sonuç
Tüm bu üç test türü birbiriyle ilişkilidir.
Tam kapsama ulaşmak için, 'birimlerin' birlikte uyumlu bir şekilde çalıştığına dair güvence için kod yolları / satırları, işlevsellik ve Entegrasyon testleri için birim testlerinin yapılması gerekir.
Umarım bu makale size Birim, Entegrasyon ve Fonksiyonel testler hakkında farklılıkları ile birlikte net bir fikir verirdi, ancak bu test türlerinde çok daha fazlası var !!
Önerilen Kaynaklar
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Selenyum ile Entegrasyon ve Fonksiyonel Test İçin Spock
- Fonksiyonel Test ve Fonksiyonel Olmayan Test
- Primer e-Kitap İndirmeyi Test Etme
- Entegrasyon Testlerini Yazmak için En İyi 10 Entegrasyon Test Aracı
- Kara Kutu Testi ile Beyaz Kutu Testi Arasındaki Temel Farklılıklar
- Türleri ve Örneği ile Eksiksiz Fonksiyonel Test Kılavuzu
- Fonksiyonel Test ve Performans Testi: Aynı Anda Yapılmalı mı?