Ana içeriğe atla

Kayıtlar

Mart, 2010 tarihine ait yayınlar gösteriliyor

Visual Studio 2008 Test Edition Web ve Load Test İncelemesi (Bölüm 6) – Web Test

İlk 5 makalemizin ardından (Bölüm 1, Bölüm 2, Bölüm 3, Bölüm 4, Bölüm 5), web test uygulamasının oluşturulması ve yük testi adımlarına geçiyoruz. Web Test, bir web sayfasının / uygulamasının / servisinin veya bunların kombinasyonlarının işlevselliğini denemek için uygulanan, tarayıcınızdaki http isteklerini (GET/POST) kaydedip sonrasında bunları aynı sırayla çalıştıran test yöntemidir. Bu test yöntemi, uygulamanın performansını anlık ölçmek için kullanılabileceği gibi, yük testinin bir senaryosu olarak da kullanılabilir. Bu test yönteminde farklı kontrol ve değer alma kuralları mevcuttur. Kontrol yöntemleri; ekran alan isimleri, metin, etiketler, http istemleri sırasında geçen süreler için kullanılabilir. Sonuçları olmasını beklediğimiz değerlerle kıyaslayıp, sistemin kıstaslarımıza olan uygunluğunu ölçebiliriz. Kullanılabilecek araçlar ve senaryo kayıtlarının oluşturulması
Web Test için kullanılabilecek 2 araç mevcuttur. Bunlardan biri, Microsoft Web Test Recorder, diğeri ise, ücretsiz…

Visual Studio 2008 Test Edition Web ve Load Test İncelemesi (Bölüm 5) - Ağ Dışında (Workgroup) Agent ve Controller Servisleri için Kullanıcı ve Grupların Düzenlenmesi

Kurulum ve kullanım ile ilgili bölümlere başladığımız makale serimizde (Bölüm 1, Bölüm 2, Bölüm 3, Bölüm 4), yük testi sırasında  uzak makineler için metriklerin toplanmasında yaşayabileceğimiz olası bir probleme ve çözümüne değineceğiz. Böyle bir problem ile karşılaşıldığında, yük testi raporunda şöyle bir hata görülür; “Exception LoadTestCounterCategoryNotFoundException-The performance counter category ‘Network Interface’ cannot be accessed on computer '….' (Access is denied) ; check that the category and computer names are correct.” Uzak bir makinenin performans metriklerini toplayabilmek için, eğer çalıştırılan sistem bulunduğunuz ağın dışında (örn: sanal makinelerden oluşan ağ) ise, öncelikle, “controller” ve “agent” servislerinin kurulu olduğu sistemler üzerinde gerekli erişim haklarına sahip kullanıcıların yaratılması ve bu kullanıcıların, bazı özel test gruplarına dâhil edilmesi gerekmektedir. Bunun için, bu makinelerde önceden belirleyeceğimiz kullanıcı isimlerini ve şi…

SQL Server Tetikleyicileri Üzerine (Triggerlar)

SQL Server’da tablo veya görünümlerde(view) herhangi bir işlem çalıştırıldığında (DELETE, INSERT, UPDATE) başka işlemlerin de yapılması isteniyor ise tetikleyiciler kullanılır. Her ne kadar Univera bünyesinde geliştirilen yazılımlarda DML mantığında çalışan tetikleyicileri kullanmasak da (Entity Framework doğasına aykırdır, tartışma konusudur); loglama, veri tutarsızlığı vb. işler için yararlı olduklarını söylemek mümkündür. Tetikleyiciler SQL cümleleri ile oluşturulur. Tetikleyici oluşturmak için aşağıdaki sözdizimi kullanılır. CREATE TRIGGER [şema adı.] triggerAdı On tablo_adı | görünüm_ adı
[WITH dml_tetikleyici_seçeneği]
{
For | AFTER | INSTEAD OF } {[INSERT], [,],[UPDATE ],[,],[DELETE] }
[WITH APPEND]
}
AS sql ifadesi | EXTERNAL NAME method adı

SQL serverda 2 tür tetikleyici bulunmaktadır. Bunlar AFTER ve INSTEAD OF tetikleyicileridir.
AFTER (Ardı Sıra Tetikleyiciler): İşlem gerçekleştikten sonra tetiklenirler. Veritabanındaki IN…

Müşteri İhtiyacını Ön Analiz ile Anlamak

Yazılım yaşam döngüsündeki en önemli adımlardan biri olan analiz süreci ve rol tanımları ile ilgili bilgilendirmeleri önceki makalelerimizde yapmıştık. Bu makalemizde müşteri ihtiyaçları(gereksinimleri) ön analiz nasıl anlaşılır sorusuna cevap vermeye çalışacağız. Yazılım geliştirirken ortaya çıkacak ihtiyacın doğru olabilmesi için müşterinin beklentilerini tam olarak anlamak ve analizini yapmak gerekir. Müşteri ile Ön Analiz Nasıl Yapılır ?
Proje yöneticisi ile iş analisti ve/veya analiz yazılım uzmanı müşteri ile bir toplantı düzenler. Müşteri nasıl bir uygulamaya ihtiyacı olduğunu anlatır. Proje yöneticisi ve analiz ekibi ne geliştirileceğini tam olarak anlamak için müşteriye ihtiyaç hakkında sorular sorar ve beklentilerini tespit ederler. (amaç, hedef, kapsam, ileriki ihtiyaçlar vb.) Analiz ekibi müşterinin ihtiyaçlarını ön analiz dökümanı haline getirir (standart formatta), müşterinin anlattıklarının doğru anlaşılıp anlaşılmadığının netleşmesi için müşteriden onay alma süreci başl…

System Center Configuration Manager (SCCM)

SCCM kısaca; fiziksel ve sanal sunucuları, istemcileri ve hatta mobil cihazları yönetmemizi kolaylaştıran bir araçtır. İşletim sistemi ve yazılımların kurulumu, konfigürasyonu ve kaynak yönetimi gibi işleri merkezileştirerek tek bir noktadan yapmamızı sağlar. 2. Neler Yapılabilir?
a. Varlık Yönetimi
Sistem yöneticilerinin mevcut donanım ve yazılım varlıklarını izlemesini sağlar. Hangi donanımı kimin kullandığını, hangi makinede hangi yazılımın yüklü olduğunu takip etmek ve raporlamak son derece kolaydır. b. Konfigürasyon Yönetimi
Bilgisayarların ve yazılımların istenen standartlara göre konfigüre edilip edilmediğini (antivirus, güncellemeler, çalışan servisler, kurulu yazılımlar vs) takip ederek, sistemlerin performans ve güvenliğini üst seviyede tutar, erişilebilirliği arttırır. Windows 2008 etki alanının NAP özelliği ile istenen konfigürasyonda olmayan bilgisayarların ağa girmesini engelleyebilir.

Visual Studio 2008’de Kod Metrikleri ve Kod Analizi (Static and Dynamic Code Analyze) – Bölüm 2

İlk makalemizde genel bir giriş yapmış ve kod metriklerinden bahsetmiştik. Kod Analizi aracı yönetilebilir assemblyleri analiz ederek, assemblyler hakkında bilgileri raporlayan bir araçtır. Microsoft .Net Framework Dizayn Kurallarına göre programlama ve dizayn kuralı ihlallerini gösterir. Analiz aracı, kontrol ettiği kurallara uymayan yerleri birer uyarı olarak gösterir. Uyarı mesajları, hangi kuralın ihlal edildiğine ve mümkünse problemin nasıl çözüleceğine dair bilgileri içerir. Kod Analizi Özelliğinin Açılması Solution Explorer’da bir proje seçilip projenin properties’ine girilerek, Code analysis tabına gidilebilir. Şekil 1’deki gibi Enable Code Analysis on Build (defines CODE_ANALYSIS constant) seçeneği işaretlenirse, şekilde gözüken kuralların hepsi kontrol edilecektir. İstenilen kural işareti kaldırılarak devre dışı bırakılabilir.
Şekil 1. Code Analysis Tab Kod Metriklerinin Kod Analizine Entegre Edilmesi
Maintainability Index, Class Coupling, Depth of Inheritance ve Cyclomatic…

UML ve Modelleme – Bölüm 7 (Sequence Diyagramlar)

UML ve Modelleme serisinin 7. si olan bu makalemizde, UML modellemede en önemli diyagram türlerinde biri olan Sequence (ardışık) diyagramlarından bahsedeceğiz. Öncesinde sırasıyla Use Case, Class, Object ve State diyagramlara değinmiştik. Sequence diyagramlar, sistemdeki nesneler ya da bileşenler arasındaki mesaj akışının olaylarını, hareketlerinin ardaşık şekilde modellenmesinde kullanılan diyagramlar sequence diyagramlardır. Bir sequence diyagramı nesnelerden, mesajlardan ve zaman çizelgesinden oluşmaktadır. Sequence diyagrami iki boyutludur:
Dikey boyut: Mesajların/olayların sırasını oluşma zamanı sıralarına göre gösterir.Yatay boyut: Mesajın gönderildiği nesne örneklerini (object instances) gösterir.Sequence diyagramlarının akışı soldan sağa doğru olmalıdır. Sequence diyagramları oluşturmadan önce senaryo (use case) oluşturulmalıdır.
Şekil 1. Sequence Diyagram Genel Gösterimi Sequence Diyagram Modellemesinde Kullanılan Elemanlar
Şekil 2. Sequence Diyagramlardaki Kullanılan Elema…

Visual Studio 2008’de Kod Metrikleri ve Kod Analizi (Static and Dynamic Code Analyze) – Bölüm 1

Statik kod analizi, uygulama çalıştırılmadan (derleme sırasında), kaynak kodlarının incelenmesi ve analiz edilmesi anlamına gelmektedir. Visual Studio Team System 2008, statik kod analizi yapabilmek için kendi araçlarına sahiptir. En temel amaç, kod analizi araçlarını kullanarak kaynak kodların standart programlama ve dizayn kurallarına uygunluğunun gözden geçirilmesidir. Kod analizleri, “Buil Automation & Continuous Integration (Set Otomasyonu ve Sürekli Tümleştirme)” sürecinde de önemli bir yerde bulunmaktadır. Biz bu yazımızda, sadece kod metrikleri olarak adlandırılan kurallara değineceğiz. Bir sonraki makalede ise Kod Analizi kısmına bakacağız. Kod Metrikleri (Code Metrics) Kod metrikleri, kaynak kodları incelemek ve çeşitli ölçülere göre yazılımı derecelendirmek için kullanılan matematiksel ve istatistiksel yöntemlerdir. Kod metrikleri ile geliştiriciler hangi tiplerin veya metotların yeniden ele alınması gerektiğini, düzenlenmesi gerektiğini anlayabilirler. Kod metrikleri kul…

Test Attributes (TDD, Birim Testleri)

Bu yazımızda Test Driven Development (TDD), Unit Test ve Test Projesi Oluşturma makalelerinin ardından bazı test attribute’ların neler olduğuna değinilecektir. Test Attribute’lar test methodlarının başlarında yer alır ve ilgili metodu özelleştirmek için kullanılır. Bazı attribute’lar Test Projesinin tamamında etkili olmak üzere kullanılırlar. Test Attributes AssemblyInitialize:Assembly tarafından tahsis edilen kaynakların yer aldığı metot için kullanılır. Tüm test sınıfları çalışmadan önce çalışacak olan metodun başında yer alır. AssemblyCleanup:Assembly tarafından tahsis edilen kaynakların serbest bırakıldığı metot için kullanılır. Tüm test sınıfları çalıştıktan sonra çalışacak olan metodun başında yer alır. TestClass:Test sınıfını oluşturan attribute’tur. Her test metodu için başlangıç durumuna gelir. ClassInitialize:Test sınıfı tarafından tahsis edilen kaynakların yer aldığı metot için kullanılır. ClassCleanup:Test sınıfı tarafından tahsis edilen kaynakların serbest bırakıldığı metot…

Visual Studio Team System 2008 Altında Test Projesi Oluşturmak ve Çalıştırmak (TDD ve Birim Testleri)

Bu makalede Test Driven Development ve Unit Test makalelerinin ardından bir test projesinin nasıl açılacağına ve Unit Test’in Visual Studio Team System 2008 altında nasıl yazılacağına değinilecektir. Test Projesi Oluşturulması File –> New Project altından çıkan penceredeki ağaç yapısında Test Projects/Test Documents seçilir ve Test Project ismi verilerek proje oluşturulur. Şekil 1. Test Projesi Oluşturma Test Sınıfı Oluşturulması
Test sekmesinden “New Test” Seçilir.
Şekil 2. Test Sınıfı Oluşturma Yeni pencerede Unit Test seçilerek ismi verilir ve test sınıfının oluşması sağlanır.

Analist Yazılım Uzmanı

Analiz Süreci ve Rol Tanımlarımakalemizde analist yazılım uzmanı hakkında kısaca “İş analistinin oluşturduğu analizin tasarım ve modellemesini yaparak yazılımın işleyişini tanımlayan pozisyondur..” demiştik. Ardından İş Analisti görev tanımını ele almış ve detaylı incelemiştik. Bu yazımızda analist yazılım uzmanının özellikleri ve görevlerinden bahsedeceğiz. Analist yazılım uzmanının özellikleri
İnsanların gerçek ihtiyaçlarını saptamak için gerekli sabra ve yeteneğe sahiptir. Alternatif yaklaşımları güçlü ve zayıf yanlarına göre karşılaştırabilir. Yüz yüze iletişim tekniklerinde bilgili ve beceri sahibidir. Karmaşık sorunları kavramsal olarak inceleyebilir. Seçenekleri belirleyerek, çözümler üretebilir. Hizmet sağlama ilkeleri ve süreçleri (İhtiyaç belirleme, hizmet kalite standartları, müşteri memnuniyeti ölçmeyi de içerir) hakkında deneyim sahibidir. Pek çok konuya yönelik yazılım geliştirmiş olmalı. Hataları ve nedenlerini tanımlayabilme yetisine sahip olmalıdır. Analist yazılım uzma…

Birim Testleri

Bir önceki makalemizde TDD yaklaşımına değinmiştik. Bu yazımızda TDD yaklaşımında önemli yer tutan birim testlerini inceleyceğiz. Birim testi bir yazılım projesindeki metotların, fonksiyonların doğru çalışıp çalışmadığını anlamak için oluşturulan testtir. Bir testin birim testi olabilmesi için test edilecek birimlerin ayrı ayrı ele alınması gerekmektedir. Birim testi bir bütünü oluşturan birimlerin entegre testi değildir. Ayrıca bir test;
Veritabanı ile ilişkiliyse,Network üzerinden iletişim sağlıyorsa,Dosya sistemiyle ilişkisi varsa,Başka birim testleriyle aynı zamanda çalışamıyorsa,Çalıştırılmak için özel bir konfigürasyon bekliyorsabu testin birim testi olduğunu söyleyemeyiz (Microsoftun bu konudaki yaklaşımında farklılıkar bulunmaktadır, ilerleyen makalelerde değineceğiz). Bunların yanında birim testi hem Test Güdümlü Yazılım Geliştirme Sürecini kolaylaştırır hem de uygulamamızın her bir biriminin sorunsuzca çalıştığından emin olmamızı sağlar.

Test-Driven Development(TDD)

Production kodunu yazmadan önce test kodlarını geliştirme yaklaşımıdır. Kısa development döngülerinin tekrarlanması üzerine kurulu bir yazılım geliştirme tekniğidir. 1999 yılında eXtreme Programming ile başlamıştır. İlk önce yazılımcı yeni yazacağı fonksiyon ya da metodun test case’lerini yazar. Bunu yapabilmesi için de o birimin ne yapması gerektiğini iyi bilmesi gerekmektedir, yani analizin düzgün ve istenilen şeylere cevap verebiliyor olması gerekmektedir. İhtiyaçlar Test güdümlü geliştirme production kodu yazılmadan önce yazılmış olan birim testlerinin otomatize bir şekilde yaratılarak çalıştırılmasına ihtiyaç duyar. Testler belli başlı varsayımlar (iddialar)içermelidirler. Test geliştiriciye doğru sonuçları ürettiğini ispatlıyorsa kodun refactor yapılabileceği anlamı çıkarılabilir. Sağlayamıyorsa ya test kodu gözden geçirilmelidir ya da production kodunda düzeltme yapılması gerekebilir. Neden TDD? TDD ile yazılacak kodun test birimleri istenildiği an çalıştırılıp programın daha az ha…