5.5. Bölüm Sonu Uygulama Görevi (Hands-on Challenge)
Bölüm 5 boyunca bir test mühendisinin olay yerindeki dedektiflik disiplinini, bilet yaşam döngüsünü ve sektörün en çok tartışılan Ciddiyet (Severity) / Öncelik (Priority) matrisini öğrendin.
Şimdi, gerçek bir mobil uygulamada patlayan ve kullanıcıların aboneliklerini iptal ettirmesine yol açabilecek kritik bir krizin resmi Jira biletini kaleme alma vakti!
Görev Senaryosu: “Çevrimdışı İndirmede Patlayan Müzik Çalar”
Popüler bir dijital müzik akış platformunun (streaming app) mobil uygulamasında “Çevrimdışı Modda Şarkı İndirme” özelliğini test ediyorsun.
Yaptığın test koşumu sırasında şu olaylar gerçekleşti:
-
Test cihazında 500 MB boş depolama alanı olduğunu teyit ettin.
-
10 şarkıdan oluşan 100 MB’lık bir albümü Wi-Fi üzerinden indirmeye başladın.
-
Albümün 1. ve 2. şarkısı başarıyla indi; 3. şarkı inerken telefonun Wi-Fi bağlantısını kapattın.
-
İndirme işlemi duraklamak yerine uygulama aniden kapandı (Crash).
-
Uygulamayı yeniden açıp kütüphaneye girdiğinde; daha önce sorunsuz inmiş olan 1. ve 2. şarkıların da cihazdan tamamen silindiğini ve indirme listesinin sıfırlandığını gördün.
Senden İstenenler
-
Yukarıdaki arıza için uluslararası standartlara uygun eksiksiz bir Jira Kusur Raporu hazırla (Başlık, Test Ortamı, Ön Koşullar, Adımlar, Fiili Sonuç, Beklenen Sonuç, Ekler).
-
Bu kusurun Severity (Ciddiyet) ve Priority (Öncelik) seviyelerini belirle; neden bu seviyeleri seçtiğini mühendislik ve iş hedefleri açısından açıkla.
🔍 Görev Çözüm Kılavuzu ve Referans Çizelgesi
Kendi raporunu hazırladıktan sonra aşağıdaki profesyonel çözüm standardı ile çalışmanı karşılaştır:
1. Profesyonel Jira Kusur Raporu
Title (Başlık):
[Offline Mode] Albüm indirme sırasında ağ bağlantısı kesildiğinde uygulamanın çökmesi (Crash) ve önceden inen şarkıların silinmesi (Data Loss)
Environment (Test Ortamı):
-
Cihaz Modeli: Samsung Galaxy S23
-
İşletim Sistemi: Android 14 (One UI 6.0)
-
Uygulama Sürümü (Build): v3.8.2-beta (Build #1048)
-
Ağ Bağlantısı: Türk Telekom Fiber Wi-Fi (5 GHz) $\rightarrow$ Ağ Kapalı (Offline)
-
Depolama Durumu: 500 MB Dahili Boş Alan
-
Test Kullanıcısı:
premium_qa_tester_01(ID: 88219)
Severity (Teknik Ciddiyet): Critical / Blocker
Priority (İş Önceliği): High (P1)
Prerequisites (Ön Koşullar):
-
Kullanıcı aktif bir “Premium” abonelik hesabı ile giriş yapmış olmalıdır.
-
Cihazda en az 500 MB boş depolama alanı bulunmalıdır.
-
Cihaz stabil bir Wi-Fi ağına bağlı olmalıdır.
-
Kütüphanede daha önceden indirilmemiş 10 şarkılık (100 MB) bir test albümü seçilmiş olmalıdır.
Steps to Reproduce (Yeniden Üretim Adımları):
-
Uygulamayı aç ve “Kitaplığım” sekmesine git.
-
10 parçalık test albümünü aç ve “İndir” butonunu aktif hale getir.
-
-
ve 2. şarkıların indirilip yanlarında yeşil “İndirildi” ikonunun belirmesini bekle.
-
-
-
şarkı indirilme durumundayken (%40 seviyesinde) cihazın üst bildirim panelini indirip Wi-Fi bağlantısını kapat.
-
-
Ekrandaki davranışı gözlemle.
-
Uygulamayı simgesine dokunarak yeniden başlat ve “İndirilenler” listesini kontrol et.
Expected Result (Beklenen Sonuç):
-
Wi-Fi kesildiği anda indirme süreci nazikçe duraklatılmalı (Paused) ve ekranda kullanıcıya net bir uyarı çıkmalıdır: “Wi-Fi bağlantısı koptu. İndirme duraklatıldı.”
-
Uygulama kesinlikle kapanmamalı / çökmemelidir.
-
Önceden indirilmiş olan 1. ve 2. şarkılar yerel depolamada saklanmaya devam etmeli ve çevrimdışı olarak dinlenebilmelidir.
Actual Result (Gerçekleşen Sonuç):
-
Wi-Fi kapatıldığı anda uygulama herhangi bir uyarı göstermeden donmakta ve 1 saniye içinde işletim sistemi ana ekranına çökmektedir (Fatal App Crash).
-
Uygulama tekrar açıldığında daha önce başarıyla inmiş olan 1. ve 2. şarkılar yerel hafızadan silinmiş görünmekte ve albüm indirme durumu sıfırlanmaktadır (Data Loss).
Attachments (Ekler):
-
crash_video_reproduce.mp4(Wi-Fi kapatıldığı anda çöküşü ve şarkıların silindiğini gösteren 20 saniyelik kayıt). -
logcat_crash_dump.txt(Çökme anına ait Android işletim sistemi log dosyası — Kök Neden Hatası:NullPointerException at NetworkStreamManager.onConnectionLost).
2. Severity ve Priority Gerekçelendirmesi
-
Severity: CRITICAL (veya Blocker)
-
Teknik Gerekçe: Sistem beklenmeyen bir ağ kesintisini yönetemeyerek doğrudan çökmektedir (Unhandled Exception / Fatal Crash). Daha da ağırı, kullanıcının cihazındaki yerel dosyalar bozulmakta ve veri kaybı (Data Loss) yaşanmaktadır. Bir yazılımda çökme ve veri kaybı, teknik hasarın en üst seviyesidir.
-
-
Priority: HIGH (P1 – En Yüksek Öncelik)
-
Ticari Gerekçe: “Çevrimdışı Dinleme”, müzik platformlarının kullanıcıları ücretsiz sürümden ücretli Premium sürüme geçiren en önemli gelir kapısıdır. Kullanıcıların metroda veya uçakta müzik dinleyememesi ve şarkılarının silinmesi, doğrudan sosyal medyada itibar kaybına, 1 yıldızlı yorumlara ve üyelik iptallerine (churn) neden olur. Canlıya çıkıştan önce derhal çözülmelidir.
-
4. “Bir de Şöyle Düşün” (Kutu İçeriği)
💡 Bir de Şöyle Düşün: Bulaşık Yıkarken Suların Kesilmesi
Evde bulaşık makinesini çalıştırdığını hayal et:
Zarif Dayanıklılık (Graceful Degradation): 3. tabak yıkanırken mahallenin suları kesilir. Makine bip sesi çıkarır, ekranda “Su Kesik” ışığı yanar ve beklemeye geçer. Sular geldiğinde kaldığı yerden devam eder.
Felaket Durumu (Crash & Data Loss): Su kesildiği anda makinenin motoru patlar, mutfağı duman kaplar (Crash) ve içindeki tüm tabaklar tuzla buz olur (Data Loss).
Mobil uygulamaların internet kesintisine karşı çökmeyip suyu bekleyen akıllı makine gibi davranması gerekir. Ağ koptuğunda çöküp kullanıcının dosyalarını silmek, yazılım dünyasının en affedilmez mühendislik ayıplarından biridir.
5. Mini Alıştırma
Mülakat Sorusu: Yukarıdaki hata için geliştirici Mehmet kodu düzelttiğini iddia ederek yeni bir sürüm (v3.8.3-beta) gönderdi. Jira’da biletin durumu Fixed yapıldı.
Bir Test Mühendisi olarak bu bileti kapatmadan önce uygulaman gereken Re-test (Yeniden Test) ve Regresyon (Regression) adımları tam olarak ne olmalıdır?
Re-test Adımı: Biletteki adımları (Wi-Fi kapatma) yeni sürümde birebir tekrar uygularım. Ağ kesildiğinde uygulamanın artık çökmediğini, “Duraklatıldı” uyarısı verdiğini ve 1. ile 2. şarkının silinmediğini gözlerimle doğrularım.
Regresyon Testi Adımı: Geliştiricinin ağ kesintisi yönetiminde yaptığı düzeltmenin diğer özellikleri bozup bozmadığını anlamak için; normal Wi-Fi açıkken şarkı indirmeyi, hücresel veri (4.5G/5G) üzerinden indirmeyi ve çevrimdışı modda şarkı çalma fonksiyonunu test ederim.