This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Hacettepe Üniversitesinde "Yazılım Test Mühendisliği" dersi
Pratik-yoğun (hands-on) bir ders Tarihçe:
Kanada’da 10 sene civarı hem üniversite ve hem de endüstriye verilen ders
Türkiye'de ODTÜ ve Atılım Üniversitesin de verildi, endüstriden birçok katılım oldu
Beş proje: Introduction to Testing, Bug Reporting and Defect Tracking Black-box Testing and API-Based Unit Testing using JUnit Code Coverage and White-box Testing in JUnit Automated Web Application Testing using Selenium Using Static Analysis to Find Bugs
Lab 1: Introduction to Testing and Defect Tracking
Goals: Getting hands-on experience in ad-hoc, manual and regression testing Using industrial defect tracking practices and tools Experiencing that ad-hoc manual testing is not always very effective
SUT: An ATM simulation system Testing support tool: JIRA, Bugzilla, the Google issue tracking tool
Realistic defects were manually injected in the SUT
Kaliteli Test-Kodu Nasıl Geliştirilir? Manuel yöntem: test mühendisi el ile test kodu yazıyor Normal kaynak kodu gibi, kaliteli kod yazmak lazım Bir çok önemli noktaya dikkat lazım Test kodunun kalite yönleri ve ölçütleri nelerdir?
Test kodunun hem fonksiyonel (functional) ve hem fonksiyonel-dışı (non-functional) kalite yönleri vardır.
Fonksiyonel kalite: test kodunun ürün kodunu doğru ve sağlam test etmesidir.
Meşhur “Saatçiyi izlemek”(İngilizcede: “Watching the watchman”) sözü gibi, test kodu için de dikkatli doğrulama ve geçerleme lazım.
Test kodunun fonksiyonel-dışı kalitesi ise, “-bilirlik” ailesindeki kalite ölçütlerini kapsıyor, örneğin, bakıla-bilirlik (maintainability), anlaya-bilirlik (understandability) ve güvene-bilirlik (reliability).
Örnek test örüntüleri: Sayfa Nesneleri (Page objects): The Page Object pattern represents the screens of your
web app as a series of objects Web uygulamalarını otomatik test ederken, kullanıcı arayüzünde (UI) testler ile etkileşim
alanları vardır. Bir "Sayfa Nesnesi" test kodunun içinde tum sayfayı nesne olarak modelliyor. Böylece, kopya kod miktarı azalıyor ve arayüz değişirse, düzeltme, test içinde değişikler
yalnızca tek bir yerde gerekiyor. Örnek: bir web-tabanlı email uygulamayı test ederken:
Yerine:
Daha çok örnek: https://code.google.com/p/selenium/wiki/PageObjects
Testleri Otomatik Üretmek Manuel yöntem: test mühendisi el ile test kodu yazıyor Otomatik yöntem: bir test otomasyon aracı kullanarak test kodu otomatik bir şekilde
geliştirmek Tekrar, farklı test seviyeleri için (birim ve sistem testi), farklı araçlar mevcut
Testleri Otomatik Üretmek Bir projeden örnek Firma: .Net’de NUnit testlerini otomatik üretmek Test Edilen Yazılım (TEY): Rocket adlı bir Veri Tabanlı Kontrol ve Gözetleme Sistemi
(Supervisory Control and Data Acquisition (SCADA) Sıkıntı: Manuel şekilde NUnit testleri geliştirmek çok zaman alıyordu, örneğin:
denklik sınıflandırma (equivalence classing) metodun kullanarak, bu sistemde, 19,683 tane test senaryosu sadece bir birim (fonksiyon blok) için çıkıyordu. Kotu haber (bu kadar test kodu yazmak çok efor istiyor)
Testleri Otomatik Üretmek .Net’de NUnit testlerini otomatik üretmek
İkili testProgramın tüm ikili girdi kombinasyonlarını çalıştırmak için test senaryolarının tasarlandığı kara kutu test tasarım tekniği Ayrıca bakınız dikey dizi testi.
A black box test design technique in which test cases are designed to execute all possible discrete combinations of each pair of input parameters. See also orthogonal array testing.