En Çok Kullanılan Yazılım Test Metodolojileri ve Tanımları

Miray TOSUN yurtseven | ÜRÜN YÖNETİCİSİ

Gündelik hayatımızın çoğu adımı, yaptığımız şeyleri test etmektir. Yemek yaptığımızda tuzunun iyi olup olmadığını, duvara çerçeve astığımızda düzgün durup durmadığını, yıkandıktan sonra saçımızın güzel kokup kokmadığını kontrol ederiz. Aynı durum geliştirmesini yaptığımız uygulamalar, makalesini yazdığımız teknik konular ve hatta şuan okunan bu yazı için de geçerlidir.

Ancak sorun şu ki yaptığımız testlerin anlamlarını, ne testi yaptığımızı  bilmeyiz. Evet amaç bellidir, ne yaparsak yapalım işi en iyi en kaliteli şekilde tamamlamaktır ama testin adını hatta doğru testi yapıp yapmadığımıza çoğu zaman emin olamayız.

Yazılım test metodolojileri yazılım testlerine farklı yaklaşımlar ile ele alarak sistemin bütünüyle doğru çalıştığını kontrol etmeyi hedefler. Yazılım test metodolojileri birçok kaynakta iki ana başlıkta toplanır; İşlevsel (“functional”) ve işlevsel olmayan (“non-functional”). Functional testler içerisinde:

  • Birim (“Unit”) testi
  • Duman (“Smoke”) testi
  • Bütünleşme (“Integration”) testi
  • Fonksiyonel (“functional”) test
  • Arayüz (“Interface”) testi
  • Sistem (“System”) testi
  • Regresyon (“Regression”) testi
  • Kullanıcı Kabul (“UAT-User Acceptance Test”) testi

Non-functional testler içerisinde;

  • Performans  (“Performance”) testi
  • Yük (“Load”) testi
  • Stres (“Stress”) testi
  • Güvenlik (“Security”) testi
  • Güvenlik Açığı (“Vulnerability”) testi
  • Kullanılabilirlik (“Usability”) testi
  • Uygunluk (“Compatibility”) testi

Farklı kaynaklarda bu testleri daha da çoğaltabiliriz ancak yaygın olarak testler yukarıdaki gibi sıralanabilir.

Kullanımı yaygın olan ancak tanımları karıştırılan ya da bilinmeyen  bu test yöntemlerini detaylandırırsak;

Functional Testler;

  • Birim (“Unit”) testi : Testin en başı da denebilir. Kalite test ekiplerine uygulama daha gelmeden önce uygulamayı yazan yazılımcılar tarafından yapılır. Temel amaç kodların doğru çalışıp çalışmadığını kontrol eden yardımcı kod bloklarının yazılmasıdır. Test edilen fonksiyona belirli değerler gönderilir ve dönen sonuç ile unit test içerisinde dönmesi beklenen sonucun aynı olup olmadığı kontrol edilir.
  • Duman (“Smoke”) testi : Bunu aslında devre testi gibi düşünmek daha kolay anlamamızı sağlar. Diyelim ki pille çalışan basit bir elektrik devresi yaptınız. Ana devrede elektrik akımını açan/kapatan anahtarınız olsun. Birde bu ana devreye bağlı farklı renklerde ampulleriniz olduğunu ve onlarında başka anahtarlara bağlı olduğunu düşünelim. Şimdi bu testi yapmak için tüm malzemelerinizi birleştirdiniz ve tüm test adımlarınızı deneyeceksiniz ancak öncesinde en önemli test adımınızı bilmeniz gerekir. Yani elektrik akımı devrede dolaşıyor mu? Yoksa kısa devre mi yapıyor? Eğer kısa devre yapıyor ise o zaman duman çıkar. İşte en önemli test adımınız olan Smoke testinizi buldunuz. Eğer bu adımı geçiyorsa zaten diğer adım olan renkli ampulleri test edebilirsiniz.
  • Bütünleşme (“Integration”) testi : Bütünleşme testi yine uygulamayı geliştiren yazılımcılar tarafından yazılan gelişmiş unit testi olarak bilinir. Birbiri ile bağlantılı metotların tümünün test edilmesi sağlanır. Burada dikkat edilmesi gereken nokta unit testi tek metodu test ederken Integration testi birden çok metodu aynı anda test eder.
  • Fonksiyonel (“functional”) test : Uygulamanın test ortamında kalite test ekipleri tarafından son kullanıcının istediği gibi çalışıp çalışmadığını kontrol etmektir.Eğer uygulama beklendiği gibi davranırsa,testlerin yapılmasına sıralı bir şekilde devam edilir.
  • Arayüz (“Interface”) testi : Arayüz testi, Kullanıcı Arayüzü (“UI-User Interface”) olarak da bazı kaynaklarda geçmektedir. Uygulamaya ait arayüzler incelenir. Kullanılan renkler, buton ve menü konumlarını da içeren test bu aşamada yapılır. Amaç kullanıcılar için görsel ve işlevselliğin optimum seviyeye getirilmesidir.
  • Sistem (“System”) testi : Sistem testi sadece uygulamanın değil donanım, yazılım ve servislerin tümüyle test edilmesidir.
  • Regresyon (“Regression”) testi : Genel anlamda detaya çok inmeden önemli kısımların test edilmesidir. Süreci devam ettirecek fonksiyonel testlerin elenerek yapılmasıdır.
  • Kullanıcı Kabul (“UAT-User Acceptance Test”) testi : Ürünün nihai versiyonunun, iş gereksinimlerini karşıladığından emin olmak adına son kullanıcı tarafından yapılan testlerin bütünüdür. Bu testler sonrasında onaylanan sistem canlı ortama alınarak hayata geçirilir.

Non-functional Testler;

  • Performans (“Performance”) testi: Uygulamanın çok kullanıcı ve çok data ile testi yapılarak sistemin çalışması ölçülür.
  • Yük (“Load”) testi : Uygulamaya çok kullanıcı ve çok data eklendiğinde belirlenen sürede cevap verip vermemesi kontrol edilir.
  • Stres (“Stress”) testi : Stres testi ise performans ve yük testi yapıldığı esnada alınan hataların gözlemlendiği, dönen cevapların doğru olup olmadığının kontrol edildiği testlerdir.
  • Güvenlik (“Security”) testi : İş tamamlandıktan sonra risk taşıyan maddeler üzerinde testler yapılır. En basit haliyle giriş yapılan bir ekranda <Script> yazarak giriş yapılamamalıdır.
  • Güvenlik Açığı (“Vulnerability”) testi : Güvenlik açığı testi, uygulamada güvenlik açıklarını azaltmak ve sistemde yer alan riskleri değerlendirmek için kullanılan yazılım test tekniği.
  • Kullanılabilirlik (“Usability”) testi : Uygulamanın son kullanıcı gözüyle rahat kullanılıp kullanılmadığını, uygulamanın kullanıcıya yol gösterip göstermediğine, rahat öğrenebilip öğrenilmediğine ve hata mesajlarına bakılır. En son kullanıcı gözüyle yapılan ve sistemi bilmeyen bir kullanıcı ile test edilmesidir. Buna göre sistemi bilmeyen bir kullanıcı rahatlıkla sistem üzerinde işlemini yapabiliyor ise bu testten geçilir.
  • Uygunluk (“Compatibility”) testi : Uygulamanın her browser’da, her mobil platformda her işletim sisteminde çalışıp çalışmadığının kontrolü yapılır. Kullanıcı özel olarak bir platform ya da browser belirtmedikçe tüm sistemlerde çalışması beklenir.

Bu test metotları daha da çoğaltılabilir ancak günümüzde en yaygın olarak bilinen ve kullanılanlar bu şekilde tanımlanabilir. Tanımları bilinen testlerden hangisinin üzerinde çalıştığımız uygulamaya daha uygun olduğuna karar vermek daha kolaydır.  Unutulmamalıdır ki her test metodolojisi tüm uygulamalarda kullanılmaz ya da zorunluluk teşkil etmez. Ancak bir uygulama hayata geçirilmeden önce testlerinin tamamlanarak olası risklerin bulunması ve hataların giderilmesi hayati bir meseledir.

Perakendenin Mobil Dünyası

 

İBRAHİM AKŞAHİN | uygulama destek uzmanı

Günümüzde mobil teknolojinin ilerlemesiyle birlikte, perakende sektöre de bu teknolojinin içerisinde yerini almıştır.

Her şeyin dijitalleşmesi, perakende sektörü içinde yeni bir kanal oluşturmuştur. Bu kanal hakkında biraz bilgi vermekte fayda var.

Akıllı telefonlar; Günümüzün en güncel ve en aktif kullanılan teknolojik ürünleridir. Akllı telefonlar ile birlikte hayatımıza  kattığımız en önemli şeylerden biri ise, perakendenin kolay erişebilir olmasıdır.

Perakende ile birleşimi ve piyasada etkisi

Tüm dünyanın mobile yönelmesi ile birikte perakende devlerinin de bu kanalda ki yerlerini bir bir aldıklarını görmekteyiz.

İnsanların bu kadar mobile bağlı olması, perakende piyasası için kaçınılmaz bir başarıyı getirdi.

İlgili grafikte belirtildigi gibi yılar geçtikçe perakende satışı artış göstermektedir. Bu artışın en büyük destekçisi ise e-ticaret satışlarının büyük oranda artış göstermesi olmuştur.

Yapılan araştırma ve verilere göre Türkiye e-ticaret sektörü de yaklaşık 185 milyar TL’lik hacme ulaştığı görülmektedir.

Google verilerine göre, son 2 yılda mobil üzerinden satın alma oranlarının %22 arttığı görülmektedir.

Mobil etkisi ile ilgili olarak 3 farklı ülkeyi karşılaştırdığımızda ilgili grafik ortaya çıkmaktadır. Bu oranlar ile farklı ülkelerde insaların mobile nasıl yöneldiğini ve gelişiminin olduğu görülmektedir.

Perakendenin neden bir mobil uygulamaya ihtiyacı var?

Bu soruya cevap olarak, “Pazarın Dijitalleşmesi ve Gelişmesi” diyebiliriz. Günümüzde bir çok satış işleminin artık mobilden gerçekleştirilmektedir.

Pazarın büyümesi, dijitalleşmesi firmalar için yeni bir kanal oluşturmuştur. Bu kanalı en iyi kullanmak için firmalar birbirleriyle yarışmaktadırlar.

Her zaman alışveriş stratejisi:

Perakende firmalarının mobile girmesindeki en önemli etken “Her Zaman Alışveriş” başlığı altında incelenebilir.

Günümüzde bir çok perakende uygulaması bulunmaktadır. Akıllı telefon kullanıcıların halihazırda birden fazla uygulamayı kullandığı söylenebilir.

“Mobil ve perakendenin birleşmesi ile hayatımıza bir çok yenilikde dahil olmus oldu. Perakende ile birlikte “QR kod” ve “Güvenli ödeme” gibi bir cok yenilik gerçekleşti.

Şu anda aktif olarak kullanılan bir çok uygulama, QR kod okuma teknolojini kullanarak pratik bir şekilde işlem yapabilmeyi sağlıyor.

En önemli soru olan, “Güvenli alışveriş yapılabilecek mi?” sorusuna cevap olarak da güvenli alışveriş sistemleri geliştirilmiştir.

Peki bu uygulamalar bize ne kazandırdı?

Bu uygulamaların; “Zaman”,”Para”, “Kalite” gibi önemli unsurları kazandırdığını net bir şekilde görebiliyoruz.

Zaman; AVM veya market, mağaza vs. gibi fiziksel noktalarda istenilen bir ürünü aramak yerine, mobilden satın almayı planladığımız ürünün  hangi mağazada olduğunu uygulamalar sayesinde anında öğrenebilmekteyiz.

Para; Bir çok karşılaştırma uygulamaları ile birlikte aynı ürünü daha ucuza nereden alabileceğimizi görebilir olduk.

Kalite; Almamızı istediğimiz ürünler hakkında yapılan yorumlar ile hangi ürünün kaliteli olup olmadığını rahatlıkla anlayabilir hale geldik.

Güncel olarak öne çıkan perakende uygulamalarını şu şekilde sıralayabiliriz;

  • Amazon Shopping: On yıldan uzun bir süredir çevrimiçi perakendecilik alanının lideri olmuştur.
  • AliExpress : AliExpress, alışveriş yapanları küçük Çin’li işletmelerle birleştiriyor.
  • eBay: Yaklaşık on yıldan beri bir başka online perakendecilik merkezidir.
  • Depop: Kullanıcıların yeni veya ikinci elden istenmeyen öğeleri almasına izin verir.
  • OfferUp: Kullanıcıların bir telefon veya tablet üzerinde bir garaj satışı gibi davranarak, ürünleri yerel olarak satın alıp satabilecekleri ücretsiz bir uygulamadır.
  • Walmart: Perakende zinciri devi olan firma, yaptığı e ticaret ve mobil atılımları ile  yasamıs oldugu büyük düşüsü toparlamıs olarak görünmektedir.  Atmıs oldukarı stratijik adımlar(jet.com’un satın alınması) sayesinde bugun Amazon’a rakip olarak görünmektedir.

Walmart, geçen yıl toplamda 428 milyar dolar gelir elde ederken, bunun sadece 14 milyar dolarlık kısmı internet ve mobil uygulamalardan yapılan satışlardan gelmiştir. E-ticaret devi Amazon’un geçen seneki geliri ise 107 milyar dolar olmuştu.

Mağaza Yenilenmesinde Mağazanın Misyon ve Ürün Portföyü Tayini

BÜLENT DAL | CEO

Mağaza yenilenmeleri son zamanlarda oldukça gündemde olan bir konu. Dijitalleşme süreci ve yeni perakende düzeninde mağazaların değişmekte olan misyonunu dikkat alarak mağaza yenilenmelerini ele almanın sağlıklı olacağına inanıyorum.
Fiziksel mağazaların görev ve misyonu, dijital kanalların devreye girmesi ile müşterinin mağazaya gelmeden ürünler ve kampanyalar hakkında bilgi sahibi olması, mağazaya gelmeden alışveriş yapabilmesi, satış sonrası ihtiyaçlarını yine dijital kanallar üzerinden karşılaması ile değişmeye başlamakta. Geleceğin fiziksel mağazaları, alışveriş sürecinin veya sunulan hizmetlerin en etkin gerçekleşebilmesini hedefleyen bir dönüşüm sürecine girecek ve mağaza sadece alışveriş yapılan bir lokasyon olmayacak. Özellikle, beğeniye dayalı ve gıda dışı ürünler satan perakende formatlarında fiziksel mağazalar alışverişin yanı sıra ürün deneme, bilgi ve eğitim almak, iyi vakit geçirmek, eğlenmek için ziyaret edilen lokasyonlar haline gelecek. Böylesi bir süreçte fiziksel mağazaları, satış yapılan bir yerin ötesinde müşteri deneyimini iyileştiren ve hizmet veren bir nokta olarak konumlamak daha doğru olacaktır. Yeni misyon çerçevesinde belki mağaza içerisinde çocuk oyun merkezi, kafeterya, pasta yapma gibi kursların yapılacağı yeni format ve mekanlar ile beraber süreci düşünmek gerekecektir.
Dijitalleşme fiziksel mağaza içerisine daha fazla girdiğinde mağaza içerisindeki demirbaş, cihaz, ürün ve müşteriler takip edilebilir ve yönetilebilir hale gelecektir. Müşterilerin self servis kendi işini halletme yetkinliği artacaktır. Mağaza personelinin teknoloji ve veri destekli hizmet vermesi gerekecektir. Tüm bunların sonucunda mağazadaki satış modeli ve müşterilere sunulan hizmetler de değişmeye başlayacaktır.
Mağazanın misyonunun tayini yanı sıra mağazanın hedef kitlesine göre kategori-ürün portföyünü, değişen mağaza misyonu ve müşteri dinamikleri çerçevesinde ele almak gerekecektir.
Mağazada hangi ürünleri bulunduracağımıza karar vermek için mağazaları veriye dayalı analitik kullanarak kümelemek ve mağazanın ait olduğu kümeye göre kategorileri tayin etmek sistematik bir yaklaşım olacaktır. Kategorilere karar verirken;

a. O mağazadan alışveriş yapan müşterilerin düzenli aldıkları ürün kategorileri,
b. Kategorilerin perakendeci için stratejik önemi,
c. Ürünün mağazada bulundurulması maliyetinin tedarik zincirindeki başka bir lokasyonda bulunması maliyetine olan rasyosu,

göz önünde bulundurulmalıdır. Mağaza lokasyonunun bulunduğu yere çekilmek istenen müşteri kitlesine göre ürün portföyünün belirlenmesi her zamankinden önemli mesele haline gelecektir. Bunun için alışveriş verisi, mağaza içi müşteri dolaşım verisi, mağaza içerisi trafik yoğunluğunun demografik, hayat tarzı profiller bazında dağılımı ve hangi kategorilerde hangi durumlarda daha fazla vakit harcandığı gibi veriler bizlere yardımcı olacaktır. Bu kapsamdaki zengin veri kaynakları sayesinde müşterileri mikro segmentlere ayırmak ve mağaza civarındaki segmentlere göre mağaza ürün yerleşimini gerçekleştirmek daha fazla başarı sağlayacaktır.
Müşteri odaklı ürün portföyünün en olumlu etkisi satış ve kar marjlarına olacaktır. Kendilerine daha uygun ürünler ve hizmetlerle ilgili memnuniyete sahip müşteriler daha sık mağazayı ziyaret edecek ve müşteri bağlılığı artacaktır.
Mağaza ve mağaza formatlarının tümleşik iş modelinin gözden geçirilmesi ve bu modele göre yenilenmesi başarıyı getirecektir. Başarıya ulaşmak için de teknolojik altyapısı güçlü mağazalar (internet, IoT, mobil, blockchain vb. ), veriyi kullanabilme ve aksiyonlara dönüştürme yetkinliği yüksek şirketler, teknolojik enstrümanları müşteri deneyimini iyileştirmek için kullanacak uygun stratejiler rol oynayacaktır.

RFID Perakende Operasyonlarını Kolaylaştırıyor mu?

 

ERDEM ACAR | YAZILIM UZMAN YARDIMCISI

Her geçen gün kendini yenileyen ve geliştiren teknoloji, sağladığı kolaylıklar ve avantajlar sayesinde bizlerin olduğu gibi birçok sektörün de olmazsa olmazlarından olmuştur. Son yıllarda daha çok kullanılmaya başlanan RFID teknolojisi de perakende sektörü için birçok kolaylık ve yenilik getirmiştir.

Perakende sektöründe stok durumunu anında ve doğru kontrol edebilmek, mağazalar içinde ürünlerin güvenliğini sağlamak ve ürünler hakkında birtakım istatiksel bilgiler edinmek (hangi ürünün daha çok ilgi gördüğü gibi) bir hayli önemlidir. Mağazaya gelen müşterilere aradıkları ürünlerin stokları hakkında doğru ve zamanında bilgi verebilmek satışları olumlu yönde etkilemektedir. Ancak birçok mağazada sistemdeki stokların yanı sıra fiili stoklar birtakım aksaklıklardan dolayı doğru olmayabiliyor. Bu da ciddi ciro kayıplarına yol açıyor.

RFID NEDİR? NASIL ÇALIŞIR?

  • Radio Frequency Identification (RFID) canlıları ya da nesneleri radyo dalgaları ile tanımlamak için kullanılan teknolojilere verilen genel isimdir. Birçok tanımlama biçimi vardır ama en yaygın olanı bir canlıyı ya da nesneyi tanımlayan bir antene bağlanmış mikroçip içine kayıt edilebilecek diğer bilgiler de eklenerek tanımlama daha belirgin hale getirilebilir. Anten, çipin tanım bilgisini bir okuyucuya iletilebilmesini sağlar. Okuyucu, RFID etiketinden aldığı radyo dalgalarını dijital bilgiye dönüştürerek bilgisayar sistemine geçmesini sağlar. Aslında 1970 lerden beri var olan ancak maliyetler dolayısıyla pek tercih edilmeyen bir teknolojidir. Günümüzde RFID etiketi 20 cent ya da daha fazla, okuyucusu ise 1000$ üzerinde maliyetlerdedir. Gelişen teknoloji ile maliyetlerde düşüş olur ise barkod ve şu an kullanılan alarmların yerini alabilir.
  • Bir RFID, antenli bir çipten yapılan etikettir ve bu etiketi okuyan bir okuyucu vardır. Okuyucu, cihaz elektromanyetik dalgalar yayar. Etiket anteni, bu dalgaları almak için ayarlanmıştır. Pasif bir RFID etiketi, okuyucudan yayılan dalgaları algılar ve bunu mikroçipin devrelerini harekete geçirmek için kullanır. Mikroçip, bu dalgalardaki dijital bilgiyi değiştirir ve okuyucuya geri gönderir. Okuyucunun etiketi okuyabileceği mesafeler de etiketin tipine göre değişiklik göstermektedir. Genelde düşük frekanslı etiketler 0.33 m ve daha az uzaklıktan okunabilir. Yüksek frekanslı etiketler 1 m ‘den, UHF etiketler ise 3 – 7 metreden okunabilir. Daha büyük uzaklıklar gerektiğinde, aktif etiketler güç kaynağı kullanarak 100 m ve daha fazlasını destekleyebilir.

RFID’NİN PERAKENDE SEKTÖRÜ İÇİN SAĞLADIĞI KOLAYLIKLAR

  • RFID teknolojisi sayesinde her bir ürünün kendine özel bir kimlik kartı oluyor. Bu teknoloji sayesinde müşterilere en doğru yanıtlar verilerek ciro artışı sağlanabilir ya da uygulanacak ek çözümler ile personelden yardım almak istemeyen müşteriler için ürün stokunu ve hatta mağaza içerisindeki konumu gösterilebilir.
  • Her mağaza stok takibi ve kayıp kaçağı en aza indirmek için belli periyodlar ile sayım yapmaktadır. Bu sayımlar oldukça maliyetli ve zaman alıcıdır. RFID teknolojisi kullanarak yapılacak sayımlar çok daha kısa zamanlarda ve çok daha az maliyetli şekilde yapılabilmektedir.
  • Perakende sektöründe hangi ürünlerin daha çok ilgi gördüğünü öğrenmekte önemlidir. Bu bilgiye, ürünlerin satışı yanı sıra hangi ürünlerin daha çok denendiği bilgisi ile de öğrenebilirler. Ve bu bilgi ile rafta beğenilmiş, denenen ama satılamayan ürünlerin neden satılamadığı hakkında bilgi sahibi olabilirler. Bu bilgi ile bir sonraki dönem üretilecek ürünlere yön verebileceklerdir. Ya da kabine giren ürünlerin % kaçının satışa dönüştürülebildiği istatistiği tutularak mağaza\personel performans ölçümü yapılabilir.
  • Mağazalardaki ürün güvenliği için kullanılan alarmlar yerine her ürünün üzerinde kendi kimliği için tanımlanmış RFID etiketleri kullanılabilir.
  • RFID teknolojisi otoparklar, otoservisler, depolar ve hastaneler gibi perakende dışında sayısız alanda da kullanılabilmektedir. Bunun gibi sektöre yön verecek teknolojiler gelişmeye devam ettiği sürece gelecekte perakende sektöründe insan gücüne ihtiyaç duyulmayacak gibi durmaktadır ki yurt dışında marketlerde örnekleri oluşturulmaya başladı bile; RFID teknolojisini yapay zeka ile birleştiren Amazon Go’da mobil cihazlar için hazırladığı bir uygulama ile birlikte kasiyersiz bir mağaza açtı. Kullandığı teknoloji sayesinde müşteriler mağazaya girerken uygulama üzerinde QR kodu okutuyor ve almak istedikleri ürünleri çantalarına koyup çıkıyorlar. Ödeme tutarları ise amazon hesaplarından düşülerek makbuzları kendilerine iletiliyor.

İş Hızında Kararlar

BÜLENT DAL | CEO

Veriden karara ve aksiyona giden sürecin işleyişinde işletmelerin ciddi gelişim göstermesi gerektiği bir dönemin içerisindeyiz. Yapay zeka, robotlardan bahsettiğimiz tamamen dijitalize olmuş süreçlerde kararları otomatik hale getirme konusunda gayet hızlı ilerlemeler kaydetmekle beraber insana dayalı süreçler ve organizasyonel hiyerarşilerin olduğu işletmeler dünyasında aynı hızı yakalayamamış bulunmaktayız.
Çok önemli bir kesimini halen insanların aldığı kararların büyük çoğunluğunun anlık gelişmelere endeksli operasyonel süreçlerde verilmesi gerekiyor. Veriye dayalı bir şekilde verilmesi gereken bu kararlar için ham petrol olarak nitelendireceğimiz operasyonel veriyi işleyerek kullanmak önem arz ediyor. Bu noktada arabamıza nasıl işlenmemiş petrol koyarak çalıştırmamız mümkün değilse, veriyi anlamlandıracak bir içgörüyü karar verecek iş çalışanlarına sunmayan işletmelerin de veriden değer yaratması mümkün olmamaktadır.
Verinin hacimsel artış hızı, veriden istifade etmedeki artış hızından daha fazla. Veri işleme sürecine baktığımızda, son 1 sene içerisinde 100 terabyte’dan daha fazla veriye sahip şirket sayısının yaklaşık 2 katına çıktığını görüyoruz. Adeta veri içerisinde boğuluyoruz, ancak işletmeler sahip oldukları yapısal verinin ancak %20’sini, yapısal olmayan (sosyal medya, diyalog, konuşma, görüntü, sensör vb.) verilerin ise %10’unu (*) verdikleri kararlarda kullanıyor. Söz konusu kararların daha akıllı, otomatik ve optimum olmasına yönelik bir çıta koyduğumuzda bu oranlar daha da aşağıya düşüyor. Özetle işletmeler veriye ancak küçük bir pencereden bakabiliyor. Başka bir deyişle de işletmeler neyi bilmediğini bilmiyor. Veri içerisinde boğulmasına rağmen, veriden faydalanamama diye nitelendireceğimiz bu problemin arkasında insan, süreç ve teknoloji olarak tasnifleyebileceğimiz üç önemli sebep bulunmaktadır.
İnsana dayalı en önemli problem, iş tarafı ile bilgi teknolojisi birimlerinin veriye dayalı yönetim yetkinliğini artırmak için yapılacaklarda ortak aksiyon alamamasıdır. Normalde teknolojik olarak yapılması gerekenler yıllardır aynı ve belli. Fakat bu tariflenileni hayata geçirmek iş dinamikleri nedeniyle kolay değil. Çünkü iş tarafı öncelikli olarak yeni bir mağaza açılışı, kampanyaya çıkış vb. acil işlerinin yapılmasına öncelik vermekte. İş tarafının işini nasıl yöneteceği ile ilgili bir tarif ve bakış açısı getirmekle ilgili önceliğinin olmaması durumunda bilgi teknolojisi ekiplerinin getirebileceği çözümlerin başarılı olması mümkün olmayacaktır.
Sürece dayalı en önemli problem ise işletmelerde hangi süreçte hangi göstergeye bakıp hangi kararın alınacağı ile ilgili tepeden en uçtaki karar vericiye kadar bir veriye dayalı yönetim disiplininin olmamasıdır. Böyle bir disiplin yoksa, şirket içerisindeki kısıtlı sayıdaki kişi ya da veri bilimcilerin olması da işletmeye yeteri kadar katkı sağlamayacaktır. En kolay teknolojik iş zekası aracı kullanılsa dahi ya alınan sonuçlar subjektif olacaktır ya da kararlarda etkin olmayan kişilerin bulduğu doğru sonuçlar gerçek hayattaki karar ve aksiyonlara büyük ölçüde yansıyamayacaktır.
Teknolojik açıdan; halen işletmelerin %66’sının (*) raporlama ve analiz içeriklerinin yarısından fazlasını excel’lerde tuttuğunu görmekteyiz. Yani, kurum geneline yansımış veriye dayalı bir yönetim kültürüne sahip değiller. Birçok karar halen deneyime dayalı alınmakta, birçok karar da self servis iş zekası araçları veya excel’ler üzerinde kişisel yorumlamalarla hayata geçmektedir. Halen işletmelerin ancak %34’ü herhangi bir sonucun sebebini iş hızında  öğrenebilmektedir (**). Örneğin neden A ürününün B ürününden daha iyi sattığı ya da neden A kategorisindeki karlılığın düştüğü sorusunun cevabını ellerindeki araçlar ve altyapı üzerinden öğrenmeleri vakit alabilmektedir. İşletmelerin ancak %3’ü kritik kararları için öngörü yapabilmektedir.
Veriye dayalı yönetim yetkinliğini artırmak için karar vericileri direkt ham veri ile baş başa bırakmaktansa takip edilmesi gereken hesaplanmış göstergeler ve içgörüler üzerinden hızlı ve doğru karar almayı sağlayacak bir sistemi hayata geçirmesi gerekmektedir. Aksi takdirde veriden hesaplama, analiz ve öngörüler yapmaya hazır hale getirmek için harcanan süre ve kişilerin yorumuna bağlı yanlış sonuçlarla verinin potansiyel değerinden çok az ölçüde istifade edilmiş olunacaktır.

Kaynaklar: (*)Business Technographics Global Data and Analytics Survey, Forrester, Haziran 2017.
(**) Augmented Analytics Is the Future of Data and Analytics, Gartner, Temmuz 2017.

Veritabanınız Tehditlere Karşı Hazır mı?

GÖKHAN GÜRSOY | UYGULAMA DANIŞMANI

Veri tabanı uygulamaları; veriyi, bilgiyi saklayan yazılımlardır. Saklama işlemi farklı yazılımlarda yapılabilir ama aradaki en önemli fark, veri tabanın bu bilgiyi verimli ve hızlı bir şekilde yönetip değiştirebilmesidir. Büyük orandaki verilerin güvenli bir şekilde tutulabildiği, bilgilere hızlı erişim imkanlarının sağlandığı, bilgilerin bütünlük içerisinde tutulabildiği ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının sağlandığı programlardır. Veri tabanı uygulamanızı takip ettiğinizden emin olmak için bu kontrol listesinin bir nebze etkili olabileceğini düşünüyorum.

Günümüzde güvenlik ihlalleri artan bir fenomendir. Daha fazla veri tabanına erişilebilir hale geldikçe Internet ve web tabanlı uygulamalar aracılığıyla güvenlik tehditlerine maruz kalma durumları artacaktır. Amaç, bu tehditlere karşı duyarlılığı azaltmaktır. Belki en çok yayınlanmış veri tabanı uygulaması güvenlik açığı en bilinen yöntemlerden biri olan SQL injection ve arabellek taşmalarıdır.

Temel olarak baz alınacak yollar; yapılandırma, veri korumaları, hesap sağlama, OS / veri tabanı etkileşimi ve veri tabanını kullanan ön uç uygulamalar için dikkat edilmesi gerekenlerdir.

Erişim Kontrolleri ve Yetkilendirme Adımları

Verileri korumak için kullanılan birincil yöntem, verilere erişimi sınırlandırmaktadır. Sisteme erişimi kısıtlamak ve yetkisiz erişimi engellemek için farklı kontroller sağlanır. Belirli veri nesnelerine ve veri kümelerine haklar ve ayrıcalıklar atayarak işlemler yapılır. Bu işlemler bir veri tabanı içinde genellikle tabloları, görünümleri, satırları ve sütunları içerir.

Örneğin, X bir kullanıcının yetki ayrıcalıklarıyla Y veri tabanına giriş hakkı verilmesi. İlgili yapıda daha uzun bir veri tabanı olduğunu düşünürsek; daha fazla erişim hakkı, daha fazla kontrol gerektirecektir.

  • Daha güçlü şifreler uygulayın

Veri tabanı yetkilendirmelerinde, kontrol için alan düzeyinde erişim kullanıyorsanız daha güçlü şifreler için politikalar ayarlayabilirsiniz.

  • Rolleri ve grupları yakından inceleyin

Daha fazla kontrol, kullanıcı ve daha önce tanımlanmış sistem rollerinin yönetiminde ise esneklik sağlar.

Bir veri tabanı yaratıldıktan sonra, veri tabanı yöneticisi diğer kullanıcılara erişim hakkı sağlamak için, veri tabanına erişim ve üzerinde bazı uygulamaları gerçekleştirme hakkı vermek durumundadır. Güvenliği sağlamak için, yönetici kimlerin veri tabanına bağlanacağını ve hangi uygulamaları gerçekleştireceğini belirlemelidir. Kullanıcı isimleri ve şifreler oluşturulduktan sonra, kullanıcılara veri tabanı üzerinde yapabilecekleri işlemler atanır. ISO 27001 Bilgi Güvenliği Yönetim Standardındaki Görevler Ayrılığı ilkesine göre hareket edilmesinde fayda vardır.

Sonuç olarak yapılacak noktalara tekrar kısaca değinmek gerekirse;

  • Hassas verilerinizi keşfedin, kataloglayın ve envanter oluşturun.
  • Güncel olmayan kimlik doğrulama sistemlerine ait istemcilerin bağlantılarını engelleyin.
  • Veri kaybolduğunda veya çalındığında ne yapacağınıza dair bir plan yapın.
  • Felaket kurtarma planı yaptırın.
  • İş birliği kültürü oluşturup, uygulama geliştiricilerini tanıyın.
  • Kullanıcıların sadece belirttikleri sistem üzerinden bağlandıklarından emin olun.
  • Kullanıcıyı yönetmek (yaratmak, silmek, denetlemek) için politikalar oluşturun.
  • Tehdit ve güvenlik olaylarını ve raporlama prosedürünü tanımlayın.
  • Belirli veri nesnelerinin duyarlılığını değerlendirin.

Başarılı Veri Bilim Çalışmaları İçin Test Odaklı Geliştirme Yaklaşımı

SİNEM BATMACA | TEST UZMANI

 

Günümüzde veri bilim çalışmaları birçok uygulamanın belkemiğini oluşturmaktadır.

Uygulamaların temel yapı taşını oluşturan bu çalışmaların, her zaman istenen sonucu verdiğinden emin olmamız gerekmektedir.

Ancak geçmişten günümüze yapılan veri bilim çalışmalarını incelediğimizde; süreçte hatalara rastlanabildiği gibi uygulamada ve uygulama aşamalarında da hatalara rastlanabilmektedir.

Veri bilim çalışmalarında rastlanabilecek hataların nelere yol açabileceğine  yönelik  perakende  sektöründen bir örnek vermek gerekirse;
Çeşitli KPI (“Anahtar Performans Göstergesi”)’lara göre bir akıllı stok yönetimi uygulaması geliştirilirken, stok değerlerinin negatif olabileceği ihtimalinin göz ardı edildiğini varsayalım. Böyle bir durumda optimizasyon algoritmasının hatalı çalışması ve buna bağlı olarak dağıtım sırasında kaos çıkması kaçınılmaz olur. Peki uygulamanın her zaman istediğimiz gibi çalışacağından ve optimize dağıtımı yapacağından nasıl emin olabiliriz?

Bu noktada, test odaklı geliştirme yaklaşımı devreye girmektedir. Test odaklı geliştirme yaklaşımı, bug (“hata”) oluşma ihtimalini %90’a varan oranlarda azaltma yeteneğine sahiptir. Ayrıca, uygulamada elde etmek istediğimiz  amaç  ve olası ters gidebilecek senaryolar üzerinde daha fazla düşünmeye fırsat tanıyarak, geliştirdiğimiz uygulamadan daha emin olmamızı sağlar.

Peki test odaklı geliştirme yaklaşımı nedir ve veri bilim çalışmalarında nasıl uygulanabilir?

Test odaklı geliştirme; herhangi bir kod geliştirmeden test senaryolarının yazıldığı, bu senaryolara bağlı olarak da testi geçecek kodun geliştirildiği ve kodun yeniden düzenlenip optimize edildiği döngüsel bir yazılım geliştirme tekniğidir. Test odaklı geliştirme yaklaşımı,   ”kırmızı-yeşil-refactor (“kod düzenleme”)” çevrimi olarak da adlandırılmaktadır.

Gözetimli öğrenme problemi için bu çevrimin adımlarını inceleyelim.

Kırmızı: Test senaryolarının hazırlandığı, amacın açıklandığı ancak uygulanan testlerin çalışmadığı adımdır. Bu adımda uygulama için geliştirilen algoritmalar, problem doğruluğunu test etmek için uygun olan değerlendirme metrikleri ve uygulamanın geliştirileceği platform belirlenir.

Yeşil: Testlerin çalışması için kodda değişikliklerin yapıldığı ve testlerin hepsinin hatasız çalıştığı adımdır. Bu adımda, eğitim verisi incelenerek geliştirilen algoritmalar ile modeller oluşturulur.

Refactor: Orijinal kodun düzenlendiği, olabildiğince basitleştirildiği, kod optimizasyonunun gerçekleştirildiği ve böylelikle kod tasarımından tatmin olunduğu adımdır. Bu adımda, modelin robust (“sağlam”) ve test verisi için doğruluk değerinin kabul edilen değer aralığında çıktığından emin olunur.

Test odaklı geliştirme yaklaşımının veri bilim çalışmalarında kazandıracaklarına detaylı değinmek gerekirse;

-Test odaklı geliştirme yaklaşımı, %15-35 oranlarında daha fazla zamanın aktif geliştirme  modunda geçmesini sağlar.*

-İstatistiksel analizlerde önemli düzeyde hatalardan kaçınılmasını sağlar.

-Test odaklı geliştirme yaklaşımı karmaşık kod tasarımını basitleştirir ve kodun daha anlaşılır olmasını sağlar.

-Ekibe katılan yeni geliştiricinin codereview (“kod gözden geçirme”)  ile uyumu kolaylaştırılır. Kodda yapılan değişikliklerle ya da yeni eklenen kodlarla mevcut yapının işlevlerinin bozulması engellenmiş olunur.

-Bu yaklaşım; geliştiricilerin kod yazımından önce geliştirilen özelliğe ve sonuca odaklanmasını teşvik eder, ortaya çıkan yazılımın kalitesini arttırır.

-Geliştirme sonrası uzun süren test süreleri kısalır, bug fix (“hata düzeltme”) oranlarını azalıryeniden geliştirme gerektirmediğinden toplam proje süreleri ve geliştirme maliyetleri düşer.

-Kodun, debug (“hata yakalama”) edilmesine harcanan sürede problemin çözümü ile ilgilenildiği için veri bilim çalışmalarını daha eğlenceli hale getirir.

Sonuç olarak test odaklı geliştirme yaklaşımının; veri bilim çalışmalarının gerektirdiklerinden ödün vermeden, oluşabilecek hataların önlemesini yada önceden fark edilmesini sağlayan umut verici bir yaklaşım olduğuna inanıyoruz.

Kaynak:

(*) Matthew, K., “Thoughtful Machine Learning with Python: A Test-Driven Approach”, O’Reilly, 2017.

 

Buzdağımız Eriyor!

ŞİNASİ ŞEN | YAZILIM DANIŞMANI

“Bu kitap, uzun zamandır aynı buzdağında yaşayan penguenlerin ciddi bir problem karşısında başlattıkları dönüşümün hikayesini anlatır.

 Kitabın yazarları, John Kotter ve Holger Rathgeber.”

 Bahçeşehir Üniversitesi Bilişim Teknolojileri Bölümü Yüksek Lisans bitirme projem (Agile Dönüşümlerde Uygulama Geliştirme Yaklaşımları) için araştırma yaparken danışman hocam Öğr. Gör. Onur ÖZCAN tarafından hediye edilen bu kitabı okuduktan sonra benim için dert olan bitirme projesi çok eğlenceli bir hal aldı. Ben de bu ilk yazımda bunu paylaşmak istedim.

Koloniden ayrı gözlemci bir penguen olan Fred zamanın çoğunu okyanusu gözlemleyerek geçiriyor. Gözlemleri sırasında buzdağının eridiğini farkedip, bunu kolonideki arkadaşları ile paylaşıyor ve bu paylaşım sonrasında serüveni başlıyor. Kolonidaşı Nono gibi sorunları görmezden gelen ve konfor alanını terk etmek istemeyen penguenlerle uğraşmak zorunda kalıyor.

Şimdi, kendi buzdağımızı düşünelim ve ne durumda olduğunu sorgulayalım. Her birimiz için hoşnutsuzluk yaratan problemler var ve bunlar bizim buzdağlarımızı eritiyor olabilir. Peki bu problemler karşısında biz kimiz? Fred mi? yoksa Nono mu? Burada hiç kimsenin ben Nono’yum diyeceğini zannetmiyorum çünkü herkes kendi problemleri karşısında Fred olduğunu düşünür. Fakat Nono’nun da en önemli  problemi Fred! Bunun için soruyu tekrarlamakta fayda var. Biz kimiz? Fred mi? Nono mu?

Eğer buzdağınızda gerçek bir Fred iseniz veya gerçek bir Fred’iniz varsa onu takip edin. Çünkü hiç kimse buzdağının erimesini istemez.

Kitabın yazarı Kotter  başarılı bir değişimin aşağıdaki sekiz adımda gerçekleşeceğine inanıyor. Buzdağınız değişiyorsa ve bu adımlara göre gidiyorsa bir Fred’iniz var demektir. Ancak aşağıdaki adımlarla alakasız bir dönüşümdeyseniz Fred görünümlü bir Nono’ya sahip olabilrsiniz. En hızlı şekilde gerçek Fred’inizi bulun! Buzdağınız eriyor!

Bu kitap hakkında bir paylaşımına ulaştığım Cihan Yılmaz’ın kullandığı ifadeler ile sıralamak gerekirse;

  • Aciliyet Duygusu Oluşturun: Değişimin gerekli olduğunu ve derhal harekete geçmenin önemini diğerlerinin görmesi için yardım edin.
  • Rehber Takımı Bir Araya Getirin: Değişim, liderlik, güvenilirlik, iletişim özellikleri iyi, analitik yetenekleri yüksek ve aciliyet duygusuna sahip olan güçlü bir grubunrehberlik ettiğinden emin olun.
  • Değişim Hayalini ve Stratejisini Geliştirin: Geleceğin geçmişten nasıl farklı olacağını ve bu geleceğin nasıl gerçekleşebileceğini açıklayın.
  • Anlayış ve Ortaklık İçin İletişimde Bulunun: Diğerlerinin vizyon ve stratejiyi anladığından ve kabul ettiğinden emin olun.
  • Diğerlerini Harekete Geçmeleri İçin Güçlendirin: Bir düşünceyi, gerçeğe dönüştürmek isteyenlerin önünde bulunan engelleri ortadan kaldırmaya çalışın ki düşünceyi gerçeğe dönüştürebilsinler.
  • Kısa Vadede Kazançlar Üretin: Mümkün olan en kısa zamanda görülebilir, açık başarılar yaratın.
  • Yorulmayın: İlk başarılı sonuçtan sonra daha sert ve daha zor işlerde başarılı olmaya çalışın. Düşünce gerçek olana dek değişikliklerde yorulmaz olun.
  • Yeni Bir Kültür Oluşturun: Yeni davranış yollarına tutunun ve bunların başarılı olduklarından emin olun. Yeni davranışlar, eski geleneklerle yer değiştirecek kadar güçlü oldukları zamana yeni kültürü oluşturmaya çalışın.

Bu kitabı okuduktan sonra sektörde başarılı veya başarısız şekilde dönüşüm gerçekleşmiş buzdağlarındaki arkadaşlarımla konuştuğumda farkettim ki, eğer bir buzdağında gerçek bir Fred varsa ve yukarıdaki bu adımlar başarılı şekilde uygulanırsa, dönüşüm başarılı oluyor. Ancak, değişimi sadece söylemde kalan, kendini Fred olarak tanıtan Nono’ların bulunduğu buzdağları erimeye devam ediyor.

Eğer Fred görünümlü Nono’ların bulunduğu bir buzdağında iseniz ne yapın edin gerçek Fred’inizi bulun. Çünkü hiç kimse eriyen bir buzdağında yaşamak istemez.

Bu arada Fred olmak hiç de kolay değil. Onun yerinde olmanın ne demek olduğunu kitabı okuduktan sonra anlayacaksınız.

Herkesin Fredgillerden olması dileği ile ..

2018’de önemi artmaya devam edecek trendler – I

BÜLENT DAL | CEO

“Değişmeyen tek şey değişimin kendisidir” diyor M.Ö. 535-475 yılları arasında Efes’de yaşamış olan filozof Herakleitos. Yeni yılın ilk 2 ayını geride bıraktık bile. Bu yeni yılda, engel olamadığımız, zaman zaman yeni fırsatlar yaratan, bazen bizi endişelendiren, değişimin ana kaynağı olan bilişim sektöründen bir paydaş olarak bizleri nelerin beklediğini ve sektörün nasıl dönüşeceğini ele almak istiyorum.

2018 yılı, 2017 yılında önemi artan veya yaygınlaşan trendlerin evrimleşmelerini devam ettirdiği ve birbirine yakınsadığı bir yıl olacak gözüküyor. Önemli başlıkları kısaca ele alacak olursak.

Mobil: 2018 yılında mobil uygulamalar ile müşterinin tanınması, kişiselleşme, müşteri ile etkileşim fonksiyonları sunarak mağaza içerisinde ve online ortamda müşteriye özel bir deneyim sunma süreci devam edecek. 2010’da mobil ticaretin toplam dijital ticaret içerisindeki payı %2 civarında iken bugün %20’yi geçmiş bulunuyor. Bu artış devam edecek, ancak gözüken o ki belli bir süre sonra 2020’li yıllarda, müşteri deneyimini daha kolaylaştıran ses ve artırılmış gerçeklik üzerine hizmet sunan iş modelleri mobilin etkisini azaltmaya başlatacak. İnsanların uzun süreler veya sık sık ellerindeki cihazlara bakması ve sağlığa olumsuz etkileri de dikkate alınırsa, insan yaratılışına daha uygun deneyim sağlayacak ses ve artırılmış gerçeklik teknolojisi nimetlerinden istifade etmek tercih edilecek.

2018’de mobil, alışverişin tamamlanması süreci ve ödemede daha fazla rol oynayacak. Daha ileri barkod tanımlama standartları, görüntü algılama teknolojileri ile ürünlerin çok daha rahat okunması kullanımı daha kolay hale getirecek. Çok yakın bir zaman önce Kroger 400 mağazada yaygınlaştıracağı “Scan, bag, go” adlı uygulaması ile mobil telefon ya da kendi sağladığı mobil cihazlar ile müşterinin kasiyere ihtiyaç duymadan self servis alışverişini yapacağının duyurusunu yaptı. Satıcısız satış modelinin ilk defa bu kadar mağazaya yayılması açısından ilgi çekici bir duyuru oldu.

Mağaza satış görevlileri müşteriye hizmet verirken mobili daha fazla ve etkin kullanacaklar. Özellikle moda perakendesi ve müşteri hizmetinin ön planda olduğu perakende segmentlerinde anlık ürün ve stok bilgisini müşteri ile diyalog halinde iken görüp müşteriye sistem tarafından yöneltilen önerilerle daha iyi hizmet vermek için, mağaza içinde mobil teknoloji kullanımımın önemi artacak. Müşteri iadeleri müşteri için çok daha az zahmetle mobil cihazlara sahip görevliler tarafından yapılacak.

IoT: Küresel ölçekte 2020 yılında 34 milyar birbiri ile bağlantılı cihazın pazarda olacağı ve önümüzdeki 5 yıl içerisinde 6 trilyon dolarlık IoT cihazı yatırımı yapılacağı öngörülüyor. Peki bu kadar artışı hangi gelişmeler destekliyor? Sensör maliyetlerindeki düşüş, veriyi işleme maliyetlerinde düşüş, bant genişliği maliyetlerinde düşüş ve depolama maliyetlerinde düşüş bu büyümeyi ciddi anlamda destekliyor. Bu gelişmeler ile RFID kullanımı da artıyor olacak. Bu yaygınlık ile perakendede müşteri, ürünler hakkında anlık olarak bulunurluk, son kullanım tarihi, tazelik, lokasyona özel kullanılacak dijital kuponlar, ürün değerlendirmelerine ulaşarak daha iyi hizmet almış olacaklar. Kurum içi kullanımda ise anlık stok ve ürün bilgisinin yanı sıra dinamik fiyatlandırma ve otomatik sipariş için katkı sağlayacak.

IoT blockchain ile birleşerek dilimize yeni bir terminoloji, BIoT’yi düşürdü. Anlık veri ve veri güvenirliğinin birleşimi yaklaşımından ortaya çıkan BIoT ile yeni hizmet ve iş modelleri sunulmaya başlanacak. Örneğin ürün izlenebilirliği daha mümkün olacak. Gerçek zamanlı veri Blockchain’in sağladığı daha güvenilir ortam ile birleşince işletmeler verilerini firmalar arası ortamda daha rahat paylaşacaklar ve firmalar arası işbirliği, ortaklaşa akıllı iş yönetimi kültürü verimliliği ve müşteri deneyimini iyileştirmiş olacak.

Sonraki yazımda diğer önemi artacak trendlerden yapay zeka, blockchain, sesli asistanlar ve artırılmış gerçeklikteki değişim ile devam etmeyi planlıyorum.

Otomatik Düzende Test Otomasyonu

Miray TOSUN yurtseven | ÜRÜN YÖNETİCİSİ

Günümüzde, her şeyi otomatikleştirme üzerine farklı çalışmalar yürütmekteyiz. Evlerimizin içerisindeki çamaşır makinelerinden, mutfak robotlarına, fabrikalarda seri üretimi yapan cihazlardan, bağlarda bahçelerde otomatik sulama yapan cihazlara kadar her yerde süreçler otomatikleştirilmektedir. Hal böyleyken bugün yazılım firmalarında otomatik testlerin de konuşulması kaçınılmaz oldu. Fonksiyonel testlerin otomatikleştirilmesi yaygınlaşmışken artık SaaS uygulamaları ve beraberinde gelen API testleri içinde otomasyon testlerine de ağırlık veriliyor. Bu yazılım kalitesini artırıyor.

Bilmeyen ya da yeni öğrenenler için kısaca belirtmekte yarar var; yazılım test otomasyonu elle yapılan fonksiyonel testlerin yerine, testi yapabilecek kodların yazılması ile test adımlarının daha hızlı yapılmasını sağlayan yöntemdir. Testleri kod yazarak yapabileceğiniz gibi benzer şekilde otomasyon testlerini kaydedip tekrar çalıştıran araçlarla da kullanabilirsiniz.  Bunu daha sonraki yazılarımda sizlerle paylaşacağım.

SaaS İngilizce’de “software as a service”,  Türkçe’de ise “hizmet olarak yazılım” modeli anlamına gelir. Bu model aslında bir satış stratejisidir. SaaS ile uygulamalar servisler üzerinden çalışır. Bir uygulama için API (“application programming interface”) – uygulama programlama arayüzü – uygulamanın olmazsa olmazları arasında yer alır. Geliştirme ekiplerine farklı yöntemler öğrenme ve uygulama, ama uygularken de yazılımların eski kalitelerinden ödün vermeden devamını sağlama işi düşer. O noktada devreye test otomasyonu girer.

Unutmayalım ki, API testlerinde, uygulamanın web arayüzleri için yapılan testlerde ya da veritabanı testlerinde önce manuel yapılacak fonksiyonel testler tamamlanmalı, sonrasında otomasyon testleri devreye alınmalıdır. Bir API testine başlarken genel olarak aşağıdaki yöntemler sırasıyla izlenir:

  • API dokümantasyonu incelenir. ( Bu bir analiz dokümanı olabilir.)
  • Servisin amacı iyice öğrenilir.
  • Buna uygun pozitif testler ve adımları çıkarılır. ( Sonraki yazılarımda test metotlarına değineceğim.)
  • Negatif testlere ait test adımları çıkarılır.
  • Negatif testlerde API’den dönecek olan tüm hata kodları test senaryolarına eklenir.
  • Tüm test adımları çıkarıldıktan sonra Regression (“regresyon”) test adımları belirlenir. ( Bu da gelecek yazılarımdan biri olacak.)
  • API test araçlarını kullanarak testler yapılır.
  • Create (“oluşturma/kayıt ekleme”), update (“güncelleme”), list (“listeleme”) ve delete (“silme”) işlemlerinizi yapan tüm API’lerin paralelinde veritabanı kontrolleri unutulmamalıdır.
  • Hata kontrolleri ve tüm testlerin tamamlanması sonrasında daha önceden çıkarılan regression test adımları istenilen bir yazılım dilinde test otomasyonuna çevrilir.

Tüm bu adımlar sonrasında hazır olan test otomasyonlarınızı çalıştırıp sonucu öğrenebilirsiniz. Gelelim, bu otomasyon neden gerekli sorusunu cevaplamaya. Unutmayalım ki, yoğun iş süreçleri içerisinde değiştirilen kodları tekrar tekrar test etmek yorucu ve uzun süren işlemlerdir. API’lerin çok iyi test edilmesi gerekir.

Otomasyon testleriniz  API’lerin  kontrolünü çok kısa sürelerde yapmanızı sağlar. Zamandan tasarruf sağladığı gibi gerekli olan kontrolleri çok daha güvenli şekilde yapmanıza da olanak sunar. Manuel testlerde unutabileceğiniz adımları otomatik testlerde kaçırmazsınız. Canlı ortama yapılacak olan kritik uygulama iyileştirmelerinde hızlı ve güvenilir testin olması sağlanacak, müşteriden gelecek olan hataları minimize edecektir.

Test otomasyonu ilk bakışta şirkete yüksek maliyet gibi görünmektedir. Çünkü harcanan süre en az bir manuel test süresi kadardır ve her geliştirmede yazılımcıyla birlikte geliştirmeye devam edilmelidir. Ancak, uzun vadede yazılım test otomasyonları yazılım kalitesi ve müşteri memnuniyetini artırır, müşteri geri dönüşlerini ve  bakım destek maliyetlerini azaltarak, verimlilik sağlar. Test otomasyonu, tüm dünyada yaygınlaşmıştır ve yaygınlaşmaya devam edecektir.