Test Alanında Yeni İş İmkânları – Koray Yitmen

by İrem Sokullu 0

Dünyadaki ekonomik büyüme yüzde üç ile dört aralığındayken, test uzmanları sayısındaki büyüme yüzde on beş. Dernek olarak başarılı öğrencilere burs veriyoruz.

TESTISTANBUL 2016 konferansında Yazılım Test ve Kalite Derneği Başkanı Koray Yitmen’le yararlı bir söyleşi yaptık.

Koray Yitmen 23TESTISTANBUL’un yedincisi yapılıyor bugün. Etkinlikle ilgili görüşlerinizi alabilir miyim?

Evet, bu yedincisi ve 400’e yakın kişi geldi. Sektörün büyüdüğünü ve test tarafında doğru işler yapıldığını gösteriyor ki yedi sene art arda bir konferansı devam ettirmek kolay değil. 2010 yılında başladığımızda ‘Test nedir?’ sorusuyla başlamıştık. Bugün test veri yönetimini, testin altındaki bir alt kırılımı tartışıyoruz.

Test konusu nereden nereye geldi?

Biz Yazılım Test ve Kalite Derneği olarak Uluslararası Yazılım Test ve Kalite Derneği’ne bağlıyız. Bu dernek her ülkedeki temsilci dernekler aracılığıyla sertifika sınavları yapmakta ve eğitimler vermekte. Buradan çok net rakamlar vereceğim. Dünyada Haziran 2015 itibariyle 400.000’den fazla sertifikalı test uzmanı mevcut. Buna da her yıl 60.000 tane ekleniyor. Dünyadaki ekonomik büyüme yüzde üç ile dört aralığındayken, bu %15’lik büyümeye işaret ediyor. Burada çok büyük bir fırsat var. Bu rakamlara Türkiye bazında bakacak olursak derneğin verdiği sertifikalı test uzmanı sayısı 2.000’i buldu. Her ay kırk civarında kişi sınava katılıyor. Ortalamada da her yıl 500’e yakın kişi sertifika alıyor diyebiliriz. Türkiye’de %25’lik bir büyüme var. 

Sertifika programına katılımcı profili nasıl?

Sadece bilgisayar mühendisi, yazılımcılar katılıyor diye düşünmeyin. İşletmelerden, istatistik bölümünden de katılanlar var. Testi yapmak için kod bilmek ya da yazmaya gerek yok. Biliyorsanız tabii ki artı olur. Önemli olan analitik düşünme yeteneğine sahip olmanız.

Test yapmanın farklı seviyeleri mi var?

Farklı bakış açıları var diyebiliriz. Bir kara kutu dediğimiz içerdeki sistemi, yazılımı bilmeden yaptığınız testler var. Burada girdileri ve çıktıları kontrol ediyorsunuz. Bir de beyaz kutu dediğimiz testler var. Onda da içerdeki çalışma mantığına bakıyorsunuz. O tarafta kod bilmeniz avantajlı. Test otomasyon tarafında test eden kodu yazıyorsunuz ve kodlama bilmeniz gerekiyor. Test sertifikasyonunda birçok alt kırılım var. Yakında çıkacak fazla kod bilmenizi gerektirmeyen Kullanılabilirlik Test Uzmanlığı var. Kullanıcıyla çalışarak ona uygulattığınız bazı tekniklerle ürünün kullanılabilirliğini ölçüyorsunuz. Test Otomasyon Mühendisliği ve Performans Test Uzmanlığı da yeni çıktı. Ürünün genel ve cevap verme hızları test ediliyor. Mobil dünyada en çok indirilen ürün oyun. Şimdi de Oyun Test Uzmanları öne çıkıyor.

Test otomasyonunda yazılımlar ve sanal makineler kullanılıyor. Sektörde otomasyonun ne kadarı makineler tarafından yapılıyor? Kişileri test mühendisliğine ya da uzmanlığa yönlendirirken kendilerini nasıl pozisyonlamalarını önerirsiniz?

Test otomasyonu yapılacak ve test uzmanları işinden olacak diye korkulmamalı. Makineler araç olarak kalmaya devam edecekler ve onları kullanan bir insan olacak. Bu yüzden makineleri işlemleri kolaylaştırma aracı olarak görmek gerekiyor. Bugün konuştuğumuz konular ”Entegrasyon Sürekliliği, Teslimat Sürekliliği, Geliştirme Sürekliliği “. Aslında uygulamada gerekli olan bir değişikliğin bir ila iki ay sonra değil hızlı bir şekilde kullanıcının önüne koyulabilmesinden bahsediyoruz ve bunun için otomasyona ihtiyaç var.

Testlerin otomasyonu ürünlerin bir an önce teslim edilmesi gerekliliğinden mi bu kadar önem kazandı?

Hız ve güvenirlilik önem kazanıyor burada. Manuel yaptığınız testlerde hızlı ve aynı kapsamda sağlıklı testler yapamıyorsunuz. Ne kadar çok otomatize ederseniz, testleri o kadar insani hatadan koparmış oluyorsunuz. Daha kaliteli oluyor. Yanlış anlaşılmasın testler insandan bağımsız koşmayacak ancak insanın üzerindeki hata yapma yükü yazılımlara, araçlara ve test makinelerine aktarılmış olacak.

Makinelerin yapabildikleri testler rutin olanlar mı?

Yeni yazdığım bir kitap var, “Yazılım Testi – İş Analizi – Kullanılabilirlik – Seçkin Yayınları”. İngilizce de yayınlanacak. Kitapta bir otomasyon yelpazesi var. Öncelikle yapılan test ne kadar tekrar ediliyor? Seyrek yapılan bir testi otomatize etmenin bir anlamı yok. Sürekli tekrar eden bir testse otomasyona uygun olur. Ayrıca test edilen sistem ne kadar olgunluğa erişmiş durumda? Sistem olgun değilse ve sürekli değişiklikler geliyorsa, onun için yazacağınız komut dosyası da sürekli değişecektir. Bu testi manuel yapmak daha anlamlı. O yüzden karar verirken bazı parametrelere bakıyoruz.

1 – Frekansı yüksek mi? Sistem çok test ediliyor mu?

2 – Sistem belli bir olgunluğa gelmiş mi?

Bunlar sağlanıyorsa o sistem otomasyon için güzel bir adaydır. Kullanılabilirlik testi gibi hiç otomatize edemeyeceğiniz testler de var. Bazen basit bir kullanıcı hatasını düşünemiyorsunuz. Onun için Ayşe Teyze’ye “Ayşe Teyze şuradan bir fatura öde” diyerek test yaptırıyoruz. Bu yüzden testleri ayırmak gerekiyor. Frekans, olgunluk, ne kadar müşteriye yakın, ne kadar sisteme yakın bu yelpazelerde değerlendirmek lazım.

Kendi test süreçlerini iyileştirmek isteyen bir firmaya tavsiye edeceğiniz ilk üç adım nedir?

Genelde ilk soru ‘İyi test yapmak için neye ihtiyaç var?’ oluyor. Öncelikle ortak test terminolojisi oturtmanız lazım ve herkes kullanılabilirlik testi, beyaz kutu testi dendiğinde aynı şeyi anlamalı. Onun üzerlerine süreçler konuyor. Süreçlerin incelenmesi çok önemlidir. Yanlış bir akışı otomatize edemezsiniz. Süreçlerin üzerine yetkin bir ekip koymanız lazım. Test işini gerçekten seven buna özveriyle yaklaşan kişiler gerekiyor. Bazıları test yapmayı sevmeyebilir ve hatta bir taraftan yapıyor, diğer taraftan bozmaya çalışıyorsunuz şeklinde algılayabilirler.

DevOps’ta test sürecinde uçtan uca bir çözüm ve farklı ürünler kullanılıyor. Burada kullanılan ürünleri seçerken firmaların nelere dikkat etmeleri gerekiyor?

Burada iki çeşit ürün alıyorlar; bir lisanslı bir de açık kod ya da ücretsiz yazılımlar. Her kurumun ihtiyacı farklı, neye ihtiyaçları var önce onu belirlemeliler. Ardından piyasaya çıkıp ihtiyaçlarını karşılayan ürünü seçsinler çünkü çok fazla araç ve yazılım var.

Danışmanlık hizmetleri var mı bu konuda?

Evet verilebiliyor. Bizim Keytorc isimli bir şirketimiz var ve test otomasyon danışmanlığı da veriyoruz. Belirli bir yazılımla gitmiyoruz ve diyoruz ki siz önce ihtiyacınızı belirleyin. Piyasada buna karşılık gelen araçlar bunlar ve artıları eksileri şunlar. Sonra seçimi müşteriye bırakıyoruz.

Konuşmanız da ‘Sektör çok boş’ dediniz. Boş olan kısmı nedir?

Boş olan kısmı test veri tarafıdır.

Aradığımız zaman bir Türk ürünü bulabiliyor muyuz?

Benim gözüme çarpan açıkçası yok.

Orası da boş aslında o zaman.

Orası da boş, doğru söylüyorsunuz ancak bizim insanımız o tarafa girmiyor nedense. Genç girişimcilere tavsiyem, sıfırdan başlamamaları olur. Appium’un kurucusu Dan Cuellar gitmiş Apple’ın bazı kütüphanelerini ve Selenium’un bazı bölümlerini kullanmış. Sonra üstüne geliştirme yapmış. Biz de genelde sıfırdan başlama eğilimi var. Her şey benim olsun deniliyor. Öncelikle tavsiyem, Açık Kaynak Topluluğu’ndan hazır bir şeyleri alıp üstüne ne koyabilirim ona bakmaları. Ayrıca bizim insanımız fikrimi söylersem çalınır, ben bunu kimseyle paylaşmayayım diye düşünüyor. Dünya bu değil, herkeste istemediğiniz kadar fikir var. Kimi fikirler çok iyi, kimisi çok kötüdür. Bilgi paylaşarak çoğalır. Ne kadar çok paylaşırlarsa topluluktan o kadar çok destek alırlar, ürünleri gelişir ve kaliteli hale gelir.

Ürünün açık kaynaklı olmasını mı tavsiye ediyorsunuz?

Öteki türlü girişimcilerin yol kat etmesi zorlaşır. Diğer bir yöntemde açık kaynaklı başlayıp daha sonra ek ürünler için ücret talep etmek olabilir. Genelde açık kaynaklı sistemler ileri düzeyde bir talep geldiğinde özel desteği ya da belirli bir eklentiyi (add-on) bir ücret karşılığında veriyorlar. Girişimciler açık kaynakla ilgili bir noktaya gelip, kendilerini ispatlayıp, arkalarına bir rüzgârı aldıktan sonra çıkış noktaları bulabilirler.

Şu anda test alanında fırsat var değil mi?

Çok fırsat var, test otomasyon alanında var. Test veri yönetimi de bomboş.

Test yönetimleri konusunda on yıl sonra nasıl bir ortamda olacağız?

Test uzmanı sayılarına baktığımızda 2.000 tane sertifikalı ve 2.000 ile-3.000 de sertifikasız çalışan olsa yaklaşık bu işi yapan 5.000 kişi var. Testin büyüme trendi Türkiye’de %20-25. Dört ile beş sene sonra bu rakam 10.000’leri rahat bulacak. Nereye gidecek derseniz testin alt kırılımları çıkacak. Örneklediğim gibi Performans Test Mühendisi, Oyun Test Uzmanı gibi. Şimdi Test Delta Yöneticisi unvanı duymaya başladık. Muadil pozisyonları yurtdışındaki iş arama sitelerinde arattığınızda bir iki tane karşınıza geliyor. Bunun yöneticisi gibi uzmanı da olacak. Birçok alt kırılım ve dikey alanlar çıkacak. Bu sebeple test bence hem üniversite öğrencilerinin hem de girişimcilerin yatırım yapması için güzel, bakir bir alan. Buradan geri dönüş alacaklarına inanıyorum.

Biraz da Kalite Raporu’ndan bahseder misiniz? ( http://www.turkishtestingboard.org/turkiye-yazilim-kalite-raporu/ )

Turkish Software Quality ReportBunu her sene yapıyoruz. Anketler yolluyoruz, sonuçları gözden geçiriyoruz. Mesela 6.soru ‘Test verinizin kalitesi ne durumda?’. Sonuçlara baktığımızda %13 kötü, %15 eksik, %53 gelişiyor, sadece %19 iyi demiş. Bu iyi hariç hepsinde problem var demektir. Ayrıca 10.soru da ‘Canlı gerçek müşteri verisini maskelemeden kullanıyor musunuz?’ diye sormuşuz. %40’ı evet demiş. Şirketlerin %80’in de sıkıntı var. Test veri yönetim süreci yoksa test verisini oluşturamıyorsa ve maskeleyemiyorsa anlaşılıyor ki canlı veriyi kullanıyorlar.

Verileri maskelemek için aslında araçlar var, değil mi?

Var ancak bunun için çaba, insan ve süreç lazım, kolay değil. Alıp hemen kuramıyorsunuz. Öncelikle kendi evinizi temizlemeniz lazım, normalde şirketlerin canlı verisinde bir sürü sıkıntı var. Veriler temiz değil.

Hız konusuna gelecek olursak, canlı sistemlerde değişikliklerin ve dolayısıyla testlerin hızlı yapılması gerekiyor. Şu anda yarım saat içerisinde bir geliştirmenin yapılıp, canlı sisteme alınmasını tahayyül edemiyorum.

Etmeniz lazım, sunumda da bahsettiğim gibi aslında saniyeler içinde gidiyor. Google, Amazon bu şekilde çalışıyorsa siz de yapabilirsiniz. Burada kilit nokta otomasyondur. Neyin otomasyonu? Her şeyin otomasyonu, testten tutun, test verisine, yapılandırma yönetimine, test ortamının kurulmasına kadar her şeyi otomatize etmeniz lazım. Ancak o zaman bu kadar hızlı olursunuz. Manuel yaptığınız durumda koordinasyonu bile zor.

“Test bütün şirketin sorumluluğudur, sadece test yapanların değildir.” demiştiniz. Biraz açar mısınız bu konuyu?

Aslında test, test verisi ve dolayısıyla kalite herkesin işidir. Test denince aklımıza test uzmanları geliyor. Almanlar diyor ki; ”kalitesi test edildi ve onaylandı”. Japonlar diyor ki; “kalite test edilmez, kalite üretilir”. Buna biz Kalite İnşası (Building Quality ) diyoruz, diğer bir ifadeyle kaliteyi içeriye almak. Müşteri, proje yöneticisi, iş analisti, veri tabanı uzmanı, test uzmanı da kaliteden sorumludur. Kaliteden sorumlu olan testten, testten sorumluysa test verisinden de sorumludur. Dokümantasyon da yapılmış olmalı ki verinin nereden çekileceği belli olsun. Test uzmanının tek başına veriyi bulup testi yapıp Süpermen rolüne geçmesi istemediğimiz bir şey. Bu sorumluluğu herkes almalı.

Koray Yitmen 13

Canlı sistemde test yapılması konusunda ne düşünüyorsunuz?

Test ve Canlı sistemler bizim ülkemizde biraz yanlış anlaşılıyor. Geçen sene Facebook’tan Goranka Biedov da testleri biz canlıda yapıyoruz dediğinde, ‘Yandık!’ dedim. Dernek olarak, “canlıda test yapmayı bırakın” diyoruz yıllardır. Herkes canlıda test yapmak niyetinde, kolayına kaçıyorlar. Sonraki konuşmaları dinlediğinizde çözülüyor olay. Facebook canlı sistemde test yapıyor ancak Facebook’un 6 tane kümesi (cluster) var. Altı kümenin her birinde 40-50’şer çok kuvvetli sunucu var. Canlı sistemden test yapıldığını anlamıyorsunuz bile çünkü bir yerde bir şey çöküyor olsa hemen küme değiştiriyorlar. Bizde bir tane sunucu var.

Spotify’dan Kristian Karl’da ‘Canlı sistemde 500 tane kullanıcı üretip test yapıyoruz.’ dedi. Bu da ayrı bir test yöntemi, değil mi?

Canlı da kullanıcı oluşturuyorlar aslında. Canlıdaki veriyi direkt kullanmıyorlar. O da güzel bir şey. Burada iki şey var, bir alt yapınız iyi olacak, iki canlı veriyi değil de kendi oluşturduğunuz canlı test verisini kullanacaksınız.

Bu daha anlamlı yoksa canlı sistemde ana veriyi değiştirmek çok tehlikeli.

Düşünsenize kullanıcının tüm verisini yanlışlıkla değiştirebilirsiniz. Burada kullanılan yöntem farklı ve bu iyi anlaşılmalı.

Dernek olarak burs veriyorsunuz? Bu konudan bahsedebilir misiniz?

Birinci sınıfı bitirmiş olan ihtiyaç sahibi başarılı üniversite öğrencilerine not ortalamalarına bakarak burs veriyoruz. 3.0’ün altında olmamalı not ortalaması. Derneğin sitesinden, www.turkishtestingboard.org girip başvuru yapabilirler. Şu anda başvuruları kabul ediyoruz. Elemeden sonra mülakatla seçeceğimiz 5 kişiye öğrenim bursu vereceğiz.

Çok teşekkürler.

Rica ederim.