Servis sanallaştırma test süreçleri için neden önemlidir ?

Oğuz Bor
3 min readDec 4, 2020

--

Yazılım geliştirme projelerinde herzaman zorlu bir test süreci vardır. Test süreçleri içerisinde kontrol edemediğiniz, erişimi kısıtlı veya dış servislere bağımlı olduğunuz, test datası yaratılamayan ekranların olması, maliyetlerin giderek artması test ekipleri için en büyük sorunların başında gelir..

Tabi bunun yanında “Yukarıdan baskı var abi” geri dönüşünüde unutmamak gerekiyor :)

Sanallaştırma — virtualization çok fazla türde ve çok fazla yöntemlerle birlikte sürekli gelişmekte olan bir alanı ifade etmekte kullanılan genel bir tabirdir. Bu makalede test ekiplerinde ihtiyaç duyulan uygulama-servis sanallaştırma mimarisi üzerinde duracağız.

Sanallaştırma Nedir ?

Servis bazlı mimarilerde geliştirme ve test maliyetlerini azaltmak, servislerin performansını kontrol etmek ve istenilen durumların kolay yaratılmasını sağlamak gibi amaçlar için kullanılan bir teknolojidir.

Sanallaştırma teknolojisi test ekipleri özelinde, süreci akmayan servisler, sık sık alınan hatalar, data yönetimindeki sorunlar, akışların birbirine bağlı olmaması gibi durumlarda dış servislere bağımlılığı ortadan kaldırarak, Mock kod’lara gerek kalmaksızın verimliliği arttırmak ve test süreçlerini olgunlaştırmak için kullanılır.

(Hiç bir kurum test edemediği servisi, ekranı yada modül’ü canlıya geçmek istemez)

Sanallaştırma teknolojisi temel olarak sunucu, uygulama, işletim sistemi ve depolamalar üzerinde yoğun olarak kullanılır.

Sistem bağımlılıkları, herzaman için test ortamlarının kurulmasında ve yönetilmesinde sizlere zorluklar yaşatır.

Örnek modelde görüldüğü gibi çok karmaşık sistemleri servis sanallaştırma teknolojisi ile oldukça basit ve kullanışlı hale getirilebiliyor.

Tabiki burada kullandığınız sanallaştırma teknolojisi üzerinde farklılıklar olabilir.

Peki Sanallaştırmanın Faydaları Nelerdir ?

· Test maliyetini düşürür.

· Hata tespiti ve izolasyon süresini kısaltır.

· Uyum sorununun ortadan kaldırır ve Test kapsamasını artırır.

· Otomasyon için entegrasyon sürekliliğini sağlar.

· Regresyon test süresi düşer.

· Daha gerçekçi performans testleri yapmanızı sağlar.

· Sanallaştırılmış servis konfigürasyonları ile testlerin a/g eforları daha azdır.

· Prod servisteki data, performans ve erişilebilirlik kısıtlarını ortadan kaldırır.

· Canlı ortamın kaynak yeterliliklerini önizlemek için mükemmel bir simülator görevi üstlenir.

· Uygulamalarınızı third-party’ler geliştiriyorsa, ortam bağımlılıklarınızı azaltır ve erişim maliyetlerini düşürür.

Genelde yazılım test projelerinde test süresi gecikmeleri, bütçe kısıtlamaları, gerçek servislerin preprod ortamda sürekli ayakta olamaması gibi durumlarla karşılaşılabilir, bu durumlarda maksimum kaliteyi ve proje akışına uygun olarak projenin test edilmesi diğer servislerden gelen davranışların sanallaştırmasıyla elde edilir.

Sanallaştırma için gerçek servislerin url, request, response ve collectionları analiz edilerek uygulamaya uygun olacak şekilde kodlanmalıdır. Servisler genel olarak Xml, Json, Java, Wsdl yapılarında entegre edilir. Ancak kullandığınız teknolji yetkinliklerine göre farklılık gösterebilir;

Ben Micro Focus ailesinin ürünü olan “Service Virtualization” ürünün kullanıyorum ve sanal servis yaratırken birkaç farklı tipte çalışma yapabiliyorum.

Servis alt yapısını sağlam şekilde oluşturulması biraz efor alabilir ama oluşturulduktan sonra test servisleri sürekli olarak çalışır.

Sorunsuz bir test servis alt yapısı için designer ve server tarafı özelinde, iki makinenin bağlı bulunduğu bir veri tabanı gereklidir. Yine teknolojiye göre farklılık gösterebilir ama db olması test dataları ve servis süreçleri için yararlı olacaktır.

Designer üzerinde proje oluşturup altına web servisleri basit şekilde ekleyebilirsiniz. Bu web servislere kurallar oluşturup kurguladığınız simülasyonda istenilen cevabı dönderebilirsiniz.

Server makinesinde ise designer’da kurguladığınız web servisleri saklanır. Performans ve diğer metrikleri buradan ayarlayabilirsiniz.

Bir sonraki yazımda görüşmek üzere 🤘🏼

Kaynak:

--

--