SOA Testi Nedir? Örnekli Öğretici
SOA Testi Nedir?
SOA (Hizmet Odaklı Archi(Teknoloji) Test, uygulama bileşenlerinin genellikle bir ağ üzerinden iletişim protokolleri aracılığıyla iletişim kuracak şekilde tasarlandığı SOA mimari stilinin Test edilmesidir.
SOA nedir?
SOA, iş ihtiyaçlarını karşılamak amacıyla 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, SOA adı verilen program parçalarını ya geliştirir ya da satın alır. HİZMETLER.
Hizmet Nedir?
- Hizmetler, başka herhangi bir uygulama veya süreç tarafından yeniden kullanılabilen veya tekrarlanabilen, uygulama veya iş sürecinin işlevsel bir birimi olabilir. (Örneğin, yukarıdaki görselde Payment Gateway, herhangi bir e-ticaret sitesi tarafından yeniden kullanılabilen bir hizmettir. Ödeme yapılması gerektiğinde e-ticaret sitesi Ödeme Ağ Geçidi hizmetini arar/Talep eder. Ödeme ağ geçidinde yapıldıktan sonra e-ticaret sitesine yanıt gönderilir)
- Hizmetlerin montajı kolaydır ve bileşenlerin yeniden yapılandırılması kolaydır.
- Hizmetler yapı taşlarına benzetilebilir. İhtiyaç duyulan her türlü uygulamayı oluşturabilirler. Bunları uygulamaya veya iş sürecine eklemek ve kaldırmak kolaydır.
- Hizmetler, kod parçalarından ziyade gerçekleştirdikleri iş işlevine göre tanımlanır.
Web Hizmetleri
Web hizmetleri, web üzerinden kullanılabilen bağımsız uygulama bileşenleridir.
Web'de yayınlanabilir, bulunabilir ve kullanılabilirler. İnternet üzerinden iletişim kurabilirler.
- Hizmet Sağlayıcı hizmeti internette yayınlar.
- Müşteri, Web Hizmeti Kayıt Defterinden belirli bir web hizmetini arar
- Gerekli web hizmeti için bir URL ve WSDL döndürülür. WSDL ve URL'yi kullanarak servis sağlayıcı ile istek sahibi arasındaki iletişim SOAP mesajları aracılığıyla gerçekleşir.
- Bir tüketici bir web servisini aradığında sağlayıcıyla bir HTTP bağlantısı kurulacaktır.
Sağlayıcıya gerekli web hizmeti mantığını çağırma talimatını 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.
Örnek E-posta
Bir Web Sitesinin ve Arama Motorunun ana sayfası günlük hava durumu raporunu görüntüler. Hava raporu bölümünü baştan sona kodlamak yerine, bir satıcıdan hava durumu raporu hizmeti satın alınarak 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 sistemin sunduğu hizmetlerden oluşur.
Örneğin -
Aşağıdakilerden oluşan bir Sağlıklı Yaşam Web Sitesi düşünün:
- Kilo Takibi
- Kan Şekeri Takibi
- Kan Basıncı Takipçisi
İzleyiciler ilgili verileri ve girildikleri tarihi görüntüler. Hizmetler katmanı, ilgili verileri Veritabanından alan hizmetlerden oluşur.
- Ağırlık Takip hizmeti
- Kan Şekeri Takip hizmeti
- Kan Basıncı Takip hizmeti
- Giriş Hizmeti
İşlem Katmanı
Süreç Katmanı, tek bir işlevselliğin parçası olan süreçlerin ve hizmetlerin toplanmasından oluşur.
İşlemler kullanıcı arayüzünün bir parçası (örneğin bir arama motoru), bir ETL aracının bir parçası (veritabanından veri almak için) olabilir.
Bu katmandaki ana odak noktası kullanıcı arayüzleri ve süreçler olacaktır.
Ağırlık izleyicinin kullanıcı arayüzü ve Veritabanı ile entegrasyonu öncelikli odak noktasıdır.
Aşağıdaki işlevler dikkate alınacaktır
- Yeni veri ekleme
- Mevcut verileri düzenleme
- Yeni izleyici oluşturuluyor
- Veri silme
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ğı yaklaşımı kullanılır.
- Test Yürütme için Aşağıdan Yukarı yaklaşımı kullanılır.
SOA Testi Stratejisi
Test Planlama Yaklaşımı,
- Uygulamanın tüm mimarisinin SOA Test Uzmanları tarafından anlaşılması gerekir.
- 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 hiçbir hizmete bağlı olmayan Hizmet) bölünmesi gerekir.
- Uygulama yapısının üç bileşen halinde yeniden düzenlenmesi gerekiyor: Veri, Hizmetler ve ön uç uygulamalar.
- Tüm bileşenlerin dikkatlice analiz edilmesi ve iş senaryolarının kaleme alınması gerekir.
- İş senaryoları ortak senaryolar ve uygulamaya özel senaryolar olarak sınıflandırılmalıdır.
- A İzlenebilirlik Matrisi hazırlanmalı ve tüm test senaryoları iş senaryolarına göre takip edilmelidir.
Test Yürütme Yaklaşımı
- Her hizmet bileşeni test edilmelidir.
- Entegrasyon Testi Hizmetler aracılığıyla veri akışını ve veri bütünlüğünü doğrulamak için hizmet bileşenlerinin kontrolleri yapılmalıdır.
- Sistem Testi Ön uç uygulama ile veritabanı arasındaki veri akışını doğrulamak için modelin tamamının değerlendirilmesi yapılmalıdır.
- Performans testi İnce ayar ve optimum performans için yapılmalıdır.
SOA Test Yöntemleri
1) İş senaryosuna dayalı veri tabanlı testler,
- Sistemle ilgili çeşitli iş yönleri analiz edilmelidir.
- Entegrasyona dayalı senaryolar geliştirilmelidir.
- Çeşitli Web hizmetleri uygulamanın
- Web hizmetleri ve uygulaması.
- Veri kurulumu yukarıdaki senaryolara göre yapılmalıdır.
- Veri kurulumu uçtan uca senaryoları da kapsayacak şekilde yapılmalıdır.
2) Taslaklar
- Hizmetleri test etmek için sahte arayüzler oluşturulacak.
- Bu arayüzler aracılığıyla çeşitli girişler sağlanabilmekte ve çıkışlar doğrulanabilmektedir.
- Bir uygulama, test altında olmayan harici bir hizmete (üçüncü taraf hizmeti) yönelik bir arayüz kullandığında, Entegrasyon Testi sırasında bir saplama oluşturulabilir.
3) Regresyon testi
- Gerileme testi Sistemlerin stabilitesini ve kullanılabilirliğini sağlamak için birden fazla sürüm olduğunda uygulamada yapılmalıdır.
- Uygulamanın önemli bir kısmını oluşturan servisleri kapsayan kapsamlı bir regresyon test paketi oluşturulacaktır.
- Bu test paketi projenin birden fazla sürümünde yeniden kullanılabilir.
4) Hizmet Seviyesi Testi
Hizmet Düzeyi Testi, bileşenin işlevsellik, güvenlik, performans ve birlikte çalışabilirlik açısından test edilmesini içerir.
Her Hizmetin ilk önce bağımsız olarak test edilmesi gerekir.
5) Fonksiyonel Test
Fonksiyonel Test her hizmette yapılmalıdır.
- Hizmetin her isteğe doğru yanıtı verdiğinden emin olun.
- Geçersiz veri, hatalı veri vb. içeren isteklerde 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ıt üzerine alınan verilerin talep edilen verilere karşılık geldiğini doğrulayın.
6) Güvenlik Testi
Web hizmetinin güvenlik testi, SOA uygulamasının hizmet düzeyi testi sırasında önemli bir husustur; bu uygulamanın güvenliğini sağlar.
Test sırasında aşağıdaki faktörlerin göz önünde bulundurulması gerekir:
- WS-Security testiyle tanımlanan Endüstri Standardına Web Hizmeti tarafından uyulmalıdır.
- Güvenlik önlemleri kusursuz çalışmalıdır.
- Verilerin şifrelenmesi ve Digibelgelerdeki toplam imzalar
- Kimlik doğrulama ve yetkilendirme
- SQL Enjeksiyonu, Kötü Amaçlı Yazılım, XSS, CSRF ve 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ı gerekir.
Test sırasında aşağıdaki faktörler dikkate alınır:
- Hizmetin performansının ve işlevselliğinin ağır yük altında test edilmesi gerekir.
- Bireysel olarak ve uygulama içerisinde çalışırken hizmetin performansının karşılaştırılması gerekir, onunla eşleştirilir.
- Servisin yük testi yapılmalı
- yanıt süresini doğrulamak için
- darboğazları kontrol etmek için
- CPU ve bellek kullanımını doğrulamak için
- ölçeklenebilirliği tahmin etmek
8) Entegrasyon seviyesi testi
- Hizmet seviyesi testi yalnızca hizmetlerin tek tek 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 olası tüm 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 açıdan 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.
9) Uçtan Uca test
Bu aşama, uygulamanın hem işlevsel hem de işlevsel olmayan iş gereksinimlerine uygunluğunu sağlar.
Aşağıdaki öğelerin uçtan uca test sırasında test edilmesi sağlanır
- Entegrasyondan sonra tüm hizmetler beklendiği gibi çalışıyor
- İstisna işleme
- Uygulamanın Kullanıcı Arayüzü
- Tüm bileşenlerden doğru veri akışı
- İş süreci
SOA testindeki zorluklar
- Hizmetler için arayüz eksikliği
- Test süreci birden fazla sistemi kapsadığından karmaşık veri ihtiyaçları yaratır
- Uygulama, değişme eğiliminde olan çeşitli bileşenlerin bir koleksiyonudur. Regresyon Testi ihtiyacı daha sık görülür.
- Çok katmanlı mimari nedeniyle hataları izole etmek zordur.
- Hizmet farklı arayüzlerde kullanılacağından yükü tahmin etmek zordur, dolayısıyla performans testi planlamasını zahmetli hale getirir.
- SOA, heterojen teknolojilerin bir koleksiyonudur. Bir SOA uygulamasının test edilmesi, planlama ve yürütme maliyetlerini artıran farklı beceri setlerine sahip kişileri gerektirir.
- Uygulama birden fazla hizmetin entegrasyonu olduğundan, güvenlik testinin de kendi payı 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. İşte popüler olanlardan bazıları SOA Test Araçları:
1) SABUN UI
“SOAP UI”, Hizmetler için açık kaynaklı bir İşlevsel test aracıdır ve API Testi.
- Masaüstü uygulaması
- Birden fazla protokolü destekler – SOAP, REST, HTTP, JMS, AMF, JDBC
- Web hizmetleri geliştirilebilir, incelenebilir ve çağrılabilir.
- Yük testi için de kullanılabilir, Otomasyon Testive güvenlik testleri
- Taslaklar 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.
- iTKO (CA Technologies) tarafından geliştirildi
- Testleri tasarlamak ve yürütmek için kullanılabilir.
3) HP Servis Testi
“Servis Testi” hem kullanıcı arayüzü hem de paylaşılan servis testlerini destekleyen işlevsel bir test aracıdır
- Hizmetlerin hem fonksiyonel hem de performans testleri tek bir script ile yapılabilmektedir.
- HP QC ile entegre edilmiştir.
- Çok büyük miktardaki hizmet ve veri yönetilebilir.
- JEE, AXIS ve DotNet istemci ortamlarını simüle ederek birlikte çalışabilirlik testini destekler.
- HP tarafından geliştirilmiştir.
4) Parasoft SOA Testi
SOA Testi, API ve API uygulamalarının test edilmesi için geliştirilmiş bir test ve analiz aracı paketidir.
- Web Servisleri, REST, JSON, MQ, JMS, TIBCO, HTTP, XML teknolojilerini destekler.
- Fonksiyonel, Birim, Entegrasyon, Regresyon, Güvenlik, Birlikte Çalışabilirlik, Uyumluluk ve Performans Testleri mümkündür.
- Stub'lar, SOAP UI'dan daha akıllı olan Parasoft Virtualize kullanılarak oluşturulabilir.
- ParaSoft tarafından geliştirildi
SOA Testi Kullanım Durumları
Aşağıdaki fonksiyonları ve Alt fonksiyonları 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 Hizmetler ve iş fonksiyonlarına bölünür.
Aşağıda uygulamadaki Hizmetleri ele alalım.
- Sipariş Oluştur
- Müşteri Durumunu Kontrol Edin
- Sipariş Durumunu Değiştir
- Sipariş Durumu Kontrol Edin
- Envanteri kontrol et
İş fonksiyonları Web Sitesinin fonksiyonlarıyla 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ılmıştır.
- Uçtan Uca seviyeye. Test senaryoları her iş kullanım senaryosu ve akışı için yazılmıştır. Aşağıda test senaryolarının örnekleri verilmiştir
- Etkin kullanıcıyla bir sipariş oluşturun.
- Etkin olmayan bir kullanıcıyla sipariş oluşturun.
- Sipariş miktarı < mevcut miktar olan mevcut ürünle bir sipariş oluşturun.
- Sipariş miktarı > mevcut miktar ile mevcut ürünle bir sipariş oluşturun.
- Birden fazla öğe içeren bir sipariş oluşturma
- Bir siparişi tamamen iptal edin.
- Siparişi kısmen iptal edin.
- Entegrasyon düzeyi. Test senaryoları veritabanı ve kullanıcı arayüzünün entegrasyonu için yazılmıştır. Aşağıda örnek test durumları verilmiştir.
- Tek bir ürünle yeni bir sipariş oluşturun. Siparişin veritabanında 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ün miktarının sipariş tutarından az olduğunu doğrulayın.
- Kullanıcı arayüzünde görüntülenen siparişin durumunun veritabanındakiyle 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 bilgilerinin veritabanında kayıtlı olduğundan emin olun.
- Ödemeleri iade etmek için veritabanındaki ödeme ayrıntılarının kullanıcı arayüzünde görüntülendiğinden emin olun.
- 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ştur. Ürün Sayısı = 1 | Siparişteki miktar < Veritabanındaki miktar |
| 2 | Sipariş Oluştur. Ürün Sayısı > 1 | Siparişteki Miktar < Veritabanındaki miktar. |
| 3 | Sipariş No. Ürün Oluştur = 1 | Siparişteki 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 kullanılabilirliğini kontrol edin | Ürün miktarı >0 |
| 9 | Ürün kullanılabilirliğini kontrol edin | Ürün miktarı =0 |
| 10 | Ürün kullanılabilirliğini kontrol edin | Ürün kimliği = geçersiz |
AŞAMA 3 – Testin Yürütülmesi
Test Yürütme aşağıdan yukarıya yaklaşımını kullanır; yani önce hizmet seviyesi testi yapılır, ardından Entegrasyon seviyesi ve son olarak Uçtan Uca test.
1) Hizmet seviyesi
Bunu dikkate alalım Sabunui Araç, uygulamayı test etmek için kabul edilir.
MKS wsdl ve URL, SOAP'ın test penceresine göz atılır.
Her hizmete ilişkin talep, istek penceresinde görüntülenecektir.
Veriler, hizmet seviyesi test senaryolarına göre değiştirilerek, her test senaryosu için istekler oluşturulur.
| Test Durumu | Talep Alma | Beklenen yanıt |
|---|---|---|
| Sipariş Oluştur. Ürün Sayısı = 1Siparişteki miktar < Veritabanındaki miktar | x2 2 | o3251 Başarılı |
| Sipariş No Oluştur Ürün Sayısı > 1Siparişteki Adet < db'deki Adet | y1 1 y2 3 | o3251 Başarılı |
| Sipariş No'yu oluşturun. Ürün Sayısı = 1Siparişteki Adet > Veritabanındaki Adet | x23 200 | hükümsüz Başarısız |
| Veritabanındaki Sipariş durumuDurumunu kontrol edin = Aktif | o9876 | Aktif Başarılı |
| Veritabanındaki Sipariş durumuDurumunu kontrol edin = Sevk Edildi | o9656 | Gönderildi Başarılı |
| Sipariş durumunu kontrol edin Sipariş kimliği = Geçersiz | y5686 | hükümsüz Başarısız |
| Ürün stok durumunu kontrol edin Ürün miktarı >0 | d34 | 34 Evet Başarılı |
| Ürün stok durumunu kontrol edin Ürün miktarı =0 | y34 | 0 HAYIR Başarılı |
| Ürünün stok durumunu kontrol edinÜrün kimliği = geçersiz | sder | Başarısız |
2) Entegrasyon Düzeyi
Entegrasyon düzeyindeki test senaryoları Kullanıcı arayüzünde ve veritabanında yürütülür.
- Tek bir ürünle sipariş oluşturun –
- Bir kullanıcı web sitesini açar.
- Sipariş vermeye gidiyor.
- 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.
- Kullanıcı veri tabanını açar ve siparişe ait bilgilerin web sitesinde girilen bilgilerle aynı olup olmadığını kontrol eder.
3) Uçtan Uca seviyeye
İş akışları ve kullanım senaryoları Kullanıcı arayüzünde yürütülür.
- Birden fazla öğe içeren bir sipariş oluşturun –
- Bir kullanıcı bir web sitesi açar.
- Sipariş vermeye gidiyor.
- Geçerli bir ürün ve miktar hakkında bilgi alır ve bunları sepete ekler.
- Diğer geçerli ürünler geçerli adetlerle eklenir ve sipariş kaydedilir. Ödeme yeni bir ödeme yöntemiyle yapılır ve sipariş verilir.
- “Sipariş başarıyla verildi” mesajı görüntülenmelidir.
- Bir testçi, tüm akışın verilerde çarpıtma yapılmadan yapıldığını doğrulamalıdır.
Sonuç
İyi hizmet sağlamak amacıyla test, kaynaklar, araçlar ve uyumluluk için doğru stratejiyi çizerek SOA testi, eksiksiz ve mükemmel bir şekilde test edilmiş uygulama sunabilir.







