Dersin Adı Dersin Seviyesi Dersin Kodu Dersin Tipi Dersin Dönemi Yerel Kredi AKTS Kredisi Ders Bilgileri
SOFTWARE TEST & QUALITY ASSURANCE Birinci Düzey YZ 304 Zorunlu 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 Applies engineering knowledge related to mathematics, science, basic engineering, and computer-based calculations to solve engineering problems.
2 Gains the ability to develop engineering solutions using discipline-specific knowledge and methods.
3 Defines complex engineering problems and formulates them using fundamental science and engineering knowledge.
4 Defines and analyzes solutions to problems, taking into account the UN Sustainable Development Goals.
5 Designs creative solutions to complex engineering problems.
6 Gains the ability to design complex systems, processes, devices, or products by considering realistic constraints in the engineering problem-solving process.
7 For the analysis and solution of complex engineering problems, selects and effectively applies appropriate methods, techniques, resources, and modern engineering and computing tools, including estimation and modeling.
8 Aware of the limitations of the methods, techniques, and IT tools used, it produces and implements appropriate solutions.
9 Conducts literature research to examine complex engineering problems and collects data within the scope of these studies.
10 Using research methods, the student designs and conducts experimental or applied studies, analyze and evaluate the results.
11 Within the scope of the UN Sustainable Development Goals, the student is knowledgeable about the impacts of engineering solutions on society, health and safety, the economy, sustainability, and the environment, and analyze these impacts.
12 Gains awareness of the legal consequences of engineering solutions.
13 The student acts in accordance with professional principles and legal regulations in engineering practice and acquires knowledge about ethical responsibilities.
14 Gains awareness about non-discrimination, impartiality, and inclusiveness of diversity.
15 Gains the ability to work effectively as an individual, team member, or team leader in intra-disciplinary or multi-disciplinary team projects.
16 Gains the ability to communicate effectively in technical matters, both verbally and in writing by taking into account the differences in the target audience''s education, language, and profession.
17 Gains the ability to apply project management principles, perform time and resource planning, and conduct economic feasibility analysis.
18 Gains awareness about entrepreneurship and innovation.
19 Gains the ability to adapt to new and emerging technologies and to evaluate technological changes with a questioning and critical perspective.
20 Gains the ability to independently and continuously learn new knowledge and skills.
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