Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Представление приёмочных тестов


Информационный Канал Subscribe.Ru

Мир экстремального программирования

Последние истории из жизни

Как мне помогло модульное тестирование.
Возникла задача сохранения позиций и размеров окон между сессиями. Для этого потребовалось считывать задействованные атрибуты форм и контролов с последующей записью в системном реестре. Правила объектно-ориентированного программирования подсказали, что лучше для этой задачи выделить специальный класс. Так был создан класс WindowStatePersistence, на вход которого передавались ссылка на главную форму приложения и путь к ключу реестра, где будет сохранена информация. Казалось бы, ничего сложного в этом нет, но заставить себя писать модульные тесты всё равно пришлось. Благо, что форма в .Net не обязательно должна отображаться. Это позволило использовать класс Form прямо в тестовых случаях. Первым тестом была проверка сохранения позиции и размера главной формы относительно рабочего стола. Для этого создавался объект класса Form, заполнялось свойство DesctopBounds вымышленными данными. Этот объект передавался классу, отвечающему за сохранение, и инициировалась сама процедура сохранения. Затем создавалась ещё одна форма и производилась процедура считывания. Заключающей была обычная операция сравнения заданной позиции с восстановленной. Ошибки не заставили себя долго ждать, но благодаря наличию модульного теста, они были мгновенно выявлены и исправлены!
Историю поведал Александр Федоренко.

Изучаем методики XP

Представление приёмочных тестов.
В предыдущем уроке мы рассмотрели написание историй пользователя. Но один вопрос остался открытым: "Как определить, что история выполнена именно в том объёме, который требуется заказчику?" В экстремальном программировании наряду с историями пользователя для сбора требований применяются и приёмочные тесты. Они, как никто другой, своевременно укажут на концептуальные ошибки в программе и наметят кратковременные цели для программистов. Приёмочные тесты позволяют заказчику следить за реальностью своих ожиданий и контролировать как новые особенности программы, так и реализованные ранее. Это хорошо работает благодаря накоплению приёмочных тестов и периодическому их выполнению. Рекомендуется строить тесты автоматизированными, хотя для начала достаточным будет формализовать тестовый случай или описать последовательность действий и ожидаемый результат. Каждая история пользователя или, по крайней мере, включённые в очередную итерацию, должны быть дополнены одним или несколькими приёмочными тестами в простом словесном исполнении. Например, история звучит так: "Сформировать бланк заказа на основе выбранных клиентом товаров, указав их перечень с ценой, количеством и суммарной стоимостью всего заказа". Тест может быть записан как: "Добавить три единицы одного товара, две единицы другого и четыре третьего. Проверить соответствие позиций товара, их количества и стоимости в получившемся заказе". Приёмочные тесты, как и тесты модулей, должны быть созданы до начала работы над конкретной историей. Это может быть как момент после создания истории, так и следующая встреча с заказчиком.

Упражнение.

Придумать максимальное число независимых тестовых случаев с возможностью дальнейшей автоматизации для следующей истории: "Заполнение определённого бланка договора данными клиента, такими как фамилия, имя, адрес, банковские реквизиты".

Адресуйте свои решения нам, lessons@xprogramming.com.ua. Будем рады увидеть не только их, но и ваши отзывы и пожелания.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное