17 Şubat 2009 Salı

Yazılım Test Uzmanları için Visual Studio Team System 2008 (Part 2)

TEST KULLANICI ARAYÜZÜ (UI)

Bu kısımda bahsetmiş oldugumuz test özelliklerinin VSTS deki arayüzünün nasıl olduğu hakkında bilgi edinmeye calisacagiz. Herhangi bir test yapmadan once VSTS nin bize sunduğu özelliklerden biri olan test proje tipi olusturuyoruz. Bunun için yapmamız gereken, üst menudeki File>New>New project (Dosya>Yeni>Yeni Proje) yolunu izlemek olacak. Bu işlemden sonra karşımıza VSTS de bulunan butun proje tipleri karsımıza gelecek. Biz bir tane Test proje tipi oluşturmak istediğimiz icin en asagida bulunan Test Project (Test Projeleri)’ nin altındaki Test Document i seciyoruz. Sag taraftaki menude karsımıza VSTS nin bize sagladigi templateler cıkıyor. Biz Test Project i seciyoruz.







Bu işlemi gerçekleştirdikten sonra Solution Explorerda da gorundüğü gibi GLBTestProject adında bir projenin olduğunu gosteriyor. Herhangi bir test projesi cözümümüze eklendiği zaman, bazı önceden tanımlanmıs ve projeyle birlikte gelen dosyalarda sisteme eklenir . Biz default olarak atılmıs bu dosyaları kullanmayacagimiz için sistemimizden silebiliriz. Peki bu otomatik eklenen dosyalar ne işe yarıyor biraz onlardan bahsedebiliriz. İlk başta eklenen klasor “Solution Items” in icersindeki otomatik eklenen dosyalar ne işe yarıyor onlara bir göz atalım.
localtestrun.testrunconfig — Test Çalıştırma ve Yapılandırma dosyası olan localtestrun.testrunconfig, testin nasıl çalıştırılacagina dair bilgileri saklar. Bu dosya testin nereden çalıstırılacagını (Local/Uzaktan) veya testi çalıştırmak için script önceliklerini, testler tamamlandığında scriptlerin temizlenmesi gibi bilgileri tasır.
GLBTestProject.vsmdi — Bu dosya bir Visual Studio metadata dosyasıdır. Dosya testlerin bagımlılıklarına göre, testin organizasyonunu saklamak için kullanılır (Mesela ilk başlatılacak test gibi). Bu meta dosyası, test yöneticisi penceresi kullanılarak değiştirilir ve seçilmiş testleri yürütme için IDE tarafından kullanılır.

Gelelim test projemizde otomatik olarak yaratılan ve silebilecegimiz dosyalar ne işe yarıyor ona bir göz atalım.Aslında bu dosyalar VSTS tarafından bize birer örnek olması amacıyla yaratılıyor. Bu yüzden silmemizde bir sakınca yok.
AuthoringTests.txt —Bu dosya aslında bizim projemize eklenmez, sadece Ana Düzenleme Ekranında (Main Editing Window) görüntülenir. Dosya sadece bir test projesinin çalışma temellerini anlamak için bize yardımcı olur.
ManualTest1.mht — Bu .mht dosyası, manual test (Elle test) için bir örnektir.
UnitTest1.cs — Bu dosya, birim testleri (Unit Test) kodlama işlemine yardımcı olcak bir sablondur.

Bu işlemi gerçekleştirdikten sonra, yeni bir test nasıl eklenir ona bakalım. VSTS ekranımızda sağ tarafından bulunan “Solution Explorer ” in içersinde bulunan test projemize (GLBTestProject) ters tıklayıp karşımıza cıkan menuden “Add” ürününü seçiyoruz. Aşağıdaki şekilde göründüğü gibi VSTS ın bize sagladigi butun test teknikleri hızlı menu seçimiyle karsımıza geliyor.




Hızlı Menu seçeneğinden kolay bir şekilde yeni test teknikleri oluşturabiliriz. Menunun ikinci kısmında gordünüz gibi mevcut testler burada sıralanıyor. Eger testler hakkında detaylı bilgileri gorerek bir ekleme istiyorsak, listenin en başında bulunan “New Test ” seçenegine tıklamamız yeterli olacaktır. Bu işlemi gerçekleştirdiğimiz zaman, şekilde göründüğü gibi karşımıza VSTS nin butun testleri detaylı bilgilerle ekrana geliyor.

İstediğiniz testi seçip, ismini sizin ve takım arkadaşlarınızın anlayacagi sekilde değiştirebiliriz. Eğer birden fazla test projemiz varsa “Add To Test Project” kısmından ilgili test projesini seçip, yeni testimizi ekleyebiliriz.
Şimdi kısa detaylarla bu kısımda bulunan testlerin niçin kullanıldıkları hakkında bilgi edinmeye çalışalım.
a. Manual Test Tipi (Elle Yapılan Testler)
Bu tip, test tipleri arasında en basit olanıdır. Elle yapılan test ile oluşturulan testler, grup içersinde etkileşimle tamamlanacak testlerdir. Mesela bir testimiz var, bu test cok karmaşık bir yapıya sahip ve bu testi tamamlamak uzun bir zaman gerektiriyor. Bu test birçok yazılımcı ve test uzmanı ile birlikte geliştirilecek kodlara sahip. Iste bu özelliklere sahip bir test manual test olarak yaratılır ve işlem elle geçici olarak tamamlanır.
b. Unit Test Tipi (Birim Test)
Adından da anlaşılabilecegi gibi birim testler, uygulamamız için yazdığımız alt program parçalarının, diğer tüm bağımlılıklarından izole edilerek belli koşullarda beklenen çıktıları verip vermediğinin kontrol edilmesidir.
Geliştirilen kodun çalıştığından emin olmak için bir test alt yapısı gerekmektedir. Bunu sağlamanın bir yolu, uygulamanın (fonksiyonlarının) çalıştırılması için, kodların üretilmesi ve gerek duyulduğunda biraz daha kod geliştirerek, test projeleri oluşturmaktır. Uygulamanın her biriminin test edilmesi hedeflendiği için, birim testleri olarak adlandırılmış. Bu testlerin en önemli avantajı, her türlü değişiklikte tekrar tekrar çalıştırılabilir olması. En azından, fonksiyonel seviye de hataları yakalamak mümkün. Birim testlerinin proje bazlı takip edilmesi, üretilmesi ve çalıştırılması için bir alt yapı (Framework) sağlanmıştır.
Temel olarak birim testleri; iş fonksiyonlarının doğru çalıştığını, beklenen değerlerin elde edilmesi için test durumlarının tasarlamasını kapsıyor. Birim testleri ile metod seviyesinde test gerçekleştirildiği için, yazılım geliştiricinin sorumluluğunda gözüküyor. Araçlar Test uzmanı için VSTS sürümünde de yer alıyor.

c. Web Test Tipi
Web test tipinde, yapacaginiz tüm etkileşimler kayıt altına alınır ve bu kayıt Microsoft Internet Explorer tarafından gerçekleştirilir. Fareyi her tıkladığınızda bütün HTTP istekleri playback yapabilmek için tarayıcı tarafından yakalanır. Bu istekler ALMA (GET) ve GÖNDERME (SUBMIT) yaklasımlarını ve formlardan veri gönderme yaklaşımlarını içerir. Hatta kaydedilen test için farklı değer kümeleri göndermeye olanak saglar.
d. Load Test Tipi
Load Test yaparak sistemin birden fazla kullanıcı ve çesitli senaryolarla nasıl tepkiler verebildigini ölçebiliyoruz. Aslında load test, diger test özelliklerinin çeşitli senaryolarla belirli özelliklerle tekrar edilmesinden olusuyor. Load testler birden fazla bilgisayarı test etmenize olanak sağlar. Isterseniz sadece kendi local makinenizde test yapabileceginiz gibi Visual Studio Team Test Load Agent (VSTTLA) sayesinde uzaktaki birden fazla bilgisayarıda aynı anda test edebilirsiniz.
e. Ordered Test Tipi
Ordered test tipi, belirtilmiş bir sıra dogrultusunda, farklı tipteki testleri düzenlememize izin verir. Mesela birim testlerden olusan bir grubumuz var ve bu grup bir ordered testin elemanı degilse, testleri çalıstırırken hiçbir yol ve sıra izlenmez hatta bir sonraki çalıstırmanında bir önceki sırayla aynı olacagida garanti degildir. Mesela bir kullanıcı ekleme ve kullanıcı giriş birim testleri yapmak istiyorum. Once kullanıcı ekleme birim testinin başarılı olması lazım ki sonra oluşturulmus kullanıcı uzerinden kullanıcı giris birim testini çalıstırabiliyim. Iste bu sırayı kesin saglama için Ordered Test tipi kullanılır.
f. Generic Test Tipi
Generic test, Organizasyonda hali hazırda bulunan herhangi bir testen yararlanmamızı saglar. Bu tip yaygın olarak bir komut satırı calıstırarak mevcut testleri desteklemek icin kullanılır. Mesela bir cok takım, uygulamalarına karsı testlerini çalıştırmak için ya batch dosyaları yazarlar yada basit komut satırı programları oluştururlar. Mesela MyTest.exe/run_all gibi olur. Sonra aynı komut satırını çalıştırmak için bir generic test yapılandırılır. Yararı ise Generic terstleriniz Visual studio da diger testleriniz arasında gorunur.


16 Şubat 2009 Pazartesi

Yazılım Test Uzmanları için Visual Studio Team System 2008 (Part 1)


Giriş

Eski tek kullanıcılı programlar yerini daha fazla kullanıcıyla giriş yapılan online sistemlere bırakmaya başladı. Bunun getirisi olarak sistemin, birden fazla kullanıcı dahil oldugunda nasıl bir tepki gosterecegi yazılım yaşam döngüsünde (SDLC) canlıya almadan önce kilit bir nokta olmaya başladı. Visual Studio Team System ile test durum yönetimi konusunda çok ciddi bir yatırım gerçekleştirdi. Test uzmanlarına, farklı testleri gerçeklestirmek için test araçları ve bu testlerin yönetimi,çalıstırılması, izlenmesi ile ilgili test durum yönetimi araçları sunmustur. Bu araçlar ile, yazılım gelistirme ve bakım süreçlerindeki test islemleri desteklenmektedir. Mesela, Load Test yaparak sistemin birden fazla kullanıcı ve çesitli senaryolarla nasıl tepkiler verebildigini ölçebiliyoruz. Aslında load test, diger test özelliklerinin çeşitli senaryolarla belirli özelliklerle tekrar edilmesinden olusuyor. Bu konuyla ilgili detaylı bilgileri ilerleyen bolumlerde bulacagiz.


Visual Studio Team System, SDLC de butun ihtiyac duyulan kısımları gerceklestirmeyi sağlıyor : source code control, automated build system, testing, architecture... Yani VSTS bu kısımda ikiye ayrılıyor : “Visual Studio Team System For Software Developers” ve “Visual Studio Team System For Software Testers”. VSTEST ile VSTESD elbette birbirinden ayrı süreçlere sahipler yalnız, testler gerçekleştirilken bazı bölümleri paylaşıyorlar. Aşagıdaki grafik bu konuyu bize daha detaylı bir sekilde anlatıyor.




Yazılım gelistiriciler için birim test alt yapısı (Unit Testing) VSTEST sürümüyle de birlikte kullanılabilmektedir. Yazılım gelistiriciler için VSTS sürümündeki birim testlere ek olarak; uygulamaların fonksiyonel ve operasyonel gereksinimlerini test etmek için bir çok test tipi daha sunulmustur. Bu test tipleri ve açıklamaları asağıdaki tablodaki gibidir.

Bu test tiplerinin olusturulması, çalıstırılması, test sonuçlarının kaydedilmesi, basarısız testlerin yazılım gelistiriciye yönlendirilmesi, test istatistiklerinin izlenmesi, test raporlarının yayınlanması islemleri de, Test uzmanları tarafından gerçeklestirilen isler arasında. Test uzmanı, isinin merkezinde fonksiyonel bir yönetim ekranı (Test Manager) ile islemlerini takip etmektedir. Bu araç özellestirilebilir bir yapıda ve gruplama, sıralama, filtreleme ve kolon seçme özelliği gibi özelliklere sahiptir. Asağıda, Test yöneticisinin tüm testleri aynı ekranda listelediği bir ekran görüntüsü sunulmustur :




Test yöneticisi genis özelliklere sahip. Üzerinde çalısılan testlere, daha basit ve hızlı erisim için bir de Test görüntüleme (Test View) aracı hazırlanmıs. Asağıda, Test görüntüleme aracının, ekran görüntüsü sunulmustur :



VSTS ile tanıtılan yeni bir proje tipi daha var. Test Projeleri. Test projesi, tüm testlerin saklanması için tasarlanmısdır. En önemli avantajı, diğer projeler gibi, kaynak kod yönetim sisteminde saklanması. Değisikliklerin takip edilmesi, versiyonlama, geriye alma gibi fonksiyonlar da testler içinde kullanılabilmektedir. Testlerin çalıstırılması ile, hatalı ve düzeltme gerektiren durumların belirlenmesi, sonuçların değerlendirilmesi islemi için Test sonuçlarının takip edildiği bir ekran var. Farklı testlerin çalıstırılması ile ilgili tüm sonuçlar buradan izlenebiliyor. Test uzmanları, çalıstırılmıs,devam eden ve çalıstırılmayı bekleyen tüm testleri bu ekrandan takip edebilirler. Basarısız testler için, hatayı içeren bir is takip nesnesi (Bug Work Item) hazırlanıp, yazılımcıya gönderilebilir. Yazılım gelistiriciye gelen is takip nesnesi üzerinden, test durum bilgilerine ulasılabilir. Hatanın düzeltilmesi, yeni is takip nesnesinin olusturulması ve testin tekrar çalıstırılması ile süreç tekrar test uzmanına tasınır. Proje yöneticisinin de, web sitesi üzerinden hata izleme raporlarını takip edebilmesi ile, gerçekten iyi bir birlikte çalısma ortamı sunulmus. Zaten VSTS ‘nin en önemi hedefi takım çalısması.
Technology Blogs - BlogCatalog Blog Directory