В этой задаче мы пишем функциональные тесты используя технику "Тестирование через иннтерфейс (UI)". Для тестирования предлагаются 2 приложения:
- Web - доработанное (добавлено управление аутентификацией) NorthwindApp
- Desktop - Contacts (Addess Book)
Дополнительное (не обязательное!) задание:
- Для любого приложения добавить 1-2 сценария, используя SpecFlow или аналогичный BDD-framework
- все тесты реализуются через Selenium WebDriver или аналогичный framework
- тестируем основные сценарии пользователя, связанные с авторизацией:
- регистрация нового пользователя
- вход под ранее зарегистрированным пользователем и выход
- редактирвоание профиля пользователя (смена телефона и пароля)
- все тесты должны быть независимы друг от друга
- для упрвления пользователями, паролями, ... - доработайте под свои нужды класс IdentityTestHelper (из проекта Northwind.Web.Tests)
- для описания страниц используем подход PageObjects (можно вручную, можно с использованием библиотек типа HtmlElements)
- проверку результата каждого теста проводим или через IdentityTestHelper (например, проверяем, что пользователь добавлен) или анализируя страницы (например, что вход и выход прошли успешно)
- для тестирования используем на выбор UI Automation (но лучше - обертку над ним, типа FlaUI !!!), Appium или свободный аналог (но предварительно согласовать))
- необходимо протестировать сценарии:
- добавление контакта
- удаление контакта
- поиск существующего контакта(ов)
- изменение существующего контакта
- в сценариях создания нового или изменения существующего задествовать минимум 3 вкладки (не обязательно все поля, 1-2 будет достаточно)
- для управления данными (чтобы сделать тесты независимыми) можно использовать Contacts.dll (пример работы с ней есть можно найти в тестовом классе MainWindowTests)
- для работы реализуем также подход PageObjects (примеры есть в самом solutions)
- для любого из тестов реализуйте несколько тестов на SpecFlow - можно описать в виде SpecFlow-сценариев ранее реализованные тесты
- для введения в SpecFlow, можно воспользоваться их Tutorial
- там для сценариев создается отдельный проект на базе их шаблона. Можете поступить также (только нужно будет перенести всю инфраструктуру тестов, которую вы реализуете в первых пунктах), а можете добавить .feature-файл руками (точнее из шаблона Item-ов, которые ставятся с расширением SpecFlow) в существующий проект. Именно так сделано в примерах к лекции