Przypadki testowe pola tekstowego

Pole tekstowe testuje się wartościami, które naprawdę w nie trafią, a nie tylko tą, pod którą zaprojektowano formularz. Oto przypadki testowe, każdy z prawdziwą wartością i tym, co zwykle psuje.

Czym testować pole tekstowe?

Tym, co naprawdę wpisują w nie ludzie i co trafia do niego z danych, a nie tylko imieniem, pod które zaprojektowano formularz: niczym, spacjami, których nikt nie widzi, wartością na limicie długości i o jeden znak dłuższą, literami spoza ASCII, liczbami i datami zapisanymi inaczej, słowami, które parser czyta jako coś innego, i znakami, które sprawiają kłopot dopiero w eksporcie. Sekcje niżej biorą je po kolei. Każda wartość pochodzi z katalogu, mówi, co zwykle psuje, i prowadzi do tego, co zamiast tego robi poprawna aplikacja.

Co sprawdzić po każdej wartości?

Za każdym razem tych samych pięć rzeczy:

  1. Czy zapisała się tak, jak ją wpisano? Otwórz rekord jeszcze raz i porównaj.
  2. Czy przeglądarka i serwer się zgadzają? Wartość, którą formularz przyjmuje, a serwer odrzuca, albo odwrotnie, to jedno z najczęstszych znalezisk.
  3. Czy komunikat nazywa problem? „Niepoprawne dane” przy wartości o jeden znak za długiej to osobny błąd.
  4. Czy przeżywa drogę w obie strony? Wyszukaj ją, edytuj, zobacz na liście.
  5. Czy przeżywa eksport? Otwórz plik CSV albo arkusz, który tworzy aplikacja.

Puste pole, spacje i znaki niewidoczne

Sprawdź granicę między pustym a wypełnionym. Pole, które przycina spacje po jednej stronie, a po drugiej nie, kończy z wartością pustą dla jednej warstwy i wypełnioną dla następnej.

Długość i limity

Sprawdź jeden znak poniżej limitu, sam limit i jeden znak ponad, a potem wartość daleko za nim. Sprawdź też, czy limit liczy znaki, czy bajty: w UTF-8 litera spoza ASCII to jeden znak i co najmniej dwa bajty.

Litery spoza ASCII i Unicode

Sprawdź litery, które Twoi użytkownicy mają w imionach i nazwiskach, i znaki, które zmieniają sposób liczenia, porównywania albo rysowania tekstu.

Słowa, które parser czyta jako coś innego

Sprawdź słowa, które dla programu gdzieś między polem a bazą danych znaczą „brak wartości”, „fałsz” albo „to nie liczba”.

Liczby

Sprawdź granice typu liczbowego, wartość ujemną tam, gdzie nikt jej nie przewidział, i liczby zapisane tak, jak zapisuje się je w innym kraju.

Daty

Sprawdź daty, które nie istnieją, daty, które da się odczytać na dwa sposoby, i lata spoza zwykłego zakresu.

Wartości, które psują dopiero eksport

Sprawdź, co dzieje się za formularzem. Wartość, która przechodzi walidację, wciąż może zepsuć plik, który eksportuje aplikacja, i arkusz tego, kto go otworzy.

Nazwy plików

Pole, którego wartość staje się nazwą pliku, sprawdź nazwami, które system plików odrzuca albo czyta inaczej.

Jak szybko przejść przez wszystkie?

Paletą, jeden skrót na wartość: kliknij pole, naciśnij AltShiftN , zobacz wynik i naciśnij znowu, żeby wpisać następną. Gdy wartość coś zepsuje, AltShiftB kopiuje blok do zgłoszenia. Pierwsze kroki zajmują mniej więcej dwie minuty.

Do testu automatycznego nkb emit wypisuje każdą paczkę jako JSON, CSV albo jedną wartość na wiersz:

$ nkb emit length-bombs --format json > length-bombs.json

Cały katalog (paczki: 9, wartości: 102) pokazuje strona paczek.