Test Metodolojileri & Teori
Test Metodolojileri & Teori

Yazılım Test Mühendisleri İçin Agile ve Scrum Yaklaşımları

#Agile#Scrum#Sprint

Yazılım dünyasında hız ve kaliteyi bir arada sunabilmek, süreçlerin doğru kurgulanmasına bağlıdır. Geleneksel yöntemler, yerini çoktan esnek ve dinamik olan Agile felsefesine bıraktı. Ancak QA (Kalite Güvence) mühendisleri olarak bizlerin bu süreçlerdeki rolü sadece kod bittikten sonra test koşmaktan ibaret değildir. Bizler, sürecin her adımında kaliteyi inşa etmekle sorumluyuz.

Peki, Agile ve Scrum yaklaşımları bir QA mühendisinin çalışma şeklini nasıl değiştirir? Bu dinamik yapıda nelere dikkat etmeliyiz? Birlikte inceleyelim.

Büyük Resim: Agile ve Scrum Nedir?

Sektörde bu iki kavram genellikle birbirine karıştırılır. Aralarındaki bağı en basit haliyle şöyle düşünebiliriz:

  • Agile (Çeviklik) bir felsefedir: Sağlıklı yaşama kararı almak gibidir. Büyük, hantal ve değişime kapalı projeler yerine; işi küçük parçalara bölmeyi, sürekli geri bildirim almayı ve değişime hızla ayak uydurmayı savunur.

  • Scrum ise bir çerçevedir (Framework): Sağlıklı yaşamak için uyguladığınız o spor ve diyet programıdır. Agile felsefesini sahada gerçeğe dönüştürmek için kullanılan; kuralları, rolleri ve toplantıları net olarak belirlenmiş en popüler çalışma disiplinidir.

Kısacası; Agile bir zihniyet, Scrum ise bu zihniyeti sahada uygulama yöntemimizdir.

Agile Dünyasında Öne Çıkan QA Yaklaşımları

Agile projelerde test mühendisliği, geleneksel şelale (Waterfall) modeline göre tamamen farklı iki temel prensibe dayanır:

1. Shift-Left Testing (Erken Test)

Geleneksel projelerde test ekibi süreçlerin en sonunda sahaya çıkardı. Agile ise test süreçlerini olabildiğince "sola", yani sürecin en başına çeker. QA mühendisi daha analiz ve tasarım aşamasındayken sürece dahil olur. Amacımız; hatalar henüz koda dökülmeden, analiz aşamasındaki mantık hatalarını ve çelişkileri yakalamaktır. Çünkü analizde yakalanan bir hatayı düzeltmek, canlı ortamda yakalanan bir hatayı düzeltmekten çok daha maliyetsizdir.

2. Continuous Testing (Sürekli Test)

Agile projelerde yazılım sürekli yaşayan ve büyüyen bir organizmadır. Her gün yeni kodlar eklenir. Bu yüzden test de sürekli olmalıdır. Regresyon testlerinin otomasyona dökülmesi ve her kod dağıtımında (deployment) otomatik olarak koşması (CI/CD entegrasyonu), Agile QA yaklaşımlarının kalbini oluşturur.

Scrum Seremonilerinde QA Rolü

Scrum çerçevesinde tüm geliştirme süreçlerinin döndüğü sabit zaman dilimlerine Sprint denir. Bir QA mühendisi olarak başarımız, bu sprint içi seremonilerde ne kadar aktif rol aldığımızla doğrudan ilişkilidir:

Sprint Planning (Sprint Planlama)

Her sprintin başında yapılan bu toplantıda QA mühendisi masa başında olmalıdır:

  • Test Kapsamını Netleştirin: Geliştiricilerle birlikte hangi özelliklerin test edileceğini, nelerin kapsam dışı kalacağını belirleyin.

  • Kabul Kriterlerini (Acceptance Criteria) Sorgulayın: Kullanıcı hikayelerinin kabul kriterlerini analiz edin, belirsiz noktaları daha kod yazılmadan netleştirin.

  • Efor Tahmini Yapın: İşler puanlanırken (Story Point) test için harcanacak süreyi de hesaba katarak tahmine katılın.

Daily Standup (Günlük Scrum)

Ekibin senkronize olduğu bu 15 dakikalık kısa sürede bir QA şu üç noktaya odaklanmalıdır:

  • Gelişmeler: Dün hangi testleri koştunuz, bugün hangilerini test edeceksiniz özetleyin.

  • Engeller (Blocker): Test ortamı patlaması veya test verisi eksikliği gibi süreçlerinizi tıkayan durumları hemen paylaşın.

Sprint Review (Sprint Değerlendirmesi / Demo)

Sprint sonunda tamamlanan işlerin paydaşlara sunulduğu andır:

  • Kalite Durumu: Sprint boyunca bulunan kritik hatalar, çözülme oranları ve test kapsamı hakkında ekibe kısa bilgiler verin.

  • Doğrulama: Sunulan ürünün, belirlenen kabul kriterlerini tam karşıladığından emin olun.

Sprint Retrospective (Retrospektif)

Takımın kendi süreçlerini masaya yatırdığı ve "daha iyi nasıl çalışabiliriz" sorusuna yanıt aradığı yerdir:

  • Darboğazlar: "Kodlar teste geç geliyor, test için zaman kalmıyor" gibi kök nedenleri açıkça tartışın ve gelecek sprintler için aksiyon planı çıkarın.

Özetle Agile bir zihniyet, Scrum bir rehber, test yaklaşımları ise bizim sahada uyguladığımız stratejilerdir. QA mühendisleri olarak süreçlerin sadece bir aşaması değil, projenin en başından en sonuna kadar kalitenin koruyucusu olmalıyız. Takımla kuracağımız güçlü iş birliği, günün sonunda hem kaynakları verimli kullanmamızı hem de son kullanıcıya çok daha sağlam bir ürün ulaştırmamızı sağlar.

Bağlantılı Yazılar