Dr. Volkan Tunalı'nın Kişisel Blogu

Bilgisayar, Teknoloji, Bilim, Sanat

Test! Test! Test!

leave a comment

Programdaki bir hatanın farkedildiği zamana göre geliştirici şirkete hem maddi olarak hem de prestij olarak verdiği zararın boyutu değişiklik gösterir.

  1. Programcının kendi testleri sırasında: Hatanın en zararsız olduğu, en çabuk ortadan kaldırıldığı aşamadır. Keşke bütün hatalar bu aşamada farkedilse.
  2. (Varsa) Test ekibinin testleri sırasında: Müşteriye ulaşmadan önce programınızı bir veya daha fazla aşamada test eden ve kalite kontrolünden geçiren bir ekip varsa kendinizi şanslı sayabilirsiniz. Bu aşamada farkedilen hatalar genelde rutin çalışma programınızda aksamalara neden olmak ve tekrar o konuya dönüş yapmanızı gerektirmek dışında zararsız sayılabilirler. Yine de can sıkıcı; keşke en başında farkedilseydi bu hata.
  3. Takım arkadaşları tarafından başka bir çalışmanın testleri sırasında: Bunu da 2. maddeye benzetebiliriz.
  4. Müşteriye yükleme ve eğitimler sırasında operasyon ekibi tarafından: Müşteride henüz ciddi boyutta veri girişi yapılmadığı ve dolayısıyla hata nedeniyle veri bozulması, işlerin aksaması gibi bir soruna neden olmadığı için çok ciddi boyutta bir zararı olmamakla birlikte operasyon ekibini zor durumda bırakan bir hata sinir bozucu olabilir.
  5. Müşteri tarafından erken bir zamanda: Farkedilen bir hatayı kodda arayıp bulmak ve düzeltmek işin en kolay tarafı. İşin zor tarafı ise müşterinin işine bir an önce devam edebilmesini sağlamak ve varsa bozuk verilerin düzeltilerek sorunlu iş süreçlerinin düzene sokulmasıdır. Operasyon ve müşteri destek ekibine yardımcı olmakla geçen saatler ve belki de günler programcının normal çalışma programının bir hayli aksamasına neden olur.
  6. Müşteri tarafından uzun bir kullanım süresinden sonra: Bu aşamada genellikle tonlarca hatalı veri oluşmuş ve kimsenin de dikkatini çekmemiştir. Bu hatalı veriler üzerinden hatalı raporlamalar yapılmış ve hatta resmî kayıtlara bu haliyle geçmiştir. Sorunlu verileri düzeltmek gerekir ama eskiye dönük tutarsızlık yaratacağı için düzeltmemek bazen yapılacak en iyi şey olabilir. Hatanın müşteriye maliyeti yanında geliştirici şirkete prestij ve güven kaybı olarak da ciddi yansımaları olabilir.

Son birkaç maddede yer alanlara benzer senaryolar deneyim sahibi her yazılımcının başından mutlaka geçmiştir. Deneyimli yazılımcılar bu nedenle hatalardan ders alırlar, hataya düşülecek noktaları çok iyi bilirler, yılların deneyimine ve sahip oldukları derin yazılımcılık bilgisine güvenmek hatasına düşmeyip, yazdıkları programları ayrıntılı ve düzenli bir şekilde test ederler. Gerçek şu ki herkes hata yapabilir, herkesin gözünden kaçan şeyler olabilir; bunları yakalamanın yolu test etmekten geçer.

Programcılığın yarısı programı yazmak/kodlamak ise yarısı da ortaya çıkan programı sağlıklı bir şekilde test etmektir. Yani, tasarlamaya ve kodlamaya zaman ayrıldığı kadar programın testine de zaman ayrılmalıdır. Yazılımcılar genelde testi sıkıcı bulurlar, işlerinin programlamak olduğunu, test etmek olmadığını düşünürler ve teste sıra geldiğinde üstünkörü bir çalışmayla işlerini sonlandırırlar. “Test ekibi ne güne duruyor, bir sorun varsa test ekibi nasıl olsa geri dönüş yapar.” düşüncesinden hareketle ve bazen de projenin zaman baskısı nedeniyle test sürecine hakettiği zamanı ve eforu ayırmazlar. Oysa ki sonradan farkedilen bir hatanın düzeltilmesi için normalden çok daha fazla zaman ve efor gerekir.

Yazılımcının görevi fonksiyonellik ve kullanışlılık bakımından gereksinimleri sağlayan bir yazılımı planlanan sürede oluşturmak olduğu kadar bu yazılımı en az kusurlu şekilde oluşturmaktır. Başarılı yazılımcılar çabuk ve çok iş çıkaran değil, en az hatayla dönüş olan işler çıkaran yazılımcılardır.

Written by vtunali

Nisan 20th, 2010 at 10:46 pm