Test Süreçlerinde Operasyonel Yönetim Disiplini: TestOps

Test Süreçlerinde Operasyonel Yönetim Disiplini: TestOps

Ops ops ops … TestOps, DevOps, DevSecOps… Nedir bu Ops, nereden çıktı, nasıl oldu da iş süreçlerimizin, iş akışlarımızın vazgeçilmez bir parçası oldu. Operasyonel süreçler neden bu kadar önem kazandı ve yazılım süreçlerine büyük fayda getirdi. Bu yazımda sizlere yazılımda hemen hemen her alanda olan operasyonel süreçlerin, test dünyasında nasıl şekillendiği, test dünyasına getirdiği artılar ve test dünyasında nasıl yer aldığından bahsedeceğim.

Test süreçlerinde uçtan uca test ihtiyaçları her geçen gün uygulamaların gelişmesiyle ve yeni trend teknolojilerin kullanılmasıyla artarken, test operasyonel süreçlerinde de iki ana trend karşımıza çıkmaktadır. Test operasyonel süreçleri web uygulama testlerinde B2B ve B2C amaçları için önemini artırırken, browser’ların her geçen gün gelişmesi ve değişmesiyle, asıl olan uygulama kodu, browser üzerindeki uygulamaların front-end tarafına kaymıştır. Test operasyonel süreçlerindeki ikinci trend ise, birçok development metodolojileri daha hızlı tekrar ve versiyonlama sağlıyor. Development ekibi teslimatı ve development sürecini yavaşlatmadan, test ekibine kodu teslim etmek zorundadır. Daha kısa ve daha sık aralıklarla development ve test ekibi arasında kod aktarımı yapılması gerekmektedir. Sonuç olarak, fonksiyonel UI ve E2E otomasyon testlerine operasyonel bakış açısı çeviklik getirecektir. Aynı zamanda, shift-left testing, continuous testing ve agile testing yaklaşımları, test süreçlerinde daha fazla yetkin insan gücüne ihtiyaç olduğunu gösteriyor. Ayrıca developer ve product owner’ların test otomasyon süreçlerine ve test analist süreçlerine dahil olması gerektiğini ve olduğunun da bir göstergesidir operasyonel süreçler.

TestOps, genellikle agile metodolojileri içerisinde yazılım test süreçlerini hızlandırmayı amaçlayan bir DevOps alt kümesi olarak tanımlayabiliriz. Test planı, test data management, test process organization, test management süreçlerini yönetebilmek ve bu süreçler hakkında bilgi alabilme süreçlerini içerir.

TestOps konusunda farklı anlayışlar söz konusudur. Bu tanımlar test uzmanları ve iş birimi arasında omuz omuza bir çalışma ve yakın etkileşimi destekleyen tanımları işaret eder. TestOps kavramı ile, Test Otomasyon uzmanlarının görev tanımına yeni sorumluluklar eklenmiş, test ortamının kurulumu ve sürdürülebilirliği konusunda ciddi görevler verilmiştir. Otomatize edilen testleri koşmak için testlerin Docker gibi sistemlerde paketlenmesi, test edilecek yazılımın bu sistemlerde koşumunun başlatılması, koşumların tamamlanması ve koşum sonuçlarının istenilen şekilde raporlanması TestOps sürecinin bize sağladıkları arasındadır.

TestOps ile birlikte, yazılım test türlerinin zorunlu yük ve güvenlik testleri ile genişletilmesi, test uzmanı için hem test ortamlarında hem de production ortamında tüm sistemleri izlenme sorumluluğunu da test uzmanına vererek, test uzmanının görev tanımını ve yetkinliklerini artırmıştır.

Ayrıca TestOps özellikle test verilerinin oluşturulması için harcanan zamandan tasarruf etmek için kullanılan bir metodoloji. TestOps sayesinde izleme metriklerini analiz etmek için daha fazla zaman harcanmasına ve aynı anda tüm kullanıcılar yerine küçük test gruplarını etkileyen değişiklikler yapılmasına olanak sağlar. Bu da daha kaliteli test anlamına gelmektedir.

Test süreçlerini olabildiğince hızlı hale getirebilmek için farklı araçlar yardımıyla manuel ve otomasyon testlerini gerçekleştiriyoruz, aynı şekide production ortamında yine aynı hızı elde etmek için tüm süreçleri TestOps yardımı ile bir adım öteye taşımız oluyoruz.

DevOps ekibi süreçlerin hızlandırılmasına yardımcı olur, Genellikle belirli bir şeyi test etme zamanının yüksek olduğu ve ürünün hızlı bir şekilde, zamanında teslim edilmesinde büyük bir sorun olduğu düşünülür ve TestOps yaklaşımı ekibe, özellikle DevOps ekibine bu konuda fazlasıyla yardımcı olur. TestOps işlevinin iyi çalışıp çalışmadığını doğrulamak için, yüksek unit test kapsamı ve sıfır bug politikası ile yaklaşım izlenebilir.

TestOps disiplinini daha etkili kullanmak ve daha çok fayda sağlamak için, use-case’ler, tool’lar ve test teknikleri geliştirilirken aynı zamanda ekipler arası iletişim ve çalışma modellerine de farklı bir bakış açısı getirilmelidir. Ayrıca yazılım/uygulama yaşam döngüsüyle ilişkili disiplinlerinde gelişmeye ihtiyacı vardır. TestOps disipliniyle ilgili birçok kuruluşun shift-left yaklaşımı olarak kullandığı yeni bir trend de mevcuttur.

TestOps yazılım yaşam döngüsü ve test süreçleri boyunca aşağıdaki noktalara odaklanır.

  • Test edilen sistemde kullanılacak test verilerinin hazırlanmasına.
  • Manuel ve otomasyon test süreçlerinde, test tiplerinde TestOps trendlerinin kullanılmasına.
  • Building development esnasında sorunu kontrol etmek ve çözmek için CI/CD kurulum bilgisine.

TestOps, ekiplerin büyük otomasyon test suite’lerinin ölçeklendirilmesini sağlayan ve dört temel prensipten yararlanan bir süreçtir:

    • Planning
    • Control
    • Management
    • Insights

TestOps, farklı test türlerini (birim, entegrasyon, uçtan uca) kapsar ve birden fazla test tool içerebilir. TestOps’un verimliliği artırabileceği bu alanlarda bu dört temel prensibe dayanır.

Şimdi sırayla TestOps’un bu dört ana prensibini açıklayalım.

  1. Planning:

Planlama, software development life cycle’ın başlarında yapılmalı ve hızlı yineleme için devam eden bir süreç olmalıdır. Planlama, ekibin genellikle algılanan risk, kod karmaşıklığı, mevcut kapsam veya diğer değişkenlere göre testleri önceliklendirmesine yardımcı olur. Neyi test edeceklerini, testin hedeflerini ve testi kimin yapacağını belirlemelerine yardımcı olur. Ürün ve işletme sahipleri, geliştiriciler ve kalite ekibi üyeleri, ekip uyumunu sağlamaya yardımcı olmak için kararlarını ortaklaşa planlamalı ve dokümante etmelidirler.

  1. Control:

Kontrol, sürekli olarak yüksek standartlarda testleri nasıl oluşturduğunuzla ilgilidir. Daha önce belirtildiği gibi, küçük ekiplerle kişi hafızasına ve sözlü anlaşmalara güvenilirken, daha büyük ekiplerde süreçlere ihtiyaç duyulmaktadır. Test uzmanları, ekip üyelerine mevcut test bileşenlerini yeniden kullanma konusunda rehberlik edebilir. Gerekli incelemeler de dahil olmak üzere değişiklik kontrol süreçleri, en iyi uygulamaları standartlaştırmaya yardımcı olabilir.

  1. Management:

Yönetim, testlerin, ekiplerin ve araçların organizasyonunu ve yönetimini temsil eder. Testler üzerinde kimin çalıştığını veya hangi testlere öncelik verileceğini koordine etmeyi içerebilir. Naming kuralları, labeling ve paketleri, klasörlerde testleri nasıl düzenlediğimize yardımcı olur. Flaky testler bizi yavaşlatmakla kalmaz, aynı zamanda takımın kendisine olan güvenini de zedeler.

  1. Insights:

Insights, sürüme hazır olma durumu, proje kalitesini ve ekibin etkinliğini daha iyi anlamamıza yardımcı olmak için testlerimizde ve ekiplerimizden elde ettiğimiz bilgilere atıfta bulunur. Operasyonel yöne ek olarak, kalite sürecinin liderlerinin potansiyel süreç iyileştirmelerine de dikkat etmesi gerekir. Sonuçta öğrenme ve sürekli iyileştirme süreçleri kolaylaştırmaya, tekrarlayan sorunları ortadan kaldırmaya ve zamandan tasarruf etmeye yardımcı olabilir.

Özetleyecek olursak, TestOps test süreçlerini operasyonel anlamda daha verimli daha proaktif gerçekleştirmemizi sağlayan bununla birlikte test uzmanı görev tanımını genişletirken kendisinden farklı yetkinlikler isteyen operasyonel bir yaklaşımdır. Bu trendin agile metodoloji gibi süreçlerle harmanlanarak kullanılmasının verimliliği daha çok artıracağı düşüncesindeyim.

yazı

Ben Göknur BATI. Farklı projelerde test uzmanı, test analist ve test otomasyon uzmanı pozisyonlarında çalışıyorum. Şu anda bir finans projesinde test otomasyon uzmanı olarak çalışmaya devam ediyorum. Teste aşkla bağlı olduğumdan her konuyu testle birleştirip, harmanlayıp, araştırmak incelemek en büyük zevkim. Psikolojiye karşı özel bir ilgim var. Fırsat buldukça tiyatro ve müzik yapmayı çok seviyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.