Merhaba büyük Medium ailesi ve sevgili okurlar:
Öncelikle şunu açıklamam gerekiyor: Yazılım testi ile alakalı bir BLOG açmaya nasıl karar verdim?
Yazılım testi üzerine Türkçe ve İngilizce olmak üzere alanında yetkin isimlerden eğitimler aldım. Üç mobil uygulamanın test sürecinde yer aldım. Test uzmanlığı her anlamda dünyada gelişen bir alan olduğundan dolayı ve kendimi geliştirmeyi, öğrenmeyi çok sevdiğim için aktif olarak test uzmanlığı ile ilgili yayınları, blogları, forumları, siteleri takip etmeyi günlük rutinim haline getirdim. Test ile ilgili Türkçe yayınların az olduğu kanısına vardım ve örneğin lise veya üniversitede test uzmanlığı ve test çeşitleriyle ilgili bir ödev hazırlamaya koyulan bir öğrencinin bile yeterli kaynak bulmakta zorlanacağı izleniminde bulundum. Testin bazı büyük şirketlerde dahi yeterince önem verilmeyen, iş takvimlerinin sıkışık olduğu dönemlerde göz ardı edilen bir aşama olduğunu fark ettim. Test süreçleri bazı üniversitelerin ilgili bölümlerinde dahi(Bilgisayar Mühendisliği, Yönetim Bilişim Sistemleri, Bilgisayar Programcılığı vb.) zorunlu ders olarak müfredatlarda yer almazken ve bu alanda insanlar kendine rehberlik eden kişilere ihtiyaç duyacağı için sektörle ilgili gelişmeleri de kapsayan konularda yazmayı planladım ve bu vesileyle Test konusunda bilgilendirici ve keyifli yazılar kaleme alacağım bir blog açmaya karar verdim. Bu ilk yazıda test ile alakalı genel bilgiler edinebilirsiniz. İlk yazıda kimseyi detaylarla sıkmadan genel şablonu göstermeye çalışacağım. Öyleyse başlayalım.
TEST neden bu kadar önemli?
Genel manada 2 husustan bahsetmem gerekiyor:
1.Ürün veya hizmet beklenmeyen sonuçlara sebebiyet veriyor mu?
Bir sistemin arka planını yazılım oluşturur. Örneğin Alman Mercedes firması yeni model arabasını piyasaya sunmak üzeredir. Televizyon ve internette onlarca reklam yaparlar. Reklamlarda dikkat ederseniz genellikle rahatlık, sürüş keyfi, özellikle de güvenli bir yolculuk gibi unsurları öne çıkartırlar. Neden? Çünkü insanların bir arabadan beklentisi onları A noktasından B noktasına herhangi bir sorun yaşamadan taşımasıdır. Burada karşımıza şu soru çıkıyor; Bir firma ürettiği arabanın istenmeyen sonuçlar çıkarmayacağını nasıl garanti edebilir? İşte burada karşımıza koskocaman bir test ederek cevabı beliriyor. Evet, firma ürettiği arabanın güvenli olduğundan ancak ve ancak onu test ederek emin olabilir. Araba gibi insanların ulaşımını sağlayan araçlar hem kullanan insanların hem de araba dışındaki insanların güvenliğini sağlamak zorunda olduğu için beklenmeyen sonuçların elimine edilmesi gerekir. O yüzden onlarca teste tabi tutulurlar. Mesela araç “100km” hızla bir yere çarptığında ne olur? Bunun cevabı hayatidir. Bir firma eğer hizmet sunuyorsa onu kullanan insanların bir sorunla karşılaştığında başına neler geleceğini cevaplaması gerekir. Aksi takdirde, insanlar sizi tercih etmezler. Üstelik sorun çıktığında kaybedilen insan hayatıdır. İnsan hayatının sorgulanamaz ve elinden alınamaz bir hak olduğunu düşündüğümüzde soruna yol açabilecek her ihtimalin ortadan kaldırılması gerekir. İhtimaller dizisi ortaya konur ve aracın farklı hızlarda, yağmurlu veya sisli havalarda örneğin kaygan ve stabilize zeminlerde örneğin sert virajlarda nasıl tepki verdiği hesaplanır. Elde edilen verilerle güncellemeler yapılır ve eksiklikler giderilir. Bir dizi test ile aracın güvenliğindeki başarı oranı %70 oranlarından %100'e yaklaşan değerlere gelir. Buradaki amaç beklenmedik sonuçları, araç yollarla buluşmadan tespit etmektedir. İşte bunu sağlayan şeye TEST denir. Test bahsettiğimiz araba firması için deyim yerindeyse bir emniyet sübabıdır. Adeta karanlık ve puslu havada önlerini görmelerini sağlayan sis lambasıdır. Test ürünle ilgili net veriler elde edilmesini sağlar, mühendisler karanlıktan kurtularak elindeki verilerle nasıl bir ürüne sahip olduğu konusunda kesin bilgi sahibi olur. Test verileri ışığında yapılan reklamlarda gönül rahatlığıyla “satın aldığınız araba sizi istediğiniz yere ailenizle birlikte güvenli bir şekilde götürür” denir ve kullanıcının sorun yaşamayacağı garanti edilir. Dikkat ederseniz ikili ilişki ağı çizmiş olduk. Test süreci ürünün yapılma sürecinden başlar ve son kullanıcıya ulaşmasına kadar devam eder. Son kullanıcı galeriden arabayı satın almadan önce arabayı kullanmak ister öyle değil mi? Neden peki? Müşteriler dahi almak üzere olduğu arabanın nasıl gittiğini test etmek ister. Testin önemi bu örnekle bile kolayca anlaşılabilir.
2.Ürün veya hizmet beklentileri karşılıyor mu?
Bir sistemin arka planını yazılım oluştur. Yazılımlar bazen milyonlarca satır komuttan oluşur. İnsan yapımı bir sistem her zaman hatalar doğurabilir. Bir uzay aracını ele alalım. Hava filtreleri, ateşleme sistemi, basınç düzenleyiciler, güç başlıkları, yakıt sistemi, pompalar gibi yüzlerce aksamı içinde barındır. Her birinin çalışma sistemini belirleyen bir yazılım arka planı vardır. Bu denli karmaşık ve iç içe geçmiş bir sistemin hata barındırmaması neredeyse imkansızdır. Test burada devreye girerek verilen hizmetleri adeta denetler. Doğru zamanda çalışıp çalışmadığına, gereken işlevleri yerine getirip getirmediğine bakar.
A)Maliyet avantajı sağlar.
Uzay aracından örnek vermemin sebebi maliyetlerinin çok yüksek olmasıdır. Space X firmasının ürettiği roketleri düşünelim. Falcon Heavy roketi yaklaşık 500 milyon Dolar maliyetle fırlatıldı. Sizce burada yapılacak herhangi bir hata bu maliyetin çöpe gitmesine sebep olmaz mı? Eminim kimsenin çöpe atacak yarım milyar doları yoktur. O yüzden testlerin en ileri seviyede yapılması gerekir. Bu maliyet sadece para maliyeti olarak düşünülmemelidir. Bu tür devasa projeler için maddi kaynakların yanında insan kaynağı ve emeği yatırımın diğer unsurlarıdır. Yıllarca bilim adamlarının ve mühendislerin emek verdiği bir roketin ateşlendiği sırada havalanmak yerine patlaması yıllar süren çabanın karşılıksız kalmasına sebep olacaktır. Elbette böyle bir hata olursa bundan elde edilen sonuç tecrübe olacaktır. Ama eminim hiçbir şirket bu denli pahalı bir tecrübeyi satın almak istemez. O yüzden testlerin ciddiyeti bu tür projelerde tüm ekip tarafından bilinir. Jonathan Swift’in bir sözüyle devam edelim; “ Tecrübe, herkesin hatalarına verdiği addır”.
B)Ürünün kalitesini ortaya koyar.
Bir firma sunduğu ürünlerde sürekli hatalar çıkan bir durumda ise burada kullanıcının memnuniyetsizliği hemen gün yüzüne çıkar. İlk olarak ürünün güvenilirliği zedelenir. Müşterinin yüzü gülsün isteniyorsa testlere ağırlık verilmelidir. Yemek servis hizmeti sunan bir mobil uygulamadan bahsedelim. Yemeklerin sipariş edildiği anda restorana bu istemin iletilmemesi yahut da geç iletilmesi Google Play’de veya AppStore’da 5 üzerinden 1 puan artı zehir zemberek yorum olarak firmaya dönebilir. Özellikle açken öfkenin üçe katlandığını düşündüğümüzde kullanıcın yorum yapacağı yoksa da yorum yapıp kötü puan verebilir. Çünkü öyle kullanıcılar var ki bazıları firmaların telefonlarını bulup arar ve dakikalarca azarlar, sosyal medyadan da şirket hesaplarını etiketleyip okkalı bir yorum yapar. Daha da vahimi bunlar arttıkça dedikodu gazetesi ile dilden ile yayılan bir kötü nama sahip olursunuz. Günün sonunda Türkiye’de bir insanı aç bırakacağınıza SpaceX’te milyon dolarlık proje batırmayı yeğleyebilirsiniz. Ürün son kullanıcı ile buluşmadan önce örneğin Kullanıcı Kabul Testleriyle ürünün kalite kontrolünü sağlanmalıdır. Ancak bu sayede hizmet veren bir ürünün beklentileri karşılayıp karşılamadığı kontrol edilebilir.
Gördüğünüz gibi TEST bir hizmetin planlama aşamasından canlı ortamla buluşuncaya kadar hesaba katılması ve büyük önem verilmesi gereken işlevlere sahiptir. Yapılan bir dizi test ile ürünler ve hizmetlere duyulan güven artar, yatırımlar korunur ve müşterilerin güvenliği ile memnuniyeti garanti edilir. Her gün daha fazla Türk şirketinin testin önemini kavramaya başladığını göz önünde bulundurursak testin gelişerek sektörde hızla ün kazanacağı aşikardır.
Okuduğunuz için teşekkür ederim. Saygılarımla.