22 Ocak 2010 Cuma

IE 8.0'da Hp Quality Center çalıştırılması

İe 8.0'da Qc'yi açmak istediğinizde, açılamadığını görmek sizi üzüntüye sürüklemesin çünkü bunun çözümü
var;

1.yol;
İnternet explorer'dan
- internet seçenekleri - gelişmiş - güvenlik sırası takip edilerek ulaşılan listede;
“Çevrimiçi saldırıların azaltılmasına yardımcı olmak için bellek korumayı etkinleştir” (Enable memory protection to help mitigate online attacks)
tiki işaretliyse kaldırılır. Tüm IE 8 pencereleri kapatılıp yeniden açılır.

Not: Bu alan pasif ve değiştirilemez durumda ise;
Alanı aktifleştirmek için işletim sisteminizi(Win7) test moduna almanız gerekmektedir, bu işlemi Komut satırına
bcdedit -set TESTSIGNING off yazıp çalıştırmak ve ardından bilgisayarınızı yeniden başlatmak suretiyle gerçekleştirmiş olursunuz. Not: Bu işlemin başarılı bir şekilde gerçekleşmesi için
bilgisayarınızda local admin olmanız gerekmektedir.

2.yol;
Hp'nin hazırladığı plug-in leri kurmak;
QC 9.0 için
QC 9.2 için

İyi testler

12 Ocak 2010 Salı

Test eğitimleri ve sertifikasyonu

ISTQB'nin Foundation Level(başlangıç) ve Advanced Level(ileri seviye) eğitimlerini almış biri olarak şunları söyleyebilirim;
Eğitim süresi dışarıdan bakıldığında kısa görünüyor(3gün) fakat bana göre katma değeri yüksek bir eğitim.
Eğitim Test Mühendisi olarak hergün uğraştığımız işlerin bir sunumundan ibaret gibi gelebilir ama işin profesyonel boyuttada böyle yapıldığını görmek kendinize ve işinize karşı bir ispat niteliği taşıyor...
3 günlük eğitimlerin ardından uygulanan sınav bu işte tecrübe edinmiş kişilerin pekte zorlanmadan geçebileceği türden. Benim fikrim eğitimlerin alınması yönünde.

Uluslararası düzeydeki eğitim programları ve sertifikasyonlarını veren kurumlar şunlardır;
ISQTB - http://www.istqb.org/
CSTE -   http://www.qaiglobal.com/
CSTP -   http://www.testinginstitute.com/
CTM -    http://www.testinginstitute.com/ctm.php
CSQA -  http://www.qaiindia.com/Certification/note.htm
CSPM -  http://www.qaiindia.com/Certification/note_cspm.htm
CSPE -   http://www.qaiasia.com/edistacertification/Certification.asp

White Box Testing

Beyaz Kutu (white box) test tekniği;
Bu test tekniğinin en genel tabiri kod testidir. Projenin hem kaynak kodu, hemde derlenmiş kodu test edilir.


White-Box Test Metodları

Birim Test: Çalışan bir kod parçası ya da modül için, geliştiriciler tarafından gerçekleştirilir.Düşük seviyede işlem gerçekleştirir.
  
Statik ve Dinamik Analiz: Statik analiz kodu sıralı bir şekilde inceler ve hataları araştırır. Dinamik analiz,kodun çalışmasını ve çıktıyı analiz eder.
  
Açıklama Kapsamı: Açıklamaların test edilmesiyle ilgilenir.Her bir açıklama en az bir kez test edilir. Tüm açıklamaların sorun yaşamadan çalıştığını garanti altına alır.
  
Sınıf Kapsamı: Hiçbir yazılım uygulaması sürekli olarak kodlanmaz, bazı noktalarda, kodun dağılışı incelemeli ve belirli bir fonksiyonu çalıştırılmalıdır. Tüm sınıflar doğrulanmasına yardım eder ve uygulamanın anormal davranış göstermesini engeller.

Güvenlik Testi: Sistemin izinsiz erişimler, kod bozulması, hacklenme gibi olaylardan nasıl korunacağı ile ilgilenir. Karmaşık test metotları gerekir.
Değişim Testi: Belirli bir hata düzeltildikten sonra yapılan bir testtir.Hangi kodun, stratejinin geliştirmeye yardımcı olacağını belirlemeyi sağlar.

Avantajları
  • Kodun optimizasyonunu sağlar.
  • Ekstra kod parçasını kaldırır ve tek bakışta gözükmeyen sorunları ortaya çıkarır.
  • Hangi verinin kodu en iyi şekilde test edeceğini tespit eder.
Dezavantajları
  • Belirli özelliklere sahip test yapıldığında maliyet artar.
  • Kodun inceleyip tek tek hata bulmak çok zor bir işlemdir.
Bazı testler hem White-Box hem de Black-Box kapsamında incelenebilir. Bunlara örnek verecek olursak;

Fonksiyonellik Testi:Kodla birlikte fonksiyonelliği test eder.
Birleştirme Testi:Uygulamaya yeni eklenen kod ile işbirliği yapar.
Performans ve Yükleme Testi:Kodun hangi kısmının sistemin kaynaklarını yönettiğini ve performansı verilişini belirler.

Black Box Testing

Kara-Kutu Yapı Taşları Test Uygulaması

Kara-Kutu test uygulaması yazılımın tipine bakmaksızın seçtiği test yöntemini uygulayan yazılım test tekniklerinden
oluşur. Kara-Kutu test tekniği girdi olarak uygulanabilir bir yapı taşı (Component) ve bir varsayımla işe başlar.
Her program girdisinden sonra oluşan çıktı kontrol edilir , hata meydana gelmiş ise bu teknik aracılığı ile
belirlenir.

Kara kutu test uygulaması , yazılımın satın alındığı firma tarafından bu test uygulamasına tabi tutulduğu bildirilse
dahi yine de yapılmalıdır.

Kara-Kutu testindeki başarıda en önemli etken ortaya konan varsayımdır. Kötü planlanan bir varsayım tam ters bir
sonucun doğmasına neden olabilir. Ancak bu varsayımın hazırlanması gerçekten güç bir konudur. Bununla ilgili
çözümler piyasada bulunmaktadır. Ancak en uygun yol satın alan kuruluşun bu konuyu bizzat kendisinin belirlemesidir.

Çok önemli bir diğer nokta da kuruluşun test çalışmalarını firmanın ileri sürdüğü özelliklere karşı değil kendi
belirlediklerine karşı yürütmesidir. Zira sonuçta yazılım satıcı firma için değil kurumun gereksinmeleri için
geliştirilecektir.

Kara-Kutu test uygulaması temelde ilk kez B.P.Miller tarafından yine kendisinin geliştirdiği Fuzz Model de
kullanıldı. Fuzz Model kara-kutu için girdileri rastgele olarak yürütür ve bunları UNIX sistem fonksiyonları içine
gönderir ve oluşan hataları gözler. Ancak bu gözlemlerin yazılımın problemlerini belirlemede iyi bir yaklaşım
olduğunu söylemek olanaksızdır.

Fuzz Modelde bu güvensizliğin nedeni , örneğin yazılımda var olan eksikliği belirliyecek test uygulamalrından sadece
bir tanesinin bu hatayı belirliyebilmesi ve bu test uygulamasının Kara-Kutu çalışmasında kullanılmamış olmasıdır. Bu
nedenle Kara-Kutu test uygulamasında izlenecek uygun yol müşterinin girdileri , varsayımları ve test sürücüleri
kendinin yaratmasıdır.

Ancak doğal olarak bu uygulama yöntemi hem pahalı bir yol hem de deneyim gerektiren bir iştir. Bu konuda deneyimli
personeli olmayan bir kuruluş için bu yolu izlemenin tek seçeneği danışman bir kuruluşla bu işleri yürütmesidir.
Ancak ileride oluşacak ve geri dönüşe neden olacak her türlü hatanın yukarda saydığımız giderlerin çok çok üstünde
bir gider oluşturacağını unutmamak gerekir.


Black Box Test Sınıflandırmaları;

Functional Testing

Stress Testing

Load Testing

Ad-hoc Testing

Exploratory Testing

Usability Testing

Smoke Testing

Recovery Testing

Volume Testing

Domain Testing

Scenario testing

Regression Testing

User Acceptance

Alpha Testing

Beta Testing

Yazılım Test Teknikleri

• Fonksiyonel Test / Functional Testing
Fonksiyonel test, öncelikle sistemin yapması beklenen işlevlerine odaklanır. Tanımlı spesifikasyonların sağlanıp
sağlanmadığının kontrol edilmesinin yanısıra, tanımlı olmayan, düşünülmemiş durumları da incelenir. Özellikle,
beklenmeyen koşullar altında sistemin davranışı saptanarak, olumsuz durumların varlığı aranır.

Gerçek kullanıcılar için data kaybı, runtime hataların alınması gibi durumlar güvenilirliği etkileyeceğinden
fonksiyonel testlerin işletilmesi önem taşır. Test ekibi tarafından test altındaki uygulamanın
operasyonları çok yönlü olacak şekilde analiz edilerek gerekli test teknikleri geliştirilir. Uygulamanın test
kapsamının belirlenmesi, sistem noktalarının ortaya çıkarılması ile tüm fonksiyonel spesifikasyonların teste dahil
edilmesi sağlanır.

• Regresyon Testi / Regression Testing
Daha önce teste alınmış bir yazılımın; hataların çözüldüğünden emin olabilmek, hata düzeltme aktivitelerinde yapılan
değişikliklerin yeni hataları tetiklemediğini görebilmek, yeni eklenen özelliklerin hatalarını yakalayabilmek
amacıyla yürütülen testlerdir.

• Kullanıcı Arayüzü Testi / User Interface Testing
Uygulamanın fonksiyonel işleyişini sağlayabilmek için kullanıcı arayüzünün bu doğrultuda tasarlanması ve kodlanması
gereklidir. Uygulamadaki, ekranlar, menüler, butonlar, resimler, yazılar vs. kullanıcı arayüzü öğelerinin atlanmadan
test edilmesi, pozitif ve negatif test adımlarında davranışlarının değerlendirilmesi gerekmektedir. Manuel ya da
otomatik olarak test edilmesi ile gereksinimlerin karşılandığı görülüp, beklenmeyen sonuçların da ortaya çıkarılması
sağlanır.

• Test Otomasyonu / Test Automation
Test otomasyonu çeşitli tekniklerin dahil edildiği, başarı için sürdürülebilirliğin ve güvenilirliğin şart olduğu
bir alandır. Test otomasyonunun başarılı olabilmesi için öncelikle uygun best practice’lerin seçilmesine önem
verilmelidir.
Test otomasyonunun sağladığı yararları şöyle sıralayabiliriz;
o Zamandan tasarruf edebilmek
o Manuel testlerde harcanan insan gücünü azaltıp, proje maliyetlerini düşürebilmek
o Test edilebilirliği artırmak
o Tekrar test edilebilirliği sağlamak
Uygun test aracının seçilmesi önem taşıdığı için otomasyon projelerinde müşteri yazılımlarına göre
ihtiyacın belirlenmesi ve implementasyon gereksiminimlerinin ortaya net bir şekilde konması gerekir.
Bu sayede süreçlere bağlı, doğru test planlaması yapılarak testler hızlandırılabilir.

• Manuel Test / Manual Testing
Manuel testler, test ekibinin test senaryolarını belirleyerek, ihtimam ile test adımlarını işletmeleri ile
yürütülür. Sistematik yaklaşım ile yürütülen testler, her adımda gerekli detaylandırma yapılarak, otomasyon ile
test edilmesi uygun olmayan testlerde dahil edilerek yapılır.
Bir test mühendisi, her zaman çantasında taşıdığı, merak, sabır, çözüm takip edebilme erdemleri ile daha fazla hata
yakalayabilmeyi amaçlamalıdır.

• Performans Testi & Yük Testi / Performance Testing & Load Testing
Çeşitli iş yükleri altında sisteminizin performansınızı ölçmeniz gerekecektir. Beklenen işlevlerin yerine getirilip
getirilemediği, hangi noktalarda darboğazlar oluştuğu, başarısız senaryo adımları değerlendirilerek performans
analizi yapılmalıdır.

Test ekibi mevcut sistemin performans senaryolarını oluşturarak, client/server tarafında belirlenen metriklerin
değerlerini toplayıp, gerekli analiz sonuçlarını ilgili birimlere sunarak, tahminlere dayalı release
geliştirmemelerini sağlamalıdır.
Test mühendisleri, özel lisanslı/açık kaynak performans test araçlarını kullanarak, tanımlanan sayıda sanal
kullanıcılar ile gerçek ortam koşullarını simüle edebilmektedirler.
İhtiyaçları karşılayabilecek en uygun test aracının belirlenmesi ile test senaryoları çıkarılabilmektedir. Yük
tanımlarının işletilmesi ile de yük altındaki sistemin detaylı performans istatistikleri belirlenmektedir.

• Kullanılabilirlik Testi / Usability Testing
Uygulamanın her işlevi yerine getirdiğini spesifikasyonlara bağlı olarak doğrulayabilirsiniz, ancak kullanıcı ihtiyaçlarını gerektiği gibi karşılamayabilir. Kullanım kolaylığı düşünülmüş, kullanıcı arayüzü açık uygulamaların istenileni daha iyi sağladığını söyleyebiliriz.

• Lokalizasyon Testi / Localization Testing
Test altındaki uygulamanın farklı yönlerden belirgin bir kültür veya lokal odaklı testlerinin yapılabilmesi
gerekmektedir. Lokalizasyon testinde; desteklenmesi beklenen diller, kullanım durumları/alışkanlıkları, bölgesel
saat/tarih ayarları gibi öğelerin test kapsamına alınıp, dikkatli hazırlanacak test planları ile teste tabi
tutulması sağlanır.
Çeşitli pazarları hedefleyen müşteriler, bu testler sayesinde iş gereksinimlerinin karşılanıp karşılanamadığını
görebilmiş olur.

• Uyumluluk Testi / Compatibility Testing
Test kapsamında geliştirilen uyumluluk matrisi ile sürümlerin; farklı işletim sistemleri, tarayıcılar, sunucular,
veri tabanları, çeşitli donanımlar, çözünürlükler vs. belirlenmektedir. Tüm konfigürasyon seçenekleri ortaya
çıkarıldıktan sonra, test ekibi matriste belirtilen her bir öğe için testlerin detaylarını ve sürelerini
ortaya çıkararak yeni sürümlerde/versiyon geçişlerinde uyumluluk testlerini planlayabilmektedir.

6 Ocak 2010 Çarşamba

Başlangıç

Bu blog yararlı gördüğüm bilgi ve kaynakların paylaşılması düşüncesiyle oluşturulmuştur.

10 yılı aşkın tecrübe ve deneyimlerime dayanan bilgiler bulabileceğiniz gibi,
yazılım testi, kalite güvence, iş analizi, proje yönetimi ve kurumsal eğitim konularında da
genel kabul görmüş kaynaklara ulaşabileceksiniz.