Ders Genel Tanıtım Bilgileri

Ders Kodu: JOB155
Ders İsmi: Çeviklik ve Yazılım Test Temelleri
Ders Yarıyılı: Güz
Ders Kredileri:
AKTS
5
Öğretim Dili: Türkçe
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Bölüm/Program Seçmeli
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üy. MUHAMMED DAVUD
Dersi Veren(ler): Dr. Öğr. Üy. ALI ASGHAR POUR HAJI KAZEM
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: "Bu dersin amacı, öğrencilere yazılım geliştirme süreçlerinde güncel ve etkili yöntemleri öğretmek, bu yöntemlerin nasıl uygulanacağını ve avantajlarını kavratmaktır. Ders, öncelikle Agile metodolojisinin temel prensiplerini anlatarak başlayacak ve ardından Scrum frameworkünü detaylı bir şekilde ele alacaktır. Öğrenciler, Scrum’un işleyişini, rollerini ve seremonilerini öğrenerek pratikte nasıl uygulanacağını kavrayacaklardır.
Scrum’un ardından, yazılım testinin temel prensipleri olan ISTQB Foundation Level konularına geçiş yapılarak, yazılım testi süreçleri ve teknikleri hakkında bilgi verilecektir. Bu bölümde, test tasarımı teknikleri, test yönetimi, test araçları ve yazılım kalitesinin nasıl sağlanacağı gibi konular işlenecektir.
Son olarak, Agile Testing konusuna değinilerek, Agile metodolojisi ile entegre bir şekilde nasıl etkin test süreçleri yürütülebileceği anlatılacaktır. Öğrenciler, Agile ortamlarında test stratejileri geliştirme, sürekli entegrasyon ve teslimat süreçlerinde testin rolünü anlama fırsatı bulacaklardır.
Bu ders, öğrencilere teorik bilgilerin yanı sıra pratik uygulama fırsatları da sunarak, gerçek dünya projelerinde kullanabilecekleri beceriler kazandırmayı amaçlamaktadır. Öğrencilerin, yazılım geliştirme ve test süreçlerinde kaliteyi artıracak modern yöntemleri benimsemeleri ve uygulamaları hedeflenmektedir."
Dersin İçeriği: Ders, Agile metodolojisinin temelleri, Scrum frameworkü, yazılım testinin temel prensipleri ve Agile test yaklaşımlarını ele almaktadır. Dersin içeriği:
Agile Manifestosu, Agile metodolojiler (Scrum, Kanban, XP, Lean) ve Agile ile geleneksel yaklaşımlar arasındaki farklar.
Scrum'un tanımı, roller (Product Owner, Scrum Master, Development Team), artefaktlar (Product Backlog, Sprint Backlog, Increment) ve seremoniler (Sprint Planning, Daily Stand-up, Sprint Review, Sprint Retrospective).
Yazılım testine giriş, test seviyeleri (birim testi, entegrasyon testi, sistem testi, kabul testi) ve test teknikleri (kara kutu testi, beyaz kutu testi, deneyime dayalı testler).
Test yönetimi, planlama, izleme ve kontrol, risk temelli test ve test araçları.
Agile testing, Agile test dörtlüsü (Test Quadrants), Agile testing prensipleri (hızlı geribildirim, sürekli entegrasyon, TDD, BDD), Agile test teknikleri (exploratory testing, pair testing) ve Agile test otomasyonu.
Uygulamalı çalışmalar kapsamında Scrum simülasyonları, test case yazma ve yürütme, ve test otomasyonu uygulamaları yer almaktadır.
Ders, öğrencilere teorik bilgilerle birlikte pratik uygulama fırsatları sunarak, yazılım geliştirme süreçlerinde etkili ve verimli çalışma becerileri kazandırmayı amaçlamaktadır.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Agile manifestosu ve prensipleri ile Scrum frameworkünün (roller, seremoniler, artifekler) temellerini anlama ve açıklayabilme.
2) Scrum seremonilerini etkin bir şekilde uygulama, Product Backlog ve Sprint Backlog yönetimi yapabilme, kullanıcı hikayeleri yazma becerisi kazanma.
3) Yazılım testinin seviyelerini ve tekniklerini (kara kutu, beyaz kutu, deneyime dayalı testler) kavrayabilme, test yönetimi ve planlaması konularında bilgi sahibi olma.
4) Agile testing prensiplerini, test stratejilerini ve tekniklerini (TDD, BDD) anlama ve uygulama, test otomasyon araçları ile CI/CD süreçlerini entegre edebilme.
5) Scrum simülasyonları, test case yazma, test otomasyonu uygulamaları ile pratik beceriler geliştirme ve ekip içi işbirliği ile etkili çalışma yeteneği kazanma.

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Giriş ve Agile Temelleri
2) Scrum seremonilerini etkin şekilde yönetebilme
3) Yazılım testi süreçlerini ve seviyelerini kavrama
4) Scrum Ceremonies - 1
5) Scrum Ceremonies - 2
6) Scrum’ın İşleyişi ve Pratik Uygulama
7) Yazılım Testine Giriş
8) Ara Sınav
9) Test Seviyeleri ve Tipleri
10) Test Tasarım teknikleri ve test case yazımı ve Test Otomasyonu
11) Test Tasarım teknikleri - Test Senaryo yazımı - Sektörde yaygın kullanılan araçlar ve teknikler ve Örnekler
12) Yazılım Testinde Hatalar - Hata Raporlaması - Sektörde yaygın kullanılan araçlar ve Örnekler
13) Agile Testing Nedir?
14) Agile Test Teknikleri ve Stratejileri

Kaynaklar

Ders Notları / Kitaplar: Software Testing: An ISTQB-BCS Certified Tester Foundation guide - 4th edition,
Diğer Kaynaklar: Course Slides
Ders Notları

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

5

Program Kazanımları

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı

Ölçme ve Değerlendirme

Değerlendirme Yöntemleri ve Kriterleri Aktivite Sayısı Katkı Payı
Ara Sınavlar 1 % 40
Final 1 % 60
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Aktiviteye Hazırlık Aktivitede Harcanan Süre Aktivite Gereksinimi İçin Süre İş Yükü
Ders Saati 13 3 39
Sınıf Dışı Ders Çalışması 13 5 65
Ara Sınavlar 1 10 10
Final 1 20 20
Toplam İş Yükü 134