🌐 Web, Mobil Test & Süreçler
Web, Mobil Test & Süreçler: Web mimarisini bir şehrin belediye sistemi gibi düşünebilirsin: vatandaş (kullanıcı) belediye binasına (Frontend/UI) gelir; gişe görevlisi (API) vatan
Web mimarisini bir şehrin belediye sistemi gibi düşünebilirsin: vatandaş (kullanıcı) belediye binasına (Frontend/UI) gelir; gişe görevlisi (API) vatandaşın talebini alır ve doğru departmana iletir; arka ofisteki bürokratlar (Backend) talebi işler; arşiv odası (Database) tüm kayıtları tutar. Peki 'test ederken sadece UI'yı tıklamak yeterli değil mi?' Çünkü gişe görevlisi 'başvurunuzu aldım' dese bile arka ofis süreci başlatmamış olabilir — bir ödeme formu 'tamamlandı' mesajı gösterse bile backend transaction kaydetmemiş olabilir; bu sessiz başarısızlığı ancak API seviyesinde assertion yaparak veya database'i sorgulayarak yakalarsın. Java'da bu mimariyi Spring Boot projesi olarak düşünebilirsin: Controller → Service → Repository → Entity katmanları; her katmanı birim testi yazmak önemli ama sadece `@SpringBootTest` ile tüm yığını entegrasyon testi yapmak gerçek akışı valide eder. QA açısından kritik fark: UI testi 'onay sayfasını gördüğünde' geçer; API testi `/payment` endpoint'inin 200 döndürdüğünü kontrol eder; entegrasyon testi ise database'deki `orders` tablosunda kayıt oluştuğunu doğrular — üçünü birden yapan QA 'ödeme sayfası açılıyor ama para çekilmiyor' gibi katman sınırındaki hataları yakalar, sadece UI testi yapan ise bu hataları müşteri şikayetiyle öğrenir.
Bir Web Uygulaması Hangi Katmanlardan Oluşur?
UI / Frontend Nedir?
Web testi; bir web uygulamasının fonksiyonel olarak doğru çalıştığını (linkler, formlar, butonlar), farklı tarayıcılarda (Chrome, Firefox, Safari) ve farklı ekran boyutlarında (responsive) doğru göründüğünü, hızlı yüklendiğini ve güvenli olduğunu doğrulayan test sürecidir. Selenium ve Playwright gibi araçlar, bir kullanıcının yapacağı tıklama ve yazma işlemlerini otomatik olarak tekrarlayarak bu testleri yapar.
Mobil Uygulama Testi Nedir, Nasıl Yapılır?
Mobil test, bir uygulamanın Android ve iOS gibi farklı işletim sistemlerinde, farklı ekran boyutu ve donanımlara sahip cihazlarda doğru çalıştığını doğrular. Üç uygulama tipi vardır: Native (Kotlin/Swift ile yazılan, mağazadan indirilen), Hybrid (tek kod tabanından hem Android hem iOS'a derlenen, React Native/Flutter gibi) ve Mobil Web (tarayıcıda açılan responsive site). Appium gibi araçlar, Selenium'a çok benzer bir mantıkla gerçek cihaz veya emülatör üzerinde dokunma, kaydırma (swipe) gibi gerçek kullanıcı hareketlerini otomatikleştirir.
DevOps Nedir? Amacı Nedir?
DevOps (Development + Operations), yazılımı geliştiren (Dev) ve canlı ortamda çalıştıran (Ops) ekipleri birleştiren bir kültür ve pratikler bütünüdür. Amacı, kod yazıldıktan sonra üretime (production) çıkana kadar geçen süreci otomatikleştirip hızlandırmak, hataları erken yakalamak ve sık, güvenli sürümler (release) yapabilmektir. Jenkins gibi araçlarla kurulan CI/CD (Continuous Integration/Continuous Deployment) pipeline'ları, kod her push edildiğinde otomatik build + test + deploy adımlarını çalıştırır. Docker ve Kubernetes ise bu uygulamaların her ortamda (geliştirici bilgisayarı, test sunucusu, canlı) aynı şekilde çalışmasını garanti eder.
DevOps Döngüsü (Basitleştirilmiş)
Bu döngü Jenkins/GitHub Actions gibi CI/CD araçlarıyla otomatikleştirilir; her adımda otomatik test koşulmazsa hatalar canlıya kadar fark edilmeyebilir.
Agile Nedir? Scrum Nedir?
Agile (Çevik), büyük bir projeyi tek seferde teslim etmek yerine küçük, sürekli geri bildirim alınan parçalara (sprint) bölerek geliştirme felsefesidir. Scrum ise Agile felsefesini uygulamak için kullanılan en yaygın çerçevedir (framework): iş genellikle 2 haftalık sprint'lere bölünür, her sprint planlama, günlük kısa toplantı (daily stand-up), sprint sonu demo (review) ve retrospektif ile yönetilir. Eski Waterfall (Şelale) modelinde ise tüm gereksinimler en başta belirlenir, test aşaması en sona bırakılır — bu da hataların çok geç fark edilmesine yol açar.
Bir Yazılım Geliştirme (Development) Takımı Kimlerden Oluşur?
SDET / Otomasyon Mühendisi