Yazılım testi, bir yazılım uygulamasının işlevselliğini değerlendirme sürecidir. Geliştirilen yazılımın belirtilen ihtiyaçları karşılayıp karşılamadığını tanımlamaya hizmet eder. Yazılım test uzmanları yanılgıları bulur ve düzenler. Bu emelle, test edilecek yazılımın işlevlerini içeren ve hakikatleştiren test senaryoları planlayarak yalnızca işlevselliğini değil aynı zamanda beyannamelere uygunluğunu da hakimiyet etmekteyiz.
Bir Yazılım Testçisinin Görevleri Nelerdir?
Yazılım test uzmanları yanılgıları bulur ve düzenler. Bunu yapmak için, test edilecek yazılımın işlevlerini içeren test senaryoları tasarlar ve yalnızca işlevselliğini değil aynı zamanda spesifikasyonlara uygunluğunu da hakimiyet etmek için reelleştirir. Mesullük alanı, test montajına, başka bir deyişle yazılımın çalıştırıldığı ekipmana da göz kulak olmayı kapsar. Bu yapı her zaman aktüel olmalı ve testler için ihtiyaçlar her zaman aynı olmalıdır, aksi takdirde neticeler tahrif edilecektir. Test gidişatları reelleştirildikten sonra neticeleri tahlil eder. Test kusurlar kapsıyorsa ve bu sebeple zafersiz olduysa düzenler. Kusur yazılımdaysa, test kullanıcıları tarafından sebebi bulma mevzusunda desteklenmeye devam eden geliştirme takımına iletir.
Bu İşteki En Büyük Güçlükler Nelerdir?
En büyük güçlük, tüm geliştirme sürecini takip etmektir. Bir yazılım parçası ne kadar işlevselliğe sahipse, testler o kadar karışık hale kazanç. Ne de olsa, giderek daha fazla işlevin hakimiyet edilmesi gerekiyor ve bunlar arasındaki bağımlılıklar da çoğalıyor. Buna göre, test senaryoları vb. tarafından daha fazla senaryonun içerilmesi gerekir. Bir şeyi daima usta yakalamak ehemmiyetlidir: Bir yazılım testi asla bitmez. Testçiler ve geliştiriciler hiçbir zaman %100 kusursuz yazılım elde edemeyeceğinizi zannediyorlar.
Test İdaresinin Hedefleri
Test yönetimi ile izlenen iki ana hedef vardır:
Yazılım kusurlarını muhtemel olduğunca erken ortaya çıkarın Yazılım niteliğiyle alakalı bilinmezliği en aza indirin
Yazılım kusurlarını muhtemel olduğunca erken ortaya çıkarmaya çalışmalısınız. Yazılım geliştirirken, özelleştirirken veya kurarken testler genellikle oldukça geç yapılır. Netice olarak, bulunan yanılgılara veya asıl kusurlara uygun bir tepki ancak geç bir safhada yapılabilir. Bu kusurdan kaynaklanan maliyetler sabrederek çoğalır, daha sonra bir hata bulunur ve giderilir. Yazılım niteliğiyle alakalı bilinmezliği en aza indirmelisiniz. Yeterince testin yazılımın kusursuz olduğunu ispatlayabileceği yanlış bir hipotez olacaktır. Maliyet faalliği bu tahmini maniler. Orta seviyede yazılım karışıklığına sahip %100 ’lük bir test kapsamı genellikle çok zaman alır ve bu sebeple pahalıdır. Test yönetimi, bu sebeple, yazılımın kritik kusurlar kapsayıp kapsamadığı mevzusundaki bilinmezliği, yaşama geçirmenin güvenle varsayım edilebileceği miktarda en aza indirmeyi emeller. Bu, yeterli test kapsamı, değişik test cinslerinin yürütülmesi veya yapıma muhtemel olduğunca yakın test bilgileri gibi muhtelif parametrelerle desteklenebilir. Test yönetimi, yazılımın artık kusur kapsamadığını ispatlamayı kastetmez.
Yapılandırılmış Test İdaresinin Verimleri
Sarih görevler, roller ve mesullükler ile yapılandırılmış test yönetimi ile alakalı genellikle bir hayli avantaj vardır. Bunlar, öbürleri arasında şunları kapsar:
Erken kusur tespiti ve yinelenebilir testler ve test edilecek lüzumlara ait netlik sayesinde daha düşük bakım maliyetleri sebebiyle tüm yazılım yaşam döngüsü süresince maliyet eksiltme Öğrenilen test kapsamları aracılığıyla test düzeylerinin daha iyi tasarlanabilirliği Yeterli test senaryosu tanımı ve belgeleme aracılığıyla bireyden bağımsız testler, testlerin dış kaynak kullanımına dahi izin verir Test idaresinin devamlı iyileştirilmesi yoluyla yazılım niteliğinin devamlı iyileştirilmesi Yapılandırılmış test senaryolarını test otomasyonu aracılığıyla çalıştırma alternatifi, böylece ek zaman ve kaynak tasarrufu sağlar.
Yazılım Test Uzmanı
İlk sezginin aksine, bir testçi yalnızca testleri yapmakla kalmaz, aynı zamanda test sürecinde operasyonel görevleri de üstlenir. Bir test aygıtının tipik görevleri şunları kapsar:
Test edilebilirlik için ihtiyaçların spesifikasyonların ve kabul kriterlerinin hakimiyet edilmesi Test ön şartlarını tanımlar ve dokümanlar Test senaryolarının ve test prosedürlerinin oluşturulması ve uygulanması Detaylı test yürütme tasarısının oluşturulması
Görev dağılımına bağlı olarak, uygun test bilgileriyle test civarının sağlanması da yazılım test uzmanlığının görevlerindendir.
Test İdare Standartları
Test yönetimi sistematize edilmiş ve bu sebeple uzun senelerdir standartlaştırılmıştır. Bu alandaki ilk standart, şimdi 829-2008 versiyonunda mevcut olan ve bir test sürecinin bileşenlerini açıklayan ANSI IEEE 829 “Yazılım ve Sistem Test Dokümanları Standardı”dır. Bu, bazı beynelmilel yazılım test standartlarını özetleyen ve dolayısıyla yerini alan İstanbul Sanayi Odası IEC IEEE 29119 Yazılım Test standardı ile sonuçlandı. Standart, kavramları, test sürecini, test dokümanlarını, test tekniklerini ve anahtar sözcüğe dayalı testleri açıklayan beş kısma parçalamıştır.