Эм. Я же пирамидку тестирования привёл. accepting - приёмосдаточное тестирование. То что указано в техническом задании всё тестируем. Эти тесты пишут тестировщик.
Я больше теоретик. Написание начинается с составления тестового плана, на какие вопросы надо ответить дано в статье
Тест план (Test Plan) — это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Отвечает на вопросы:
Что надо тестировать?
Что будете тестировать?
Как будете тестировать?
Когда будете тестировать?
Критерии начала тестирования.
Критерии окончания тестирования.
Основные пункты тест плана
В стандарте IEEE 829 перечислены пункты, из которых должен (пусть — может) состоять тест-план:
a) Test plan identifier;
b) Introduction;
c) Test items;
d) Features to be tested;
e) Features not to be tested;
f) Approach;
g) Item pass/fail criteria;
h) Suspension criteria and resumption requirements;
i) Test deliverables;
j) Testing tasks;
k) Environmental needs;
l) Responsibilities;
m) Staffing and training needs;
n) Schedule;
o) Risks and contingencies;
p) Approvals.
Так же часто выделяют, что основное что тестируется это интерфейс пользователя. Проверка реакции на кнопки.
Как профессионал Вы наверно уже знаете чего стоит написание фронт энда. И как это делается ручками. К примеру форма регистрации пользователя или ввод IP.
- Вы должны проверить что старый IP показывается.
- Валидация IP адреса. Что API при приеме строки с IP-адресом фильтрует и отбрасывает всё что не соответствует шаблону.
- Убедиться что IP применяется
- Что IP сохраняется в конфиге.
- Что работает восстановление в случае отсутствия подключения в 60 секунд.
- То что IP применяется на нужном интерфейсе и не перескакивает интерфейса на интерфейс.
- что шлюз по умолчанию присвоен одному интерфейсу.
Всё это можно сделать через тестирование интерфейса. Это автоматизированные тесты а есть ещё и автоматические.
Через API для слабо видящих MSAA можно получить структуру приложения в том числе и для браузеров(там надо включить). Получив координаты кнопок их названия и дополнительные данные можно понажимать на все кнопки и проверить еcть реакция или нет. Для всего этого есть библиотеки(фреймворки).
Смысла в использовании MSAA я не вижу так как если вы пишите тестовое приложение то у вас в раза будет больше возможностей. А вот идея генерация скриптов на основе SpecFlow мне понравилась.
Там конечно пример для web, но для Web-есть инструменты по лучше. Дело в том что там надо тестировать на нескольких браузерах, потому что там глюки плавающие. Там используется ключи и условная компиляция.В приложение включается тестовый скрипт на JS который нажимает на все кнопки снимает скриншоты если нужно. Сравнивает скриншоты если нужно.
Вот вам ответ на вопрос для чего нужны тесты и что писать?
Тут стоит сказать про непрерывную интеграцию. В вебе это принято пришел патч робот написаны для github видит новый патч поднимает тестовый сервер. Тестовый сервер выкачивает проект и собирает его для тестового окружения принимает тестовый код накладывает патч и проводит тесты. Если тесты прошли бот одобряет патч.
Ответ прост интеграционное тестирование.