Yazılım Testinde Dayanıklılık Testi Nedir? (Örnek ile)
⚡ Akıllı Özet
Dayanıklılık testi, bir uygulamanın performansının zamanla düşüp düşmediğini ortaya çıkarmak için, uygulamanın normal ve beklenen yük altında uzun bir süre çalıştırılmasıdır. Bir saatlik yük testiyle tespit edilemeyen hataları yakalayan testtir.
Dayanıklılık Testi Nedir?
Dayanıklılık Testi sürekli kullanım altında yazılım uygulamasının davranışını değerlendirmek için bir yazılımın önemli bir süreye yayılan yüksek yük ile test edildiği, işlevsel olmayan bir yazılım testi türüdür. Dayanıklılık testinin temel amacı, uygulamanın yanıt süresinde herhangi bir bozulma olmadan uzun süreli yükü kaldırabilecek kapasitede olmasını sağlamaktır.
Bu tür testler performans çalıştırma döngüsünün son aşamasında gerçekleştirilir. Dayanıklılık testi uzun bir süreçtir ve bazen bir yıla kadar sürebilir. Bu, İnternet trafiği veya kullanıcı eylemleri gibi harici yüklerin uygulanmasını içerebilir. Bu, dayanıklılık testini diğerlerinden farklı kılmaktadır. Yük Testigenellikle birkaç saat içinde sona erer.
Dayanıklılık kapasite anlamına gelir yani Dayanıklılık Testini Kapasite Testi olarak adlandırabilirsiniz.
Dayanıklılık Testinin Hedefleri
- Dayanıklılık testinin temel amacı bellek sızıntılarını kontrol etmektir.
- Sistemin sürekli kullanımda nasıl performans gösterdiğini keşfetmek.
- Uzun bir süre sonra sistem yanıt süresinin testin başlangıcıyla aynı veya daha iyi kalmasını sağlamak.
- Belirli bir sistemin performans hedeflerini destekleyeceği ve karşılayacağı kullanıcı ve/veya işlem sayısını belirlemek.
- Gelecekteki yükleri yönetmek için, gelecekteki kullanımı desteklemek için ne kadar ek kaynağın (işlemci kapasitesi, disk kapasitesi, bellek kullanımı veya ağ bant genişliği gibi) gerekli olduğunu anlamamız gerekir.
- Dayanıklılık testi genellikle ya sisteme aşırı yükleme yapılarak ya da belirli sistem kaynaklarının azaltılması ve sonuçların değerlendirilmesi yoluyla yapılır.
- Nispeten "normal" sayılan bir kullanım süresinden sonra kusurların veya bellek sızıntılarının oluşmamasını sağlamak için gerçekleştirilir.
Dayanıklılık Testlerinde Nelere Dikkat Edilmeli?
Dayanıklılık Testinde aşağıdaki şeyler test edilir.
- Bellek sızıntısını test edin– Uygulamada sistemin veya işletim sisteminin çökmesine neden olabilecek herhangi bir bellek sızıntısı olup olmadığını doğrulamak için kontroller yapılır.
- Sistemin katmanı arasındaki bağlantının kapatılmasını test edin – Sistemin katmanları arasındaki bağlantı başarıyla kapatılmazsa sistemin bazı modüllerinin veya tamamının durmasına neden olabilir.
- Veritabanı bağlantısını test edin başarıyla kapatın– Veritabanı bağlantısı başarıyla kapatılmazsa sistemin çökmesine neden olabilir
- Test yanıt süresi – Sistemin uzun süre kullanılması sonucunda uygulama daha az verimli hale geldiğinden, sistemin tepki süresi test edilir.
Dayanıklılık Testi Nasıl Yapılır?
Dayanıklılık Testi için temel test yaklaşımı aşağıdadır
- Test Ortamı – Dayanıklılık testi için gereken donanım, yazılım, işletim sisteminin belirlenmesi, ekip içindeki rollerin ve sorumlulukların atanması vb. Ortam, testin yürütülmesinden önce hazır olmalıdır. Ayrıca ortak veritabanı üretim boyutunu ve yıllık büyümeyi de tahmin etmeniz gerekir. Bu gereklidir, çünkü başvurunuzun bir, iki veya beş yıl sonra nasıl yanıt vereceğini test etmeniz gerekir.
- Test Planının Oluşturulması, Senaryolar – Testin doğasına bağlı olarak (manuel veya otomasyon veya her ikisinin kombinasyonu), Test Durumu tasarım, gözden geçirme ve uygulama planlanmalıdır. Sistemi zorlamaya yönelik testler, kırılma noktası testleri vb. de test planının bir parçası olmalıdır. Sistemi zorlamaya yönelik testler uygulamadaki kırılma noktasını belirler.
- Test Tahmini – Test aşamasını tamamlamanın ne kadar süreceği konusunda tahminde bulunun. İlgili test uzmanlarının sayısı ve gerekli test döngüsü sayısı temel alınarak analiz edilmelidir.
- Risk analizi - Riskin analiz edilmesi ve önlenmesi için uygun önlemlerin alınması. Test senaryolarının Risk faktörüne göre önceliklendirilmesi ve aşağıdaki risklerin belirlenmesi ve test uzmanının dayanıklılık testi sırasında karşılaşabileceği sorunlar.
- Performans zaman içinde tutarlı kalacak mı?
- Henüz tespit edilmemiş başka küçük sorunlar var mı?
- Ele alınmayan dış müdahale var mı?
- Test programı - Bütçeyi ve teslimatları zaman dilimleri içerisinde belirleyin. Gibi Dayanıklılık Testi sürekli bir süre boyunca sisteme/uygulamaya büyük ama doğal bir işlem yükü düzenlemesi uygular.
Dayanıklılık Testi Örneği
Süre Stres testi test edilen sistemi sınırlarına kadar götürür, Dayanıklılık testi uygulamayı sınırına kadar götürüyor birbirine çok benzemeye başladı..
Örneğin, bellek sızıntıları, veritabanı sunucusu kullanımı ve sistemin yanıt vermemesi gibi en karmaşık sorunlar, yazılım uzun süre çalıştığında ortaya çıkar. Dayanıklılık testlerini atlarsanız, bu tür kusurları dağıtımdan önce tespit etme şansınız oldukça düşüktür.
Dayanıklılık Test Araçları
- Web YÜKLEME
- Yükleme Tamamlandı
- Apache JMeter
- LoadRunner
- Appvance
- LoadUI
- AçıkSTA
- Rational Performance Tester
Dayanıklılık Testinin Avantajları
- Yük Altındaki Sistemin iş yükünün nasıl üstesinden gelebileceğini belirlemeye yardımcı olur.
- Müşterinin altyapı ihtiyaçlarını doğrulamak veya geliştirmek için kullanabileceği doğru veriler sağlar.
- Sistemin uzun süre yüksek seviyede çalışması sonrasında oluşabilecek performans sorunlarını tanımlar
- Tipik sorunlar, daha küçük hedefli performans testlerinde tanımlanır; bu, çok kısa bir sürede çok büyük bir yük olduğunda bile uygulamanın kullanılabilir kalmasını sağladığı anlamına gelir.
- Dayanıklılık testi aynı zamanda uzun bir uygulama süresinden sonra performansta herhangi bir bozulma olup olmadığını kontrol etmek için de kullanılır.
Dayanıklılık Testinin Dezavantajları
- Ne kadar stresin uygulanmaya değer olduğunu tanımlamak genellikle zordur.
- Dayanıklılık Testi, aşağıdaki durumlarda önemli kesintilerle sonuçlanabilecek uygulama ve/veya ağ arızalarına neden olabilir: Test ortamı izole değildir.
- Kalıcı Veri kaybı veya bozulması, sistemin aşırı yüklenmesi sonucu meydana gelebilir.
- Stres ortadan kalktıktan sonra kaynak kullanımı çok yüksek kalır.
- Bazı uygulama bileşenleri yanıt vermiyor.
- İşlenmeyen istisnalar son kullanıcı tarafından gözlemlenir.
Bu Test Performans Testi Ailesine Nasıl Uyuyor?
Performans testi genel bir terimdir. Aşağıdaki varyantlar yalnızca uygulanan yükün şekli ve uygulanma süresi bakımından farklılık gösterir; bu nedenle sıklıkla birbirleriyle karıştırılırlar.
| Test türü | Yük deseni | Soruyu cevaplıyor |
|---|---|---|
| Yük testi | Beklenen en yüksek yük, kısa süre | Sistem, normal yoğun trafik koşullarında hedeflerine ulaşıyor mu? |
| Stres testi | Kapasitenin ötesine geçerek arızaya kadar artırıldı. | Nereden kırılıyor ve bu kırılma zarif bir şekilde mi gerçekleşiyor? |
| Spike testi | Ani ve aşırı bir yükseliş, ardından geri çekilme | Trafik çarpmasının etkisinden kurtulup toparlanabilir mi? |
| Dayanıklılık testi | Normal yük uzun saatler boyunca taşındı. | Performans zamanla düşer mi? |
| ıslatma testi | Uzun bir süre boyunca devam eden yük | Bellek sızıntısı veya kaynak tükenmesi var mı? |
| Stabilite testi | Koşullara bağlı olarak değişen yük | Koşullar değiştikçe sistem güvenilirliğini koruyor mu? |
| Hacim testi | Normal kullanıcılar, çok büyük veri hacmi | Veritabanı büyüdükçe bu duruma uyum sağlayabiliyor mu? |
Dayanıklılık testi ve suya batırma testi sıklıkla eş anlamlı olarak ele alınır. Genel kullanımda ikisi de uzun süre boyunca sürekli bir yük altında kalır. Ekipler bunları birbirinden ayırdığında, dayanıklılık testi yanıt sürelerinin yukarı doğru kayıp kaymadığına odaklanırken, yoğun kullanım testi bellek, dosya tanıtıcıları ve bağlantı havuzları gibi kaynak tüketimine odaklanır. Birini çalıştırmak genellikle her ikisi için de kanıt sağlar.
Test Sırasında Kaydedilmesi Gereken Temel Ölçümler
Bir performans testi, ancak çalışırken kaydettiğiniz veriler kadar iyidir. Bu altı değeri sunucu ve istemci tarafında kaydedin, ardından bunları sezgisel bir tahmine göre değil, temel değerlerle karşılaştırın.
| metrik | Sana ne anlatıyor? | Uyarı işareti |
|---|---|---|
| Ortalama yanıt süresi | Tipik kullanıcı deneyimi | Koşu boyunca herhangi bir yukarı doğru kayma |
| 95. yüzdelik dilim yanıt süresi | En yavaş kullanıcıların deneyimi | Ortalamanın çok üzerinde, yani tutarsızlık anlamına geliyor. |
| çıktı | Saniyede işlenen istek sayısı | Yük sabit kalırken düşme |
| Hata oranı | Başarısız veya zaman aşımına uğrayan isteklerin payı | Anlaşma eşiğinin üzerindeki herhangi bir artış |
| CPU ve bellek kullanımı | Sunucu kaynak kapasitesi | Yükselen ve asla geri dönmeyen bir anı |
| Veritabanı bağlantıları ve iş parçacıkları | Havuz yorgunluğu | Serbest bırakılmadan istikrarlı bir şekilde artan sayılar |
Ortalamayı ve yüzdelik dilimi birlikte okuyun. 95. yüzdelik dilimi 900 ms olan ortalama 800 ms, tutarlı bir sistemi tanımlar. Aynı ortalamanın 95. yüzdelik dilimi 9 saniye ise, her yirmi kullanıcıdan birinin kötü bir deneyim yaşadığı ve ortalamanın bunu gizlediği anlamına gelir.
Sadece değerine değil, şekline de bakın. Uzun süreli herhangi bir testte, kaynak çizgisinin düz olması başarılı, yükselmesi ise sızıntı anlamına gelir; bu durum, testin bittiği anda mutlak sayı limitin içinde olsa bile geçerlidir.
Dayanıklılık Testi: Önemli Bulgular
- In Yazılım MühendisliğiDayanıklılık testi, yük testinin bir alt kümesidir.
- Dayanıklılık testi uzun bir süreçtir ve bazen bir yıla kadar sürebilir
- Doğrulamak için kontroller yapılıyor
- Bellek sızıntısını test edin
- Test yanıt süresi
- Veritabanı bağlantısını vb. test edin.


