Kabul testi ile fonksiyonel test arasındaki fark nedir?


150

Kabul testleri ile fonksiyonel testler arasındaki gerçek fark nedir?

Her birinin önemli noktaları veya amaçları nelerdir? Okuduğum her yerde belirsiz bir şekilde benzerler.

Yanıtlar:


175

Benim dünyamda şu terimleri kullanıyoruz:

fonksiyonel test : Bu bir doğrulama aktivitesidir; doğru çalışan bir ürün geliştirdik mi? Yazılım iş gereksinimlerini karşılıyor mu?

Bu tür testler için, bu senaryonun "gerçek dünyada" var olma olasılığı düşük olsa bile, aklımıza gelen tüm olası senaryoları kapsayan test senaryolarına sahibiz. Bu tür testleri yaparken maksimum kod kapsamını hedefliyoruz. O anda yakalayabileceğimiz herhangi bir test ortamını kullanıyoruz, kullanılabilir olduğu sürece "üretim" kalibre olması gerekmez.

kabul testi : Bu bir doğrulama faaliyetidir; doğru şeyi mi yaptık? Müşterinin gerçekten ihtiyacı olan bu mu?

Bu genellikle müşteriyle işbirliği içinde veya dahili bir müşteri temsilcisi (ürün sahibi) tarafından yapılır. Bu tür testler için, yazılımın kullanılmasını beklediğimiz tipik senaryoları kapsayan test senaryoları kullanırız. Bu test, "üretim benzeri" bir ortamda, müşterinin kullanacağıyla aynı veya ona yakın donanım üzerinde gerçekleştirilmelidir. "Hastalıklarımızı" test ettiğimiz zamandır:

  • Güvenilirlik, Kullanılabilirlik : Stres testi ile doğrulanmıştır.

  • Ölçeklenebilirlik : Bir yük testi ile doğrulanmıştır.

  • Kullanılabilirlik : Müşteriye bir inceleme ve gösteri ile doğrulanır. Kullanıcı arayüzü beğenilerine göre yapılandırılmış mı? Müşteri markasını tüm doğru yerlere yerleştirdik mi? İstedikleri tüm alanlar / ekranlar bizde mi?

  • Güvenlik (diğer adıyla, Güvenliğe uygunluk) : Demo yoluyla doğrulanır. Bazen bir müşteri, bir güvenlik denetimi ve / veya izinsiz giriş testi yapmak için dışarıdan bir firma tutacaktır.

  • Sürdürülebilirlik : Yazılım güncellemelerini / yamalarını nasıl sunacağımızın gösterilmesi ile doğrulanır.

  • Yapılandırılabilirlik : Müşterinin sistemi ihtiyaçlarına göre nasıl değiştirebileceğinin gösterilmesiyle doğrulanır.

Bu hiçbir şekilde standart değildir ve buradaki çelişkili cevapların da gösterdiği gibi "standart" bir tanım olduğunu düşünmüyorum. Kuruluşunuz için en önemli şey, bu terimleri tam olarak tanımlamanız ve onlara bağlı kalmanızdır.


güzel cevap için artı 1 ve "aka, Güvenlik Sağlanabilirlik, sadece uyması için" :). Komik bir şey :) SO ekibi, gerçek dünyada birisinin benim yaptığım gibi + işaretini gerçek kelime ile değiştirebileceğini dikkate almadı. Bu nedenle yorumda ilk kelime olarak +1 yazılmasına izin vermezler ancak "artı 1" e izin verirler :). Yani işlevsel olarak, bunu doğru bir şekilde test edemediler :). Sadece :) kabul testler denemişlerdir myabe
Coğrafi C

71

Patrick Cuff'ın cevabını beğendim. Eklemek istediğim şey, bir test seviyesi ile benim için göz açıcı olan bir test türü arasındaki ayrımdır .

test seviyeleri

Test seviyesinin V modeli kullanılarak açıklanması kolaydır , bir örnek: görüntü açıklamasını buraya girin Her test seviyesinin kendisine karşılık gelen geliştirme seviyesi vardır . Tipik bir zaman özelliğine sahiptir, geliştirme yaşam döngüsünün belirli bir aşamasında yürütülürler.

  1. bileşen / birim testi => ayrıntılı tasarımı doğrulama
  2. bileşen / birim entegrasyon testi => global tasarımı doğrulama
  3. sistem testi => sistem gereksinimlerini doğrulama
  4. sistem entegrasyon testi => sistem gereksinimlerini doğrulama
  5. kabul testi => kullanıcı gereksinimlerini doğrulama

test türleri

Bir test türü belirli bir deney amacına odaklanan bir özellikleri olduğunu. Test türleri , teknik veya işlevsel olmayan yönler olarak da bilinen kalite yönlerinizi vurgular. Test türleri olabilir herhangi birinde yürütülecek Test seviyesinde . ISO / IEC 25010: 2011'de belirtilen kalite özelliklerini test türleri olarak kullanmayı seviyorum .

  1. fonksiyonel test
  2. güvenilirlik testi
  3. performans testi
  4. çalışabilirlik testi
  5. güvenlik testi
  6. uyumluluk testi
  7. sürdürülebilirlik testi
  8. aktarılabilirlik testi

Tamamlamak için. Regresyon testi denen bir şey de var . Bu, test seviyesi ve test türünün yanında ekstra bir sınıflandırmadır . Bir regresyon testi sizin üründe kritik dokunur bir şey çünkü tekrar istediğiniz bir testtir. Aslında, her test seviyesi için tanımladığınız testlerin bir alt kümesidir . Ürününüzde küçük bir hata düzeltmesi varsa, her zaman tüm testleri tekrarlayacak zamanınız olmaz. Regresyon testi buna bir cevaptır.


2
Bu sorunun en iyi yanıtı bu ve "bir test seviyesi ile bir test türü arasındaki ayrım" burada çoğu
yanıtın

25

Fark, problemi test etmek ile çözümü arasındadır. Yazılım, her ikisi de test edilebilir bir soruna çözümdür.

İşlevsel test, yazılımın sorunu nasıl çözdüğünüzün sınırları dahilinde bir işlev gerçekleştirdiğini doğrular. Bu, fabrikadan çıkmadan önce seri üretilen ürünler üzerinde yapılan testlere benzer bir yazılım geliştirmenin ayrılmaz bir parçasıdır. İşlevsel bir test, ürünün gerçekten sizin (geliştirici) düşündüğünüz gibi çalıştığını doğrular.

Kabul testleri, ürünün gerçekten çözmek için yapıldığı sorunu çözdüğünü doğrular. Bu, en iyi şekilde kullanıcı (müşteri) tarafından yapılabilir, örneğin yazılımın yardımcı olduğu görevlerini yerine getirir. Yazılım bu gerçek dünya testini geçerse, önceki çözümün yerini aldığı kabul edilir. Bu kabul testi bazen sadece üretimde düzgün bir şekilde yapılabilir, özellikle de anonim müşterileriniz varsa (örneğin bir web sitesi). Bu nedenle, yeni bir özellik yalnızca günler veya haftalarca kullanımdan sonra kabul edilecektir.

İşlevsel test - tasarladığınız veya oluşturduğunuz niteliklere (işlevler, hız, hatalar, tutarlılık vb.) Sahip olduğunu doğrulayarak ürünü test edin.

Kabul testi - ürünü kendi bağlamında test edin, bu insan etkileşimini (simülasyonunu) gerektirir, orijinal problem (ler) üzerinde istenen etkiyi test edin.


Bu soruya en sevdiğim cevap bu. Bir problem ile çözüm arasındaki ayrım, bu ayrımı çok daha net hale getirmeye yardımcı olur.
Lou

10

Cevap fikirdir. Birçok projede çalıştım ve test yöneticisi ve yayıncı olarak çalıştım ve tüm farklı roller ve çeşitli kitaplardaki açıklamalar farklı, işte benim varyasyonum:

İşlevsel test: iş gereksinimlerini alın ve hepsini işlevsel bir bakış açısından iyi ve kapsamlı bir şekilde test edin.

kabul testi: "ödeme yapan" müşteri, teslim edilen ürünü kabul edebilmek için yapmayı sevdiği testleri yapar. Müşteriye bağlıdır, ancak genellikle testler fonksiyonel test kadar kapsamlı değildir, özellikle şirket içi bir projeyse, paydaşlar daha önceki test aşamalarında yapılan test sonuçlarını gözden geçirir ve bunlara güvenir.

Dediğim gibi bu benim bakış açım ve deneyimim. Fonksiyonel test sistematiktir ve kabul testi daha çok iş departmanının şeyi test etmesidir.


Bu cevabı beğendim :) Hemen hemen aynı şeyler.
anbanm

1
UAT, sonuçta "ödeme yapan" müşteri tarafından yapılır. Ancak, çoğu zaman ilk önce test etme ve sistemi kırmaya "çalışma" ve "ödeme yapan" müşteri ellerini almadan önce tüm "küçük" şeyleri aramada "iyi" olan bir QA personeli tarafından yapılır. Sıkıcı şeyleri tekrarlamak için selenyum otomasyonu, bir QA test cihazı tarafından gerçek UAT testiyle birlikte kullanılabilir, ancak beklenen tüm tarayıcılarda beklenen tüm işlevleri test etmek için asla gerçek testi tekrarlamaz. UAT oldukça açıklayıcıdır. Sanırım işlevsel test tanımlarının çoğu robotik ve sözlüğe benziyor.
Tom Stickel

Dediğim gibi bu, terimlerin nasıl yorumlandığı benim deneyimim.
hol

Bu iyi. Bu belirsiz tanımı fark ettiğimde ... Sadece "işlevsel test: iş gereksinimlerini alın ve hepsini işlevsel bir bakış açısıyla iyi ve kapsamlı bir şekilde test edin" şeklinde bir yorum yapmak zorunda kaldım.
Tom Stickel

Haha, evet, şimdi seni anlıyorum. Tamam, bu onun hakkında bütün bir kitap yazabileceğiniz bir şey. Yazdığım an bu konuya çok fazla girmek istemedim.
hol

8
  1. İzleyici. Fonksiyonel test, yazılımı üreten ekibin üyelerine bekledikleri şeyi yaptığından emin olmaktır. Kabul testi, tüketicinin ihtiyaçlarını karşıladığından emin olmaktır.

  2. Dürbün. İşlevsel test, bir seferde yalnızca bir bileşenin işlevselliğini test eder. Kabul testi, ürünün tüketici için yazılımı kabul etmeden önce test etmesi için yeterince önemli olan her yönünü kapsar (yani, kabul edilebilirliğini belirlemek için test etmek için harcayacağı zaman veya paraya değecek herhangi bir şey).

Yazılım fonksiyonel testleri, entegrasyon testlerini ve sistem testlerini geçebilir; yalnızca müşteri özelliklerin ihtiyaçlarını karşılamadığını keşfettiğinde kabul testlerinde başarısız olmak için. Bu genellikle birinin teknik özellikleri berbat ettiği anlamına gelir. Yazılım ayrıca bazı işlevsel testlerde başarısız olabilir, ancak kabul testini geçebilir çünkü müşteri, yazılımın ihtiyaç duyduğu temel şeyleri kabul edilebilir derecede iyi yaptığı sürece bazı işlevsel hatalarla uğraşmaya isteklidir (beta yazılımı genellikle ondan önceki bir kullanıcı alt kümesi tarafından kabul edilecektir. tamamen işlevseldir).


2

Fonksiyonel Test: Nihai program yapısına bakılmaksızın, belirtilen fonksiyonel gereksinimlerden elde edilen test verilerinin uygulanması. Kara kutu testi olarak da bilinir.

Kabul Testi: Bir sistemin kabul kriterlerini karşılayıp karşılamadığını belirlemek için yapılan resmi test - son kullanıcının sistemi kabul edip etmeyeceğini belirlemesini sağlar.


1

Benim görüşüme göre temel fark, testlerin başarılı olup olmadığını kimin söylediğidir.

İşlevsel bir test, sistemin önceden tanımlanmış gereksinimleri karşıladığını test eder. Sistemin geliştirilmesinden sorumlu kişiler tarafından yapılır ve kontrol edilir.

Kullanıcılar tarafından bir kabul testi imzalanır. İdeal olarak, kullanıcılar test etmek istediklerini söyleyeceklerdir, ancak pratikte, kullanıcılar yeterince zaman harcamadığından, işlevsel bir testin gün batımı olması muhtemeldir. Bu görüşün, havacılık ve diğer güvenlik açısından kritik öneme sahip diğer kullanıcı gruplarıyla ilgilendiğim iş kullanıcılarından geldiğini unutmayın, bu farklılığa pek sahip olmayabilir.


Kabul testi, bir sistemin belirli bir kullanım senaryosunun veya tüm akla gelebilecek kullanım durumlarının kabul kriterlerini karşılayıp karşılamadığını belirleyecektir. Sistemin kabul edilebilir olup olmadığını belirlemek için genellikle uzman bir kullanıcı tarafından gerçekleştirilir. Havacılıkta bir test pilotu, belirli manevraları atarak yeni uçağı test eden bir havacıdır. En iyi pilotlar, navigatörler ve mühendisler uçuş testleri yaparlar ve test görevlerinin sonunda değerlendirme ve sertifikasyon verilerini sağlarlar.
jjpcondor

1

Kabul testi :

... bir sistemde (örneğin, yazılım, çok sayıda imal edilmiş mekanik parça veya kimyasal ürün grupları) teslim edilmeden önce gerçekleştirilen kara kutu testidir.

Bu söylemeye devam etse de:

Aynı zamanda fonksiyonel test, kara kutu testi, yayın kabulü, QA testi, uygulama testi, güven testi, son test, doğrulama testi veya fabrika kabul testi olarak da bilinir.

"alıntı gerekli" işareti ile.

İşlevsel test (aslında Sistem Testine yönlendirir):

sistemin belirtilen gereksinimlere uygunluğunu değerlendirmek için eksiksiz, entegre bir sistem üzerinde yürütülür. Sistem testi kara kutu testinin kapsamına girer ve bu nedenle kodun veya mantığın iç tasarımı hakkında bilgi gerektirmemelidir.

Yani bu tanımdan hemen hemen aynı şeyler.

Deneyimlerime göre, kabul testi genellikle fonksiyonel testlerin bir alt kümesidir ve müşteri tarafından resmi onay sürecinde kullanılırken, fonksiyonel / sistem testleri geliştirici / QA departmanı tarafından yürütülür.


0

İkisi arasındaki ilişki: Kabul testi genellikle fonksiyonel testi içerir, ancak ek testler içerebilir. Örneğin etiketleme / dokümantasyon gereksinimlerini kontrol etmek.

Fonksiyonel test , test edilen ürünün, test edilen cihazın tepkisini incelerken, hedef ortamın tipik olarak ürettiği veya ötesinde çeşitli uyarımlar (test kapsamında) üretebilen bir test ortamına yerleştirildiği zamandır.

Fiziksel bir ürün (yazılım değil) için iki ana Kabul testi türü vardır : tasarım testleri ve üretim testleri. Tasarım testleri tipik olarak, üretim testini geçen çok sayıda ürün numunesi kullanır. Farklı tüketiciler tasarımı farklı şekillerde test edebilir.

Tasarım, ürün spesifikasyonuna göre test edildiğinde kabul testleri doğrulama olarak adlandırılır ve ürün tüketicinin gerçek ortamına yerleştirildiğinde kabul testleri doğrulama olarak adlandırılır.


0

Kabul testleri sadece müşteri tarafından yürütülen ve test ediyor içeren test diğer tür:

  • İşlevsel test: "bu düğme çalışmıyor"
  • İşlevsel olmayan test: "bu sayfa çalışıyor ancak çok yavaş"

Fonksiyonel testlere karşı fonksiyonel olmayan testler (alt türleri) için - bu SO sorusuna verdiğim cevaba bakın .


-1

Aynı şeydir.

Kabul testleri, sistem devreye alınmadan veya teslim edilmeden önce gerçek üretim / dağıtım ortamıyla mümkün olduğunca aynı şekilde tamamlanan sistem üzerinde gerçekleştirilir.

Kabul testini otomatik bir şekilde veya manuel olarak yapabilirsiniz.


1
Selenium ve Watin (veya Watir) vb. İle otomasyon çok değerli bir savunma hattı olsa da, "sistemi kırmaya çalışan eğitimli bir QA kişisinin yerini hiçbir şey tutamaz. Otomasyon harika, ancak AJAX ve javascript çerçevesinin modern gelişimi ile ve bir sayfadaki çıktının değiştirilmesi, her şeyi otomatikleştirmek için bir komut dosyası güncelleme kabusu. Bunlar aynı şey DEĞİLDİR
Tom Stickel
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.