Задача: протестировать функционал «Мну забыло парольку!»
Смотрю тест-кейс:
= = = = = = START = = = = = = =
Precondition: (очевидно копипаст требований, но то норм)
- User is not logged.
- Log in form is displayed on the page and have following elements:
- static text above the «Email Address» field;
- required «Email Address» field (empty);
- required «Password» field (empty);
- checkbox «Remember Me»;
- Login button;
- Forgot Password? link. (но не норм то, что это просто перечисление того, что тестировщик должен будет увидеть на экране. Оно вроде бы важно, но на деле — мусор, бо к делу не относится.)
- Available user account ‘test@gmail.com / 11111111‘
Steps:
- Open ‘Forgot Your Password?‘ form сlicking on the [Forgot Your Password?] link — the Forgot Your Password? dialog box should be displayed.
- Fill the Email Address field following data:
- Email: test@gmail.com
- Assure that: the mail with Password — ‘11111111‘ has been delivered to mentioned Email Addres
= = = = = = END = = = = = = =
Думаем: если в одной строке рассказывается про какое-то действие, которое НЕПРЕМЕННО должно сопровождаться указанием «проверить наличие того и сего» (еще раз — ЕСЛИ такое вообще нужно), тогда указание/перечень того, что должно быть проверено, следует указывать сразу под упомянутой строкой.
Как надо/можно делать:
Пример №1. Простое (но не самое адекватное) упрощение текста
Steps To Reproduce
- Open storefront.
- Click on Login link on the header of the page.
- My Account login page is opened and loaded.
- The Returning Customers box is displayed on the page.
- Click on Forgot Your Password? link.
- ‘Forgot Your Password?’ dialog box will be displayed.
Камменты:
1
The Returning Customers box is displayed on the page. — это вообще что за «Коробка возвращающегося клиента» и необходимость проверять ее наличие? Подразумевается наличие формы логина — какой же это бокс-то?
2
Кейс вообще рассказывает о ситуации «Юзер провтыкал свой пароль к аккаунту в нашем магазине, и вместо того, чтобы залогиниться, как просто и добрый самаритянин, он злобно растеряно негодующе запрашивает у системы запуск алгоритма восстановления пароля«.
В большинстве жизненных случаев в короткой и бурной жизни тестировщика нет смысла исчерпывающе точно указывать, куда и когда надо кликать, чтобы тупо залогиниться… Поэтому принципиально не следует перечислять пошагово страницы и линки, которые надо пройти… да и надо ли их проходить? Не факт, что юзер будет переходить на страницу логина именно через open storefront + Click on Login link on the header of the page. Почему бы нам просто не открывать эту страницу по url?
Путь «open storefront + Click on Login link on the header of the page» можно проверить в отдельном тест-кейсе. И особенно хорошо такой кейс положить в набор для smoke testing. А во всех остальных миллионах тестов, в которых подразумевается «надо залогиниться», к экрану с формой логина можно обращаться СРАЗУ по url, например.
Принцип Keep It Simple, Stupid (KISS) в действии.
Пример №2. Упрощенное (и более адекватное) представление всей ситуации, которую надо создать и проверить
Steps To Reproduce
- Open the Returning Customers Login page
- Click on Forgot Your Password? link.
- Check, that ‘Forgot Your Password?’ dialog box will be displayed.
Камменты:
Так проще, однозначнее, прозрачнее.
И Expected results присутствует в последней строчке, «и всё, и этого достаточно» ©.
Но так тоже туповато… Ведь ситуация «вызвать форму восстановления забытого пароля» — всего лишь шаг в сценарии восстановления пароля. Смысл тестировать отдельно вызов этой формы, а потом отдельно отмену вызова этой формы? Это избыточные, неадекватные проверки.
Надо не привязывать один кейс к одному требованию. Разумнее читать требования ВООБЩЕ, продумывать ситуации, которые описаны ВООБЩЕ, и тестировать их последовательно, но именно как цельные ситуации, а не отдельные сокращения отдельных мышц на отдельной взятой руке в отдельной взятом сферическом вакууме.
- Open the Returning Customers Login page
- Open ‘Forgot Your Password?’ form.
- дальше что надо делать, исходя из требований? А дальше надо доводить ситуацию до логического финиша, вестимо!
Step ‘Open Login form’ was removed to the hell. Understood the reason?
Необходимость в напоминании пароля у меня появляется только когда я затупил и система грязно ругнулась в ответ. Тогда и только тогда я начну искать заветный линк — «Напомни мне, братка, как мы раньше то договорились здороваться?» Посему самый первый пункт должен звучать как — намеренно лохануться во время логина. Не?
Так тоже можно.
А можно и электрошок, чтобы реально забыть пароль ))