Bilişim Dünyası 30 NİSAN 2016 / 15:04

Test verisi F1 kalitesinde olmalı

Nasıl ki bir F1 aracı kaliteli benzin isterse, test sürecinde kullanılan test verisi de normal veriden daha kalitesiz olmamalı. Türkiye Yazılım Kalite Raporu 2016/17 sonuçları ve genel test algısı, test veri yönetimine bakış açılarını da ortaya koyuyor.
 
Doğu Avrupa ve Orta Doğu’nun önde gelen yazılım testi konferansı Uluslararası TestIstanbul Konferansı, 26 Nisan’da Renaissance Istanbul Polat Bosphorus Hotel’de gerçekleştirildi. ‘Türkiye Yazılım Kalite Raporu 2016/17’ sonuçlarının da açıklandığı etkinliğin açılış konuşmasını TTB (Turkish Testing Board, Yazılım Test ve Kalite Derneği) Başkanı Koray Yitmen yaptı. Yedincisi düzenlenen etkinlik ışığında sektörün de büyüdüğüne dikkat çeken Koray Yitmen, test veri yönetiminin entegrasyon sürekliliğini beraberinde getiren bir yapı olduğunu vurguladı. Yitmen, bu yapının F1 yarışları ile benzerliklerini sunumunda örnekledi.
F1’de amaç pilotların hızlı ve kaza yapmadan pisti tamamlaması. Pit-stop molasında da ekibin çalışma hızı önemli. Aynı şeyi yazılım testi ile ilişkilendirdiğimizde, hızlı, güvenilir ilerleme ile yüksek kaliteli işi, var olan sistemi bozmadan çıkarma gerekliliği öne çıkıyor. Yani ufak bir kod değişiminin canlıya geçmesi de hızlı olmalı. “F1 ortamını yazılıma, pit-stop’u da süreklliği olan entegrasyon, değişikliklerle kodun çalışır hale gelmesi olarak nitelendirebiliriz” diyen, “Ama bu da yetmez” diye ekleyen Koray Yitmen’in belirttiği gibi, arabanın yakıtı, yazılımda da kaliteli veri demek. Nasıl F1 aracı kaliteli benzin isterse, test sürecinde kullanılan test verisi de normal veriden daha kalitesiz olmamalı.
Test verisi yönetim süreçlerinde veri tanımlamak, ihtiyaç olan verileri belirlemek, bu verileri hangi veri tabanından çekmek gerektiğini saptamak, güvenlik için maskeleme yapmak, bu sonucu test ortamına dahil etmek, ama bunu da doğrulamak şart. Yitmen’in dikkat çektiği gibi, test verisi sürekli değişiyor ve bunu sürekli güncellemek, süreçleri de otomatize etmek şart. “Yazılımın kalitesi teste, testin kalitesi de test verisine bağlı” diyen Koray Yitmen’e göre, test veri yönetiminde sıkıntılar, ama aynı zamanda boşluk ve fırsatlar olduğu da unutulmamalı. “Araştırmayı özellikle yeni mezunların okumasını tavsiye ederim” diyen Koray Yitmen, eklemeden geçmedi: “kinci sınıfa geçmiş, ayrıca üçüncü ve dördüncü sınıftaki öğrencilere burs vermeye başladık ve konuyla ilgili bilgileri www.turkishtestingboard.org sitemize koyduk. Burada iki kriterimiz var: Kişinin ihtiyaç sahibi olması ve başarılı bir öğrenci olarak 3.0 ve üstü not ortalaması.” 

SANALLAŞTIRMA, GÜVENLİK, FARKINDALIK
 
Koray Yitmen,  sunumunun ardından gerek Türkiye Yazılım Kalite Raporu 2016/17 sonuçları ve genel olarak test algısı, test veri yönetimine bakışa dair sorularımızı yanıtladı:
 
Test veri yönetiminde nasıl bir farkındalık seviyesi var?
Raporda da görüldüğü gibi düşük. Sorduğumuz bir sorumuz var: Test veri yönetiminizin kalitesini nasıl buluyorsunuz? Tüm yanıtlara bakınca diyebiliriz ki, sektörde yüzde 80’lik bir kesim test veri yönetiminde problem yaşıyor. Bu da, bu alanda test uzmanları, BT profesyonelleri, yeni mezunlar için çok büyük fırsatlar olduğunu gösteriyor. Biz de bunu değerlendirmelerini hep öneriyoruz.
 
Peki şirketlerin farkındalığı ışığında, nasıl bir değerlendirme yapılabilir? 
Bir farkındalık oluşmaya başladı ve sektör bazında öne çıkanlar var. Bazı sektörlerde ise test algısı emekleme sürecinde. Bu nedenle öncelikle teste gönül vermiş olmanız, kaliteye önem vermeniz, bir testin genel konseptine hakim olmanız lazım. Tüm bunların içinde test veri ile ilgili çalışmalar var. Örneğin hangi test verisinin size gerektiğini bilmelisiniz. Sonuçta bütün veriyi canlıdan alıp test ortamına koymanız anlamlı değil. Çünkü test yaparken hepsine ihtiyacınız olmuyor. Burada ihtiyacı iyi tespit edebilmeniz lazım. Bunun için de analiz yetkinlikleri gerek. İkinci tarafta, bu analizin yani ihtiyacın karşılığının nerede olduğunu bulmak. Yani kendi veri tabanlarımda bu ihtiyacın karşılığını nereden çekebileceğini belirlemek gerek. Burada da yaptıkları analizi bir şekilde karşılaştıracaklar. Sonraki en önemli kısım ise bu veriyi çekerken maskeleme yöntemleri. Bunun için şifreleme yöntemleri, ‘shuffle’ dediğimiz yer değiştirme veya bilgiyi bölerek sadece gerekli olan kısmını almak gibi yöntemler var.
 
Bunu nasıl örnekleyebiliriz?
Örneğin sağlık sektörü ile ilgili bir araştırma yapacaksanız, kişilerin adreslerine değil, sağlık bilgilerine ihtiyacınız var. Ama bir veri tabanına veya bir hastaneye eriştiğiniz zaman, bu ayrıştırmayı yapmadan size tüm bilgileri verebilirler. Test uzmanı bu yönüyle üstün analitik yeteneklere, temel veri tabanı bilgilerine sahip olmalı. Bunun üstüne, maskeleme teknikleri hakkında da bilgi sahibi olursa, sektörün ihtiyacını da tam anlamıyla karşılar.
 
Yanlış veri nelere yol açabiliyor?
Bu aslında yanlış teşhis koymak gibi. Bu nedenle veri tarafında tutarlılık, güncel, tutarlı ve doğrulanmış olması şart. Aksi halde kirli veri ile karşı karşıya kalırsınız. Kontrol edilmemiş bu veri ile doğru işlem yaptığınızı sanırsınız, ama sonuç tepeden tırnağa yanlış olur. Bu nedenle şirketlerin testten önce kendi verilerinin doğruluğu, güncelliği, tekilliği gibi unsurlara çok iyi bakması gerek. Çünkü en büyük derdimiz kirli veri. Test veri yönetimine girerken, önce verinizi temizlemeniz, gözden geçirmeniz, bu farkındalıkla teste adım atmanız şart. Ayrıca burada yapılan çalışma, aslında tüm şirketi bağlıyor, sadece pazarlama, BT veya test ekiplerini değil. Misal, bayide veriyi giren kişinin de bunu doğru yapması ya da kontrollerle kişinin doğru veri girmeye zorlanması lazım. Örneğin bayinin bilgileri girdiği ekranda doğum tarihi bölümünde 14'üncü ayı işaretleyememesi lazım. Yani siz tablonuzu doğru yaparsanız, doğru veriyi de toplama imkanınız olur. Bundan sonra da test verisini doğru biçimde çekmeniz gerek. Bu nedenle bu kavram, aslında bir şirkette tüm birimlere ve tüm çalışanlara, tüm paydaşlara dokunuyor. Geldiğimiz noktada, test algısının doğru gelişimi için hangi test yöntemini daha çok sevdiğinizden ziyade, bu belirttiğim altyapıyı doğru kurgulayıp doğru geliştirmelisiniz. Bu sizin oyun alanınız ve bu alan temiz olmak zorunda. Bundan sonra istediğiniz test metodunu seçebilirsiniz.
 
Peki ya güvenlik?
Bu konu, maskeleme tarafına da giriyor. Şirketlerin verileri zaten düzenli bir formatta değil ve sadece hantal bir büyük veri yapıları var. Bir banka olarak çok hızlı EFT yaptırabiliyor olabilirsiniz, ama kişinin bilgileri çalındığı zaman o hızın bir anlamı yok. Bir taraftan bireylerin de kişisel verileri ve bunların korunması ile ilgili beklentileri de artıyor. Çünkü eskiden SPAM geliyordu, ama bugün çok iyi maskelenmiş hileler bireyleri hedef alıyor. Bu sıkıntıya 10’uncu soruda değiniyoruz. Testte güvenlikle ilgili en büyük sıkıntı canlı veriyi kullanmayı sevmek. Çünkü bu maskelenmemiş veriyi kullanmak herkesin kolayına geliyor. Şirketlerin de yüzde 40’ı testlerinde maskelenmemiş canlı veriyi kullandığını belirtiyor.
 
Bu eğilim, ne gibi sorunlara yol açabilir?
Siz canlı yapıda gerekli güvenlik önlemlerini alabilirsiniz. Ama test ve yazılım geliştirme ortamında belli bir rahatlık vardır ve yayına almadan önceki süreç buradadır. Sizin gizli ve özel bilgilerinizin orada ortalıkta olması, yanlışlıkla mutfağa giren biri karşısında birçok verinin erişime açık hale gelmesi demek. Bu yüzden maskelemeden canlı veriyi kullanmamak gerektiğini hep vurguluyoruz. Test veri yönetiminde en önemli alan maskeleme ve kullanıcı gizliliği, güvenliği sıkıntı haline gelmemeli. Bu arada test başlığı, kullanılacak veri ve test önceliği gibi başlıkların her biri, farklı maskelemeleri gerekli kılar. Yani tek maske yapısı her zaman kullanılabilir denilemez. Bu başlıkta birçok yöntem var. Bu arada canlı veri çok büyük ve bunu kullanmanın da zaten bir maliyeti var.
 
Servis sanallaştırma, testte nasıl kullanılıyor?
Misal, bir test çalışması için TC Kimlik No onayı alacaksınız diyelim. Bunun için MERNİS’e bağlanmıyor, bunun yerine sanal bir hizmet yaratıyorsunuz ve size ilgili kimlik bilgisini onaylar gibi bir cevap dönüyor. Bu sahte yapı işinizi görüyor ve ilerlemenizi sağlıyor. Bu nedenle önemli. Aynı veriyi kopyalamanız, tüm altyapıyı oluşturmanız ya da gidip MERNİS’ten her bir test için TC Kimlik No doğrulatmanız maliyet demek. Oysa gelecek onay mesajını biliyorum ve onaylatacağım setler belli. İşte bunun için canlı ortama birebir benzer test ortamınızı, sanal bir servisi yaratıyorsunuz. Araştırmada da görüldüğü gibi hız herkesin önceliği ve elinizde araçlar olmalı, siz de ihtiyacınıza bağlı olarak doğru araçları bir araya getirmeli ve bunun için çok vakit harcamamalısınız. En ufak servisi bile sanallaştırabilirsiniz.
 
Türkiye Yazılım Kalite Raporu 2016/17 ve ‘test veri yönetimi’ne bakış
  1. Şirketinizde test verisi üretiminden kim sorumlu?
Yüzde 73        Yazılım test ekipleri
Yüzde 26        İş analistleri
Yüzde 22        Yazılım geliştiriciler
Yüzde 6          İş birimleri/operasyon
Yüzde 5          Veritabanı yöneticileri
Yüzde 5          Altyapı mimari ekipleri
Yüzde 4          Üçüncü parti yapılar
 
  1. Test verisini nasıl oluşturuyorsunuz?
Yüzde 64        Elle toplanan veri
Yüzde 40        Yayın verisinin alt kümesi
Yüzde 28        Yayındaki verinin tümünün kopyası
Yüzde 17        Veritabanı sanallaştırma
 
  1. Test çalışmalarınızın yüzde kaçı test veri yönetimi için kullanılıyor?
Yüzde 11        Çalışmaların yüzde 0-5’i
Yüzde 19        Çalışmaların yüzde 6-10’u
Yüzde 32        Çalışmaların yüzde 11-25’i
Yüzde 26        Çalışmaların yüzde 26-50’si
Yüzde 12        Çalışmaların yüzde 50’sinden fazlası
  1. Test verisi yaratırken karşılaştığınız temel zorluklar neler?
Yüzde 44        Güncellik
Yüzde 42        Tutarlılık ve süreklilik
Yüzde 37        Gerçek veri ile benzerlik
Yüzde 31        Güvenlik
Yüzde 28        Tanımsız veri ilişkileri
Yüzde 26        Gizlilik
Yüzde 22        Yetkin İK
Yüzde 21        Veri büyüklüğü
Yüzde 18        Sektör düzenlemelerine uyum
Yüzde 17        Gerekli araçların eksikliği
Yüzde 15        Bürokratik izin süreçleri
  1. Test ortamında hassas veriyi nasıl koruyorsunuz?
Yüzde 51        Veri maskeleme
Yüzde 27        Suni veri üretimi
Yüzde 22        Verileri kendi içinde karıştırmak
Yüzde 19        Özel bütünlüğe güvenmek
Yüzde 18        Hassas test verisi korumuyoruz
  1. Test veri kalitenizi en iyi hangisi tanımlar?
Yüzde 13        Zayıf
Yüzde 15        Noksan
Yüzde 53        İyiye gidiyor
Yüzde 19        İyi 
  1. Test verisini yönetme çalışmalarının yüzde kaçı otomatize edilmiş durumda?
Yüzde 59                    Çalışmaların yüzde 0-20’si
Yüzde 20                    Çalışmaların yüzde 21-50’si
Yüzde 17                    Çalışmaların yüzde 51-75’i
Yüzde 76-100                        Çalışmaların yüzde 4’ü
  
  1. Otomatize fonksiyonel testlerin kullandığı verileri nasıl yönetiyorsunuz?
Yüzde 41        Elle bakım (entegre veri)
Yüzde 24        Veritabanı yönetimi
Yüzde 18        Veri odaklı yaklaşım (dış kaynaklı veri kaynakları)
Yüzde 17        Dinamik veri üretimi  
 
  1. Test verisi üretmek için ihtiyaç duyduğunuz öncelikli üç test seviyeniz/türünüz hangileri?
Yüzde 91        Fonksiyonel test
Yüzde 63        Entegrasyon testi
Yüzde 57        Regresyon testi
Yüzde 45        Performans testi
Yüzde 30        Birim test
Yüzde 14        Güvenlik testi
 
  1. Maskelenmemiş canlı verileri testlerinizde kullanıyor musunuz?
Yüzde 40        Evet
Yüzde 60        Hayır