Türksat Uydu Haberleşme KabloTV ve İşletme A.Ş. - CRM ve Mobil Test Otomasyonu Projesi
Türksat Uydu Haberleşme KabloTV ve İşletme A.Ş. - CRM ve Mobil Test Otomasyonu Projesi
Proje İçeriği
Yazılım geliştirme yaşam döngüsü içerisinde gerçekleştirilen yazılım test süreçlerinde kaliteden ödün vermeden, daha hızlı sürüm çıkılabilmesi çok önemlidir. CRM ve Mobil uygulamalarda değişen, yeni eklenen süreçler ve özellikler gereği sürekli olarak gelişmesi sonucunda aynı senaryoların tekrar tekrar test edilmesi ihtiyacı doğmaktadır. Testlerin manuel yapılması çok fazla zaman ve insan kaynağı gerektirdiği gibi gözden kaçan test case lerden dolayı hatalı sürüm çıkılabilmektedir. Ayrıca mobil uygulamaların testlerinin birden çok farklı marka ve model mobil telefona gerek duyulmasından dolayı çok ciddi meblağlarda mobil telefon yatırımı yapılması gerekmekteydi. Dolayısı ile testlerin hızlı, verimli ve maliyet optimize bir modelde yapılması yazılım kalitesi açısından fark yaratan bir faktördür. Bu ihtiyacın karşılanması için yazılım test süreçlerinde test otomasyon yapıları incelenerek; • CRM ve Mobil uygulamaların testlerinde zaman ve efor maliyetinden ciddi miktarlarda tasarruf edilmesi, • Test senaryolarının hızlı ve tekrar tekrar uygulanabilmesi, • Her sprintte yapılması gereken manuel regresyon test eforlarının minimize edilmesi, • Hazırlanan detaylı test senaryolarının test kodları şeklinde hatasız ve hızlı yapılması, • Çok fazla sayıda iş kuralı (business rule) içeren parametrik yapıdaki geliştirmelerin çok fazla veri ile testinin yapılması, • Testlerde insan kaynaklı hataların önüne geçilmesi, • Daha fazla hatanın daha erken aşamalarda bulunması, • Testlerde kalitenin artırılması, • Uygulamalarda hataların minimize edilmesi, • Bu sayede müşteri memnuniyetini yükseltilmesi, • Hatalardan doğacak maliyetlerin önüne geçilmesi, • CI(Continuous integration)/CD(Continuous delivery), sürekli entegrasyon ve sürekli teslimat yapısının sağlanması amaçlanmıştır. Bu kapsamda; • CRM ve Mobil Uygulamalarında manuel olarak gerçekleştirilen Regresyon testleri için Test Otomasyon kapsamı belirlendi. • Hangi senaryoların otomasyona aktarılıp aktarılmayacağı incelendi. • Test Otomasyon için kullanılacak teknolojiler araştırılıp, belirlendi. • Test Otomasyonu için kullanılacak framework belirlendi. • Belirlenen framework çerçevesinde mimari hazırlandı. • Belirlenen mimariye göre test otomasyonu yazılımı geliştirilerek manuel test senaryolarının otomasyonu devreye alındı. • Otomasyonu geliştirilen senaryolar için deploylardan önce regresyon testleri gerçekleştirilebilmesi sağlandı.
Projenin Amacı
Proje ile birimimizde içinde yürütülen CRM ve Mobil uygulama geliştirme yaşam döngüsü içerisinde yer alan yazılım test süreçlerinde iyileştirme sağlanmıştır. CRM ve Kablo Mobil uygulaması için yeni teknolojiler kullanılarak tasarlanarak gerçekleştirilen Test otomasyon hizmetleri oluşturulmuştur.
Proje içindeki en büyük inovasyon nedir? (yeni bir teknoloji veya var olan teknolojinin farklı kullanımı gibi. IOT, M2M, AI vb.)
Proje içindeki en büyük inovasyon; manuel yapılan yazılım testlerinin otomasyon aracılığı ile (M2M) insan müdahalesi olmadan gerçekleştirilmesidir. Diğer önemli inovasyonlardan birisi ise; Müşteri, analist, yazılım ve test ekipleri ile oluşturulan user storyler üzerinden konuşma dilinde test senaryolarının koda dökülmesine olanak sağlayan BDD (Behavior Driven Development) yaklaşımının kullanılmasıdır. BDD sayesinde test senaryoları Türkçe yazılabildiği için herkes tarafından okunabilir ve anlaşılabilir hale geldi ve ekstra dokümantasyon hazırlanmasına gerek kalmadı. Oluşturulan bu test otomasyon altyapısının bir sonraki adımında planlanan diğer inovasyon ise Cloud hizmetler sunan (AWS,BlazeMeter, Perfecto vb.) teknolojiler ile entegre edilebilecek alt yapının hazırlanmış olmasıdır
Proje kurum içindeki hangi bölüme fayda sağlamıştır?(satış, pazarlama, finans, İK, IT, Üretim, Planlama, Satın alma, Lojistik Müşteri İlişkileri gibi)
Bu proje kurum içerisinde test süreçlerinde iyileştirme sağlanarak yazılım geliştirme yaşam döngüsünün işletildiği Kablo Bilgi Sistemleri Direktörlüğü’ne , sürüm çıkma periyotlarının kısalmasından dolayı iş taleplerinde bulunan Pazarlama, Müşteri İlişkileri, Alt Yapı ve İnternet Hizmetleri departmanlarına, hataların minimize edilmesi ve dolayısıyla müşteri memnuniyeti arttırılmasından dolayı tüm CRM kullanıcılarına, sahayı yöneten İl Müdürlüklerimize, İş Ortaklarımıza, Çözüm Ortaklarımıza ve Uygulama Destek Masasına, personel ve zaman maliyet tasarrufu sağlanmasından dolayı da genel olarak şirketimize fayda sağlamaktadır.
Projenin hayata geçirilmesi konusunda üst yönetimin desteğini tam olarak alabildiniz mi?
Süreç optimizasyonu, verimlilik ve maliyetlerin azaltılması şirketimizin en önem verdiği konulardan biri olduğu için üst yönetimimiz bu proje kapsamında da her türlü desteği sağlamışlardır.
Proje sonunda ortaya çıkan sonuçları analiz edebildiniz mi? Rakamsal verilerle ifade eder misiniz?(ROI, maliyetlerde yüzdesel azalma, üretim süresinde azalma, hata payının düşmesi vs.)
CRM Test Otomasyonu; 200 senaryodan oluşan CRM Regresyon testleri 3 kişi ile 24 saatte tamamlanırken; otomasyon ile bu süre ortalama olarak 1 saate kadar düşürülmüştür. Ve monitoring için bir personelimiz çalışmaktadır. Sağlanan bu tasarruf ile Regresyon test sayısı 400 senaryoya çıkarılmıştır ve mevcut senaryolara ait bakım işlemleri için zaman kazanılmıştır. Test otomasyonuna geçilmeden önceki dönemde sürüm çıkma periyodu 2 hafta iken, test otomasyonuna geçildikten sonra bu süre 1 güne düşürülmüştür. Manuel olarak gerçekleştirilen Regresyon testleri sonucunda canlıda tespit edilen hatalar %98 oranında azaltılmıştır ve bu hatalardan kaynaklanan operasyon işlemleri minimize edilmiştir. Mobil test otomasyonu; iOS ve Android platformlarında ayrı ayrı koşulan 75 senaryodan oluşan toplamda 150 senaryo içeren Regresyon testleri 3 kişi ile 20 saatte tamamlanırken; otomasyon ile bu süre ortalama olarak 2 saat içerisinden tamamlanmaktadır. Yine mobil test otomasyonu kapsamında da monitoring için sadece bir personlimiz görev almaktadır. Sağlanan bu tasarruf ile Regresyon testleri 100 senaryoya çıkarılmıştır ve mevcut senaryolara ait bakım işlemleri için zaman kazanılmıştır. Mobil test otomasyonu sayesinde birden çok farklı sanal mobil telefon üzerinde test gerçekleştirme imkânı oluşturulmuştur. Bu sayede fiziki olarak farklı mobil telefonların teminine gerek kalmamış olup birçok farklı marka ve model de telefon alımının önüne geçildiği için çok ciddi büyüklükte tasarruf sağlanmıştır. Test otomasyonuna geçilmeden önceki dönemde sürüm çıkma periyodu 1 hafta iken, test otomasyonuna geçildikten sonra bu süre 1 güne düşürülmüştür.
Projenizde şirket içinden kaç kişi aktif olarak görev almıştır? Ekip birimleri hakkında kısaca bilgi verir misiniz?
Yazılım Test ekibinden 3 kişi, Yazılım Geliştirme ekibinden 2 kişi, Analiz ekibinden 1 kişi, Konfigürasyon ekibinden 1 kişi olmak üzere Kablo Bilgi Sistemleri Direktörlüğü’nden toplamda 7 kişi ve Optiim İş Çözümleri firmasından 3 kişi projede yer almıştır. 7 kişi TÜRKSAT’tan, 3 kişi de Optiim firmasından olmak üzere toplam 10 kişi proje kapsamında görev almıştır.
Projenizde (varsa)işbirliği kurduğunuz veya destek aldığınız bilişim şirketlerini belirtiniz.
Proje kapsamında Optiim İş Çözümleri A.Ş. firması ile iş birliği yapılmıştır.
Proje sırasında kullandığınız ve spesifik önemi olan markaları (varsa) belirtiniz. (Yazılım veya donanım markaları)
CRM Test Otomasyonu için; Programlama dili olarak Java, IDEs olarak Intellij IDEA, BDD çerçevesi kapsamında Cucumber ve Gherkin dili, Senaryoların paralel bir şekilde koşulabilmesi için TestNG, Veri hazırlığı ve api testi için Rest-Assured, Tarayıcı üzerinde testlerin gerçekleştirilebilmesi için Selenium Web Driver, Projenin build edilip sonuçlarının raporlanabilmesi için Jenkins, Test sonuçlarının okunabilmesi ve kullanılabilmesi amacıyla Testrail, Aynı anda birden fazla senaryonun farklı tarayıcılarda koşulması için Selenium Grid, Tek hub’a bağlı birden fazla node mekanizması için Docker kullanılmıştır. Mobil Test Otomasyonu için; Programlama dili olarak Java ve Gherkin, IDEs olarak Intellij IDEA, Mobil test otomasyon aracı olarak Selenium, TestNG, Maven, Appium ve BDD yaklaşımı ile Cucumber test aracı kullanılmıştır. Otomasyon sunucu olarak Jenkins, Test koşularını raporlama ve takip için TestRail kullanılmıştır.