Test Harness Nedir? (Örnekler)
⚡ Akıllı Özet
Yazılım testinde test donanımı, ekiplerin her bağımlılık oluşmadan önce modülleri doğrulamalarını sağlamak için saplamaları, sürücüleri, test verilerini ve yürütme araçlarını bir araya getirir; böylece tıkanmış test döngüleri, manuel çaba gerektirmeden sonuçları raporlayan tekrarlanabilir, otomatik doğrulamaya dönüşür.

Yazılım Testinde Test Koşulu
Yazılım Testinde Test Koşulu test yürütmeyi otomatikleştirmek için gereken taslaklar, sürücüler ve diğer destekleyici araçlardan oluşan bir koleksiyondur. Test donanımı, testleri bir test kitaplığı kullanarak yürütür ve test raporları oluşturur. Test koşum takımı, test senaryoları, hedef dağıtım bağlantı noktası (TDP), test altındaki kaynak dosya, taslaklar vb. gibi bir testi derlemek ve çalıştırmak için gereken tüm bilgileri içerir.
Basitçe anlatmak gerekirse, bir test ortamı, doğrulamak istediğiniz bileşeni kontrollü bir ortamda sarar. Eksik olan komşu modüller küçük kukla programlarla değiştirilir, girdiler sabit bir veri kümesinden gelir ve her sonuç ekrandan okunmak yerine bir günlüğe yazılır. Aşağıdaki bölümler, ekiplerin neden böyle bir ortam oluşturduğunu, nelerden oluştuğunu, nasıl çalıştığını ve nerede kullanıldığını açıklamaktadır.
Neden Test Harness'ı kullanmalısınız?
Test döngüsündeki bekleme süresini ortadan kaldırmak için bir donanım mevcuttur. Henüz hazır olmayan her şeyi simüle ettiği için, yazılım testi Ekip, son entegrasyondan sonra değil, ilk sprintte davranış doğrulamaya başlayabilir. Aşağıdaki diyagram, test komut dosyaları ile test edilen uygulama arasında bir test ortamının nerede konumlandığını göstermektedir.
- Test sürecini otomatikleştirin
- Test senaryolarının test paketlerini yürütün
- İlgili test raporlarını oluşturun
- Hata ayıklama desteği
- Testlerin her biri için test sonuçlarını kaydetmek için
- Geliştiricilerin kod kapsamını kod düzeyinde ölçmesine yardımcı olur
- Otomasyon yoluyla sistemin verimliliğini artırın
- Yazılım bileşenlerinin ve uygulamanın kalitesini artırın
- Test uzmanlarının simüle etmekte zorluk çektiği karmaşık koşulları ele almak için
Bu kazanımlar en çok kısa sürüm döngülerinde önem kazanır. Kod haftada birkaç kez yayınlandığında, entegrasyon aşamasına kadar hayatta kalan bir hata çok daha fazla maliyete neden olur. tracYazıldığı gün bir kütüğe takılan birden fazla örnek var. Ancak bu kazanç, koşum takımı doğru parçalardan bir araya getirildiğinde elde edilir.
Test Cihazının Başlıca Bileşenleri
Bir test düzeneği tek bir program değil, her biri testin gözetimsiz çalışmasını engelleyecek bir engeli ortadan kaldıran parçaların bir araya getirilmesidir.
- Test senaryoları: Yapılacak adımları ve beklenen sonucu belirten otomatik talimatlar, aşağıdaki şekilde yazılmıştır: test komut dosyası sözleşmeler.
- Test yürütme motoru: Komut dosyalarını sırayla okuyan, bağımlılıkları çözen ve sıralı veya paralel yürütmeyi tetikleyen çalıştırıcı.
- Test verisi deposu: CSV, JSON, XML formatlarında veya önceden tanımlanmış bir veritabanında komut dosyasının dışında tutulan giriş değerleri genellikle şu yöntemlerle doldurulur: veri oluşturma araçlarını test edin.
- Sürücüler: Gerçek üst katman (örneğin kullanıcı arayüzü) henüz tamamlanmadığında test edilen bileşeni çağıran, işlevsiz (dummy) çağrı modülleri.
- Taslaklar: Örneğin, bir ödeme hizmetinin bankayla iletişime geçmeden "Ödeme Başarılı" şeklinde yanıt vermesi gibi, önceden hazırlanmış yanıtlar döndüren sahte modüller.
- Çıktı doğrulayıcı: Gerçekleşen çıktıyı beklenen değerle karşılaştıran ve her durumu başarılı veya başarısız olarak işaretleyen doğrulama mantığı.
- Kayıt ve raporlama katmanı: Zaman damgaları, ekran görüntüleri, konsol çıktısı ve her hatayı özetleyen bir çalışma özeti. tracSonrasında yenilebilir.
Parçalardan herhangi birini çıkarırsanız, kablo demeti otomatik çalışmayı durdurur çünkü her çalıştırmada elle bir şeyler sağlanması gerekir.
Test düzeneği nasıl çalışır?
Bir koşum takımı, her çalıştırmada aynı döngüyü tekrarlar. Bu döngüyü bilmek, kendi hareketinizin tam olarak nerede olduğunu size söyler. otomasyon testi Varlıklar takılıyor ve bir çalıştırma kırmızıya döndüğünde hangi adım başarısız oluyor?
- Ortamı hazırlayın: Bu test düzeneği ortam yapılandırmasını çözer, bağlantıları açar ve donanım bileşenlerini yükler, böylece her çalıştırma aynı bilinen durumdan başlar.
- Test komut dosyalarını yükleyin: Komut dosyaları, parametreler ve beklenen sonuçlar depodan okunur. Çalışma zamanında hiçbir şey yazılmaz; bu da ikinci çalıştırmayı birincisiyle karşılaştırılabilir kılar.
- Eksik modülleri değiştirin: Sürücüler henüz var olmayan arayanların yerine geçerken, bağlantı noktaları ise tamamlanmamış, istikrarsız veya aranması pahalı olan hizmetlerin yerine geçer.
- Test edilecek uygulamayı çalıştırın: Yürütme motoru, ister bir metot çağrısı olsun, ister başka bir işlem olsun, komut dosyasında açıklanan iş akışını tetikler. API istek veya tarayıcı etkileşimi.
- Gerçek çıktıyı yakalayın: Dönüş değerleri, yanıt yükleri, veritabanı satırları, günlük satırları ve ekran durumu, üretildikleri anda kaydedilir.
- Beklenen sonuçlarla karşılaştırın: Çıktı doğrulayıcı, yakalanan her değer üzerinde doğrulama yapar. Herhangi bir uyuşmazlık, durumu başarısız olarak işaretler ve hem beklenen hem de gözlemlenen değeri kaydeder.
- Kayıt tut ve raporla: Bu cihaz zaman damgalı bir kayıt yazıyor. tracÇalıştırmanın bir bölümünü oluşturur ve geliştiricinin herhangi bir şeyi yeniden çalıştırmadan okuyabileceği bir geçme/kalma raporu üretir.
- Sökmek: Geçici veriler, bağlantılar ve önbellek durumu temizlenir, böylece bir sonraki durum bu durumdan kalan kalıntıları devralamaz.
💡 İpucu: Gerçek modül değiştiğinde taslaklarınızı yenileyin. Geçen çeyreğin formatıyla yanıt veren bir taslak, canlı entegrasyon zaten bozulmuş olsa bile başarılı bir çalışma raporu verecektir.
Örnek bir uygulama, döngüyü somutlaştırır. Diyelim ki ödeme sayfası hazır ancak ödeme ağ geçidi henüz hazır değil. Sürücü, arayüzün normalde göndereceği isteği gönderir, bir saplama önce "Ödeme Başarılı" yanıtı verir, ardından bir zaman aşımı mesajı gönderir ve doğrulayıcı bir durumda siparişi onaylar, diğerinde ise yeniden deneme uyarısı gönderir. Ağ geçidi ekibi tek bir satır kod yazmadan önce her iki yol da doğrulanır.
Test Harness'ın kullanıldığı iki bağlam vardır
Aynı mekanizma iki farklı amaca hizmet eder ve hangisinde olduğunuza bağlı olarak kullanılan kelime dağarcığı biraz değişir.
- Otomasyon testi: İçerir test komut dosyaları, bu komut dosyalarını çalıştırmak ve analiz etmek üzere sonuçları toplamak için gerekli parametreler
- Entegrasyon testi: Birleşik davranışın beklendiği gibi olup olmadığını kontrol etmek için birbiriyle etkileşime giren iki kod birimini veya modülü bir araya getirmek için kullanılır.
Kullanıcı belirteci alışverişi yapması gereken bir giriş modülü ve bir profil modülü düşünün. Entegrasyon bağlamında, bir sürücü başarılı bir girişi simüle eder ve belirteci profil mantığına iletir, böylece veri eşlemesi oluşturulur.pingİzin kontrolü ve ekran oluşturma işlemleri, gerçek kimlik doğrulama hizmeti tamamlanmadan önce doğrulanabilir. Otomasyon bağlamında, aynı durum çifti bir pakete eklenir ve hiç kimsenin tekrar müdahale etmesine gerek kalmadan her derlemede yeniden çalıştırılır.
Test Donanımı Çeşitleri
Yazılım katmanlar halinde oluşturulduğu için, bir doğrulama aracı genellikle doğruladığı katmana özel olarak tasarlanır. Dört türü neredeyse her projeyi kapsar.
A ünite test düzeneği En küçük kod parçalarını, örneğin tek bir fonksiyonu veya metodu, her bağımlılığı bir saplama ile değiştirerek çalıştırır. Bu nedenle en hızlı çalıştırılan ve en ucuz bakım maliyetine sahip yöntemdir. birim testi Genellikle bir ekibin oluşturduğu ilk test ortamı, test paketleridir. Faturalama modülüne dokunmadan vergi hesaplamasını test etmek tipik bir kullanım örneğidir.
An entegrasyon test düzeneği İki veya daha fazla modülün doğru şekilde işbirliği yapıp yapmadığını kontrol eder ve veri uyuşmazlıklarının ve başarısız çağrıların ortaya çıktığı katmandır. Bu, açıklanan donanım yapısıdır. entegrasyon testi Yukarıdaki bağlamda, örneğin bir sipariş hizmetinin ödeme hizmetine doğru veri paketini ilettiğini doğrulamak gibi.
A sistem test düzeneği Arayüz, servis ve veritabanı genelinde uçtan uca eksiksiz bir iş akışını yönetir, bu nedenle sistem testi Her katman mevcut olduğunda iş kurallarının geçerli olduğunu doğrulayabiliriz. regresyon testi donanımı Ardından her değişiklikten sonra birikmiş test paketini yeniden çalıştırır, bu da onu mümkün kılan şeydir. gerileme testi Birleştirme işlemlerinde yüzlerce senaryonun tekrarlanması gerektiğinde pratiktir.
Test Donanımı Araçları
Bu türlerin her biri genellikle sıfırdan değil, mevcut bir araç üzerine inşa edilir. İki klasik seçenek ise birim düzeyindeki çerçevelerdir:
- haziran: Kullanırken kullanılan araç Java
- Rahibe: Kullanmak için kullanılan araç .Net çerçevesi
Bu ikisinin ötesinde, çoğu ekip, desteği tarayıcıya, API katmanına veya yük profiline genişleten araçlar ekler. Aşağıdaki tablo, yaygın seçenekleri her birinin oynadığı rolle eşleştirir.
| araç | En uygun | Koşum takımının içindeki rol |
|---|---|---|
| JUnit | Java ünite ve entegrasyon paketleri | Sürücüleri, armatürleri ve iddiaları tedarik eder. |
| NUnit | .NET platformunda C# ve VB.NET kodu. | Aynı rol JUnit .NET dilleri için |
| Selenium | Tarayıcı tabanlı uçtan uca akışlar | Kullanıcı arayüzü katmanının sürücüsü görevi görür. |
| TestNG | Büyük Java Zemin kata ihtiyaç duyan süitlerping ve paralel çalıştırmalar | Test yürütme motoru olarak görev yapar. |
| PyTest | Python hizmetler ve API seviyesi kontrolleri | Armatürler aynı zamanda bağlantı noktaları ve veri sağlayıcıları görevi de görür. |
| Apache JMeter | Yük, gerilim ve performans senaryoları | Test edilen uygulamaya karşı sentetik trafik oluşturur. |
| Postman | REST API ile ilgilitract doğrulama | Tamamlanmamış uç noktaların yerine geçen sanal sunucular sağlar. |
Hangi kombinasyonu seçerseniz seçin, kablo demeti ancak gözetimsiz çalışmaya başladıktan sonra kendini amorti eder, bu nedenle onu şu şekilde bağlayın: sürekli entegrasyon İşi erken bitirin. Daha geniş bir seçenek kataloğu aşağıda listelenmiştir. Guru99 test araçları Özetle, hâlâ kafa karışıklığına yol açan bir ayrım var ve herhangi bir seçim yapmadan önce bunu netleştirmekte fayda var.
Test Harness ve Test Çerçevesi
Bir test düzeneği ve bir otomasyon çerçevesi genellikle aynı şey olarak ele alınır, ancak farklı sorulara cevap verirler: test düzeneği testi yürüten şeydir, çerçeve ise testlerin tasarlandığı yapıdır. Aşağıdaki tabloda bunlar yan yana gösterilmiştir.
| Test Kayışı | Test Otomasyonu Çerçevesi |
|---|---|
| Bir test donanımı, test edilen yazılımla etkileşime giren küçük sahte programlar olan sürücülerden ve taslaklardan oluşur. | Bu, bir dizi süreç, prosedür ve mutlak değerdir.tracOtomatik testlerin tasarlandığı ve uygulandığı bir kavram ve ortam. |
| Test Harness'ta “Kaydet ve Oynat” komut dosyasını kullanamazsınız | Bir test uzmanı bu çerçevede manuel olarak "Kaydet ve Oynat" komut dosyasını çalıştırabilir |
| Test koşum takımı, test senaryoları, hedef dağıtım bağlantı noktası (TDP), test altındaki kaynak dosya, taslaklar vb. gibi bir testi derlemek ve çalıştırmak için gereken tüm bilgileri içerir. | Test otomasyonu çerçevesi, test kitaplığı, test araçları, otomatik test uygulamaları, test platformu vb. gibi bilgileri içerir. |
| Bir test koşum takımı şu şekilde kategorize edilir: Otomasyon Testi Entegrasyon Testi |
Otomasyon çerçevesi örnekler Veriye dayalı test Anahtar kelime odaklı test Modülerlik odaklı test Hibrit test Model tabanlı test Code yönlendirilmiş test Davranış odaklı test |

