16 Eylül 2017

Silk Test Framework ile Yazılım Test Otomasyon Mimarisi Kurmak

Silk Test Framework ile Yazılım Test Otomasyonu Mimarisi Kurmak

Yazılım Test Otomasyonu son yılların popüler konularından biri olup piyasada hem ücretsiz Open Source, hemde ücretli ama Trial versiyonu olan birçok Framework mimarisini kendi lokal bilgisayarınıza kurarak ürünlerinizin testlerini otomatik hale getirebilirsiniz. Bu yazıyı yazma sebeplerimden biride Yazılım Test Otomasyonu konusuna meraklı kişilerin kişisel bilgisayarlarında tek başlarına bu işe nasıl başlayacağını ve otomasyon mantığını anlatmaktır.

Ücretsiz Framework'lerden en bilineni Selenium olup daha çok Web Browser tabanlı ürünler için ücretsiz bir yazılım otomasyonu sunar. Mobil içinse ücretsiz ama oldukça bilinen Framework ise Appium Framework'tür.

Hem Desktop hemde Web Browser alt yapısını destekleyen bir araç isterseniz lisanslı ürünler daha çok karşınıza çıkacaktır; Silk Test Framework, SmartBear TestComplete, HP QuickTest Professional, Ranorex gibi ürünleri örnek verebiliriz.

Temelde hepsi benzer işleri yapsa da lisanslı ürünlerin teknolojileri hem daha gelişmiş oluyor hemde mimari kurulum sırasında yazılım Support desteği alabiliyorsunuz. Oysa ki Open Source'ların temel problemi karşınızda bir muhatabın olmaması ve destek alamamanızdır. Tüm sorumlu son kullanıcı dadır, bu yüzde kurumsal yerlerce çok tercih edilmez açık kaynak bir mimari. Aynı zamanda Open Source Framework'ün ileri de devam edip etmeyeceği, destek alıp almayacağı bile muammadır. Güvenlik açığı riskleri de eklenince kurumsal bir firma tarafından ücretsiz ürünler çok da tercih edilmemektedir.

Makalede Micro Focus firmasının yazılım test otomasyon ürünü olan Silk Test Framework'ün Trial (ücretsiz deneme) sürümünü kendi lokal bilgisayarınıza nasıl yükleneceğinizi anlatacağım.

İlk olarak Try Silk Test free for 45 days: www.microfocus.com/products/silk-portfolio/silk-test/trial/ sitesinden 45 günlük deneme sürümünü indireceğiz. Formu doldurup Download here kısmına basmanız yeterlidir. Mail adresinize Silk Test yükleme adresi gönderilecektir. Link de son sürüm olan Silk Test 18.0 - Software Product sekmesine tıklayarak programı bilgisayarınıza indirin. Ortalama 1 GB dosya boyutuna sahiptir.

Silk Test Framework ile Yazılım Test Otomasyonu Mimarisi Kurmak

Kuruluma geçmeden önce bilgisayarınızda mutlaka Visual Studio 2015 yüklü olmalıdır. İnternet üzerinden Microsoft Visual Studio Enterprise 2015 yazarak son sürümü ve lisansını indirip kurabilirsiniz.

İndirmiş olduğunuz Silk Test yükleme dosyasını çalıştırınız. Yükleme başlayacaktır, Next diyerek yönergeleri ilerletiniz. Yükleme seçeneklerinde Complete diyerek hepsini seçiniz. Silk Test Workbench, Open Agent, Silk4NET, TrueLog gibi tüm bileşenleri kurmuş olursunuz.



Yükleme kısmı yukarıdaki gibi kalabilir, Program Files içine Silk dizini olarak kurmanızı tavsiye ederim. Default şekli budur. Add Windows firewall exceptions onaylı kalabilir veya Windows güvenlik duvarına eklemeye bilirsiniz.



Silk Test Framework ile yazılım mimarisini oluştururken ister Visual C# ile yazıp Silk4NET'i kullanabilirsiniz. İsterseniz bilgisayarınıza Eclipse IDE yükleyip JAVA programlama dili ile de Silk4J kullanarak yazabilirsiniz. Ben Microsoft Visual C# .NET ile yazdığım için makaleyi Silk4NET üzerinden anlatacağım. Yukarıdaki yönergeyi Manually olarak seçip Next diyerek devam ediniz.


Lokal bilgisayarda Visual Studio 2015 olduğu için otomatik algıladı, Silk4NET kurulumu için ilk seçeneği seçip Next diyerek devam ediyoruz. Ek olarak şunu eklemem gerek, Şuan için Visual Studio 2017 desteklenmiyor çünkü 2013 ve 2015 için Silk4NET DLL desteği vardır. Bu yüzden 2017'de Silk4NET entegre olmayacaktır.


macOS cihaz kullanmadığım için bu kısmı işaretlemeden Next diyerek devam ediyorum. Fakat Silk Test Framework altyapısı Apple macOS sistemleri de destekliyor, bunu da ek bilgi olarak verebilirim.


Tüm yükleme ayarları bittikten sonra Install diyerek kuruluma başlayabilirsiniz. Kurulum bittiğinde aşağıdaki gibi Recommended'dan devam ediniz ve lisansı Evaluation olarak seçip 45 gün geçerli olan lisansı aktif ediniz.




Kurulum ve lisans işlemleri bitince Done diyerek bilgisayarınızı yeniden başlatınız. Silk Test Framework bilgisayarınıza artık kurulmuştur. Bilgisayar yeniden başlatıldıktan sonra Masa üstündeki Silk Test kısa yoluna tıklayıp Silk4NET sekmesinden Visual Studio'yu açabilirsiniz ve Silk Test Open Agent'ı aktif edebilirsiniz.



Visual Studio'yu açınca Silk4NET Start Page sayfasını ve yukarıdaki sekmeler de Silk4NET'i görüyorsanız entegrasyon doğru yapılmış demektir.


İlk Projeyi (Solution) oluşturmak için Silk4NET sekmesinden New Project diyerek oluşturabilirsiniz. Yeni bir Solution oluştururken Solution Name ile Name adını farklı yazınız. Çünkü ilerleyen zamanlar da aynı Solution içerisine başka Projeler ve katmanlar oluşturacağınız için stabilize açısından daha düzgün ve anlaşılır çalışır, mimari karmaşıklık yaratmaz.


Otomasyon adında bir proje oluşturduk. Temel mantığı anlatmak gerekirse; Otomasyon yazacağınız alt yapının (Web Browser, Desktop veya Mobil) mimari ile tanıtımını yapabilmek için Hardware veya Driver Layer denilen katmanı yazarak alt yapı ile otomasyon Framework yapısı arasındaki bağlantıyı kurarsınız. Framework'de kullanacağınız tüm metotlar ve Framework'ün gelişimi ve kalitesi bu katmanda belli olur.

Orta katman dediğimiz Keywords katmanında ise temel mantık Driver Layer kısmındaki Framework metotlarını Locator, XPath, CSS Selectors veya Kelime güdümlü şeklinde sadeleştirilmiş Locator ile ön yüzdeki Test mühendisinin bu metotları nasıl kullanması gerektiğini buradaki katmanda oluşturursunuz. Siz Test mühendisine sadece Full Locator kullandırarak da Unit Test gibi otomasyon Script'i yazdırabilirsiniz ya da programın ön yüzünde görünen ve kod bilgisi istemeyen Text, ID gibi elementlerini kullanarak da Test Scriptleri yazdırabilirsiniz. Bunların karar verileceği ve kodlama yapılacağı katman Implementation Layer yani otomasyonun orta katmanıdır.


Son kullanıcı yani Test mühendisinin kullanacağı ve testleri yazacağı katman ise ön yüz (Son Kullanıcı) katmanıdır. Burada test mühendisi kod tarafı ile çok müdahil olmaz. Testlerini Unit Test Class'ın da veya Silk'in Keyword Driven Test özelliği ile Silk Central üzerinde Script'lerini yazıp otomasyon testlerini çalıştırabilir. Test mühendisi testlerini yazarken en fazla teknik olarak Locator, XPath bilgisine ulaşmakta zorluk çekebilir. Çünkü bazı testlerde HTML tagları olan (id, Text, caption gibi) bilgilere ihtiyaç duyulabilir. Bunun içinde Silk Test Workbench aracını kullanarak testlerini daha rahat yazabilir.

Temel olarak Yazılım Test Otomasyon mantığını anlatmaya çalıştım. Yazılım Test Otomasyon Framework'lerinin bir çoğu bu mantıkla çalışır. Yazılım Test Otomasyon da teknik olarak daha çok ilerlemek istiyorsanız Test Automation Robot Framework (robotframework.org), Test Automation Frameworks ve Cross Browser Testing Tool konularını araştırabilirsiniz.

Silk Test Framework ile Yazılım Test Otomasyon Mimarisi Kurmak

Yazdığım mimarinin örnek iskeleti aşağıdaki gibidir, sizde bu şekilde mimarinin temelini oluşturarak yazılım test otomasyon alt yapısı yazabilirsiniz. Resimdeki gibi Framework projesi diğer tüm projeleri beslemektedir ve diğer ürünlerde çalışan yazılımcılar asla Driver metodu yazmak zorunda kalmaz. Çünkü Framework katmanında bunlar yazılmış ve geliştirilmektedir.

Proof of Concept (PoC) Türkçe adı ile bir kavramın ispatıdır. BT Teknolojilerinde anlamı Demo nun gerçek datalar ile yapılanı olarak da nitelendirilebilecek çalışmalardır. Diğer bir örnekle Production aşamasına geçmemiş bir ürünün mini boyutta denemesidir. Mobil bir PoC'da size APK verilir ve siz  bu APK'ya göre Login, Fonksiyon testi gibi senaryo steplerini oluşturup savunduğunuz mimaride bunun çalıştığını kanıtlarsınız.

Aşağıdaki resim örnek bir Silk4NET ile yazılmış Web ve Desktop Application mimarisidir.

Silk Test Framework ile Yazılım Test Otomasyon Mimarisi Kurmak

Burak AVCI