Yazılım Mühendisliği (İngilizce) | |||||
Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey |
Ders Kodu: | JOB113 | ||||
Ders İsmi: | Çeviklik ve Yazılım Test Temelleri | ||||
Ders Yarıyılı: |
Güz Bahar |
||||
Ders Kredileri: |
|
||||
Öğretim Dili: | İngilizce | ||||
Ders Koşulu: | |||||
Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
Dersin Türü: | Bölüm/Program Seçmeli | ||||
Dersin Seviyesi: |
|
||||
Dersin Veriliş Şekli: | Yüz yüze | ||||
Dersin Koordinatörü: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
Dersi Veren(ler): |
|
||||
Dersin Yardımcıları: |
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. |
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. |
Hafta | Konu | Ön Hazırlık |
1) | Giriş ve Agile Temelleri | |
2) | Agile ve Geleneksel Yaklaşımlar | |
3) | Scrum’a Giriş - Scrum Roller - Scrum Scrum Artifacts | |
4) | Scrum Ceremonies - 1 | |
5) | Scrum Ceremonies - 2 | |
6) | Scrum’un İş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 | |
15) | Sektörden konuşmacıların katılması ve Dersin Değerlendirilmesi |
Ders Notları / Kitaplar: | Software Testing: An ISTQB-BCS Certified Tester Foundation guide - 4th edition, |
Diğer Kaynaklar: | Software Testing: An ISTQB-BCS Certified Tester Foundation guide - 4th edition, |
Ders Öğrenme Kazanımları | 1 |
2 |
3 |
4 |
5 |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Kazanımları | |||||||||||
1) Matematik, fen bilimleri ve yazılım mühendisliğine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. | |||||||||||
2) Karmaşık yazılım mühendisliği problemlerini tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | 2 | 2 | 2 | 2 | 2 | ||||||
3) Karmaşık bir yazılım sistemini, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama, gerçekleştirme, sınama, doğrulama, ölçme ve bakımını yapma becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | 2 | 2 | 2 | 2 | 2 | ||||||
4) Yazılım mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | |||||||||||
5) Karmaşık mühendislik problemlerinin veya yazılım mühendisliği araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi. | |||||||||||
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | |||||||||||
7) Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi. | |||||||||||
8) Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi. | |||||||||||
9) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve yazılım mühendisliği uygulamalarında kullanılan standartlar hakkında bilgi. | |||||||||||
10) Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. | |||||||||||
11) Yazılım mühendisliği uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın yazılım mühendisliği alanına yansıyan sorunları hakkında bilgi; yazılım mühendisliği çözümlerinin hukuksal sonuçları konusunda farkındalık. |
Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek |
Dersin Program Kazanımlarına Etkisi | Katkı Payı | |
1) | Matematik, fen bilimleri ve yazılım mühendisliğine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. | |
2) | Karmaşık yazılım mühendisliği problemlerini tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | 2 |
3) | Karmaşık bir yazılım sistemini, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama, gerçekleştirme, sınama, doğrulama, ölçme ve bakımını yapma becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | 2 |
4) | Yazılım mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | |
5) | Karmaşık mühendislik problemlerinin veya yazılım mühendisliği araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi. | |
6) | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | |
7) | Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi. | |
8) | Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi. | |
9) | Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve yazılım mühendisliği uygulamalarında kullanılan standartlar hakkında bilgi. | |
10) | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. | |
11) | Yazılım mühendisliği uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın yazılım mühendisliği alanına yansıyan sorunları hakkında bilgi; yazılım mühendisliği çözümlerinin hukuksal sonuçları konusunda farkındalık. |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Projeler | 1 | % 20 |
Ara Sınavlar | 1 | % 40 |
Final | 1 | % 40 |
Toplam | % 100 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 60 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 40 | |
Toplam | % 100 |
Aktiviteler | Aktivite Sayısı | Aktiviteye Hazırlık | Aktivitede Harçanan Süre | Aktivite Gereksinimi İçin Süre | İş Yükü | ||
Ders Saati | 13 | 3 | 39 | ||||
Sınıf Dışı Ders Çalışması | 14 | 3 | 42 | ||||
Proje | 1 | 10 | 10 | ||||
Ara Sınavlar | 1 | 10 | 10 | ||||
Final | 1 | 15 | 15 | ||||
Toplam İş Yükü | 116 |