Analiza wartości brzegowych jest techniką testowania czarnoskrzynkowego, w której skupiamy się na wartościach brzegowych danych wejściowych. W standardowym podejściu sprawdzamy:
- wartość minimalną z zakresu,
- wartość tuż poniżej minimum,
- wartość maksymalną z zakresu,
- wartość tuż powyżej maksimum,
- oraz wartość reprezentującą środek zakresu.
W przypadku danych wrażliwych do tego zestawu trzeba dodać jeszcze jeden wymiar: bezpieczeństwo. Nie testujemy oczywiście na rzeczywistych danych, lecz na syntetycznych, aby nie naruszać zasad ochrony prywatności.
Jakie wartości graniczne są ważne przy danych osobowych?
Różne typy danych osobowych mają swoje charakterystyczne punkty graniczne. Poniżej kilka przykładów.
a) Dane identyfikacyjne (PESEL, dowód osobisty)
Numer PESEL ma ściśle określoną strukturę, gdzie:
- 6 pierwszych cyfr to data urodzenia,
- kolejne 3 to numer serii z oznaczeniem płci,
- ostatnia cyfra to suma kontrolna.
Wartości graniczne dla testów numeru PESEL obejmują:
- daty na granicach przyjętych okresów (np. 1900-01-01, 2299-12-31),
- wszystkie możliwe kombinacje dla cyfr płci (parzyste i nieparzyste),
- przypadki z prawidłową i nieprawidłową sumą kontrolną.
b) Dane finansowe (karty płatnicze, numery kont)
Numery kart płatniczych są generowane według algorytmu Luhna. Wartości graniczne składają się z:
- minimalnej i maksymalnej długości (zwykle 13-19 cyfr),
- różnych prefiksów określających typ karty (np. 4 dla Visa, 5 dla Mastercard),
- granicznych datach ważności (bieżący miesiąc, ostatni akceptowalny przyszły rok),
- wartości skrajnych dla kodów CVV (000, 999).
c) Dane medyczne
W przypadku wyników badań lub parametrów zdrowotnych, ważne są:
- granice zakresów referencyjnych,
- wartości tuż poniżej i powyżej normy,
- dane ekstremalne, których wystąpienie jest fizjologicznie nierealne.
Testowanie bez użycia rzeczywistych danych
Stosowanie danych syntetycznych jest bezpieczniejsze i daje większą kontrolę nad tym, co testujemy. Ważne jest stosowanie 3 zasad:
- Pełna kontrola nad strukturą danych. Generatory pozwalają tworzyć dane zbliżone do rzeczywistych, ale całkowicie sztuczne.
- Precyzja w doborze wartości brzegowych. W przeciwieństwie do zanonimizowanych danych, syntetyczne można dostosować dokładnie do scenariuszy testowych.
- Realizm i wiarygodność. Dane powinny odzwierciedlać typowe cechy rzeczywistych zbiorów, np. rozkład wartości czy formaty.
Przykłady przypadków testowych
PESEL
- Poprawny PESEL z najwcześniejszą dopuszczalną datą urodzenia (np. 00010100932)
- Data przed dopuszalnym zakresem (np. 99123100935)
- Poprawny PESEL z maksymalną datą (np. 99123100932)
- PESEL z datą tuż po maksymalnej (np. 00010100934)
- PESEL z niepoprawną sumą kontrolną (np. 90010100931)
- PESEL o nieprawidłowej długości (za krótki/za długi)
Numery kart płatniczych
- Poprawny numer o minimalnej długości (13 cyfr)
- Numer za krótki (12 cyfr)
- Poprawny numer o maksymalnej długości (19 cyfr)
- Numer za długi (20 cyfr)
- Data ważności = bieżący miesiąc/rok (granica dolna)
- Data ważności = miesiąc przed bieżącym (poniżej granicy)
- Data ważności = maksymalny dozwolony rok (granica górna)
- Data ważności = rok po maksymalnym (powyżej granicy)
Dane medyczne
- Wartość na dolnej granicy normy (70 mg/dl)
- Wartość tuż poniżej dolnej granicy (69 mg/dl)
- Wartość na górnej granicy normy (99 mg/dl)
- Wartość tuż powyżej górnej granicy (100 mg/dl)
- Wartość zerowa (0 mg/dl) - wartość niemożliwa
- Wartość ekstremalnie wysoka (1000 mg/dl) - stan zagrażający życiu
Jak generować dane?
Dobrym podejściem jest:
- Identyfikacja klas równoważności, czyli zdefiniowanie zakresów danych poprawnych i niepoprawnych.
- Wygenerowanie danych dokładnie na granicy i tuż obok niej.
- Zautomatyzowanie procesu, gdy liczba przypadków rośnie, warto sięgnąć po narzędzia z możliwością definiowania warunków logicznych i reguł.
Stosując technikę BVA z syntetycznymi danymi testowymi możemy efektywnie weryfikować zachowanie systemu na granicach dopuszczalnych zakresów, unikać ryzyka związanego z wykorzystaniem rzeczywistych danych osobowych oraz zapewnić wysoką jakość testów przy jednoczesnym przestrzeganiu wymagań RODO.