Arayüz Testi Nedir? Türler ve Örnek

⚡ Akıllı Özet

Arayüz Testi, birbirine bağlı iki yazılım sisteminin verileri doğru şekilde alışveriş ettiğini doğrular. Uygulamanın yaptığı her isteği taşıyan web sunucusu, uygulama sunucusu ve veritabanı sunucusu bağlantılarını ve bunlarla ilgili hata yönetimini kapsar.

  • 🔗 Tanım: Arayüz, iki bileşeni birbirine bağlayan herhangi bir bağlantıdır; bu bir API, bir web servisi veya bir mesaj kuyruğu olabilir.
  • 🧭 İki bölüm: Testler, web sunucusu ile uygulama sunucusu arasındaki bağlantıyı ve uygulama sunucusu ile veritabanı sunucusu arasındaki bağlantıyı hedef alır.
  • 📄 Çalışılmış örnek: XML girdisi ve JSON çıktısı, yayınlanmış format spesifikasyonlarına göre doğrulanır.
  • 🧪 Test türleri: İş akışı, uç durumlar, performans ve yük, ayrıca her bir sistemin ayrı ayrı test edilmesi.
  • takım: Kullanıcı arayüzü bulunmadığında, API istemcileri ve hizmet sanallaştırması istekleri yönlendirir.
  • 🔍 Kapsam sınırı: Arayüz testi, entegrasyon testinin bağlantı noktalarına odaklanan bir alt türüdür.trackendisi.

Web sunucusu, uygulama sunucusu ve veritabanı sunucusu arasındaki arayüz testleri.

Arayüz Testi Nedir?

Arayüz Testi İki farklı yazılım sistemi arasındaki iletişimin doğru şekilde yapılıp yapılmadığını doğrulayan bir yazılım test türü olarak tanımlanır.

İki bileşeni birleştiren bağlantıya arayüz denir. Bilgisayar dünyasında bu arayüz, API'ler, web servisleri vb. gibi her şey olabilir. Bu bağlantı servislerinin veya arayüzlerin test edilmesine Arayüz Testi denir.

Arayüz aslında bir cihaz ile kullanıcı arasındaki iletişimi sağlayan komutlar, mesajlar ve diğer özelliklerden oluşan bir yazılımdır.

Önemli olan nokta, bir arayüzün bir dezavantajı olmasıdır.tract: üzerinde anlaşılmış bir istek formatı, üzerinde anlaşılmış bir yanıt formatı, üzerinde anlaşılmış bir hata kodları kümesi ve üzerinde anlaşılmış bir zaman aşımı. Arayüz test alıştırmaları şunları içerir:tracHer iki taraftan da veri toplandığı için, bir takımın yaptığı değişiklik diğer takımı sessizce bozmaz. Çünkü bu trafiğin çoğu ekrana ulaşmadığı için, bulduğu kusurlar görünmez kalır. kara kutu testi Yalnızca kullanıcı arayüzü aracılığıyla gerçekleştirildi.

Arayüz Testi nasıl yapılır

Arayüz Testi iki ana bölümün testini içerir:

  1. Web sunucusu ve uygulama sunucusu arayüzü
  2. Uygulama sunucusu ve Veritabanı sunucusu arayüzü.

Yukarıda belirtilen senaryolar için arayüz testi yapılır.

  • Sunucuların düzgün şekilde yürütülüp yürütülmediğini kontrol edin
  • Hatalar düzgün bir şekilde işlenir veya bir uygulama tarafından yapılan herhangi bir sorgu için bir hata mesajı döndürülür
  • Arada bir web sunucusuna bağlantı sıfırlandığında sonuçları kontrol edin

Aşağıdaki diyagram, bu iki segmenti tek bir zincir olarak göstermektedir; tarayıcı web sunucusuyla, web sunucusu uygulama sunucusuyla ve uygulama sunucusu da veritabanı sunucusuyla iletişim kurmaktadır.

Web sunucusu, uygulama sunucusu ve veritabanı sunucusu zinciri genelinde arayüz testi.

Pratikte, bir test uzmanı bu zinciri adım adım inceler. Her adım önce geçerli bir istekle, ardından hatalı bir istekle ve son olarak da uzak uç kasıtlı olarak erişilemez hale getirilerek gerçekleştirilir; böylece hem başarı yolu hem de başarısızlık yolu aynı kayda alınır. test durumu.

Arayüz Testi Örneği

Herhangi bir xyz uygulaması için arayüzün şu şekilde olduğunu varsayalım: XML dosyayı girdi olarak alır ve çıktı verir. JSON Çıktı olarak bir dosya oluşturur. Bu uygulamanın arayüzünü test etmek için gereken tek şey XML dosya formatı ve JSON dosya formatının özellikleridir.

Bu özellikler yardımıyla örnek giriş XML dosyaları oluşturabilir ve bunları arayüze besleyebiliriz. Ardından giriş (XML) ve çıkış (JSON) dosyalarının gereksinimlerle uyumluluğunu doğrulamak arayüz testidir.

Örnekte nelere ihtiyaç duyulmadığına dikkat edin: ekran yok, ön uç derlemesi yok ve arayüzün içindeki kod hakkında bilgiye gerek yok. Testleri yazmak için iki format belirtimi yeterlidir; bu nedenle arayüz testleri, kullanıcı arayüzü henüz mevcut olmadan çok önce başlayabilir.

Arayüz Testi neden yapılır?

Arayüz Testi yapıldı

  • Son kullanıcıların veya müşterilerin belirli bir yazılım ürününü kullanırken herhangi bir sorunla karşılaşmamalarını sağlamak
  • Son kullanıcılar tarafından genellikle hangi uygulama alanlarına erişildiğini belirlemek ve aynı zamanda kullanım kolaylığını da kontrol etmek.
  • Sistemler arasında iletişim yayılırken güvenlik gereksinimlerini doğrulamak için
  • Bir çözümün uygulama sunucusu ile web sitesi arasındaki ağ arızalarını giderip gideremeyeceğini kontrol etmek için

Bir de maliyet argümanı var. İki sistem henüz birbirine bağlanırken istek formatındaki bir hatanın düzeltilmesi ucuzdur, ancak hatalı veri bir alt sisteme depolandıktan sonra pahalıya mal olur.

Arayüz Testi Türleri

Arayüz Testi sırasında arayüzde yapılan çeşitli test türleri şunları içerebilir:

  • İş Akışı: Arayüz motorunun standart iş akışlarınızı beklendiği gibi işlemesini sağlar.
  • Uç durumlar -beklenmeyen değerler: Bu durum, testler tarih, ay ve günün tersine çevrilmesini içerdiğinde dikkate alınır.
  • Performans, yük ve ağ testleri: Yüksek hacimli bir arayüz daha fazlasını gerektirebilir. Yük Testi Arayüz motoruna ve bağlantı altyapısına bağlı olarak düşük hacimli bir arayüzden daha
  • Bireysel sistemler: Bu, her sistemin ayrı ayrı test edilmesini içerir. Örneğin, perakende mağazası için faturalama sistemi ve envanter yönetim sistemi ayrı ayrı çalışabilmelidir.

İlk madde yeterince yakın iş akışı testi senaryolarını yeniden kullanmak için ve son madde bununla örtüşüyor. modül testiÇünkü kendi kendine arızalanan bir sistem, bağlantı kurulduğunda da tekrar arızalanacaktır.

Arayüz Test Stratejisi

Arayüz Test Stratejisi, uygulama türünden bağımsız olarak ortak testlerle arayüzleri test etmek için kullanılan bir yöntemdir. Bu yöntemle mutlak testler kullanabiliriz.tracTest senaryolarını tanımlayın ve arayüz test stratejisinin her bir uygulaması için test senaryosunun somut örneklerini oluşturun. Temel/mutlaktracTest senaryoları uygulama açısından tarafsız testler gerçekleştirirken, somut testler test edilecek nesnelerin örneklendirilmesi ve uygulamaya özgü testlerin yapılmasıyla ilgilenir.

Bu yapının getirisi yeniden kullanılabilirliktir. Aynı arayüzün üçüncü bir uygulaması ortaya çıktığında, mutlak değertracT Suite, hiçbir değişiklik yapılmadan çalışır ve yalnızca örnekleme kodunun yazılması gerekir. Aynı fikir daha büyük ölçekte de uygulanır. bileşen testiburada ortak bir kontracT Suite, onu karşıladığını iddia eden her bileşene karşı çalıştırılır.

Arayüz Test Araçları

Arayüzün ekranı olmadığı için, araçların istekleri doğrudan oluşturması ve ham yanıtlara göre doğrulama yapması gerekir. Ekipler genellikle üç kategoriye ait aracı bir araya getirir.

  • API istemcileri ve istek oluşturucuları: Gibi araçlar Postman, SoapUIInsomnia ve Hoppscotch, REST, SOAP veya GraphQL çağrıları gönderir, bunları yeniden kullanılabilir koleksiyonlar olarak saklar ve durum kodları, başlıklar ve yanıt gövdeleri üzerinde doğrulama yapar.
  • Code-seviye test kütüphaneleri: Mevcut test paketinin içinde çalışan kütüphaneler, arayüz kontrollerinin birim testlerinin yanında yer almasını ve her derlemede yürütülmesini sağlayarak, bu kontrollerin güncelliğini yitirmesini önler.
  • Yük ve protokol araçları: Örneğin bir araç JMeter Aynı arayüzü yüksek hacimde çalıştırır, bu da işlevsel bir denetimi şuna dönüştürür: performans testi Bağlantının.
  • Hizmet sanallaştırma ve taklitler: Uzak uçtaki bağlantı noktasının yerine geçen bir bağlantı noktası, diğer taraf kullanılamaz durumdayken, tamamlanmamışken veya tekrar tekrar aramak çok pahalıya mal olurken bir tarafın test edilmesine olanak tanır.

Seçimden ziyade kapsam önemlidir. Hangi istemci seçilirse seçilsin, istekler koleksiyonu kodla birlikte sürüm kontrolünde saklanmalıdır, böylece arayüzdeki bir değişiklik ve testlerindeki bir değişiklik aynı commit'te yer alır. Daha geniş kategoriye ilişkin ayrıntılar şurada ele alınmıştır: API testi.

Arayüz Testi Kontrol Listesi ve En İyi Uygulamalar

Kısa bir kontrol listesi, sürümler arasında arayüz kapsamının doğru olmasını sağlar. Uygulamanın tamamı için değil, her bağlantı için ayrı ayrı bu listeyi inceleyin.

  • iletracİlk olarak: İstek ve yanıt şemalarının, veri türleri ve isteğe bağlı alanlar da dahil olmak üzere, alan alan yayınlanmış spesifikasyonla eşleştiğini doğrulayın.
  • Sınır değerleri: Boş veri paketleri, maksimum uzunluktaki alanlar, beklenmeyen karakter kümeleri ve ters tarih formatları gönderin.
  • Hata yolları: Her hatanın yığın izi yerine anlamlı bir kod ve mesaj döndürdüğünü doğrulayın. trace ya da sessiz bir başarı.
  • Zaman aşımı ve yeniden denemeler: İstek sırasında bağlantıyı kesin ve arayanın işlemi tekrarlamadan güvenli bir şekilde yeniden denemesini onaylayın.
  • Güvenlik: Bağlantıdaki kimlik doğrulama, yetkilendirme ve şifrelemeyi kontrol edin ve hata mesajlarının iç bilgileri sızdırmadığından emin olun.
  • Veri tutarlılığı: Kaydı karşı taraftan tekrar okuyun ve iletim sırasında hiçbir şeyin kesilmediğini, yeniden kodlanmadığını veya yeniden sıralanmadığını doğrulayın.
  • Cilt: Eş zamanlı yük altında en yüksek trafiğe sahip çağrıyı tekrarlayın ve bağlantı havuzunun tükenmesini izleyin.

Bu kontrol listesini tekrarlanabilir kılan üç uygulama vardır. Birincisi, test paketini otomatikleştirin ve her derlemede çalıştırın, çünkü arayüzler ekranlardan daha sessiz değişir. İkincisi, her hata için tam istek ve yanıtı kaydedin, çünkü bir arayüz hatasını ekran görüntüsünden yeniden üretmek neredeyse imkansızdır. Üçüncüsü, test paketini diğer test paketleri tarafından oluşturulan test verilerinden bağımsız tutun, böylece bir hata eksik bir kayıttan ziyade arayüzü işaret eder.

Bu kontroller, açıklanan daha geniş planın doğal bir parçası olarak yer almaktadır. yazılım testi türlerive bu bağlantılar uçtan uca uygulanmadan önce çalışırlar. sistem testi.

Arayüz Testi ve Entegrasyon Testi

İki terim birbirine zıt değil, aksine ilişkilidir: arayüz testi, entegrasyon çalışmasının bağlantının kendisine odaklanan kısmıdır. Aşağıdaki tablo her iki tarafın vurgusunu ortaya koymaktadır.

Arayüz Testi Entegrasyon Testi
Bileşenler veya sistemler arasındaki arayüzlerin test edilmesiyle ilgilenen bir entegrasyon testi türü Arayüzlerdeki ve entegre bileşenler veya sistemler arasındaki etkileşimlerdeki kusurları ortaya çıkarmak için yapılan testler.
Odaklanma, aldatmacadır.tract — istek formatı, yanıt formatı, hata kodları ve zaman aşımı süreleri Odak noktası, bileşenler bir araya getirildikten sonra sergiledikleri birleşik davranıştır.
Belirtilen özellik oluşturulur oluşturulmaz, uzak uçtaki kod bloğu ile birlikte çalıştırılabilir. Katılan bileşenlerin birlikte oluşturulmasını ve devreye alınmasını gerektirir.
Bir bağlantı noktasında arıza tespit ediliyor. Bir arıza, bir araya getirilmiş grubun herhangi bir bileşeninden kaynaklanabilir.

Bu alana yeni başlayan herkes, aşağıda açıklanan çevre seviyelerini faydalı bulacaktır. entegrasyon testi ve genel olarak yazılım testi Giriş bölümünde, yukarıda kullanılan terminoloji standarttan gelmektedir. yazılım Mühendisliği Uygulama sırasında, tarayıcıya yönelik sistemlerde aynı bağlantılar nihayetinde tekrar kullanılır. web uygulaması testi.

SSS

Genellikle entegrasyon kapsamından sorumlu olan QA mühendisleri, her iki sistemin geliştiricileriyle birlikte çalışır. Servis ağırlıklı ürünlerde ise bu işi özel bir API test uzmanı üstlenir, çünkü bu iş ekran navigasyon becerilerinden ziyade istek oluşturma becerileri gerektirir.

İncelenecek görünür bir çıktı olmaması, serbestçe çağrılamayan üçüncü taraf uç noktalar, her iki tarafta da bulunması gereken test verileri ve önceden haber verilmeksizin değişen özellikler. Bu sorunların çoğu, saplama nesneler ve sürüm kontrollü istek koleksiyonları ile azaltılabilir.

Bunlar büyük ölçüde örtüşüyor. API bir tür arayüzdür, dolayısıyla API testi Bu, söz konusu teknolojiye uygulanan arayüz testidir. Arayüz testi ayrıca dosya bırakma, mesaj kuyrukları ve API içermeyen veritabanı bağlantılarını da kapsar.

Hayır. İsim aynı olsa da hedef farklı. Arayüz testi, sistemler arası bağlantıları kontrol eder; kullanıcı arayüzü testi ise ekranları, kontrolleri ve düzeni kontrol eder. İkisini karıştırmak, sunucu tarafındaki bağlantıların test edilmemesine yol açar.

İstek ve yanıt özellikleri üzerinde anlaşmaya varılır varılmaz, ki bu genellikle sistemlerden herhangi biri tamamlanmadan önce olur. Uzak uçtaki istemciyi çalıştırmak, test paketinin erken çalıştırılmasını sağlar ve her iki sistem de devreye girdikten sonra aynı paket yeniden kullanılır.

En az bir pozitif ve bir negatif test sonucu olan belgelenmiş uç noktaların oranı, gerçekten tetiklenen beyan edilen hata kodlarının oranı ve arayüz kusurlarının sayısıping Sonraki aşamalara geçiyoruz. Ham test sonuçları çok az şey kanıtlıyor.

Makine öğrenimi bir şemayı okur ve bir insanın atlayacağı sınır ve negatif yükler oluşturur, ardından başarısız yanıtları kümeler, böylece tek bir temel neden sekiz kez rapor edilmez. Ayrıca, mevcut isteklerin artık eşleşmediği şema değişikliklerini de işaretler.

Evet. Verilen bir şema veya örnek veri yüküne göre, istek oluşturucuları, doğrulama ifadelerini ve taslak yanıtları hızla oluşturur. Ancak, oluşturulan bir doğrulama ifadesinin doğruluğu, yalnızca doğrulama ifadesinin doğruluğuyla doğru olduğundan, özelliklerin yine de bir insan tarafından sağlanması gerekir.tracarkasında.

Bu yazıyı şu şekilde özetleyin: