volume testing tutorial
Hacim Testine Genel Bakış:
Aşağıdaki resim uygulamalarımızla bir şekilde ilişkili mi? Evet, sunucularımızı, veri tabanlarımızı, web hizmetlerimizi vb. Aşırı yüklediğimizde tam olarak bu olur.
Hepimiz fonksiyonel ve fonksiyonel olmayan testlerin farkında olmalıyız, ancak fonksiyonel olmayan testlerin fonksiyonel testler kadar önemli olduğu gerçeğinin farkında mısınız? Kısa süreli yayınlarda, ideal olarak yapmamamız gereken bu işlevsel olmayan testi göz ardı etme eğilimindeyiz.
Ürün sahibinin bu şartı verip vermediği bizim için önemli olmamalıdır. Bu testi, küçük sürümler için bile eksiksiz test sürecimizin bir parçası olarak düşünmeliyiz.
Hacim Testi hakkındaki bu eğitim, onu daha iyi anlamanızı sağlamak için size bunun anlamı, ihtiyacı, önemi, kontrol listesi ve bazı araçları hakkında eksiksiz bir genel bakış sunar.
Ne öğreneceksin:
- Hacim Testi nedir?
- Bu Test Ne Zaman Zorunludur?
- Neden Hacim Testini Hedeflemeliyim?
- Bu test için Kontrol Listem nedir?
- Hacim Testi ve Yük Testi
- Bu Test Nasıl Yapılır?
- Hacim Test Araçları
- Sonuç
- Önerilen Kaynaklar
Hacim Testi nedir?
Hacim Testi, işlevsel olmayan bir test türüdür. Bu test, veritabanı tarafından işlenen veri hacmini kontrol etmek için yapılır. Taşma testi olarak da adlandırılan hacim testi, yazılımı veya uygulamayı veritabanındaki devasa verilere karşı performansını kontrol etmek için yapılan işlevsel olmayan testtir.
Veritabanına büyük miktarda veri eklenerek bir eşik noktasına kadar genişletilir ve ardından sistem yanıtı için test edilir.
Bu teori kısmıydı, sizi anlamanıza yardımcı olacak birkaç pratik örnekle açıklamama izin verin. 'ne zaman' hacim testinin bir parçası.
Bu Test Ne Zaman Zorunludur?
İdeal olarak her yazılım veya uygulama veri hacmi için test edilmelidir, ancak verilerin ağır olmayacağı bazı durumlarda bu testten kaçınma eğilimindeyiz. Ancak verinin günlük olarak MB veya GB olarak ele alındığı bazı durumlarda kesinlikle hacim testi yapılmalıdır.
Aşağıda, 8 yıllık deneyimimden 'ne zaman' bölümünü açıklayan birkaç örnek verilmiştir:
Örnek 1:
Girişimlerimden biri hem web uygulamasından hem de mobil uygulamadan oluşan büyük bir sistemdi. Ancak web uygulamasının kendisinde 3 farklı ekip tarafından yönetilen 3 modül vardı.
Zaman zaman, bizlerle bile, hepimiz 'birlikte' testimiz için veri eklediğimizde veritabanı yavaşlıyordu. Sinir bozucuydu ve büyük veri hacmi nedeniyle iş engelleniyordu ve işi kolaylaştırmak için DB'yi oldukça sık temizlemek zorunda kaldık.
'Canlı' sistemin işlediği veriler bir GB civarındaydı, bu nedenle mobil uygulama ile karşılaştırıldığında, web uygulaması veri hacmi açısından çok sık test edildi. Web uygulaması QA ekipleri, geceleri çalışacak ve bu testi gerçekleştirecek kendi otomasyon komut dosyalarına sahipti.
Örnek 2:
Girişimimin bir başka örneği, yalnızca bir web uygulaması değil, aynı zamanda bir SharePoint uygulaması ve hatta bir yükleyicisi olan bir ekosistemdi. Tüm bu sistemler veri transferleri için aynı veri tabanına haberleşiyordu. Bu sistem tarafından işlenen veriler de çok büyüktü ve herhangi bir nedenle DB yavaşlarsa, yükleyici bile çalışmayı durdurur.
Bu nedenle, düzenli olarak hacim testi yapıldı ve DB performansı herhangi bir sorun için dakikalarca gözlemlendi.
Benzer şekilde, alabilirizÖrneklerAlışveriş, bilet rezervasyonu, finansal işlemler vb. için günlük olarak kullandığımız, yoğun veri işlemleriyle uğraşan ve dolayısıyla hacim testi gerektiren birkaç uygulama.
Ters yönden, ideal bir hacim testi, kendi sınırlamaları ve zorlukları olduğu için her zaman gerçekleştirilemeyebilir.
Sınırlamaları ve zorluklarından birkaçı şunları içerir:
- Hafızanın tam olarak parçalanmasını yaratmak zordur.
- Dinamik anahtar oluşturma zordur.
- İdeal bir gerçek ortam yaratmak, yani canlı sunucunun kopyası zor olabilir.
- Otomasyon araçları, ağ vb. De test sonuçlarını etkiler.
Şimdi anladık ne zaman bu tür testler yapmamız gerekiyor. Biz de anlayalım 'neden' Bu testi, bu testi gerçekleştirmenin amacı veya amacı olduğu gibi yapmalıyız.
Neden Hacim Testini Hedeflemeliyim?
Hacim testi, sisteminizin gerçek dünya için ne kadar uygun olduğunu anlamanıza yardımcı olabilir ve ayrıca daha sonra bakım amacıyla harcanacak paradan tasarruf etmenize yardımcı olabilir.
Bu testi yapmak için birkaç olası neden aşağıdadır:
- En temel ihtiyaç, sisteminizin performansını artan verilere göre analiz etmektir. Büyük miktarda veri oluşturmak, sisteminizin performansını yanıt süresi, veri kaybı vb. Açısından anlamanıza yardımcı olacaktır.
- Büyük veri ve eşik noktası ile ortaya çıkacak sorunları belirleyin.
- Sürdürülebilir veya eşik noktasının ötesinde, sistem davranışı, yani DB çökerse tepkisiz hale gelir veya zaman aşımına uğrarsa.
- DB aşırı yükü için çözümler uygulamak ve hatta bunları doğrulamak.
- DB'nizin (düzeltilemeyen) sistemin başarısız olacağı en uç noktasını bulmak ve bu nedenle önlem alınması gerekir.
- Birden fazla DB sunucusu olması durumunda, DB iletişimi ile ilgili sorunları, yani bunlardan başarısız olmaya en yatkın olanları vb.
Artık bu testi yapmanın önemini ve nedenini biliyoruz.
VEYA Burada paylaşmak istediğim bir deneyim de, mobil uygulamalar açısından, uygulamayı bir seferde yalnızca bir kişi kullandığı ve mobil uygulamalar basit olacak şekilde tasarlandığı için ses testi gerekmeyebilir. .
Bu nedenle, çok fazla veri içeren çok karmaşık bir uygulamanız yoksa, hacim testi atlanabilir.
Sisteminiz veya uygulamanız için neyin doğrulanması gerektiğini öğrendikten sonra yapılacak bir sonraki şey, uygulamanızın tanımlayacağı bir kontrol listesi oluşturmaktır. 'ne' test edilmesi gerekiyor.
Bu test için Kontrol Listem nedir?
Uygulamanız veya sisteminiz için bir kontrol listesi oluşturmaya yönelik bazı örneklere geçmeden önce, teste başlamadan önce hacim testi veya yaklaşım için bir kontrol listesi oluştururken akılda tutulması gereken birkaç noktayı anlayalım.
Hatırlanması gereken noktalar:
- Geliştiricileri test planınızla ilgili döngüde tutun çünkü sistem hakkında çok şey biliyorlar ve size girdiler ve hatta darboğazlar sağlayabilirler.
- Test stratejisini belirlemeden önce fiziksel yönü sunucu konfigürasyonları, RAM, işlemci vb. Gibi iyi anlayın.
- DB'nin karmaşıklıklarını, prosedürleri, DB komut dosyalarını vb. Mümkün olduğu kadar anlayın, böylece sisteminizin karmaşıklığını bir bütün olarak özetleyebilirsiniz.
- Normal veri hacmi ve sistemin ne kadar iyi olduğu için mümkünse bilişim yani grafikler, veri sayfası vb. Hazırlayın, bu, DB'yi vurgulamadan önce performansın normal veri yükü için iyi olduğundan emin olmanıza yardımcı olacaktır. Bu aynı zamanda stres bölümüne geçmeden önce hacim testiniz için düzeltme gerektirecek herhangi bir sorun olmadığından emin olmanıza yardımcı olacaktır.
Aşağıda, kontrol listenize ekleyebileceğiniz veya kullanabileceğiniz bazı Örnekler verilmiştir:
- Veri depolama yöntemlerinin doğruluğunu kontrol edin.
- Sistemin gerekli bellek kaynaklarına sahip olup olmadığını kontrol edin.
- Belirtilen bir sınırın üzerinde veri hacmi riski olup olmadığını kontrol edin.
- Sistemin veri hacmine verdiği yanıtı kontrol edin ve gözlemleyin.
- Hacim testi sırasında verilerin kaybolup kaybolmadığını kontrol edin.
- Verilerin üzerine yazılırsa, önceden bilgi verilerek yapıldığını kontrol edin.
- Birçok özellik (aranabilir), çok büyük hayır gibi normal aralığın ötesine uzanan alanları tanımlayın. arama tabloları, çok sayıda konum eşlemesi vb.
- Daha önce de belirtildiği gibi, önce normal hacim için sonuçlar alarak bir temel oluşturun ve ardından stresle ilerleyin.
Diğer örneklere, test senaryolarına ve araçlara geçmeden önce, öncelikle bu testin yük testinden ne kadar farklı olduğunu anlayalım.
Hacim Testi ve Yük Testi
Aşağıda, Hacim ve Yük Testi arasındaki temel farklardan bazıları verilmiştir:
S.No. | Hacim Testi | Yük Testi |
---|---|---|
bir | Birim testi, veritabanı performansını DB'deki büyük hacimli verilere karşı doğrulamak için yapılır. | Yük testi, kaynaklar için kullanıcı yüklerini değiştirerek ve kaynakların performansını doğrulayarak yapılır. |
iki | Bu testin birincil odak noktası 'veriler' dir. | Bu testin birincil odak noktası 'kullanıcılar' dır. |
3 | Veritabanı maksimum sınıra vurgulanmıştır. | Sunucu, maksimum sınıra vurgulanmıştır. |
4 | Basit bir örnek, büyük boyutlu bir dosya oluşturmak olabilir. | Basit bir örnek, çok sayıda dosya oluşturmak olabilir. |
Bu Test Nasıl Yapılır?
Bu test hem manuel olarak hem de herhangi bir araç kullanılarak yapılabilir. Genel olarak, araçları kullanmak zaman ve emekten tasarruf sağlayacaktır, ancak hacim testi durumunda, deneyimlerime göre araçları kullanmak, manuel teste kıyasla size daha doğru sonuçlar verebilir.
Test senaryosu yürütmeye başlamadan önce şunlardan emin olun:
- Ekip, bu test için test planını kabul etti.
- Projenizin diğer ekipleri, veritabanı değişiklikleri ve bunların çalışmaları üzerindeki etkisi hakkında iyi bilgilendirilir.
- Test yatakları, belirtilen konfigürasyonlar için ayarlanmıştır.
- Test için temel hazırlanır.
- Test için özel veri hacimleri (veri komut dosyaları veya prosedürler vb.) Hazırdır. Veri oluşturma sayfamızdan veri oluşturma araçları hakkında bilgi edinebilirsiniz.
Çalıştırmada kullanabileceğiniz birkaç örnek test örneği görelim:
Bunu, Birim testi için seçilen tüm veri birimleri için doğrulayın:
- Veri eklemenin başarıyla yapılıp yapılmadığını ve uygulamanın veya web sitesinde yansıtılıp yansıtılmadığını doğrulayın.
- Verilerin silinmesinin başarılı bir şekilde yapılıp yapılmadığını ve uygulamanın veya web sitesinde yansıtılıp yansıtılmadığını doğrulayın.
- Verileri güncellemenin başarılı bir şekilde yapılıp yapılmadığını ve uygulamanın veya web sitesinde yansıtılıp yansıtılmadığını doğrulayın.
- Veri kaybı olmadığını ve tüm bilgilerin uygulamada veya web sitesinde beklendiği gibi görüntülendiğini doğrulayın.
- Yüksek veri hacmi nedeniyle uygulamanın veya web sayfalarının zaman aşımına uğramadığını doğrulayın.
- Yüksek veri hacmi nedeniyle kilitlenme hatalarının gösterilmediğini doğrulayın.
- Verilerin üzerine yazılmadığını ve uygun uyarıların gösterildiğini doğrulayın.
- Web sitenizin veya uygulamanızın diğer modüllerinin yüksek veri hacmiyle kilitlenmediğini veya zaman aşımına uğramadığını doğrulayın.
- DB'nin yanıt süresinin kabul edilebilir aralıkta olduğunu doğrulayın.
Hacim Test Araçları
Daha önce tartışıldığı gibi, otomasyon testi zamandan tasarruf sağlar ve hatta manuel teste kıyasla doğru sonuçlar verir. Hacim testi için araçlar kullanmanın bir başka yararı da testleri gece çalıştırabilmemiz ve bu şekilde diğer ekiplerin veya ekip üyelerinin çalışmalarının DB'nin veri hacminden etkilenmemesidir.
Testleri sabah programlayabiliriz ve sonuçlar hazır olur.
Aşağıda birkaç açık kaynaklı birim testi aracının listesi verilmiştir:
# 1) DbFit:
Bu, test odaklı geliştirmeyi destekleyen açık kaynaklı bir araçtır.
DbFit test çerçevesi Fitness'ın üzerine yazılır, testler tablolar kullanılarak yazılır ve herhangi bir Java IDE veya CI aracı kullanılarak yürütülebilir.
# 2) HammerDb:
HammerDb aynı zamanda otomatikleştirilebilen, çok iş parçacıklı olabilen ve hatta çalışma zamanı komut dosyası oluşturmaya izin veren açık kaynaklı bir araçtır. SQL, Oracle, MYSQL vb. İle çalışabilir.
# 3) JdbcSlim:
JdbcSlim komutlar Slim Fitness'e kolayca entegre edilebilir ve JDBC sürücüsü olan tüm veritabanlarını destekler. Odak noktası, konfigürasyon, test verileri ve SQL sorgularını ayrı tutmaktır.
# 4) NoSQLMap:
Bu saldırıları otomatik olarak enjekte etmek ve tehdidi analiz etmek için DB yapılandırmalarını bozmak için tasarlanmış açık kaynaklı bir Python aracıdır. Yalnızca MongoDB için çalışır.
# 5) Ruby-PLSQL-spec:
Oracle açık kaynaklı bir araç olarak mevcut olduğundan PLSQL, Ruby kullanılarak birim testine tabi tutulabilir. Bu temelde iki kitaplık kullanır: Ruby-PLSQL ve Rspec.
Sonuç
Hacim testi, veritabanının performansını analiz etmek için yapılan işlevsel olmayan testtir. El ile yapılabileceği gibi bazı araçların yardımı ile de yapılabilir.
Bu testte yeni olan bir QA iseniz, önce araçla oynamanızı veya bazı test durumlarını yürütmenizi öneririm. Bu, teste geçmeden önce hacim testi kavramını anlamanıza yardımcı olacaktır.