Yazılım Test Günlüğü: Temel Test Süreçleri

Yazılım Test Günlüğü: Temel Test Süreçleri

Daha önceki yazılarımda sizlere Neden test etmemiz gerektiğinden, Testin ne olduğu ve 7 prensibinden bahsetmiştim. Bu yazımda da sizlere Temel test süreçleri ve aktivitelerinden bahsedeceğim.

Her seviyedeki test için temel bir test süreci fikri yıllar içerisinde gelişmiştir. Test seviyesi ne olursa olsun, aynı seviyedeki testlerin ana faaliyetleri benzerdir, ama farklı seviyelerde farklılık gösterebilir. Testin görünen kısmı testin yürütülmesi aşamasıdır. Örneğin, bileşen testleri, belgelenmemiş bir test süreci ile çoğu kuruluşta sistem testlerinden daha resmi olarak yapılabilir. Testin resmiliği konusunda karar vermek için sistem ve yazılım içeriğine ve yazılımla ilişkili risk seviyesine bakmak gerekir.

Verimli ve etkin bir test süreci işletebilmek için testin planlanması (planning and control), test tasarım tekniklerinin kullanılarak test senaryolarının oluşturulması (analysis and design), test ortamının ve test verilerinin hazırlanması (implementation and execution), test sonuçlarının değerlendirilip raporlanması (evaluating exit criteria and reporting) ve kazanılan tecrübelerin bir sonraki projelere aktarılması (test closure activities) gerekir.

Test süreçleri kapsamında yukarıda saydığımız bu faaliyetler mantıksal olarak ardışıkdır, ancak belirli bir projede çakışabilir, eş zamanlı olarak gerçekleşebilir ve tekrarlanabilir. Bu temel aktivitelerin direkt kullanılamadığı durumlarda proje ve sisteme göre uyarlanması gerekebilir.

Temel Test Süreçleri

Test Planlama ve Kontrol:

Test planlamasında, müşterilerimizin, menfaat sahiplerinin ve projenin amaç ve hedeflerini ve testin önermesi amaçlanan riskleri anladığımızdan emin olmalıyız. Bu bize projenin misyonunu ve hedeflerini karşılamak için gerçekleştirilmesi gereken aktiviteleri belirlememize olanak sağlar. Bu anlayışa dayanarak, testin amaçlarını ve hedeflerini belirleyerek, test etkinliklerinin spesifikasyonu da dahil olmak üzere testler için bir yaklaşım ve plan elde etmiş oluruz.

Test planlamasında, bir test planı oluşturmamıza yardımcı olan aşağıdaki ana görevleri vardır:

  • Testin kapsamını ve risklerini belirleyin ve test amaçlarını tanımlayın.
  • Test yaklaşımını (teknikler, test öğeleri, kapsama alanı, testte yer alan ekipleri tanımlama ve arabirim oluşturma, testware) belirleyin.
  • Test politikasını ve / veya test stratejisini uygulayın.
  • Gerekli test kaynaklarını belirleyin (ör. Insanlar, test ortamı, PC’ler):
  • Test analizi ve tasarım görevlerini, test uygulaması, yürütme ve değerlendirme adımlarını zamanlayın.
  • Çıkış kriterlerinizi belirleyin.

Herhangi bir etkinliğin yönetimi onu planlamak ile bitmez. Plana göre kontrol ve ölçme işlemlerinin de gerçekleştirilmesi gerekir. Yani, test kontrolü devam eden bir faaliyettir. Gerçek ilerlemeyi planlanan ilerlemeyle karşılaştırılmalı ve planın herhangi bir değişikliği veya sapması da dahil olmak üzere testin mevcut durumu hakkında proje yöneticisine ve müşteriye rapor verilmelidir. Projenin hedeflerine ulaşmak için gerektiğinde aksiyon almamız gerekebilir. Bu gibi eylemler, sıklıkla gerçekleşen orijinal planımızı değiştirmeyi gerektirebilir. Farklı gruplar projede farklı inceleme ve test etkinlikleri gerçekleştirdiğinde, planlama ve kontrol, bu grupların her birinde gerçekleşir; aynı zamanda, aralarında koordine edilmesi için gruplar arasında test aşamalarının her bir aşamasında kesintisiz geçiş yapılmasına ihtiyaç duyulur. Test planlaması, proje boyunca gerçekleşen izleme ve kontrol faaliyetlerinden gelen geri bildirimleri dikkate almalıdır.

Test kontrolü aşağıdaki temel görevleri içerir:

  • İncelemelerin ve testlerin sonuçlarını ölçün ve analiz edin.
  • Süreç, test kapsamı ve çıkış kriterlerini izleyin ve belgeleyin.
  • Proje yöneticisi, proje sponsoru, müşteri ve diğer önemli paydaşlara proje durumu hakkında bilgi verin.
  • Çözüm bekleyen hataların, düzeltilmesi için gereken süreci başlatın, ve takibini yapın.
  • Test sırasında toplanan önlemler ve bilgiler ile iş ve proje risklerindeki değişiklikler veya teknik ve ürün risklerindeki artışı dikkate alarak testin devam edip etmeyeceğine karar verin.

Test Analizi ve Tasarımı:

Test analizi ve tasarımı, genel test amaçlarının somut test şartlarına ve test tasarımlarına dönüştürüldüğü faaliyettir. Test analizi ve tasarımı sırasında, planlama sırasında belirlenen genel test hedeflerini ve test tasarımları ve test prosedürlerini (komut dosyaları) oluştururuz.

Analiz ve tasarım aşamasında aşağıdaki temel adımlar yer almaktadır:

  • Test ettiğimiz yazılımın teknik özelliklerini inceleyerek test temelini (ürün risk analizi, gereksinimler, mimari, tasarım özellikleri ve arayüzler gibi) gözden geçirin.
  • Test öğelerinin analizine dayalı test koşullarını, özelliklerini, davranışları ve yapıları hakkında ne bildiğinizi belirleyin.
  • Test koşullarını temel alan ve daha ayrıntılı bir şekilde, risk taşıyan veya özellikle ilgi duyan yazılım ürününün belirli yönleriyle ilgili temsili testlerin seçiminde yardımcı olacak teknikler kullanarak testleri tasarlayın.
  • Gereksinimlerin ve sistemin test edilebilirliğini değerlendirin.
  • Test ortamı kurulumunu tasarlayın ve gerekli altyapıyı ve araçları tanımlayın.

Test Uyarlama ve Yürütme:

Test uygulaması ve yürütülmesi sırasında test koşullarını alır ve test durumlarına ve test ürünlerine dönüştürür ve test ortamını ayarlarız. Bu, testlerimiz için üst düzey bir tasarım oluşturduktan sonra, şimdi bunları inşa etmeye başladığımızın göstergesidir. Test koşullarımızı test durumlarına ve prosedürlerine, otomasyon komut dosyaları gibi diğer test araçlarına dönüştürüp, testleri koşacağımız ve test verilerimizi oluşturacağımız bir ortam da oluşturmamız gerekmektedir. Ortamların ve verilerin hazırlanması önemli zaman ve çaba gerektirir, bu nedenle bu çalışmayı planlamalı ve izlemelisiniz. Testin uygulanması ve yürütülmesi, aşağıdaki sırayla belirtilen temel görevlere sahiptir:

Uyarlama:

  • Test durumlarımızı geliştirin, önceliklendirin ve bu testler için test verileri oluşturun. Testleri gerçekleştirmek için talimatları (test prosedürleri) yazın.
  • Etkili test yürütmek için test durumlarından test süitleri oluşturun. Bir test paketi, doğal olarak birlikte çalışan test durumlarının mantıksal bir derlemesidir. Test paketleri genellikle veri  ve ortak bir üst düzey hedef seti paylaşır. Ayrıca bir test yürütme takvimi oluşturun.
  • Ortamı uyarlayın ve doğrulayın. Test ortamının doğru bir şekilde kurulduğundan ve muhtemelen üzerinde belirli testlerin çalıştığından emin olun.

 Yürütme:

  • Test prosedürlerini takiben, test suitlerini ve bireysel test durumlarını yürütün. Bunu, elle veya planlanmış diziye göre test yürütme araçlarını (otomasyon) kullanarak yapabiliriz.
  • Test yürütülmesinin sonucunu kaydedin ( Test Execution Log) ve test edilen yazılımın kimliklerini ve sürümlerini, test araçlarını ve test yazılımını loglayın.
  • Gerçek sonuçları (testleri gerçekleştirdikten sonra ne oldu) beklenen sonuçlarla (öngördüğümüz) karşılaştırın.
  • Gerçek ve beklenen sonuçlar arasında farklılıklar olması durumunda, Hataları bildirin.
  • Her bir uyumsuzluk için gerçekleştirilen düzeltmenin testini tekrarlayın. Örneğin düzeltmenin doğrulanması için daha önce başarısız olmuş bir testi yeniden yürütün (onaylama testi), yazılımın değiştirilmemiş alanlarında hatalar oluşup oluşmadığından veya hata düzeltme işleminin diğer hataları ortaya çıkarmadığından emin olmak için düzeltilmiş bir testi ve/veya testleri yürütün (regresyon).

Çıkış Kriterlerini Değerlendirme ve Raporlama:

Çıkış kriterini değerlendirme işleminde test yürütmenin belirlenen hedeflere ulaşıp ulaşamadığı değerlendirilir. Bu işlemin her bir test seviyesi için gerçekleştirilmesi gerekir.

Çıkış kriterlerinin değerlendirilmesi aşağıdaki temel adımları içerir:

  • Test loglarını test planlamasında belirtilen çıkış kriterlerine göre kontrol edin.
  • Daha fazla test gerekip gerekmediğini veya belirlenen çıkış kriterlerinin değiştirilmesi gerekip gerekmediğini değerlendirin.
  • Paydaşlar için bir test özeti raporu yazın.

Test Kapanışı Aşaması:

Test kapanışı aşamasında test projesinde elde edilen tecrübeyi, geliştirilen test yazılımlarını, metrikleri ve net bilgileri bir sonraki projelerde kullanılmak için toplarız. Test kapanışı adımları, bir yazılımın piyasaya sürülmesi, test projesinin tamamlanması (veya iptal edilmesi), bir kilometre taşına ulaşılması ya da bakım sürümünün tamamlanması gibi karar verme aşamalarında hayata geçirilir.

Test kapanışı işlemleri aşağıdaki temel işlemleri içerir:

  • Test projesinde elde edilmesi planlanan çıktıların hangilerine ulaşıldığı kontrol edilir.
  • Açık olay raporları kapatılır, kapatılamayanlar için değişiklik kayıtları oluşturulur.
  • Yazılımın kabulü belgelenir.
  • Daha sonra tekrar kullanmak amacıyla test yazılımı, test ortamı ve test altyapısı sonlandırılır ve arşivlenir.
  • Test yazılımı bakım ekiplerine devredilir.
  • Gelecekteki sürümler ve projeler için gerekli olan değişiklikleri belirlemek amacıyla elde edilen tecrübeler analiz edilir.
  • Test sürecinin olgunluğunu artırmak için toplanan bilgiler kullanılır.

Bu yazımda sizlere Temel Test Süreçleri hakkında çerçeve niteliğinde bilgiler verdim. Siz de kullandığınız test süreçleri ve aktivitelerinizi, yöntem ve aşamaları paylaşarak katkıda bulunabilirsiniz.

 

Kaynaklar:

  1. ISTQB Foundation Level Syllabus
  2. FOUNDATIONS OF SOFTWARE TESTING ( Dorothy Graham, Erik van Veenendaal, Isabel Evans, Rex Black)
Bu yazıyı paylaş

Bir Cevap Yazın

%d blogcu bunu beğendi: