Wartości graniczne w testowaniu

Wartości graniczne w testowaniu
Wartości graniczne to jedna z najważniejszych technik testowania oprogramowania. Po ciekawym pytaniu o to, czym są wartości graniczne w testowaniu na naszym profilu na Facebooku (https://www.facebook.com/testerzy/posts/416605701759749) Piotrowi udało się znaleźć błąd w definicji słownikowej.

Piotr pyta: (...) która z definicji wartości brzegowych jest wg Was obowiązująca? Minimum - maksimum; czy może rozszerzająca do "najbliższych sąsiadów"?

testerzy.pl odpowiadają: Jest tylko jedna poprawna definicja. Wartości brzegowe są to zarówno wartości poprawne jak i niepoprawne. Czyli wartości na granicy i zaraz za nią. Jest to tzw. BVA - Boundary Value Analysis (analiza wartości granicznych).

Piotr: Jeżeli zatem mamy daną klasę równoważności , to minimum tej klasy będzie "0", ale wartością brzegową będzie też "1", na mocy definicji ze Słownika v.2.02 (2011): "...lub jest w najbliższym  przyrostowym sąsiedztwie tej granicy.". Wartość "1" zatem jest wartością brzegową, ale nie jest wartością minimalną.  Jednak już z lektury sylabusa v.2011.1.1 dowiadujemy się, że "Minimum i maksimum klasy równoważności  to jej wartości brzegowe." O sąsiedztwie przyrostowym nie ma tu mowy. (s.46.)

Co należałoby zrobić w sytuacji, gdyby dwie różne odpowiedzi w teście zmuszały do wyboru między "0", a "1" w kontekście wartości brzegowych dla takiej klasy równoważności? (...)

testerzy.pl: 1 nie jest i nigdy nie było wartością brzegową. Wartości brzegowe to -1, 0, 100 i 101. Warto zwrócić uwagę, że tłumaczenie polskiej jest niepełne i nie pokrywa całości wersji angielskiej: "Wartość wejścia lub wyjścia, która jest na granicy klas równoważności lub jest w najbliższym przyrostowym sąsiedztwie tej granicy.", gdzie wersja angielska mówi "An input value or output value which is on the edge of an equivalence partition or at the smallest incremental distance on either side of an edge". Dodatkowo słówko "incremental" w rozumieniuniu przyrostowe jest błędne ponieważ dla 0 musimy przyjąć dekrementację. 

Można spokojnie założyć, że znalazłeś błąd w definicji!

 

Okazało się jednak, że sprawa oprócz błędu definicji ma również drugie dno. Po zgłoszeniu tej uwagi do SJSI otrzymaliśmy następującą odpowiedź.

"(...) o minimum i maksimum sens jest mówić dla przypadku jednowymiarowego, a co z dwu i więcej wymiarami? W ogóle definicja klasy równoważności i wartości brzegowej jest – z matematycznego punktu widzenia – nonsensem."

Próbując szukać odpowiedniej definicji można spróbować zdefiniować własną:

wartość brzegowa: Wartość wejścia lub wyjścia, która jest na granicy poprawnej klasy równoważności lub jest w najbliższym sąsiedztwie tej granicy w sąsiadującej niepoprawnej klasie równoważności. Dla klasy jednowymiarowej będzie to wartość minimalna lub maksymalna z zakresu.

 

W takim wypadku:

x1 - jest poprawną wartością graniczną (minimalną)

x2 - jest poprawną wartością graniczną (maksymalną)

y1 - jest niepoprawną wartością graniczną 

y2 - jest niepoprawną wartością graniczną. 

 

 

To powinno Cię zainteresować