SOA Testi nedir?
SOA (Servis Odaklı Mimari) Testi, uygulama bileşenlerinin tipik olarak bir ağ üzerinden iletişim protokolleri aracılığıyla iletişim kuracak şekilde tasarlandığı bir SOA mimari tarzı Testidir.
Bu eğitimde öğreneceksiniz-
- SOA nedir?
- Hizmet nedir?
- SOA Testi
- SOA Testi Stratejisi
- SOA test yöntemleri
- SOA testindeki zorluklar
- SOA Test Araçları
- SOA Testi Kullanım Durumları
SOA nedir?
SOA, iş gereksinimlerini karşılamak için iş uygulamalarını ve süreçlerini bir araya getirme yöntemidir.
Yazılım Mühendisliğinde SOA, iş süreçlerine çeviklik ve esneklik sağlar. Süreç veya uygulamadaki değişiklikler, tüm sistemi etkilemeden belirli bir bileşene yönlendirilebilir.
SOA'daki yazılım geliştiricileri, SERVICES adı verilen program yığınlarını geliştirir veya satın alır .
Hizmet nedir?
- Hizmetler, başka herhangi bir uygulama veya işlem tarafından yeniden kullanılabilen veya tekrarlanabilen işlevsel bir uygulama veya iş süreci birimi olabilir.
(Örneğin yukarıdaki görselde Ödeme Ağ Geçidi, herhangi bir e-ticaret sitesi tarafından tekrar kullanılabilen bir hizmettir. Bir ödeme yapılması gerektiğinde, e-ticaret sitesi, Ödeme Geçidi hizmetini arar / Talep eder. Ödeme yapıldıktan sonra bir ağ geçidi, e-ticaret web sitesine bir yanıt gönderilir)
- Servislerin montajı ve bileşenleri yeniden yapılandırması kolaydır.
- Hizmetler, yapı taşlarıyla karşılaştırılabilir. İhtiyaç duyulan herhangi bir uygulamayı oluşturabilirler. Bunları uygulamaya veya iş sürecine eklemek ve çıkarmak kolaydır.
- Hizmetler, kod parçaları olarak değil, gerçekleştirdikleri iş işleviyle tanımlanır.
Ağ hizmetleri
Web hizmetleri, web üzerinden erişilebilen bağımsız uygulama bileşenleridir.
Web üzerinde yayınlanabilir, bulunabilir ve kullanılabilirler. İnternet üzerinden iletişim kurabilirler.
- Servis Sağlayıcı, servisi internette yayınlar.
- Müşteri, Web Hizmeti Kayıt Defterinden belirli bir web hizmeti arar.
- Gerekli web hizmeti için bir URL ve WSDL döndürülür.
>> WSDL ve URL kullanılarak, servis sağlayıcı ile talep eden arasındaki iletişim SOAP mesajları aracılığıyla gerçekleşir. <<
- Bir tüketici bir web servisini aradığında, sağlayıcıya bir HTTP bağlantısı kurulacaktır.
Sağlayıcıya gerekli web hizmeti mantığını çalıştırma talimatı vermek için bir SOAP mesajı oluşturulur.
- Sağlayıcıdan alınan yanıt, HTTP yanıtına gömülecek bir SOAP mesajıdır. Bu HTTP yanıtı, tüketici uygulaması tarafından anlaşılabilen veri formatıdır.
Misal
Bir Web Sitesinin ana sayfası ve bir Arama Motoru, günlük hava durumu raporunu görüntüler. Hava durumu raporu bölümünü baştan sona kodlamak yerine, bir satıcıdan bir Hava durumu raporu Servisi satın alınabilir ve sayfalara entegre edilebilir.
SOA Testi
SOA, çeşitli teknolojilerden oluşur. SOA kullanılarak oluşturulan uygulamalar, gevşek bir şekilde bağlanmış çeşitli hizmetlere sahiptir.
SOA Testi 3 sistem katmanına odaklanmalıdır
Hizmetler Katmanı
Bu katman, iş işlevlerinden türetilen bir sistem tarafından sunulan hizmetlerden ve hizmetlerden oluşur.
Örneğin -
Aşağıdakilerden oluşan bir Wellness Web Sitesi düşünün:
- Kilo Takibi
- Kan Şekeri Takibi
- Kan Basıncı İzleyici
İzleyiciler, girildikleri ilgili verileri ve tarihi görüntüler. Hizmetler katmanı, ilgili verileri Veritabanından alan hizmetlerden oluşur.
- Kilo Takibi hizmeti
- Kan Şekeri Takibi hizmeti
- Kan Basıncı Takibi hizmeti
- Giriş Hizmeti
İşlem Katmanı
Süreç Katmanı, tek bir işlevin parçası olan süreçler, hizmetlerin koleksiyonunu içerir.
İşlemler, bir ETL aracının (veritabanından veri almak için) bir parçası olan kullanıcı arayüzünün (örneğin, bir arama motoru için) bir parçası olabilir.
Bu katmandaki ana odak noktası, kullanıcı arayüzleri ve süreci olacaktır.
Ağırlık takip cihazının kullanıcı arayüzü ve Veri Tabanı ile entegrasyonu birincil odak noktasıdır.
Aşağıdaki işlevler dikkate alınacaktır
- Yeni veri eklemek
- Mevcut verileri düzenleme
- Yeni izleyici oluşturma
- Verilerin silinmesi
Tüketici Katmanı
Bu katman esas olarak kullanıcı arayüzlerinden oluşur.
Katmana bağlı olarak, bir SOA uygulamasının testi üç seviyeye dağıtılır.
- Servis seviyesi
- Arayüz seviyesi
- Uçtan Uca Seviye
- Test Tasarımı için Yukarıdan Aşağıya yaklaşım kullanılır.
- Aşağıdan Yukarıya yaklaşım, Test Yürütme için kullanılır.
SOA Testi Stratejisi
Test Planlama Yaklaşımı,
- Uygulamanın tam mimarisi, SOA Test Uzmanları tarafından anlaşılmalıdır.
- Uygulamanın bağımsız hizmetlere (kendi istek ve yanıt yapısına sahip olan ve yanıt oluşturmak için başka herhangi bir hizmete bağlı olmayan Hizmet) ayrılması gerekir.
- Uygulama yapısının üç bileşene (Veriler, Hizmetler ve ön uç uygulamalar) yeniden düzenlenmesi gerekir.
- Tüm bileşenlerin dikkatlice analiz edilmesi ve iş senaryolarının taslak haline getirilmesi gerekir.
- İş senaryoları, ortak senaryolar ve uygulamaya özel senaryolar olarak sınıflandırılmalıdır.
- Bir İzlenebilirlik Matrisi hazırlanmalı ve tüm test senaryoları iş senaryolarına göre izlenmelidir.
Test Yürütme Yaklaşımı
- Her hizmet bileşeni test edilmelidir.
- Servis bileşenlerinin Entegrasyon Testi, servisler boyunca veri akışını ve veri bütünlüğünü doğrulamak için yapılmalıdır.
- Tüm modelin Sistem Testi, ön uç uygulama ile veritabanı arasındaki veri akışını doğrulamak için yapılmalıdır.
- İnce ayar ve optimum performans için Performans Testi yapılmalıdır.
SOA Test Yöntemleri
1) İş senaryosu odaklı veri bazlı testler,
- Sistemle ilgili çeşitli iş yönleri analiz edilmelidir.
- Senaryolar entegrasyona göre geliştirilmelidir.
- Uygulamanın çeşitli web hizmetleri
- Web hizmetleri ve uygulama.
- Veri kurulumu yukarıdaki senaryolara göre yapılmalıdır.
- Veri kurulumu senaryoları uçtan uca kapsayacak şekilde yapılmalıdır.
2) Taslaklar
- Hizmetleri test etmek için kukla arayüzler oluşturulacaktır.
- Bu arayüzler aracılığıyla çeşitli girdiler sağlanabilir ve çıktılar doğrulanabilir.
- Bir uygulama, test edilmeyen (üçüncü taraf hizmeti) harici bir hizmete yönelik bir arabirim kullandığında, Entegrasyon Testi sırasında bir saplama oluşturulabilir.
3) Regresyon testi
- Sistemlerin kararlılığını ve kullanılabilirliğini sağlamak için uygulamada Regresyon Testi birden fazla sürüm olduğunda yapılmalıdır.
- Uygulamanın önemli bir bölümünü oluşturan hizmetleri kapsayan kapsamlı bir regresyon test paketi oluşturulacaktır.
- Bu test paketi, projenin birden çok sürümünde yeniden kullanılabilir.
4) Hizmet Seviyesi Testi
Hizmet Seviyesi Testi, bileşenin işlevsellik, güvenlik, performans ve birlikte çalışabilirlik açısından test edilmesini içerir.
Her Hizmetin önce bağımsız olarak test edilmesi gerekir.
5) Fonksiyonel Test
Fonksiyonel Testler her hizmette yapılmalıdır.
- Hizmetin her isteğe doğru yanıtı verdiğinden emin olun.
- Geçersiz veri, bozuk veri vb. İçeren istekler için doğru hatalar alınır.
- Hizmetin çalışma zamanında gerçekleştirmesi gereken her işlem için her isteği ve yanıtı kontrol edin.
- Sunucu, istemci veya ağ düzeyinde bir hata oluştuğunda hata mesajlarını doğrulayın.
- Alınan yanıtların doğru formatta olduğunu doğrulayın.
- Yanıtta alınan verilerin istenen verilere karşılık geldiğini doğrulayın.
6) Güvenlik Testi
Web hizmetinin güvenlik testi, SOA uygulamasının hizmet seviyesi testi sırasında önemli bir husustur; bu, uygulamanın güvenliğini sağlar.
Test sırasında aşağıdaki faktörlerin ele alınması gerekir:
- WS-Security testi ile tanımlanan Endüstri Standardına, Web Hizmeti tarafından uyulmalıdır.
- Güvenlik önlemleri kusursuz çalışmalıdır.
- Belgelerdeki verilerin ve dijital imzaların şifrelenmesi
- Kimlik doğrulama ve yetkilendirme
- SQL Injection, Malware, XSS, CSRF, diğer güvenlik açıkları XML üzerinde test edilecektir.
- Hizmet Reddi saldırıları
7) Performans Testi
Hizmetler yeniden kullanılabilir olduğundan ve birden fazla uygulama aynı hizmeti kullanıyor olabileceğinden hizmetin Performans Testinin yapılması gerekmektedir.
Test sırasında aşağıdaki faktörler dikkate alınır:
- 8) Hizmetin performansının ve işlevselliğinin ağır yük altında test edilmesi gerekir.
- Hizmetin performansı, bireysel ve uygulama içinde çalışırken kıyaslanmalıdır, bununla birleştirilir.
- Servisin yük testi yapılmalıdır
- yanıt süresini doğrulamak için
- darboğazları kontrol etmek
- CPU ve bellek kullanımını doğrulamak için
- ölçeklenebilirliği tahmin etmek
9) Entegrasyon seviyesi testi
- Hizmet seviyesi testi, yalnızca hizmetlerin ayrı ayrı düzgün çalışmasını sağlar, bağlı bileşenlerin çalışmasını garanti etmez.
- Entegrasyon Testi, esas olarak arayüzlere odaklanılarak yapılır.
- Bu aşama, tüm olası iş senaryolarını kapsar.
- Uygulamanın İşlevsel Olmayan testi bu aşamada bir kez daha yapılmalıdır. Güvenlik, uyumluluk ve Performans Testi, sistemin her yönüyle kullanılabilirliğini ve istikrarını sağlar.
- Hizmetler arasındaki veri iletişiminin tutarlılığını doğrulamak için iletişim ve ağ protokolleri test edilmelidir.
10) Uçtan Uca Test
Bu aşama, uygulamanın iş gereksinimlerini hem işlevsel hem de işlevsel olmayan şekilde onaylamasını sağlar.
Aşağıdaki öğelerin uçtan uca test sırasında test edilmesi sağlanır.
- Entegrasyondan sonra beklendiği gibi çalışan tüm hizmetler
- İstisna işleme
- Uygulamanın Kullanıcı Arayüzü
- Tüm bileşenlerde uygun veri akışı
- İş süreci
SOA testindeki zorluklar
- Hizmetler için arayüz eksikliği
- Test süreci birden fazla sisteme yayılır ve böylece karmaşık veri ihtiyaçları yaratır
- Uygulama, değişme eğiliminde olan çeşitli bileşenlerin bir koleksiyonudur. Regresyon Testine duyulan ihtiyaç daha sıktır.
- Çok katmanlı mimari nedeniyle kusurları izole etmek zordur.
- Hizmet farklı arayüzlerde kullanılacağından yükü tahmin etmek zordur ve bu nedenle performans testi planlamasını külfetli hale getirir.
- SOA, heterojen teknolojilerin bir koleksiyonudur. Bir SOA uygulamasının test edilmesi, farklı becerilere sahip kişiler gerektirir ve bu da planlama ve yürütme maliyetlerini artırır.
- Uygulama birden fazla hizmetin bir entegrasyonu olduğundan, güvenlik testinin kendine özgü sıkıntıları vardır. Kimlik doğrulama ve yetkilendirmenin doğrulanması oldukça zordur.
SOA Test Araçları
Piyasada, test uzmanlarına SOA uygulamalarını test etmede yardımcı olacak birçok SOA test aracı bulunmaktadır. Popüler SOA Test Araçlarından bazıları şunlardır :
1) SABUN UI
"SOAP UI", Hizmetler ve API Testi için açık kaynaklı bir İşlevsel test aracıdır.
- Masaüstü uygulaması
- Birden çok protokolü destekler - SOAP, REST, HTTP, JMS, AMF, JDBC
- Web hizmetleri geliştirilebilir, incelenebilir ve çalıştırılabilir.
- Ayrıca yük testi, Otomasyon Testi ve güvenlik testi için de kullanılabilir
- Stub'lar MockServices tarafından oluşturulabilir
- Web Servis istekleri ve testleri, web servis istemcisi aracılığıyla otomatik olarak oluşturulabilir.
- Dahili raporlama araçlarına sahip olun
- SmartBear tarafından geliştirildi
2) iTKO LISA
"LISA", SOA gibi dağıtılmış sistemler için işlevsel bir test çözümü sağlayan bir ürün paketidir.
- Regresyon, entegrasyon, yük ve Performans Testi için de kullanılabilir.
- İTKO (CA Technologies) tarafından geliştirildi
- Testleri tasarlamak ve yürütmek için kullanılabilir.
3) HP Servis Testi
"Hizmet Testi", hem kullanıcı arayüzünü hem de paylaşılan hizmetler testini destekleyen işlevsel bir test aracıdır
- Hizmetlerin hem işlevsel hem de performans testi tek bir betik ile yapılabilir.
- HP QC ile entegre edilmiştir.
- Muazzam miktarda hizmet ve veri yönetilebilir.
- JEE, AXIS ve DotNet istemci ortamlarını simüle ederek birlikte çalışabilirlik testini destekler.
- HP tarafından geliştirildi.
4) Parasoft SOA Testi
SOA Testi, API ve API uygulamalarının testleri için geliştirilmiş bir test ve analiz aracı paketidir.
- Web Hizmetleri, REST, JSON, MQ, JMS, TIBCO, HTTP, XML teknolojilerini destekler.
- İşlevsel, Birim, Entegrasyon, Regresyon, Güvenlik, Birlikte Çalışabilirlik, Uyumluluk ve Performans Testi mümkündür.
- Saplamalar, SOAP UI'den daha akıllı olan Parasoft Virtualize kullanılarak oluşturulabilir.
- ParaSoft tarafından geliştirildi
SOA Testi Kullanım Durumları
Aşağıdaki işlevleri ve Alt işlevleri içeren bir e-ticaret Web sitesini düşünün:
sipariş düzenleniyor
FAZ 1
SOA testinin ilk aşamasında, yani Test Stratejisi Aşamasında, uygulama Hizmetlere ve iş işlevlerine ayrılmıştır.
Aşağıda uygulamadaki Hizmetler olduğunu düşünelim.
- Sipariş Oluştur
- Müşteri Durumunu Kontrol Edin
- Sipariş Durumunu Değiştir
- Sipariş durumunu kontrol et
- Envanteri kontrol et
İşletme işlevleri, Web Sitesinin işlevleriyle aynıdır.
Not: Test stratejisi belgesi, hizmetin ve test edilmesi gereken işlevlerin listesini içerecektir.
FAZ 2
Test Planlama aşaması. Her seviye için test senaryoları yazılır.
- Uçtan uca seviye. Test senaryoları, her iş kullanım durumu ve akışı için yazılır.
Aşağıda test senaryolarının örnekleri verilmiştir
- Aktif kullanıcı ile bir sipariş oluşturun.
- Etkin olmayan bir kullanıcıyla sipariş oluşturun.
- Mevcut ürünle sipariş miktarı
- Mevcut ürün ile sipariş miktarı> kullanılabilir miktar ile bir sipariş oluşturun.
- Birden çok öğe içeren bir sipariş oluşturun
- Bir siparişi tamamen iptal edin.
- Siparişi kısmen iptal edin.
- Entegrasyon seviyesi. Veritabanı ve kullanıcı arayüzünün entegrasyonu için test senaryoları yazılır.
Aşağıda örnek test durumları verilmiştir.
- Tek bir ürünle yeni bir sipariş oluşturun. Veritabanında siparişin oluşturulduğunu doğrulayın.
- Tek bir ürünle yeni bir sipariş oluşturun. Sipariş için hesaplanan fiyatın doğru olduğunu doğrulayın.
- Tek bir ürünle yeni bir sipariş oluşturun. Mevcut ürün miktarının sipariş miktarından az olduğunu doğrulayın.
- Kullanıcı arayüzünde görüntülenen siparişin durumunun veritabanındaki ile aynı olduğunu doğrulayın.
- Siparişi iptal edin ve siparişin durumunun veritabanında değiştirildiğini doğrulayın.
- İlk ödeme için, kullanıcı arayüzüne girilen ödeme ayrıntılarının veri tabanına kaydedildiğini doğrulayın.
- Ödemeleri iade etmek için, veri tabanındaki ödeme ayrıntılarının kullanıcı arayüzünde görüntülendiğini doğrulayın.
- Servis seviyesi. Her hizmet tüm veri koşulları için test edilir.
Aşağıda birkaç örnek verilmiştir.
Hayır. | sipariş detayları | Sipariş Durumu |
---|---|---|
1 | Sipariş Oluşturun. Öğe Sayısı = 1 | Siparişteki miktar |
2 | Sipariş Oluşturun. Öğe Sayısı> 1 | Sipariş Miktarı |
3 | Ürün Sipariş Sayısını Oluştur = 1 | Sipariş Miktarı> Veritabanındaki miktar |
4 | Sipariş durumunu kontrol et | Veritabanındaki durum = Aktif |
5 | Sipariş durumunu kontrol et | Veritabanındaki durum = Gönderildi |
6 | Sipariş durumunu kontrol et | Veritabanındaki durum = İptal edildi |
7 | Sipariş durumunu kontrol et | Sipariş kimliği = Geçersiz |
8 | Ürün mevcudiyetini kontrol edin | Ürün miktarı> 0 |
9 | Ürün mevcudiyetini kontrol edin | Ürün miktarı = 0 |
10 | Ürün mevcudiyetini kontrol edin | Ürün kimliği = geçersiz |
3. AŞAMA - Test Yürütme
Test Yürütme, aşağıdan yukarıya yaklaşımı kullanır, yani önce hizmet seviyesi testi, ardından Entegrasyon seviyesi ve son olarak Uçtan Uca test yapılır.
1) Hizmet seviyesi
Uygulamayı test etmek için Soapui aracının düşünüldüğünü düşünelim.
WSDL ve URL, SOAP test penceresine göz atılır.
Her hizmet için talep, talep penceresinde görüntülenecektir.
Verileri hizmet seviyesi test senaryolarına göre değiştirerek, her test senaryosu için istekler oluşturulur.
Test durumu |
İstek |
Beklenen yanıt |
---|---|---|
Sipariş Oluşturun. Ürün Sayısı = 1 Siparişteki Miktar |
|
|
Sipariş Oluşturun. Ürün Sayısı> 1 Sipariş Miktarı |
|
|
Sipariş Oluştur Kalem Sayısı = 1 Sipariş Miktarı> DB'deki Miktar |
|
|
Veritabanındaki Sipariş durumunu kontrol edin = Aktif |
|
|
Veritabanındaki Sipariş durumunu kontrol edin = Gönderildi |
|
|
Sipariş durumunu kontrol edin Sipariş kimliği = Geçersiz |
|
|
Ürün kullanılabilirliğini kontrol edin Ürün miktarı> 0 |
|
|
Ürün kullanılabilirliğini kontrol edinÜrün miktarı = 0 |
|
|
Ürün kullanılabilirliğini kontrol edin Ürün kimliği = geçersiz |
|
|
2) Entegrasyon Seviyesi
Entegrasyon seviyesi test durumları, Kullanıcı arayüzünde ve veritabanında yürütülür.
- Tek bir öğeyle sipariş oluşturun -
- Bir kullanıcı web sitesini açar.
- Sipariş vermeye gider.
- Geçerli bir ürün ve miktar seçer ve siparişi kaydeder.
- Siparişin başarıyla verildiğini belirten bir mesaj görüntülenmelidir.
- Bir kullanıcı veritabanını açar ve siparişin ayrıntılarının web sitesine girilenle aynı olup olmadığını kontrol eder.
3) Uçtan Uca Seviye
İş akışları ve kullanım senaryoları, Kullanıcı arayüzünde yürütülür.
- Birden çok öğe içeren bir sipariş oluşturun -
- Bir kullanıcı bir web sitesi açar.
- Sipariş vermeye gider.
- Geçerli bir ürün ve miktar hakkında sorgular, bunları sepete ekler.
- Diğer geçerli ürünler, geçerli miktarlarla eklenir ve sipariş kaydedilir. Ödeme, yeni bir ödeme yöntemi ile yapılır ve sipariş verilir.
- "Sipariş başarıyla verildi" mesajı görüntülenmelidir.
- Bir test uzmanı, tüm akışın veri çarpıtılmadan yapıldığını doğrulamalıdır.
Sonuç:
İyi hizmet sağlamak için test, kaynaklar, araçlar ve uyumluluk için doğru stratejiyi belirleyerek, SOA testi tamamen ve mükemmel şekilde test edilmiş uygulama sağlayabilir.