Bootcamp XVIII: wskazówek część dalsza
Pora na rozwinięcie poprzedniej wskazówki podanej we wpisie Bootcamp XVIII: Jak to może być zrobione. Chcę przede wszystkim podkreślić, że tego typu przypadki “występują w naturze”, przy czym wykrycie ich nie jest trywialne.
Na początku sama formatka wyszukiwania i wyniki bez podania jakichkolwiek dodatkowych parametrów wyszukiwania:
Można/należy zapamiętać zwrócone wyniki i wykorzystać je przy dalszych testach.
Pierwszą istotną rzeczą, którą można zauważyć, że w przypadku podania identyfikatora w formatce wyszukiwania, pozostałe parametry nie są uwzględniane. Łatwo to sprawdzić wybierając identyfikator jednej z wiadomości, a następnie ponowić próby wyszukiwania ustawiając pozostałe parametry na wartości, przy których dana wiadomość nie powinna zostać zwrócona. Oznacza to, że nie ma sensu testowanie pozostałych dwóch parametrów, w przypadku gdy podany został identyfikator wiadomości. Dodatkowo można przypuszczać, że formatka jest obsługiwana przez więcej niż jedno zapytanie SQL.
Mamy trzy parametry:
- id
- text
- type
Można stworzyć (w uproszczeniu) następującą listę przypadków testowych:
- id
- text
- type
- id, text
- id, type
- text, type
- id, text, type
Warto zauważyć, że niektóre przypadki mogą zostać “zredukowane”. Przypadki 1, 4, 5 i 7 zawierają w sobie parametr id , pozostałe parametry są nieistotne. Po tej redukcji lista możliwych przypadków otrzymuje postać:
- id
- text
- type
- text, type
Teoretycznie można usunąć również przypadek z samym parametrem text , ponieważ parametr type jest ustawiony zawsze. Z drugiej strony czasami ciekawe efekty daje usunięcie jakiegoś parametru (usunięcie wartości lub “całego” parametru), więc można założyć, że sam parametr text również uda się ustawić. W efekcie otrzymywane są cztery przypadki, które należy przetestować. I w tym konkretnym przykładzie lepiej nie zakładać, że skoro w jednym przypadku testowym jakiś parametr jest “bezpieczny”, będzie również bezpieczny w innym.
I na koniec dowód, że się da:
Oryginał tego wpisu dostępny jest pod adresem Bootcamp XVIII: wskazówek część dalsza
Autor: Paweł Goleń