=Paper= {{Paper |id=Vol-1980/YTM_2017_paper_6 |storemode=property |title=Bulut Bilisim Teknolojisinin Yazilim PerformansTestlerinde Kullanimi(Usage of Cloud Computing on Software Performance Testing) |pdfUrl=https://ceur-ws.org/Vol-1980/YTM_2017_paper_6.pdf |volume=Vol-1980 |authors=Gurkan Alpaslan,Oya Kalipsiz |dblpUrl=https://dblp.org/rec/conf/uyms/AlpaslanK17 }} ==Bulut Bilisim Teknolojisinin Yazilim PerformansTestlerinde Kullanimi(Usage of Cloud Computing on Software Performance Testing)== https://ceur-ws.org/Vol-1980/YTM_2017_paper_6.pdf
Bulut Bilişim Teknolojisinin Yazılım Performans
             Testlerinde Kullanımı

                       Gürkan Alpaslan1 and Oya Kalıpsız2
1,2
      Bilgisayar Mühendisliği Bölümü, Yıldız Teknik Üniversitesi, İstanbul, Türkiye
                  1
                    gurkana@yildiz.edu.tr,2 oya@ce.yildiz.edu.tr



       Özet. Yazılım test işlemi, yazılım geliştirmenin kritik bir adımı olmasının
       yanında, maliyet, iş gücü ve yüksek kaynak kullanımı gerektiren bir
       süreçtir. Bulut bilişim ise, sağladığı yüksek bellek ve işlemci gücü sayesinde
       son dönemin popüler teknolojileri arasındadır. Bulut bilişim teknolo-
       jisinin yazılım testlerinde kullanımı, yazılım test işleminde harcanan efor
       ve maliyeti etkiler mi? Yazılım testlerini yerel kaynaklar yerine bir dış
       kaynak olarak bulut teknolojisinde sağlamanın yararları ve dezavanta-
       jları nelerdir? Küçük ölçekli sistemler için, ücretsiz sunulan bulut test
       uygulamaları hangi düzeyde yazılım testi gerçekleştirmektedir ve hangi
       düzeyde sonuç üretebilmektedir? Bu çalışmada, bu üç kritik soruya ce-
       vap aranmıştır ve deneysel uygulama çalışması ile bulut üzerinde yazılım
       test işlemi incelenmiştir.


       Anahtar kelimeler. Bulut bilişim, Yazılım testi, Yazılım performans
       testleri




                                                                                        477
            Usage of Cloud Computing on Software
                     Performance Testing

                           Gürkan Alpaslan1 and Oya Kalıpsız2
    1,2
          Department of Computer Engineering, Yildiz Technical University, Istanbul,
                                        Turkey
                    1
                      gurkana@yildiz.edu.tr,2 oya@ce.yildiz.edu.tr



           Abstract. Software testing process is not only a critic step on software
           development, but also, it is a process that requires cost, labor force and
           source. Besides, cloud computing is a recently popular technology since
           it provides high process ability and high memory capacity. Is it a effec-
           tive way to utilize cloud computing for software testing implementation?
           What are the advantages and disadvantages of this method? What kind
           of testing process can be done with cloud applications and what kind of
           results do they provide? In this study, we answer these critical questions
           and implement a case study.


           Keywords. Cloud Computing, Software testing, Software performance
           testing


1    Giriş
Bulut bilişim, dış sistemler tarafından sağlanan kaynakların yerel bilgisayarlar
üzerinden erişilmesidir [1]. Bu teknolojide sanallaştırılmış makinelere uzaktan
erişim vasıtasıyla erişilerek, erişilen makinelerin bellek ve işlemci gücünden fay-
dalanılır. Ayrıca makineler üzerindeki uygulama ve programlar sayesinde, uygu-
lama ve yazılım düzeyinde bulut teknolojisinden faydalanılabilir. Bu sayede, in-
ternet ağları üzerinden dünya üzerinde lokasyon önemi olmadan, bulut içerisin-
deki verilere erişilebilir [5], [8].
    Bu teknolojide, veri güvenliği, sistem bakımı gibi sürdürülebilir yapılar da
bulut sağlayıcısı tarafından karşılanmaktadır [2]. Ayrıca bulut bilişim teknolojisi
ölçeklenebilir bir yapıdadır. Yani anlık olarak yüksek kaynaklara ulaşılabilmekte;
ihtiyaç düzeyinde kaynak tüketimi düzenlenebilmektedir. Bu sayede, belli bir
zaman dilimi için yüksek kaynak kullanımı gerektiren bir durum olduğunda, anlık
olarak sistemimizi bu duruma adapte ederek talep karşılanabilir. Bu durumu,
yerel imkanlar ile şirket bünyesinde gerçekleştirmek zaman, deneyim, yetişmiş
personel ve yüksek maliyet gerektirecektir [10]. Bulut bilişimde ise, saniyeler
içinde, sadece kullanılan maliyetin ödenmesi ile adaptasyon sağlanabilir [3]. Bu
özelliklerine ek olarak, dağıtık sistem uygulamaları için, bulut bilişim avantajlar
sunmaktadır. Farklı lokasyonlardaki sistemler ortak bulut ağı üzerinden birbirleri
ile etkileşim kurabilmektedir [4].




                                                                                        478
    Uygulama düzeyinde bulut kullanımı ile, bulut üzerindeki uygulama ve prog-
ramlardan ağ üzerinde erişen tüm sistemler faydalanmaktadır. Bu anlamda,
yerelde olmayan uygulamalardan, yerel bilgisayarlara yüklemeden faydalanılması
sağlanır. Bu uygulamaların bir kategorisi de yazılım test uygulamalarıdır [6].
    Yazılım test aşaması, oluşturulan yazılımın uygunluğunu ve doğruluğunu
denetleme sürecidir. Bu aşamada analiz aşamasında belirlenen gereksinimlerin
karşılanıp karşılanmadığı kontrol edilir. Test aşamaları, incelediği yazılım parçası
özelliklerine ve uyguladığı teste göre çeşitlere ayrılmaktadır. Bu test çeşitleri
ikinci bölümde anlatılmıştır. Bulut teknolojisi kullanılarak, özellikle yükleme,
stres ve performans testleri uygulanmaktadır.
    Bu bildiri çalışması şu bölümlerden oluşmaktadır. İkinci bölümde bulut bil-
işim üzerinde test sürecinin nasıl gerçeklendiği; avantaj ve dezavantajları an-
latılmıştır. Üçüncü bölümde, yapılan uygulama çalışması anlatılmış, dördüncü
bölümde uygulama çalışmasının bulguları değerlendirilmiştir. Beşinci bölümde,
sonuç ve öneriler belirtilmiştir.


2     Bulut Bilişim ile Yazılım Testi
Bulut bilişimde test süreci, üçüncü parti yazılımlar üzerinden bulut ortamında
oluşturulan simülasyon uygulamaları ile gerçeklenmektedir. Simülasyon ortamı,
test işlemi gerçekleştirmek amacı için sanal kullanıcılar üretir. Bu sanal kul-
lanıcılar tarafından uygulamaya kullanım talepleri gönderilir ve uygulamanın
bu talepleri karşılama kalitesi gözlenir. Elde edilen sonuçlar, grafik ve şemalar
ile desteklenerek, geliştirici ve ürün kullanıcısına uygulamanın kalitesi hakkında
bilgi verir. Bu yazılımlar ile kısa süre içinde yüksek kaynak kullanımı ile test
işlemi yapılabilmektedir. Bulut bilişim ortamında performans ölçümüne dayalı
yazılım testleri olarak aşağıdaki test işlemleri uygulanabilir [7], [13], [14] :
 – Performans testi, yazılımın çalışma anında komutları gerçekleme hızı test
   edilir.
 – Yükleme testi, yazılımın yüksek veri girişine imkan verebilme oranı kontrol
   edilir.
 – Stres testi, yazılımın yüksek veriye olan dayanıklılığı kontrol edilir.
 – Gecikme testi, web uygulamaları için sayfanın cevap verme hızı test edilir.
 – Ölçeklenebilirlik testi, yazılımın farklı kaynak düzeyleri için esnekliği test
   edilir.

2.1    Avantajları
Yazılım test sürecinin bulut bilişim teknolojisi ile yapılmasının sağladığı avan-
tajlar şunlardır [9], [12] :
 – Test işleminin kaynakları buluttan sağlanır. Bu sayede yerel kaynak ayırma
   zahmetinden kurtarır.
 – Maliyeti düşürür.
 – Donanım ve yazılım bakımı bulut sağlayıcısı gerçekleştirir.




                                                                                       479
 – Ölçeklenebilmesi sayesinde o an istediğimiz kadar bellek ve işlemci kullanımı
   sağlar.
 – "Harcadığın kadar öde" mantığı uygulanır. Kullanılmayan alan için masraf
   üretmez.
 – Gerçek ortam ile daha efektif test sağlanır. Simülasyon ortamları, gerçek
   işlemlerin test edilmesini ve sonuçların doğruluğunu arttırır.
 – Son teknolojinin takibini sağlar. Bulut sağlayıcılar, sistemlerini sürekli olarak
   güncellemektedir. Bu sayede son çıkan yeniliklerden faydalanılır.

2.2    Dezavantajları
Yazılım test sürecinin bulut bilişim teknolojisi ile yapılmasının sağladığı deza-
vantajlar şunlardır [11]:
 – Güvenlik konusu endişe yaratabilir. Yüksek gizlilik gerektiren uygulamalar
   için, lokal kaynaklar kullanılması güvenlik için tercih edilebilir.
 – Virüs saldırılarına açık bir ortamdır. Sizin kaynaklarınız saldırı riski taşı-
   masa bile, bulut altyapısındaki diğer kaynaklara düzenlenecek saldırılardan
   etkilenebilirsiniz.
 – %100’e yakın erişim garantisi vermesine rağmen, acil durumlarda erişim
   sıkıntısı yaratabilir ve bu durum yerel kaynaklar ile düzeltilemez, kontrol
   bulut sağlayıcısındadır.


3     Uygulama Çalışması
Bulut bilişim ile test işlemi gerçekleştirmemizi sağlayan çeşitli ürün sağlayıcı
servisler bulunmaktadır. Bu uygulama çalışmasında bulut süreç ile test işlemi
sağlayıcılarından dört adet seçerek, ücretsiz olarak sundukları hizmetlerden yarar-
lanılmıştır. Bu sağlayıcılar:
 – LoadFocus
 – RedLine 13
 – Blaze Meter
 – LoadStorm
    Yıldız teknik üniversitesinin web sayfası olan "www.yildiz.edu.tr" adresi, üst-
teki dört yazılım üzerinden test işlemine tabi tutulmuştur. Test işlem adımları,
giriş için istenilen ve çıkış olarak verilen bilgiler değerlendirilmiştir.


4     Bulgular ve Tartışma
4.1    LoadFocus
Bulut üzerinden yükleme ve performans testleri yapmamıza olanak veren bir
sağlayıcıdır. Test işlemini yapmak için girilen giriş değerleri şunlardır. LoadFo-
cus 1 test işlemi arayüzü Şekil 1’de gösterilmiştir.
1
    https://loadfocus.com/




                                                                                       480
                   Şekil. 1. LoadFocus ile Test İşlemi Arayüzü



Sunucunun lokasyonu: Bulut sağlayıcı kaynakların bulundukları konumu belirtir.
Müşteri sayısı: Simülasyonun kaç sanal müşteri üzerinden yapılacağını belirtir.
Süre : Test simülasyonunun ne kadar süre boyunca gerçekleştirileceğini belirtir.
Gecikme : Milisaniye cinsinden değer alır. Müşteriler arası gecikme süresinin
değerini belirtir. Anlık olarak ne yoğunlukta sistemi meşgul edileceğini belirtir.
Müşteri tekrar sayısı : Müşterilerin gönderdikleri istek miktarını belirtir. Bir
müşteri için kaç tekrar yapılacağı buradan ayarlanır.
Metot : “Get” ve “Post” olmak üzere iki değer alır. Bu sayede get ve post metot-
ların simülasyonu gerçekleştirilir.
Protokol :Web sayfasının test işleminin hangi protokol üzerinden gerçekleştirile-
ceği kararlaştırılır. “Http” ve “Https” olarak iki değer alabilir.
Url : Test işlemine tutulacak web sayfasının adresini belirtir.
Değişkenler : Web sayfasına değişken göndererek test işlemine tabi tutmamızı
sağlar.




                        Şekil. 2. LoadFocus Test Sonuçları



   Yapılan test işlemi sonucunda elde edilen sonuç arayüzü Şekil 2’de göster-
ilmiştir. Bu sonuçlara göre verilen çıktılar şunlardır:

 – Cevap süresi : Milisaniye cinsinden değer alır. Test edilen web sayfasının gön-
   derilen isteklere cevap verebilme yeteneğini belirtir. Ortalama değer burada




                                                                                     481
   gösterilir. Bu sebeple test sürelerinin mümkün olduğunca arttırılması daha
   doğru sonuçların alınabilmesi için önem taşımaktadır.
 – Hatalar : Web sayfasının test işlemi sırasında karşılaşılan hata sayısını belir-
   tir. Örneğin, test için istek gönderilen web sayfasından cevap dönmemesi bir
   hatadır.
 – Gecikme : Milisaniye cinsinden değer döndürür. Gönderilen isteklerde orta-
   lama gecikme süresi bu veri ile gösterilir.
 – Anlık istek miktarı (Hits/s) : Bir saniyede ortalama gönderilen istek mik-
   tarını belirtir.
 – Anlık dönüş miktarı (Throughput/s) : Bir saniyede ortalama alınan dönüş
   miktarını belirtir.
 – Boyut : Kilobyte cinsinden değer gösterir. Değerlendirilen veri boyutunu be-
   lirtir.




                        Şekil. 3. RedLine 13 Test Sonuçları




4.2    RedLine 13
RedLine 13 2 uygulamasında, LoadFocus uygulamasından farklı olarak, gecikme
birimlerini minimum ve maksimum olarak değerler verilebilmektedir. Ayrıca,
kendi kod parçalarımızı sisteme ekleyerek bulut üzerinde web sayfasının test
2
    https://www.redline13.com/blog/




                                                                                      482
işlemini gerçekleştirme imkanı sunmaktadır. Bu sayede yazılımın sunduğu imkan-
lara ek olarak farklı testlerin de yapılması sağlanmaktadır.
    RedLine 13 ile Yıldız Teknik Üniversitesi web sayfasının test işlemine tutul-
ması sonucunda, ortalama sayfa yüklenme hızı 1.5764 saniye olarak verilmiştir.
Ayrıca yazılım, grafiksel gösterim imkanı da sunmaktadır. Bu sayede her sayfanın
saniyede istek sayısı ve saniyede cevap sayısı grafiksel olarak sunulmaktadır. Bun-
lara ek olarak, anlık işlemci kullanım oranı da grafik üzerinde gösterilmektedir.
Şekil 3’de, yaptığımız test sonuçlarından bir örnek gösterilmiştir.


4.3    Blaze Meter

Blaze Meter 3 yazılımı deneme sürümü kapsamında, diğer yazılımlara göre daha
uzun süre yükleme testi gerçekleştirmiştir. Blaze Meter ile 15 dakika boyunca
yükleme testi simülasyonu gerçekleştirildi. Elde edilen sonuçlar Şekil 4’de gös-
terilmektedir.




                       Şekil. 4. Blaze Meter Test Sonuçları




4.4    Load Storm

Load Storm 4 yazılımı, yük testi üzerine yoğunlaşmış bir uygulamadır. Test işlemi
süresince oluşturulan grafik anlık olarak güncellenerek hangi durumlarda cevap
verme oranının düştüğü gözlemlenebilmektedir. Load Storm ile yapılan çalışma
sonuçları Şekil 5’de gösterilmektedir.

3
    https://www.blazemeter.com/
4
    https://loadstorm.com/




                                                                                      483
                       Şekil. 5. Load Storm Test Sonuçları


4.5   Değerlendirme

Uygulamalar, aynı web sitesi üzerinde deneme yapılması ve aynı deney ortamında
çalıştırılmasına rağmen, ortalama cevap süresi ve ortalama gecikme süresi gibi
değerlerde, bir miktar değişkenlik görülmüştür. Bant genişliğinin anlık değişi-
minin, bu değişkenliğe sebep verebildiği burada görülmektedir. Dört uygulama
arasında "Redline 13" uygulaması, sağladığı kapsamlı simülasyon desteği ile
diğerlerinden ayrılmaktadır. Bu özelliği sayesinde, anlık olarak değişim gözlem-
lenebilmektedir. Ayrıca, sayfa bazında performans analizi ile, sistemi yoran web
sayfalarının tespiti ve düzenlenmesi sağlanabilir. "Load storm" uygulaması da,
yükleme testi sonuçlarını kapsamlı olarak çok sayıda farklı parametre ile değer-
lendirmesi avantajlıdır.
    "Load focus" uygulaması ise, web sayfasının "get" ve "set" metotlarını kap-
samlı test edebilme yeteneği ile dikkat çekmektedir. Web sayfasına parametre
göndererek, sayfa performansını test edebilmektedir. Bu özellik ile cevap süreleri
daha kapsamlı değerlendirilebilir.


5     Sonuç ve Öneriler

Bulut bilişimin yazılım testlerinde kullanılması, özellikle küçük ve orta düzeyde
yazılım şirketleri için maliyet yönünden avantaj sağlayacağı söylenebillir. Bu
yazılım şirketleri için son teknoloji yazılımlar ve donanım ile test yapmanın
maliyeti, bakım ve yetişmiş eleman ihtiyaçları da göz önüne alınırsa, dış kay-
nak kullanılarak bulut ile sağlamak fayda getirecektir.




                                                                                     484
    Ayrıca, yazılım test sürecini sürekli olarak uygulamayan, veya doğrudan bir
yazılım şirketi olmamasına rağmen, yazılım testi gereksinimi bulunan kuruluşlar
için de, bulut bilişimin ihtiyaç anında kullanım sunması avantaj olmaktadır.
Yazılım testleri içerisinde, yüksek işlem gücü gerektiren test işlemleri için bulut
teknolojiyi kullanmak daha verimlidir. Bu amaç ile yükleme, performans, stres
testlerinin bulut teknoloji içerisinde kullanımı, zaman yönünden fayda getirmek-
tedir.


Kaynakça
 1. Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee,
    G., Patterson, D., Rabkin, A., Stoica, I., et al.: A view of cloud computing. Com-
    munications of the ACM 53(4), 50–58 (2010)
 2. Chana, I., Rana, A., et al.: Empirical evaluation of cloud-based testing techniques:
    a systematic review. ACM SIGSOFT Software Engineering Notes 37(3), 1–9 (2012)
 3. Dad, F., Hameed, A., Imad, M., Salman, M.: A comparative study of conventional
    software testing using cloud. IJMCA 5(2), 047–053 (2017)
 4. Dikaiakos, M.D., Katsaros, D., Mehra, P., Pallis, G., Vakali, A.: Cloud comput-
    ing: Distributed internet computing for it and scientific research. IEEE Internet
    computing 13(5) (2009)
 5. Furht, B., Escalante, A.: Handbook of cloud computing, vol. 3. Springer (2010)
 6. Gao, J., Bai, X., Tsai, W.T.: Cloud testing-issues, challenges, needs and practice.
    Software Engineering: An International Journal 1(1), 9–23 (2011)
 7. Incki, K., Ari, I., Sözer, H.: A survey of software testing in the cloud. In: Software
    Security and Reliability Companion (SERE-C), 2012 IEEE Sixth International
    Conference on. pp. 18–23. IEEE (2012)
 8. Jadeja, Y., Modi, K.: Cloud computing-concepts, architecture and challenges. In:
    Computing, Electronics and Electrical Technologies (ICCEET), 2012 International
    Conference on. pp. 877–880. IEEE (2012)
 9. Jun, W., Meng, F.: Software testing based on cloud computing. In: Internet Com-
    puting & Information Services (ICICIS), 2011 International Conference on. pp.
    176–178. IEEE (2011)
10. Katherine, A.V., Alagarsamy, D.K.: Conventional software testing vs. cloud testing.
    International Journal Of Scientific & Engineering Research 3(9) (2012)
11. Katherine, A.V., Alagarsamy, K.: Software testing in cloud platform: A survey.
    International Journal of computer applications 46(6), 21–25 (2012)
12. Liu, Y.: Cloud-based testing: Opportunities and challenges. Cloud-Based Software
    Engineering pp. 40–45 (2013)
13. Nachiyappan, S., Justus, S.: Cloud testing tools and its challenges: A comparative
    study. Procedia Computer Science 50, 482–489 (2015)
14. Riungu-Kalliosaari, L., Taipale, O., Smolander, K.: Testing in the cloud: Exploring
    the practice. IEEE software 29(2), 46–51 (2012)




                                                                                             485