Różnica między testem akceptacyjnym a testem funkcjonalnym?

Jaka jest prawdziwa różnica między testami akceptacyjnymi a testami funkcjonalnymi?

Jakie są najważniejsze lub cele każdego z nich? Wszędzie, gdzie czytam, są one dwuznacznie podobne.

Author: JavaRocky, 2010-07-30

11 answers

W moim świecie używamy terminów w następujący sposób:

Testowanie funkcjonalne : jest to działanie weryfikacja ; czy zbudowaliśmy poprawnie działający produkt? Czy oprogramowanie spełnia wymagania biznesowe?

Dla tego typu testów mamy przypadki testowe, które obejmują wszystkie możliwe scenariusze, które możemy wymyślić, nawet jeśli jest mało prawdopodobne, aby ten scenariusz istniał "w realnym świecie". Wykonując tego typu testy, dążymy do maksymalnego pokrycia kodu. Korzystamy z dowolnego środowiska testowego może chwycić w czasie, to nie musi być kaliber" produkcji", tak długo, jak to jest użyteczne.

Testy akceptacyjne : jest to działanie Walidacja ; czy zbudowaliśmy właściwą rzecz? Czy tego naprawdę potrzebuje klient?

Odbywa się to zwykle we współpracy z klientem lub przez wewnętrznego pełnomocnika klienta (product Ownera). Do tego typu testów używamy przypadków testowych, które obejmują typowe scenariusze, w których spodziewamy się użycia oprogramowania. Test ten musi być prowadzone w środowisku "produkcyjnym", na sprzęcie, który jest taki sam lub zbliżony do tego, czego klient będzie używał. To wtedy testujemy nasze "ilities":

  • Niezawodność, dostępność : potwierdzona za pomocą testu warunków skrajnych.

  • Skalowalność : potwierdzona za pomocą testu obciążenia.

  • Użyteczność : potwierdzona poprzez kontrolę i demonstrację dla klienta. Czy interfejs użytkownika jest skonfigurowany do ich potrzeb? Czy umieściliśmy marki klienta w wszystkie właściwe miejsca? Czy mamy wszystkie pola / ekrany, o które prosili?

  • Bezpieczeństwo (aka, Securiability, just to fit in) : Validated via demonstration. Czasami klient zatrudni firmę zewnętrzną do przeprowadzenia audytu bezpieczeństwa i / lub testów włamań.

  • Maintainability: potwierdzona poprzez pokazanie, w jaki sposób będziemy dostarczać aktualizacje/poprawki oprogramowania.

  • Konfigurowalność : potwierdzona poprzez pokazanie, w jaki sposób klient może zmodyfikować system do własnych potrzeb.

W żadnym wypadku nie jest to standard i nie sądzę, aby istniała" standardowa " definicja, jak pokazują sprzeczne odpowiedzi tutaj. Najważniejsze dla Twojej organizacji jest to, że precyzyjnie definiujesz te terminy i trzymasz się ich.

 151
Author: Patrick Cuff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-12 12:13:53

Podoba mi się odpowiedź Patryka Mankieta. To, co lubię dodać, to rozróżnienie między poziomem testu i typem testu , który był dla mnie otwieraczem do oczu.

Poziomy badań

poziom testowy jest łatwy do wyjaśnienia za pomocą V-model , przykład: Tutaj wpisz opis obrazka Każdy poziom testowy ma odpowiadający mu poziom rozwojowy . Ma typową charakterystykę czasową, są wykonywane w określonej fazie życia rozwojowego cykl.

  1. testowanie komponentów / jednostek = > weryfikacja projektu szczegółowego
  2. component/unit integration testing = > verifying global design
  3. testowanie systemu = > weryfikacja wymagań systemowych
  4. testowanie integracji systemu = > weryfikacja wymagań systemowych
  5. testy akceptacyjne = > Walidacja wymagań użytkownika

Typy badań

A typ badania jest charakterystyką, skupia się na konkretnym celu badania. typy testów podkreśl swoje aspekty jakościowe, znane również jako aspekty techniczne lub niefunkcjonalne. typy badań można wykonać na dowolnym poziomie testowym . Lubię używać jako typów testów właściwości jakościowych wymienionych w ISO/IEC 25010: 2011.

  1. testy funkcjonalne
  2. testowanie niezawodności
  3. testy wydajności
  4. testowanie operacyjności
  5. testy bezpieczeństwa
  6. testy zgodności
  7. konserwacja testowanie
  8. testy przenoszalności

Aby było kompletne. Jest też coś, co nazywa się testowaniem regresji . Jest to dodatkowa klasyfikacja obok poziomu badania i typu badania . Test regresji jest testem, który chcesz powtórzyć, ponieważ dotyka czegoś krytycznego w Twoim produkcie. W rzeczywistości jest to podzbiór testów zdefiniowany dla każdego poziomu testu. Jeśli w Twoim produkcie jest mała poprawka błędu, nie zawsze masz czas, aby powtórz wszystkie testy. testowanie regresji jest odpowiedzią na to pytanie.

 55
Author: Nick V,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-19 15:28:12

Różnica jest między testowaniem problemu a rozwiązaniem. Oprogramowanie jest rozwiązaniem problemu, oba można przetestować.

Test funkcjonalny potwierdza, że oprogramowanie wykonuje funkcję w granicach tego, jak rozwiązałeś problem. Jest to integralna część tworzenia oprogramowania, porównywalna z testowaniem, które odbywa się na masowo produkowanym produkcie, zanim opuści fabrykę. Test funkcjonalny sprawdza, czy produkt rzeczywiście działa tak, jak myślisz (deweloper) tak.

Testy akceptacyjne sprawdzają, czy produkt rzeczywiście rozwiązuje problem, który został rozwiązany. Najlepiej może to zrobić użytkownik (klient), na przykład wykonując swoje zadania, z którymi oprogramowanie pomaga. Jeśli oprogramowanie przejdzie ten test w świecie rzeczywistym, akceptowane jest zastąpienie poprzedniego rozwiązania. Ten test akceptacyjny może być czasami wykonany poprawnie tylko w produkcji, zwłaszcza jeśli masz anonimowych klientów (np. stronę internetową). Tak więc nowa funkcja zostanie zaakceptowana dopiero po kilku dniach lub tygodni użytkowania.

Testowanie funkcjonalne - testowanie produktu, sprawdzanie, czy ma on cechy, które zaprojektowałeś lub zbudowałeś (funkcje, szybkość, błędy, spójność itp.)

Testy akceptacyjne - przetestuj produkt w jego kontekście, wymaga to (symulacji) interakcji człowieka, test ma pożądany wpływ na oryginalny problem(y).

 21
Author: Machiel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-20 21:57:03

Odpowiedzią jest opinia. Pracowałem w wielu projektach i będąc testmanagerem i issuemanagerem i wszystkie różne role i opisy w różnych książkach różnią się więc oto moja Odmiana:

Functional-testing: Weź wymagania biznesowe i przetestuj wszystko dobrze i dokładnie z funkcjonalnego punktu widzenia.

Akceptacja-testowanie: klient "płacący" wykonuje testy, które lubi, aby mógł zaakceptować dostarczony produkt. To zależy od klienta zazwyczaj jednak testy nie są tak dokładne jak testy funkcjonalne, zwłaszcza jeśli są to projekty wewnętrzne, ponieważ interesariusze dokonują przeglądu i ufają wynikom testów wykonanych we wcześniejszych fazach testów.

Jak powiedziałem, to jest mój punkt widzenia i doświadczenie. Testowanie funkcjonalne jest systematyczne, a testowanie akceptacyjne to raczej dział biznesowy testujący tę rzecz.

 9
Author: hol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-24 02:40:34
  1. Publiczność. Testowanie funkcjonalne ma zapewnić członkom zespołu produkującego oprogramowanie, że robi to, czego oczekują. Testy akceptacyjne mają na celu zapewnienie konsumentowi, że spełnia on ich potrzeby.

  2. Zakres. Testy funkcjonalne testują tylko funkcjonalność jednego komponentu na raz. Testy akceptacyjne obejmują każdy aspekt produktu, który ma znaczenie dla konsumenta na tyle, aby przetestować go przed zaakceptowaniem oprogramowania (tj. przetestuj go, aby określić jego akceptowalność).

Oprogramowanie może przejść testy funkcjonalne, testy integracyjne i testy systemu; tylko po to, aby nie przejść testów akceptacyjnych, gdy klient odkryje, że funkcje po prostu nie spełniają ich potrzeb. Zazwyczaj oznacza to, że ktoś spieprzył spec. Oprogramowanie może również zawieść pewne testy funkcjonalne, ale przejść testy akceptacyjne, ponieważ klient jest gotów poradzić sobie z niektórymi funkcjonalnymi błędami, o ile oprogramowanie robi podstawowe rzeczy muszą być akceptowalnie dobrze (oprogramowanie beta będzie często akceptowane przez podzbiór użytkowników, zanim będzie w pełni funkcjonalne).

 8
Author: Ethel Evans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-30 19:46:14

Testowanie funkcjonalne: Zastosowanie danych testowych pochodzących z określonej funkcjonalności wymagania bez względu na ostateczną strukturę programu. Znany również jako badanie czarnej skrzynki.

Testy akceptacyjne: formalne testy przeprowadzane w celu ustalenia, czy system spełnia kryteria akceptacji-umożliwiają użytkownikowi końcowemu ustalenie, czy Zaakceptuj system.

 2
Author: Prashant Vadher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-26 08:38:03

Według mnie główną różnicą jest to, kto mówi, czy testy się powiodą,czy nie.

Test funkcjonalny sprawdza, czy system spełnia predefiniowane wymagania. Jest on przeprowadzany i sprawdzany przez osoby odpowiedzialne za rozwój systemu.

Test akceptacji jest podpisywany przez użytkowników. Idealnie użytkownicy powiedzą, co chcą przetestować, ale w praktyce prawdopodobnie będzie to zachód słońca testu funkcjonalnego, ponieważ użytkownicy nie inwestują wystarczająco dużo czasu. Zauważ, że ten widok pochodzi z firmy użytkownicy, którzy mają do czynienia z innymi zestawami użytkowników, np.]}

 1
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-30 09:53:47

Testy akceptacyjne :

... jest testowanie czarnej skrzynki wykonywane na systemie (np. oprogramowanie, wiele produkowanych części mechanicznych lub partii produktów chemicznych) przed jego dostawą.

Choć to dalej mówi:

Jest również znany jako testy funkcjonalne, testy czarnej skrzynki, akceptacja wersji, testy QA, testy aplikacji, Testy zaufania, testy końcowe, testy walidacyjne lub testy akceptacji fabrycznej

Z "potrzebny cytat" mark.

Testowanie funkcjonalne (które faktycznie przekierowuje do testowania systemu):

Przeprowadzone na kompletnym, Zintegrowanym Systemie w celu oceny zgodności systemu z określonymi wymaganiami. Testowanie systemu wchodzi w zakres testowania czarnej skrzynki i jako takie nie powinno wymagać znajomości wewnętrznej konstrukcji kodu lub logiki.

Więc z tej definicji są prawie to samo.

In my experience testy akceptacyjne są zwykle podzbiorem testów funkcjonalnych i są wykorzystywane w formalnym procesie podpisywania przez Klienta, podczas gdy testy funkcjonalne/systemowe będą prowadzone przez dział dewelopera/QA.

 1
Author: ChrisF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-30 09:54:55

Relacja między dwoma: Test akceptacyjny zwykle obejmuje testy funkcjonalne, ale może zawierać dodatkowe testy. Na przykład sprawdzanie wymagań dotyczących etykietowania/dokumentacji.

Testowanie funkcjonalne jest wtedy, gdy badany produkt jest umieszczony w środowisku testowym, które może wytwarzać różne stymulacje (w zakresie testu), co zwykle wytwarza środowisko docelowe, a nawet poza nim, podczas badania reakcji urządzenia pod test.

Dla fizycznego produktu (Nie oprogramowania) istnieją dwa główne rodzaje testów akceptacyjnych : testy projektowe i testy produkcyjne. Testy projektowe zazwyczaj wykorzystują dużą liczbę próbek produktów, które przeszły test produkcyjny. Różni konsumenci mogą testować projekt na różne sposoby.

Testy akceptacyjne są określane jako weryfikacja, gdy projekt jest testowany pod kątem specyfikacji produktu, a testy akceptacyjne są określane jako Walidacja, gdy produkt jest umieszczony w rzeczywiste środowisko konsumenta.

 0
Author: ali65,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-02 21:21:37

Testy akceptacyjne to tylko testy przeprowadzane przez Klienta, a obejmuje inne rodzaje testów:

  • testy funkcjonalne: "ten przycisk nie działa"
  • testowanie niefunkcjonalne: "Ta strona działa, ale jest zbyt wolna"

Do testów funkcjonalnych vs niefunkcjonalnych (ich podtypy) - zobacz moją odpowiedź na to więc pytanie .

 0
Author: Andrejs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:07

To to samo.

Testy akceptacyjne są przeprowadzane na gotowym systemie w możliwie identycznym środowisku do rzeczywistego środowiska produkcyjnego/wdrożeniowego przed wdrożeniem lub dostarczeniem systemu.

Możesz wykonać testy akceptacyjne w sposób zautomatyzowany lub ręcznie.

 -1
Author: jmz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-30 09:55:25