Sürekli Test
DevOps'ta Sürekli Test , yazılımın yazılım geliştirme yaşam döngüsünün her aşamasında test edilmesini içeren bir yazılım test türüdür. Sürekli testin amacı, erken testler yaparak ve sık sık test ederek Sürekli Teslimat Sürecinin her adımında yazılım kalitesini değerlendirmektir.
DevOps'taki Sürekli Test süreci, Geliştirici, DevOps, QA ve Operasyonel sistem gibi paydaşları içerir.
Bu eğitimde öğreneceksiniz
- Sürekli Test Nedir?
- Sürekli Testin farkı nedir?
- Sürekli Testin Test Otomasyonundan Farkı Nedir?
- Sürekli Test nasıl yapılır
- Sürekli test araçları
- Sürekli testin faydaları
- Sürekli testin zorlukları
Sürekli Testin farkı nedir?
Eski test yöntemi, elden merkeze dayanıyordu. Yazılım bir takımdan diğerine devredildi. Bir projenin belirli Geliştirme ve Kalite Güvencesi aşamaları olacaktır. QA ekipleri kaliteyi sağlamak için her zaman daha fazla zaman istediler. Amaç, kalitenin proje programına üstün gelmesiydi.
Ancak işletmeler, yazılımın son kullanıcıya daha hızlı teslim edilmesini istiyor. Yazılım ne kadar yeniyse, o kadar iyi pazarlanabilir ve şirketin gelir potansiyelini artırabilir. Bu nedenle, yeni bir test yöntemi geliştirildi.
Sürekli, kesintisiz olarak yapılan kesintisiz test anlamına gelir. Sürekli DevOps sürecinde, bir yazılım değişikliği (sürüm adayı) sürekli olarak Geliştirmeden Teste ve Dağıtıma geçmektedir.
Kod sürekli olarak geliştirilir, teslim edilir, test edilir ve dağıtılır.
Örneğin, bir geliştirici, Jenkins gibi Kaynak Kod Sunucusundaki kodu her kontrol ettiğinde, otomatik birim testleri kümesi sürekli süreçte yürütülür. Testler başarısız olursa, yapı reddedilir ve geliştirici bilgilendirilir. Yapı testi geçerse, kapsamlı işlevsellik ve yük testleri için performans, QA sunucularına dağıtılır. Testler paralel olarak yürütülür. Testler başarılı olursa, yazılım üretimde devreye alınır.
Sürekli Test, Sürekli Geliştirme, Entegrasyon ve Dağıtım Döngüsünde yer alan küçük bir çarktır.
Yazılım geliştirme geçmişte olduğu gibi değil, geliştirmeyi aylardan haftalara kestik. Mevcut test yığını (yukarıdaki şekle bakın) UI testine yöneliktir. Ancak amaç, giderek daha fazla otomatik birim testine sahip olmaktır.
Sürekli Testin Test Otomasyonundan Farkı Nedir?
Test otomasyonu vs Sürekli Test
Parametre | Test Otomasyonu | Sürekli Test |
---|---|---|
Tanım | Test otomasyonu, görevleri otomatikleştirmek için araç veya yazılımın kullanıldığı bir süreçtir. | Sürekli kalite ve iyileştirmeye odaklanan bir yazılım test metodolojisidir. |
Amaç | Bir dizi benzer veya tekrarlayan görev, bir makine daha az hatayla daha hızlı gerçekleştirebilir. | Sürekli test süreci, riskin bulunmasına, ele alınmasına ve ürünün kalitesinin iyileştirilmesine yardımcı olur. |
Önkoşul | Sürekli testi entegre etmeden testte otomasyon mümkündür. | Sürekli test, test otomasyonu olmadan uygulanamaz. |
Zaman | Yazılımın piyasaya sürülmesi bir ay ila yıllar sürebilir. | Yazılım sürümü haftalık veya saatlik olarak yayınlanabilir. |
geri bildirim | Her sürümü test ettikten sonra düzenli geri bildirim. | Her aşamada geri bildirim anında alınmalıdır. |
Tarih | Test sürecini daha hızlı hale getirmek için onlarca yıldır otomatik testler yapılmaktadır. | Sürekli test, nispeten daha yeni bir kavramdır. |
Sürekli Test nasıl yapılır
- Kullanıcı öykülerinden / gereksinimlerinden test otomasyon paketi oluşturmak için araçları kullanma
- Test Ortamı Oluşturun.
- Test veri yatağı oluşturmak için üretim verilerini kopyalayın ve anonimleştirin
- API'yi test etmek için hizmet sanallaştırmayı kullanın
- Paralel performans testi
Sürekli Test Araçları
İşte en iyi Sürekli Test Araçlarının seçilmiş bir listesi :
1) QuerySurge
QuerySurge, sürekli veri testi için türünün ilk tam DevOps çözümü olan akıllı veri testi çözümüdür. Temel özellikler arasında 60'tan fazla çağrı içeren Güçlü API, ayrıntılı veri zekası ve veri analitiği, sürekli test için DevOps ardışık düzenine sorunsuz entegrasyon ve büyük miktarda veriyi hızlı bir şekilde doğrulama yer alır.
Ücretsiz test etmeye başlayın
2) Jenkins
Jenkins, Java dili kullanılarak yazılmış bir Sürekli Entegrasyon aracıdır. Bu araç, GUI arayüzü veya konsol komutları aracılığıyla yapılandırılabilir.
İndirme bağlantısı: https://jenkins.io/
3) Travis
Travis, GitHub'da barındırılan sürekli test aracıdır. Barındırılan ve şirket içi varyantlar sunar. Çeşitli farklı diller ve iyi bir dokümantasyon sağlar.
İndirme bağlantısı: https://travis-ci.org/
4) Selenyum
Selenium, açık kaynaklı yazılım test aracıdır. Firefox, Chrome, IE ve Safari gibi tüm önde gelen tarayıcıları destekler. Selenium WebDriver, web uygulaması testini otomatikleştirmek için kullanılır.
İndirme bağlantısı: https://www.seleniumhq.org/
Sürekli Testin Faydaları
- Yazılım teslimatını hızlandırın
- Sürekli test, kod kalitesini iyileştirir
- Kesin iş riski kapsamının değerlendirilmesine yardımcı olur.
- DevOps Sürecine sorunsuz bir şekilde entegre olur
- Aylar yerine sadece saatler içinde çevik ve güvenilir bir süreç oluşturmaya yardımcı olur.
- Sürekli bir geri bildirim mekanizmasıyla pazara sunma süresini hızlandırır.
- Modern kurumsal ihtiyaçları karşılamak için geleneksel olarak gruplandırılmış ekipleri birleştirir. Geliştirme, test ve operasyon ekipleri arasındaki kopukluğu ortadan kaldırır.
- Test Otomasyonu, ilgili tüm testler için aynı konfigürasyonu koruyarak tutarlılığın sağlanmasına yardımcı olur.
- İş risklerini azaltmak için iş beklentilerini vurgular
- Service Virtualization ile her yerde bulunan test ortamı erişimi sağlama
Sürekli Testin Zorlukları
- Geleneksel süreç, Geliştirme ve Kalite Güvencesi uzmanları arasındaki kültürel değişimi sınırlıyor.
- Çevik ve DevOps ortamlarında test etmek için DevOps becerilerinin ve doğru araçların eksikliği.
- Üretim ortamını asla yansıtmayacak heterojen test ortamları.
- Geleneksel test süreci ve gevşek bir şekilde tanımlanmış test verileri yönetimi.
- Daha uzun kod entegrasyon döngüleri, entegrasyon sorunları ve geç hata düzeltmeleri oluşturur
- Yetersiz ve etkisiz kaynaklar ve test ortamları
- DevOps'un benimsenmesini kısıtlayan karmaşık uygulama mimarisi ve iş mantığı.
Sonuç:
- Yazılım Mühendisliğinde Sürekli test, erken test etme, sık sık test etme, her yerde test etme ve otomatikleştirme sürecidir.
- Eski test yöntemi, devir merkezliydi. Yazılım bir takımdan diğerine devredilir
- Jenkins, Travis ve Selenium popüler Sürekli Test ve Entegrasyon araçlarıdır.
- Sürekli Test, teslimat hattının her aşamasına göre eyleme geçirilebilir geri bildirim sağlar.
- Sürekli test, kod kalitesini artırmaya yardımcı olur
- Geleneksel süreç, Geliştirme ve Kalite Güvencesi uzmanları arasındaki kültürel değişimi sınırlıyor.
- Daha uzun kod entegrasyon döngüleri, entegrasyon sorunları ve geç hata düzeltmeleri oluşturur