Kritik Yönleriyle Yazılımlar ve Test Süreçleri

Yazılımların Kritik Yönleri

Yazılım Test Editörlük
Yazılım Test Editörlük

Günümüzde dijital dönüşümün ve Endüstri 4 çalışmalarının geldiği noktada, kaliteli yazılım kavramı yeniden ele alınması gereken bir olgu. Hemen her sektörde, yazılımların yönettiği, farklı kritik seviyelere ve sayısız fonksiyonel çeşitliliğe sahip cihazlar kullanılmakta. Dolayısıyla artık, kabul edilebilir düzeyde hatasız yazılım üretmek değil sıfır hatalı yazılım üretmek hedefleniyor. Eskiden, yazılımlardaki hataların veri kayıplarına, yeniden veri girişlerine vb. sebep olmasından korkulurken, günümüzde üretim duruşlarına, lojistikte aksamalara, bunlara bağlı olarak büyük finans ve envanter kayıplarına, insan sağlığı üzerinde risklere, toplu canlı yaşamını tehdit eden ölüm, yaralanma vb. sonuçlara yol açacağı gibi konular konuşuluyor.

Eskiye oranla firmalar, ihtiyaçları olan uygulama yazılımlarına daha fazla dış kaynak ayırmaktalar; firma içerisinde geliştirilen kod satır sayısı oldukça azaldı. Firmaların büyük çoğunluğu ERP, MES, Scada vb. satın alınan paket yazılımlar ile uygulama ve entegrasyon ihtiyaçlarını gideriyor; yazılım geliştirme süreçlerinin büyük bir kısmı

bu sebeple firma içerisinde yönetilmiyor. Geliştirme süreçleri yüksek ölçüde tedarikçi bağımlı olacak şekilde; tedarikçi-müşteri birlikte yürütülen birçok yeni implementasyon metodolojisi var artık. Ürün geliştirme açısından, çekirdek kodlar tedarikçi kanalında yönetilirken, firmaya uyarlama çalışmalarında tanımlama, tasarım aşamaları; özel geliştirmeler varsa bunlara ilave olarak detaylı tasarımlar, testler; entegrasyonlar varsa yine bunlara ilave olarak prototipler, modellemeler, simülasyonlar ve tüm aşamalar için geçerli test ve bakım süreçlerinin tedarikçi-müşteri paydaşlığı ile yapılması, bu metodolojilerin içerisinde yer alıyor.

Genelde, planlanan bütçede yazılım projelerini bitirmek ve teslim etmek için yaygın bir eğilim olarak test ve doğrulama süreçlerinden kaynak kısılmaktadır. Oysa analiz süreci gibi test süreci de projede hedeflenen başarının sağlanmasının en kritik sürecidir. Projelerin planlanan bütçede bitirilmesini hedefleyen proje yöneticileri, proje planında test için ayrılan zamanları düşük tutarak toplam proje süresine ulaşmayı hedefliyor. Bu yaklaşım yazılım üretici firmalarda olduğu kadar, kullanıcı firmalarda da yaygın. Günümüz koşullarında, bu yaklaşımın değişmesi, hedef kitle için de yazılımın kabul ve doğrulamalarının proje maliyetinden önce gelmesi gerekmektedir. Bunun için, öncelikle, yazılım hatalarının yol açacağı kayıpların boyutunun müşteri tarafından farkında olunması zorunludur. Aynı farkındalık yazılım üreticilerinde de oluşmak zorunda ki, kendilerine son on yılda çok büyük sorumluluklar yüklendi. Tüm bu çalışmaların yazılım tedarikçisi ve müşteri paydaşlığı ile yapıldığı düşünüldüğünde, özellikle test ve doğrulama süreçleri yazılım uygulamalarında daha kritik önem kazanmaktadır. Dış kaynaklı alım ve uyarlama çalışmalarında, ihtiyaç analizi, tasarım ve test süreçlerindeki aksamaların sebep olduğu değişiklikler proje bütçesinde ciddi sapmalara yol açabilmektedir. Test ve doğrulamalarını tam yapmadığınız sistemler, yüksek modifikasyon ve iyileştirme maliyetleri ile karşınıza gelebilir.

ERP, MES gibi uygulama yazılımları geçiş projelerinde, test ve kabul planları hazırlamak oldukça önemlidir. Proje ekipleri belirlenirken, test sorumluları, yetkileri ve görevleri de belirlenmelidir. Proje implementasyonu boyunca uyacağımız bir test ve doğrulama planı olmalı ve bu plan, sistemin tüm öğelerini ve entegrasyonları doğru test etmemizi sağlayacak test yöntemlerini, iş akışı ve faaliyetleri içermelidir. Her faaliyet için test yöntemi ile birlikte, kabul kriteri, test sonuçları bu raporlarda yer almalıdır. ERP gibi kapsamlı ve bütünleşik projelerin uygulamaya alınmasında ve entegrasyonlarda uyumluluk, tümleşim, bütünleştirme, regresyon testlerinin öne çıktığı söylenebilir. Birimler arası ilişkiler de fonksiyonel olarak test planlarında yer almalı ve testlerin birimler arası çapraz olarak yapılması sağlanmalıdır. Sistem üzerinde darboğaz etkisi yaratan limitler test aşamalarında da tanımlanmalı ve en yüksek ve en düşük değerleri içerecek şekilde testler yapılmalıdır. Ayrıca bu limitlerden dolayı oluşabilecek olan riskler ve bunların sistem performansına olan etkileri ve sonuçlar belirtilmelidir. Otomasyonların kullanılacağı fiziksel ortamlar, coğrafi koşullar, yazılımların koşacağı cihazların hangi makinelerle etkileşimli / gömülü çalışacağı testlerde mutlaka göz önüne alınmalıdır. Testler sırasında kullanılan cihazların özellikleri ile canlı kullanımdaki özellikleri uygun olmalı, testlerin hangi cihazlarla yapıldığı doğrulama planlarında belirtilmelidir.

Uygulama yazılımları geçişlerinde, sözleşme, süreç, tasarım, kod, tümleştirme, çıktı doğrulamaları her işlevsel adımda yapılmalı, test ve doğrulama dökümanları yeterli detayda ve periyotta hazırlanmalıdır. Belirlenen uygunsuzluklar ve yapılması gereken modifikasyonlar ayrıntılı olarak raporlanmalı ve geliştirici firma ile anlık olarak paylaşılmalıdır. Test planlarının ve raporların kullanıcı firma içerisinde de arşivlenmesi, başvurulacak bir kaynak olarak faydalı olacaktır. Herhangi bir aşamada gözden kaçan hata, ileriki aşamalarda karşımıza çıktığında daha büyük maliyetlerle düzeltilebilecek ya da düzeltilemeyerek projenin sürdürülebilirliğini riske atacaktır. Sistemin kullanılmaya başlamasından sonra bile, geçmişte atlanan en ufak bir hatanın sonuçlarını ağır yaşamak söz konusu olabilir.

Özet olarak; dijital dönüşümün her sektörde yaşanmaya başlaması, Endüstri 3, Endüstri 4 gibi dönemler, teknolojik gelişmeler, yazılımların işlevlerini çok daha kapsamlı ve kritik hale getirmektedir. Sistemlerin uyarlanması ya da geliştirilmesinde, test süreçlerine yeterince kaynak ayrılmaması, testlerin canlı kullanım ortamlarına uygun yapılmaması, farklı senaryoların test edilmemesi, analizlerdeki tüm kriterlerin doğrulanmaması, test limitlerinin doğru seçilmemesi gibi etkenlerin sonucu olarak; üretim, gıda, sağlık, ekonomi, ulaşım, çevre vb. yaşamımızın her alanına giren yazılımların değişik boyutlarda risklere sebep olabileceği unutulmamalıdır. Bu yönleriyle, yazılımlardan beklenen sonuçları alabilmek, amaçları doğrultusunda kaliteli yazılım kullanmak zorunluluğu, test ve doğrulama süreçlerine daha kritik anlamlar yüklemektedir ve yazılımların kullanım alanlarının sürekli artması sebebiyle de yüklemeye devam edecektir. Bu belki de endüstriyel ve teknolojik devrimlerin bu yönleriyle otomasyon / entegrasyon / uygulama yazılımlarına yüklediği en önemli ve kritik sorumluluktur.

Dilek KILIÇ

editbt.dilek@gmail.com

dilekd.kilic@gmail.com