what is infrastructure testing
Bu Kapsamlı Altyapı Testi Kılavuzu, Avantajlarını, Zorluklarını, Altyapı Test Araçlarını ve Metodolojilerini kapsar:
Altyapı birçok proje arasında paylaşılır. Altyapı testi, yazılım ürünlerini çalıştırmak için gereken donanım ve yazılım bağımlılıklarının test edilmesidir. Hedef altyapı ile ilgili ürün risklerinin karşılanmasına yardımcı olur.
Bu eğitim, Altyapı testini sıfırdan öğrenmenize yardımcı olacaktır. Avantajlar ve zorluklar, kimin gerçekleştirebileceği, ne zaman gerçekleştireceği ve bu testi gerçekleştirme teknikleri gibi tüm ayrıntıları ele alacağız. Altyapı test araçları da bu eğiticide ele alınmaktadır.
Ne öğreneceksin:
Altyapı Nedir?
BT Altyapı Ekosistemi, İşletim Sistemleri platformlarını (Windows, UNIX, Linux, macOS gibi), Bilgisayar Donanımı platformlarını (Dell, IBM, Sun, HP, Apple gibi), İnternet platformlarını (Apache, Cisco, Microsoft IIS, .NET gibi) içerir. ), Veri Yönetimi ve Depolama (IBM DB2, Oracle, SQL Server, MySQL gibi) ve Kurumsal Yazılım Uygulamaları (SAP, Oracle, Microsoft gibi).
Altyapı Testi Nedir?
Her yazılım, eylemlerini gerçekleştirmek için bir altyapıya ihtiyaç duyar. Altyapı testi, donanım, yazılım ve ağları kapsayan test sürecidir. BT çerçevesindeki farklı şeylerden yapılandırma değerlerini okuyan ve bunları amaçlanan sonuçlarla karşılaştıran herhangi bir kodun test edilmesini içerir.
Başarısızlık riskini azaltır. Bu test, BT uygulamalarının ve temel altyapının yürütme, uyarlanabilirlik, sarsılmaz kalite, erişilebilirlik, performans ve ölçeklenebilirlik sunacak şekilde ayarlandığını garanti eden test alıştırmalarını, prosedürleri içerir. Amaç, test ortamları, test araçları ve ofis ortamları arasındaki altyapıyı test etmektir.
Altyapı Testi Neden Gereklidir?
Kuruluşlar, iş uygulamalarının mükemmel şekilde test edildiğinden emin olmak için birçok dolar harcıyor. Bununla birlikte, temel temel, yani bu uygulamaları barındıran ve ileten altyapı, arada bir test edilir ve genellikle hafife alınır.
c ++ 'da hızlı sıralama programı
Herhangi bir donanım veya yazılım bileşeninin arıza riskini azaltmak için altyapı testine ihtiyaç vardır. Yazılım için yeni altyapı tasarımı hazırlandığında bu testin yapılması gerekli hale gelir. Yeni altyapı işlevselliğinin amaçlandığı gibi çalışıp çalışmadığından emin olmak için gereklidir. Projeye yeni bir altyapı modülü entegre edildiğinde sorunlar daha olasıdır.
Ölçeklenebilir altyapı üzerinde herhangi bir test planlanmadığında altyapı hataları ortaya çıkar. Bu nedenle kesintileri ve son dakika sorunlarını önlemek için bu testin yapılması gerekir.
Bu test, farklı test süreçleri sırasında verimli bir şekilde bulunmayan kusurları belirlemek için gereklidir. Donanım ve yazılım kaynakları her değiştiğinde yazılım uygulamasının analiz edilmesi önemli hale gelir. Sistem verimliliğini ve performansını analiz etmek için yapılır.
Bu test türünün zamanında uygulanması gereklidir, çünkü projeler yüksek altyapı maliyeti içerir. Bu nedenle, proje riskleriyle ilgili maliyeti en aza indirmek için bu testin iyi bilinmesi gerekir. Herhangi bir arızayı önlemek için, bu teste bir endüstri standardı olarak ihtiyaç vardır.
Altyapı Testinin Faydaları Nelerdir?
Altyapı Testinin planlı ve kapsamlı yaklaşımı, bir yazılım ürününe olduğu kadar kuruluşlara da birçok fayda sağlar.
Faydaların birkaçı aşağıda listelenmiştir:
- Üretim hatalarında azalma.
- Üretim uygulamasından önce kusur tespitinde iyileştirme. Üretime sıfır hata kayması ile altyapı kalitesini yükseltin.
- Hızlandırılmış test yürütme, erken yayına geçişi güçlendirir.
- Operasyonlarda ve iş dünyasında yıllık maliyet tasarrufuna yardımcı olur.
- Yazılımın sistematik ve kontrollü bir prosedürde çalıştığını doğrulayın.
- Arıza süresinde azalma.
- Hizmet kalitesinde iyileşme.
- Kararlı ortamların kullanılabilirliği.
- Risklerle ilgili maliyette azalma.
- Daha iyi kullanıcı deneyimi.
Altyapı Testinin Zorlukları
Altyapı Testini benimsemeye çalışan şirketlerin karşılaştığı birkaç zorluğa bakalım.
# 1) Uzak ortam
Test ortamları veya kaynakları topografik olarak uzak yerlerde konumlandırılmıştır, bu da test ekiplerinin ekipman, donanım bileşenleri, yazılım bileşenleri, ağ oluşturma vb. İle ilgili zorlukları yönetmek için bölgedeki destek gruplarına güvenmesini sağlar. Bu genellikle zaman ve nedenlerle ilgili biraz yatırım gerektirir. özellikle takımların farklı saat dilimlerinde bulunduğu yerlerde gecikmeler.
# 2) Özel bir ekibin yokluğu
Ekip arasında bilgi eksikliği, bu testi gerçekleştirmek için büyük bir zorluktur. Programlar, planlar, kapsam, durum raporları dahil olmak üzere tüm faaliyetlerle ilgili bilgileri korumak için özel bir ekip gereklidir.
# 3) Test ortamı sorunlarının araştırılması
Çoğu zaman test ortamı sorunları çözülemedi ve araştırılması gerekiyor. Sorun çözülene kadar ilgili ekiplerle koordinasyon sağlanmalıdır.
# 4) Tek bir yerde ortamları koruma
Ortak bir test ortamları deposu, eski uyumlulukları ve en son sürümleri, bu testi gerçekleştirirken büyük bir zorluk teşkil ediyor. Tüm sürümlerin bağlantı ayrıntıları ve yapılandırmaları korunmaz.
# 5) Manuel çalışma
Bu testte yer alan az sayıda faaliyet, herhangi bir alet bulunmadığından manuel çalışma gerektirir. Bu, insan hatasına ve süreçte gecikmelere yol açar.
# 6) Altyapı Testi için standart tanımın olmaması
Çoğu insan hala uygulama ve süreçlerin farkında değil. Yanlış bilgi ve anlayış genellikle uygulamada zorluklara yol açar. Sürecin kararlı olmasını etkileyebilecek birçok yeni sorun ortaya çıkar.
# 7) İzole takımlar
Ekip konumları arasında büyük bir boşluk var. Bu genellikle şeffaflık eksikliğine ve kötü ekip çalışmasına yol açar.
Altyapı Testini Kimler Yapabilir?
Bu test türünde çeşitli ekipler yer almaktadır. Bunlar aşağıda açıklanmıştır:
# 1) Altyapı Test Ekibi
Altyapı test ekibi, bu testle ilgili çok sayıda bilgiye sahiptir. Ayrıca Kalite Güvence ekibiyle de ilgilenirler. Bu ekip, BT altyapısını nasıl test edeceğini biliyor. Bu ekip, bu tür testler için test senaryolarının nasıl tasarlanacağını bilir.
# 2) Sistem Yöneticisi Ekibi
Sistem Yöneticisi ekibi genellikle ağ düzeyinde altyapıyı test eder. Ekip, deneyimlerine göre test senaryoları tasarlar ve belgelendirir. Ağdaki herhangi bir değişiklikten sonra uygulamaların etkilenmemesini sağlamaktan sorumludurlar.
# 3) Altyapı Bakım Ekibi
Bu takım çok önemli bir rol oynuyor. Erken bir aşamada dahil olurlar ve gereksinimlere göre test ortamlarını ayarlamaktan sorumludurlar. Test planlama ve altyapı ortamlarının bakımına katılırlar.
# 4) Kalite Güvence Ekibi
QA ekibi, regresyon testini yürütmekten sorumludur. Ayrıca entegrasyon testine de katılırlar. Farklı altyapıya göre oluşturulan farklı test ortamlarında test gerçekleştirirler.
# 5) Proje Yöneticisi
Proje yöneticisi, projeyi yürütmekten sorumludur. Bu test türü için gerekli olan test senaryolarının planlanması, tasarlanması ve dokümantasyonuna dahil olurlar. Bir Proje Yöneticisi tüm ekiplerle uyumludur.
Altyapı Testi Ne Zaman Yapılmalı?
Altyapıyla ilgili herhangi bir değişiklik yapıldığında bu testin gerçekleştirilmesine acil bir ihtiyaç vardır.
Bu tür değişikliklerin örnekleri şunlardır:
- Sistemdeki herhangi bir yeni yama geliştirilir.
- Herhangi bir yeni sistem güncellemesi yaşanır.
- İşletim Sistemindeki herhangi bir güncelleme.
- Veritabanı sürümü / yapısı yükseltildi.
- Sunucular için bellek yükseltme olduğunda.
- Yeni aracın uygulanması.
- Güvenlik düzeltmeleri.
- Yazılım güncellemesi.
Bazen bu test türü Veritabanı veya Veri Merkezi geçişiyle karşılaşıldığında daha önemli hale gelir. Uygulamada çeşitli ve hızlı değişiklikler olduğunda ve altyapı geçişleri söz konusu olduğunda daha fazla odaklanmaya ihtiyaç vardır.
Yazılım için yeni cihazların desteği sunulduğunda da gerçekleştirilir.
Misal:
- Yeni dizüstü bilgisayarlar / Masaüstü bilgisayarlar
- Yeni Mobil cihazlar
- Yeni üçüncü taraf araçlar
Altyapı Test Metodolojileri
Bunda farklı modüllerimiz var. Birkaç tanesi aşağıda listelenmiştir:
- Sunucu / İstemci Altyapısı
- Veri göçü
- Bulutta Altyapı Testi
- Ağ düzeyinde Test
- Kurulum / Kaldırma / Dağıtım
- Test Ortamı Altyapısı
- TDD yaklaşımı
# 1) Sunucu / İstemci Altyapısı
Sunucular arasında web sunucuları, dosya sunucuları, posta sunucuları, proxy sunucuları, sanal sunucular ve donanım üzerindeki fiziksel sunucular yer alır. İstemci, işletim sistemini, uygulamaları, kullanıcı ayarlarını vb. İçerir. Sunucular farklı hizmetleri çalıştırır ve bu hizmetler istemciler tarafından kullanılabilir.
Ana amaç, sunucuların, masaüstlerinin, İşletim Sistemlerinin ve donanımın kalitesini test etmektir. Sunucu / İstemci bileşenleri, üretim ortamında altyapı performansının iyileştirildiğinden emin olmak için test edilir. Ayrıca, uygulamaların yüklenmesi veya kaldırılması, tarayıcı uyumluluk testi, farklı işletim sistemi sürümleri ve kullanıcı ayarları ile entegrasyon testleri de dahildir.
Prosedür:
- Her şeyden önce, paydaşlardan gereksinimleri toplamaktır.
- Gerekli altyapı anlayışına göre bir test planı tasarlayın.
- Daha sonra, İşletim Sistemleri desteğini, yükseltme senaryolarını, sunucu / istemci altyapısı testinin kapsamını ve ayrıca işlevsellik testini kapsayan test senaryoları tasarlanır.
- Test senaryolarının onaylanmasından sonra, QA Ekibi her senaryoyu ve ilgili test olaylarını yürütür.
Yükseltme, yapılandırma değişiklikleri gibi sunucu / istemciyle ilgili tüm değişiklikler zaten QA kurulumlarında test edilmiştir, bu nedenle bu, üretim ortamında daha az olası etkinin olmasını sağlar. Ayrıca, üretimde dağıtılmadan önce farklı işletim sistemi sürümleri test edilecektir. Üstelik, üretimde herhangi bir hata olması durumunda, yedeklemeyi sağlamak için geri dönüş prosedürleri önceden test edilir.
# 2) Veri Taşıma
Veri Taşıma, eski sürümden yeni sürüme taşınan verileri, bir sunucudan diğerine taşınan verileri ve ayrıca farklı yapılandırmalara taşınan verileri içerir.
Veri Taşıma testinin temel amacı, çeşitli sürümler, sunucular ve yeni yapılar üzerindeki veri geçişlerini test etmektir. Geçiş nedeniyle herhangi bir etkisi olmadığını onaylamak için uygulamayı test edin. Veri Taşıma testi, uygulamadaki performansı ve gecikmeyi doğrulamak için de gerçekleştirilir.
Prosedür:
- Uygulamayı geçişten önce ve sonra test edin.
- Hiçbir değişikliğin gözlenmediğinden emin olmak için veri geçişinden önce ve sonra sunucuları test edin.
- Veri geçişinden sonra uygulamanın performansında herhangi bir değişiklik gözlemlenmediğini test edin.
- Uygulamayı veritabanının farklı sürümleriyle test edin
- Yeni yapının veritabanının tüm sürümleriyle uyumlu olup olmadığını test edin.
- Sunucunun farklı yapılandırma ayarlarını farklı veritabanı sürümleriyle test edin
Veri geçiş testi yardımıyla, sunucu uyumsuz yapılandırmaları keşfedilebilir. Veri geçişi gerçekleştirilirken mevcut olan herhangi bir sunucu oluşturma sorunu, üretim dağıtımından önce çözülebilir. Veri taşıma testi, ürünün kalitesini ve kararlılığını artırır. Bu test daha sonra uygulamayı üretim ortamında dağıtırken kurulum testine yardımcı olur.
# 3) Bulutta Altyapı Testi
Bilgi ve veriler çoğunlukla sanal sunucularda depolanır ve bu sunucular AWS gibi Bulut bilgi işlem satıcıları tarafından tutulur ve yönetilir.
Temel amaç, farklı uygulama sürümleri için Bulut hizmetlerini onaylamaktır. Bulutta uygulama mimarisini test edin. Bulut üzerinde gerçek bir uygulama simüle edilir ve uygulamaların performansı ve ölçeklenebilirliği test edilir.
Prosedür:
- Uygulamadaki yükü farklı konfigürasyonlarla test edin.
- Regresyon testi yapın ve uygulamanın yük testini etkilemediğinden emin olun.
- Bir uygulamanın bir bulut ortamında tarayıcı uyumlu olup olmadığını test edin.
- Uygulamanın bulut üzerindeki kurulumunu test edin.
- Uygulamanın farklı bulut ortamlarında beklendiği gibi çalışıp çalışmadığını test edin.
Bulutta altyapı testi, uygulamanın üretim ortamında hatasız uygulanmasını sağlar. Uygulamanın performansını, ölçeklenebilirliğini ve kararlılığını bilmeye yardımcı olur. Bulutta bulunan herhangi bir donanım, yazılım ve altyapı gibi kaynakların kullanılmasına yardımcı olur.
# 4) Ağ Düzeyinde Test
Ağ, uygulamanın altyapısının en önemli parçasıdır. Ağ, sunucular, istemciler ve diğer ağlar arasındaki iletişime yardımcı olur. Ağların proxy sunucuları, İnternet bağlantısı için altyapı gibi farklı modülleri vardır.
Temel amaç, aşırı kaynak kullanımı, sunucu kapalı kalma süresi, sistem yapılandırması, işlemler için gerekli altyapı, İşletim Sistemi yamaları gibi ağ düzeyindeki sorunları kontrol etmek ve yönetmektir.
Prosedür:
- Ağ katmanını uygulamanın gelecekteki güncellemeleri için test edin.
- Üretim ortamında herhangi bir arıza olması durumunda geri dönüş prosedürlerini test edin.
- Sistem testi, UAT testi, Güvenlik testi yapın.
- Test senaryoları tasarlayın ve test verilerini hazırlayın.
- Herhangi bir yeni sürümden sonra herhangi bir sunucu / ağ seviyesi hizmetinin etkilenmediğinden emin olun.
- İzole edilmiş ağı test edin.
- VPN, Wi-Fi, LAN vb. Gibi çeşitli ağlarda uygulamanın performansı üzerindeki test etkisi.
Ağ düzeyinde altyapı testi, kurtarma süresini iyileştirir. Yedekleme ve geri yükleme mekanizmalarını sağlar. Uygulamaların güvenliğine de yardımcı olur.
# 5) Kurulum / Kaldırma / Dağıtım
Kurulumu gerçekleştirirken altyapıyı test etmenin temel amacı, uygulamayı yeni bir istemci kullandığında, uygulamayı ilk kez kurarken herhangi bir sorunun ortaya çıkmamasını sağlamaktır. Uygulamadan çıkış sürecini test etmek için uygulamanın kaldırılması gerçekleştirilir.
Prosedür:
- Uygulamayı yüklemek için gereken yükleyici paketlerini test edin.
- Ek kitaplıkları test edin, paketler oluşturun.
- Uygulamayı yüklemek ve kaldırmak için gereken süreyi test edin.
- Uygulamayı farklı İşletim Sistemlerine yükleyin.
- Gerekli disk alanını test edin.
- Uygulama kaldırıldıktan sonra tüm dosyaların kaldırılıp kaldırılmadığını test edin.
Kurulum / kaldırma / dağıtım sırasında altyapının test edilmesi, uygulamanın belirli bir zamanda ağ üzerinden kurulabilmesini sağlar. Herhangi bir yamanın daha sonra yüklenip yüklenemeyeceğinden emin olur. Uygulamanın gerektirdiği depolamayı iyileştirmeye yardımcı olur.
# 6) Test Ortamı Altyapısı
Test ortamı, donanım, yazılım, araçlar ve süreçlerden oluşan bir koleksiyondur. Testi doğru ve verimli bir şekilde yürütmek için test ortamı gereklidir. Test ortamı, test uzmanlarına işlerini yapmaları için iyi bir ağ, PC ve güç kaynağının sağlandığı işyerini de içerir.
Ana amaç, yazılım kurulumunu, uygulama yapılandırma kurulumlarını kontrol etmek, test planlamasını ve test yürütmeyi destekleyen doğru test araçlarını seçmektir. Ayrıca test yürütmenin sürekliliğini sağlar.
Prosedür:
deneyimli için c ++ mülakat soruları
- Projenin düzenli sürümleri için bir test ortamı oluşturun.
- Düzeltme sürümleri için bir test ortamı oluşturun.
- Sunucu ve istemci ortamı sorunlarını yönetmek için çözümler oluşturun.
- Test Planı, test tasarımı ve yürütme için test araçlarını tamamlayın.
- Hataları ayıklamak ve hataları bildirmek için araçlara karar verin.
- Test ortamını ayarlamak için bir belge oluşturun.
Araçların ve test ortamlarının kullanımının birçok avantajı vardır. Daha yüksek kalite gözlemlenir. Araç kullanımıyla verimlilik artar. Test faaliyetleri işlenmiş bir şekilde yürütülür. Test ortamının dokümantasyonu, ekibin yeni üyelerinin daha iyi anlamasına yardımcı olur.
# 7) TDD Yaklaşımı
Test Güdümlü Geliştirme veya TDD çerçevesi, önce gereksinim belgelerine dayalı test senaryoları yazmak ve ardından işlevselliği teste göre uygulamak için bir yöntemdir.
Ana amaç, proje için gerekli olan altyapı kaynaklarını bilmektir. Amaç, güvenlik, operasyonlar ve üretim için altyapıyı tanımlamak ve organize etmektir.
Prosedür:
- Altyapı gereksinimleri için tasarım belgesi.
- Uygulama için gerekli altyapıyı kapsayan tasarım test planı.
- Altyapı testlerini içeren test senaryoları tasarlayın.
- Farklı konfigürasyonları test edin.
TDD yaklaşımı, projenin karmaşıklığını geliştirmeye yardımcı olur. Altyapıdaki herhangi bir değişiklik, üretime geçmeden önce test edilir. Testler zaten tasarlandığı için farklı olası konfigürasyonlar uygulanabilir.
Altyapı Test Araçları
Şef, Kukla, ve Ansible aynı amaca hizmet eden farklı araçlardır. Bu araçlar, bir uygulama için gerekli olan farklı sunucuları dağıtmak ve yapılandırmak için kullanılır. Bu araçlar, altyapıyla ilgili karmaşık görevler olduğunda çok yardımcı olur. Ekibin bu araçları kullanarak birden çok sunucuda görevleri birlikte yürütmesi kolaylaşır.
Bu araçları kullanan ekip, birden çok uygulamayı, bağımlılığı ve kitaplığı hızla dağıtır. Diğer etkinlikler arasında sunucular, ikili dosyalar, günlük dosyaları, kurtarma mekanizmaları, sürüm yükseltme, veritabanı yönetimi bulunur.
# 1) Şef
Özellikleri: Şef, Ruby Etki Alanına Özgü Dilleri destekler. Bu nedenle, geliştirici olmayanların bu aracı öğrenmesi zorlaşır. Dil desteği için zor olmasına rağmen, bu araç oldukça kullanılabilir. Chef, master-slave konfigürasyonunu takip eder. Master-slave mekanizmasında, birincil sunucu, yani şef-sunucu, herhangi bir durumda bir arıza ile karşılaşılırsa yedek sunucu ile değiştirilebilir.
Chef ile uygulamaları konuşlandırabilir, altyapıyı yapılandırabilir ve ayrıca ağı yapılandırabiliriz. Çok güvenli değil.
Fiyat: Puppet'ten daha ucuz, ancak Ansible'dan daha pahalıdır. Fiyatı, 100 düğüme kadar yılda yaklaşık 13,5 bin ABD dolarıdır.
İnternet sitesi: Şef
# 2) Kukla
Özellikleri: Puppet, Ruby ile oluşturulmuştur ve DSL ve Gömülü Ruby'yi destekler. Bir programcı, yapılandırmayı yalnızca kullanılacak Puppet seçilirse yönetebilir. Sistem yöneticileri ekibi de bu aracın yapılandırmalarından haberdardır. Usta-usta mimariyi takip eder. Etkin bir ana birim arızayla karşılaşırsa başka bir ana birim onu değiştirebilir.
Puppet, her ana bilgisayar için farklı konfigürasyonlar ayarlamada, makinelerin ölçeklenebilirliğinde kullanışlıdır. Yapılandırmada herhangi bir değişiklik yapılırsa, bu araç genel olarak değişiklik yapılmasına yardımcı olur. Aynı zamanda çok güvenli bir araç değildir.
Fiyat: Fiyatı, 100 düğüme kadar yaklaşık 11.000 - 20.000 ABD Doları / yıl ile en yüksek seviyededir.
İnternet sitesi: Kukla
# 3) Ansible
Özellikleri: Ansible Python'da yazılmıştır ve ayrıca YAML komut dosyalarını destekler. Python insanlar tarafından okunabilir ve bu nedenle bu araç sistem yöneticileri için idealdir. Tek bir aktif düğüm ile çalışır ancak herhangi bir arıza durumunda ikincil bir düğüme de sahiptir.
Ansible oldukça ölçeklenebilir, yani çok sayıda düğümü herhangi bir sorun olmadan yönetebilir. Puppet ile karşılaştırıldığında Ansible, ölçeklenebilirlik açısından daha kullanışlıdır. Chef and Puppet'in aksine, SSH ile oldukça güvenli bir araçtır.
Fiyat: Fiyatı Puppet and Chef'den çok daha düşüktür ve 100'e kadar düğüm için yılda yaklaşık 10.000 $.
İnternet sitesi: Ansible
Sonuç
Şirketler yüksek altyapı maliyetlerine maruz kaldığından Yazılım Geliştirme Yaşam Döngüsü için altyapı testi gereklidir. Bu eğitimde faydalar, zorluklar, teknikler ve bu test türüne dahil olan kişiler gibi çeşitli konular ele alınmaktadır. Altyapı test araçlarına bir bakış da ele alınmaktadır.
Önerilen Kaynaklar
- EG Enterprise Aracını Kullanarak Uygulama ve BT Altyapısı Performans İzleme (Uygulamalı İnceleme)
- Yazılım Testi Türleri: Ayrıntılarla Birlikte Farklı Test Türleri
- Uygulama Testi - Yazılım Testinin Temellerine Giriş!
- Gama Testi nedir? Son Test Aşaması
- Uyumluluk Testi (Uygunluk testi) nedir?
- Performans Testi - Yük Testi - Stres Testi (Fark)
- Keşif Testleri ve Komut Dosyalı Testler: Kim Kazanır?
- Ölçeklenebilirlik Testi nedir? Bir Uygulamanın Ölçeklenebilirliği Nasıl Test Edilir