Jak przetestować logowanie?

Pomysł na cykl tego typu studiów przypadków przyszedł mi po tym, jak zawaliłam rozmowę kwalifikacyjną, na której usłyszałam to pytanie, a potem osoba, z którą rozmawiałam, zapytała mnie, czy na pewno mówię o formularzu logowania, czy nie pomyliłam go z rejestracją. Pytanie to wynikało z mojej nadgorliwości w sprawdzaniu wszystkiego, co z kolei wynikało z braku przygotowania (to standardowe pytanie praktyczne na testera i wypadałoby się zastanowić nad nim zaraz po tym, jak odpowiemy sobie, co chcemy robić za pięć lat) oraz – tak, braku zastanowienia się i przeanalizowania przypadku (co powinno być zrobione na etapie przygotowania, a nie w trakcie rozmowy). Pomyślałam po tym, że będzie to dla mnie znakomite ćwiczenie – którego tak naprawdę nigdy nie miałam okazji wykonać, a dla potencjalnych czytelników – ściąga 😀

No więc:

LOGOWANIE

Co wiemy?

Logowanie zwykle zawiera dwa pola – login i hasło – oraz przycisk „Przypomnij hasło”.

Login – albo w postaci aliasu albo w postaci mejla.

Hasło – przyjmijmy wersję bezpieczną, zawierającą min. 8 znaków w tym małą i wielką literę, cyfrę i znak specjalny.

Poza samym logowaniem, testami należy objąć walidację i komunikaty kierowane do użytkownika.

TESTY

Warunek wejścia – posiadamy konto na stronie, na której się logujemy.

Test 1. Sprawdzenie warunku wejścia

Bez zakładania konta, spróbuj się zalogować dowolnymi danymi.

Testy pozytywne

Test 2. Prawidłowe logowanie

Wykorzystując prawidłowy login i hasło, zaloguj się do konta.

W zależności od wymagań, możemy się zalogować, podając alias i hasło lub e-mail i hasło. Każda z tym opcji będzie przypadkiem testowym realizującym scenariusz 2. Coraz więcej stron rezygnuje jednak z opcji pierwszej, co ułatwia nam zadanie.

Test 3. Logowanie z Caps Lockiem w loginie

Jeśli logujesz się mailem, wpisz login wielkimi literami i prawidłowe hasło. Zalogowanie powinno nastąpić poprawnie, ponieważ w adresach mailowych wielkie litery nie są dopuszczalne, powinno więc nastąpić przekonwertowanie ich na małe po stronie systemu.

Testy negatywne

Test 4. Próba zalogowania przy użyciu części loginu

Spróbuj zalogować się adresem mejlowym bez podania domeny i prawidłowym hasłem. Ta opcja istnieje np. w serwisie Google, ale założenie jest takie, że domena należy do Googla (dla Googla będzie to więc test pozytywny). Na innych stronach, na których można logować się adresem z różnych domen, jest to zachowanie niewskazane, bo agnieszka.kowalska123 z Interii to niekoniecznie agnieszka.kowalska123 z o2. Pojawiający się komunikat o błędnym haśle lub zalogowanie do konta, bo hasło zgodziło się z jednym z kilku rekordów z bazy – to słaby pomysł.

Test 5. Próba zalogowania przy użyciu złego loginu

Spróbuj zalogować się do konta, podając nieprawidłowy login.

W loginie można pominąć np. kropkę lub znak podkreślnika, jeśli adres je posiada. Można pominąć dowolną literę, znak @ oraz kropkę domenową.

Inną opcją jest podanie innej domeny niż ta, na którą było założone konto.

Test 6. Logowanie bez hasła lub bez loginu

Spróbuj zalogować się do konta, nie podając hasła lub loginu. Lub obu.

Test 7. Logowanie z błędnym hasłem

Spróbuj zalogować się do konta, podając błędne hasło.

Tu możemy spróbować logowania z zupełnie innym hasłem – najlepiej należącym do innego konta, hasłem bez ostatniej/pierwszej litery lub z literą dodatkową oraz z włączeniem Caps Locka. Sprawdzamy też, co się stanie, jak zamiast hasła wkleimy gwiazdki lub czarne kropki maskujące, oczywiście w odpowiedniej ilości.

Test 8. Logowanie po zmianie hasła

Kliknij w przycisk „Przypomnij hasło” i przejdź procedurę.

Zmień hasło.

Wpisz do formularza login i stare hasło.

Wpisz login i nowe hasło.

Ten test mógłby się zaliczać także do testów sprawdzających procedurę zmiany danych użytkownika.

Przeprowadzenie tych testów wydaje mi się wystarczające, by potwierdzić działanie logowania. Nawet nie będę próbować udawać, że wiem cokolwiek o testach bezpieczeństwa (tu co najwyżej SQL Injection przychodzi mi do głowy, ale jedynie jako hasło).

Twój adres e-mail nie zostanie opublikowany.