Dersin Adı Dersin Seviyesi Dersin Kodu Dersin Tipi Dersin Dönemi Yerel Kredi AKTS Kredisi Ders Bilgileri
SOFTWARE TEST & QUALITY ASSURANCE Üçüncü Düzey YZ 304 6 5.00 5.00 Yazdır
   
Dersin Tanımı
Ön Koşul Dersleri
Eğitimin Dili İngilizce
Koordinatör DR. ÖĞR. ÜYESİ ÖMÜR ŞAHİN
Dersi Veren Öğretim Eleman(lar)ı
Yardımcı Öğretim Eleman(lar)ı
Dersin Veriliş Şekli Yüz yüze
Dersin Amacı
Dersin Tanımı

Dersin İçeriği
1 Introduction to software testing and analysis - Beizer maturity model - Why exhaustive bug finding is impossible - RIPR model (Reachability, Infection, Propagation, Revealability)
2 Testing big and small (Part 1) - Test automation - Test scope and the test triangle - Unit testing fundamentals (Part 1), avoiding brittle tests - Practical: Defects, infections, failures (DIF)
3 Testing big and small (Part 2) - Unit testing fundamentals (Part 2), writing clear tests - Test doubles - Practical: Improve weak forum unit tests
4 Testing big and small (Part 3) + Coverage criteria (Part 1) - Larger-scope tests - Intro to coverage criteria - Practical: Test doubles with calculator-style I/O abstractions
5 Coverage criteria (Part 2) - Control-flow analysis and testing - Data-flow analysis and testing - Coverage criteria conclusions and trade-offs - Practical: JaCoCo coverage analysis + CFG/CCFG exercises
6 Mutation testing - Mutation concepts and fault-revealing power
7 Regression testing - Test suite minimization - Test prioritization - Test selection - Practical: algorithmic regression-testing exercises
8 Fuzzing - Random test generation concepts - Practical: build a basic Java fuzzer driver in Python
9 Search-based test generation - Search-based software testing (SBST) - Practical: EvoSuite/EvoMaster tutorial (generation, execution, configuration)
10 Model-based testing - FSM-based testing concepts - State cover, transition tour, UIO, characterizing set, W-method - Practical: FSM exercise set
11
12
13
14
15
16
17
18
19
20

Dersin Öğrenme Çıktıları
1 Explain key software testing concepts, including defects, infections, failures, and the RIPR model.
2 Design and implement clear, maintainable unit tests in Java using JUnit.
3 Critically evaluate test quality with respect to brittleness, readability, and behavior-oriented assertions.
4 Apply test doubles (stubs, mocks, fakes, dummies) to isolate dependencies in unit tests.
5 Measure and interpret structural coverage (e.g., statement/branch coverage) using tools such as JaCoCo.
6 Construct and reason about CFG/CCFG artifacts for control-flow and data-flow based testing.
7 Apply mutation testing and interpret mutation score as an indicator of test effectiveness.
8 Use regression-testing techniques for test suite minimization, prioritization, and selection.
9 Build and execute simple fuzzing workflows and analyze crash/exception behavior.
10 Use search-based and model-based approaches (EvoSuite, FSM-based techniques) to derive effective tests.

*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 0 0 0
Sınıf dışı ders çalışma süresi (ön çalışma, pekiştirme) 0 0 0
Ödevler 0 0 0
Sunum / Seminer hazırlama 0 0 0
Kısa sınavlar 0 0 0
Ara sınavlara hazırlık 0 0 0
Ara sınavlar 0 0 0
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 0 0 0
Yarıyıl sonu sınavı 0 0 0
Araştırma 0 0 0
Toplam iş yükü     0
AKTS     0.00

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

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

Ders İle İlgili Dosyalar