Dersin Adı Dersin Seviyesi Dersin Kodu Dersin Tipi Dersin Dönemi Yerel Kredi AKTS Kredisi Ders Bilgileri
YAZILIM TEST MÜHENDİSLİĞİ İkinci Düzey BS 450 7 3.00 3.00 Yazdır
   
Dersin Tanımı
Ön Koşul Dersleri
Eğitimin Dili Türkçe
Koordinatör DR. ÖĞR. ÜYESİ ÖMÜR ŞAHİN
Dersi Veren Öğretim Eleman(lar)ı DOÇ. DR. ÜYESİ ÖMÜR ŞAHİN
Yardımcı Öğretim Eleman(lar)ı
Dersin Veriliş Şekli yüz yüze
Dersin Amacı Bu ders, öğrencilere modern yazılım testi ve kalite güvencesi ilkelerine ilişkin kapsamlı bir anlayış kazandırmayı; etkili test kümeleri tasarlama, uygulama ve değerlendirme becerisi edinmelerini amaçlamaktadır. Hata analiziyle başlayan ve kapsama ölçütleri, mutasyon testi, regresyon testi, fuzzing, arama tabanlı test ve model tabanlı test gibi ileri otomatik test tekniklerine uzanan konular aracılığıyla öğrenciler aşağıdaki becerileri geliştirecektir: Birim testlerde görülen kırılgan doğrulamalar ve yetersiz izolasyon gibi yaygın anti-pattern’leri ve zayıflıkları belirleyebilme; okunabilirliği, sürdürülebilirliği ve güvenilirliği artırmak için sistematik yeniden düzenleme tekniklerini uygulayabilme. Testleri tutarlı biçimde Arrange-Act-Assert (AAA) örüntüsüne göre yapılandırabilme, testin amacını açıkça ifade eden açıklayıcı test metodu adları yazabilme ve davranış doğrulamasını uygulama ayrıntılarına bağımlı testlerden ayırt edebilme. Test edilen birimleri izole etmek amacıyla test double’ları, yani stub ve mock nesnelerini uygun biçimde kullanabilme; test kalitesini yerleşik yazılım testi ilkelerine göre değerlendirebilme ve somut iyileştirmeleri gerekçelendirebilme. Kapsama analizi, mutasyon testi ve otomatik test üretimi konularındaki pratik becerileri kullanarak testlerin etkililiğini artırabilme ve güçlü yazılım kalitesinin sağlanmasına katkı sunabilme.
Dersin Tanımı Bu ders, yazılım testi ve kalite güvencesine kapsamlı bir giriş sunarak hem temel ilkeleri hem de ileri teknikleri ele alır. Öğrenciler, birim düzeyinden sistem düzeyine kadar farklı ölçeklerde test süreçlerini inceleyecek; kapsama ölçütleri, mutasyon testi, regresyon testi, fuzzing, arama tabanlı test üretimi ve model tabanlı test yöntemlerini uygulamayı öğrenecektir. Derste ayrıca pratik becerilere güçlü bir vurgu yapılır. Bu kapsamda öğrenciler; birim testlerdeki zayıflıkları belirleme, okunabilirlik ve sürdürülebilirlik için yeniden düzenleme yapma, Arrange-Act-Assert örüntüsünü uygulama, açıklayıcı test adları yazma ve test doubles kullanımını etkili biçimde gerçekleştirme konularında yetkinlik kazanacaktır. Dersin sonunda öğrenciler, test kümelerini kalite ölçütlerine göre değerlendirebilecek ve iyileştirebilecek; böylece sağlam ve güvenilir yazılımların geliştirilmesine katkı sağlayabilecektir.

Dersin İçeriği
1 Yazılım Testi ve Analizine Giriş
2 Büyük ve Küçük Ölçekli Testler (Bölüm 1)
3 Uygulama: Hatalar, Enfeksiyonlar ve Başarısızlıklar (DIF)
4 Büyük ve Küçük Ölçekli Testler (Bölüm 2)
5 Uygulama: Birim Test Becerilerinin Geliştirilmesi
6 Büyük ve Küçük Ölçekli Testler (Bölüm 3) + Kapsama Ölçütleri (Bölüm 1)
7 Uygulama: Test Double’ları
8 Kapsama Ölçütleri (Bölüm 2)
9 Uygulama: JaCoCo Kapsama Analizi + CFG/CCFG Alıştırmaları
10 Mutasyon Testi
11 Regresyon Testi
12 Fuzzing
13 Arama Tabanlı Test Üretimi
14 Model Tabanlı Test
15
16
17
18
19
20

Dersin Öğrenme Çıktıları
1 Mevcut birim testlerdeki kırılgan doğrulamalar, yetersiz adlandırma ve izolasyon eksikliği gibi zayıflıkları ve anti-pattern’leri belirleyebilme.
2 Okunabilirliği, sürdürülebilirliği ve güvenilirliği artırmak amacıyla kötü yazılmış birim testleri yeniden düzenleyebilme.
3 Birim test durumlarını yapılandırırken Arrange-Act-Assert (AAA) örüntüsünü tutarlı biçimde uygulayabilme.
4 Her bir testin amacını ve beklenen davranışını açıkça ifade eden açıklayıcı ve anlamlı test metodu adları yazabilme.
5 Davranışı doğrulayan testler ile uygulama ayrıntılarına sıkı biçimde bağlı testleri ayırt edebilme ve ikinci tür testlerin neden kırılgan test kümelerine yol açtığını açıklayabilme.
6 Test edilen birimi bağımlılıklarından izole etmek amacıyla test double’ları, yani stub ve mock nesnelerini uygun biçimde kullanabilme.
7 Verilen birim test kümesini kalite ölçütlerine göre değerlendirebilme ve önceki haftalarda ele alınan yazılım testi ilkelerine dayanarak somut iyileştirmeleri gerekçelendirebilme.
8
9
10

*Dersin Program Yeterliliklerine Katkı Seviyesi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Yıldızların sayısı 1’den (en az) 5’e (en fazla) kadar katkı seviyesini ifade eder

Planlanan Öğretim Faaliyetleri, Öğretme Metodları ve AKTS İş Yükü
  Sayısı Süresi (saat) Sayı*Süre (saat)
Yüz yüze eğitim 14 2 28
Sınıf dışı ders çalışma süresi (ön çalışma, pekiştirme) 14 2 28
Ödevler 0 0 0
Sunum / Seminer hazırlama 0 0 0
Kısa sınavlar 0 0 0
Ara sınavlara hazırlık 1 5 5
Ara sınavlar 1 1 1
Proje (Yarıyıl ödevi) 0 0 0
Laboratuvar 0 0 0
Arazi çalışması 0 0 0
Yarıyıl sonu sınavına hazırlık 1 10 10
Yarıyıl sonu sınavı 1 1 1
Araştırma 0 0 0
Toplam iş yükü     73
AKTS     3.00

Değerlendirme yöntemleri ve kriterler
Yarıyıl içi değerlendirme Sayısı Katkı Yüzdesi
Ara sınav 1 40
Kısa sınav 0 0
Ödev 0 0
Yarıyıl içi toplam   40
Yarıyıl içi değerlendirmelerin başarıya katkı oranı   40
Yarıyıl sonu sınavının başarıya katkı oranı   60
Genel toplam   100

Önerilen Veya Zorunlu Okuma Materyalleri
Ders kitabı -
Yardımcı Kaynaklar -

Ders İle İlgili Dosyalar