Yazılım Test Teknikleri veya Kategorileri [kapalı]


16

Ne tür yazılım testleri biliyorsunuz? Test Odaklı Geliştirme, Birim testleri vb. Hakkında bir şeyler duydum ancak önemlerini ve farklarını anlayamıyorum. Örneğin, regresyon testlerini veya kabul testlerini neden kullanıyoruz. Ne avantaj sağlıyorlar?


8
Bunun hangi kısmı kafa karıştırıcı veya eksikti? en.wikipedia.org/wiki/Software_testing
S.Lott

2
Yapmazsanız regresyon testlerini atlayabilirsiniz; mevcut işlevselliği bozarsanız umursamazsınız ve yazılımı gerçekten kullanan veya ödeyen kişilerin yapmasını beklediklerini düşündüklerini düşünmüyorsanız, kabul testini atlayabilirsiniz. . Profesyonel programcılar her ikisini de önemsiyor.
HLGEM

Farklı soru kategorileri hakkında iyi bir genel bakış sunan bulabildiğim tek soru bu soruyu yeniden açmak için oy kullanıyorum. Belki birileri bu site için daha uygun hale getirmek için soruyu nasıl yeniden yazabilir?
Doc Brown

Yanıtlar:


38

Aklıma gelen geniş kategoriler:

Kara kutu testi . Kodu göremiyorsunuz ve sadece uygulamada veya sistemde ne olduğu gizli bir şekilde test ediyorsunuz. Böylece bu durumda insanlar tüm hata vakalarını bilmezler ve tüm vakaları bulabilecek veya belli olmayacak çeşitli sınır koşullarını tahmin etmek zorundadırlar.

Beyaz kutu testi . Kodu görebiliyorsunuz ve hangi kod yollarının kullanıldığını doğrulayabiliyorsunuz, böylece kod kapsamı tüm mantığın sistemde kullanıldığından emin olmak için bir metrik olarak kullanılabiliyordu. Buradaki fikir, kodun testleri yönlendirmesine yardımcı olmak için neye benzediğini bilmektir, böylece kara kutu testi kadar gizemli değildir.

Gri kutu testi önceki ikisinin melezidir.

Sınır vakaları, beyaz kutu testinde görebileceğiniz bir şey olma eğilimindedir, çünkü kodda bir kişinin vurmak için testler yazdığı çeşitli koşullar vardır, örneğin bir sayı soran bir programınız varsa ve birisi X'e nasıl işlendiğini girerse kodda bir yerde görülmelidir.

Testin genel sınıflandırmaları:

Birim testleri . Bunlar genellikle oldukça spesifik bir şeyi test eden en küçük testlerdir, örneğin bu yöntem bu sınır durumunu ele alıyor mu? Bağımlılık enjeksiyonunun , testler için herhangi bir bağımlılığı azaltmak için sahte nesneler içeren durumlar için kullanılabileceğini unutmayın .

Entegrasyon testleri . Bunlar, birkaç bileşenin bağlı olduğu testlerdir ve bileşenlerin birlikte iyi çalıştığından emin olmak için testler yapılır. Birim testleri bağımsız olarak çalışabilse de, bu testlerin çeşitli gotcha'ları yakalamada yararlı olmasına neden olan katmanlar arasında yanlış iletişim olabileceğinden, işlerin ne kadar iyi bir araya geldiği testinin yapıldığı nokta budur. Terimi, son Uca testleri bileşenleri tam zincir (ne vasıtasıyla) "Bir başka uygulamanın bir uç nokta" ile ilgili test edildiği entegrasyon testleri için kullanılmıştır.

Regresyon testleri . Bunlar, geçmişte yapılan ve düzeltilen şeyin sabit kalmasını ve hataların koda tekrar eklenmemesini sağlamak için yapılan testler olacaktır.

Kullanılabilirlik testleri . Bunlar, son kullanıcıların çeşitli görevleri tamamlamak için yazılımla ne kadar iyi çalışabileceğini görmek için yapılan testlerdir. Nerede bir şey daha hızlı hale getirmek için otomatikleştirilebilir veya kullanıcı arayüzünü bir şeyin kullanımı daha kolay olacak şekilde ayarlar.

Kullanıcı kabul testleri . Bunlar son kullanıcılar tarafından yapılan testlerdir, böylece bir şeyin nasıl çalıştığını ilk elden görebilir ve yazılımın ilk etapta talep edilen iş ihtiyacını karşıladığını kabul edebilirler.

Fonksiyonel testler , test edilen yazılımın fonksiyonel özelliklerine dayanan her türlü testtir. Bunlar her zaman kara kutu testleridir.

Performans testleri. Bunlar, bir sistemin çok yavaşlamadan belirli bir yük miktarını kaldırabilmesini sağlamak için yapılan testlerdir. Örneğin, yeni bir web sunucu grubunu test etmek, aynı anda bir siteye isabet eden 100 kullanıcının işlenmesine bir performans testi örneği verebilir. Bunlara "yük testleri" veya "stres testleri" de denebilir, çünkü genel olarak buradaki sistem ya sistemi sınırlarına kadar itmek ya da sistemin başka bir departmandan bazı projeksiyonlarla başa çıkabileceğini doğrulamaktır. Bu testlerin mantığı, çoğu zaman optimize etmek için, darboğazları keşfetmek ve bununla ilgili sorunları çözmek için biraz çalışma gerektirebilecek çok sayıda yapılandırma ayarının bulunmasıdır. Buradaki darboğaz, sistemin beklendiği gibi yanıt vermemesine neden olan bellek, G / Ç, CPU veya ağ bant genişliği olabilir.

Test Odaklı Geliştirme bir metodolojidir ve belirli bir test türünü ifade etmez, bunun yerine testler koddan önce yazılır, böylece testler davranış , etki alanı veya özellik açısından geliştirmeye yön veren şeydir . süreci.

Sürekli Entegrasyon , birim, entegrasyon ve regresyon testleri gibi bazı testleri düzenli olarak yürütme pratiğidir, böylece bir değişiklik bir testi geçerse bu mümkün olduğunca erken yakalanır.


5
+1 ... ve ne yazık ki, hepsinden sonra bile hala manuel testler var.
Steven Evers

2
ve Stres Testi -
UAT'ın bir

1
Kapsam / şube kapsamı testini kaçırmıyor musunuz? Ayrıca, "Elektrikli Çit" malloc veya Valgrind gibi bir tür bellek izleme sistemi altında çalışan?
Bruce Ediger

1
@Bruce Ediger: Kapsama, beyaz kutu testi için bir istatistiktir, kendini test etme yöntemi değildir ve tarif ettiğiniz araçlar mükemmel test içindir.
Steven Evers

"Araçlar ... mükemmel test içindir" konusunda farklı olmak zorunda. Bazı dillerde (C veya C ++) valgrind'de çok sayıda birim testi çalıştırmak, yukarıda listelenen diğer test türlerinden hiçbirinin bulamayacağı hataları bulacaktır. Valgrind kesinlikle bir hata ayıklama aracıdır, ancak onaylanmış bir programda testler yürütmek çok gereklidir.
Bruce Ediger

4

Bir sistemdeki yeni değişikliklerin , değişikliklerden etkilenmediği düşünülen mevcut herhangi bir işlevselliği bozmamasını sağlamak için regresyon testi yapılır .

Kabul testi genellikle müşteri / müşteri / iş kullanıcıları tarafından yapılır, genellikle diğer test türlerinden daha üst düzeydir ve değişiklikleri talep eden kişilerin onlardan memnun olması ve değişiklikleri üretim sistemi.


1
Ve en önemlisi, almak istediklerini aldıklarını ve şimdi size ödeme yapabildiklerini kabul etmeleri için.
Mchl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.