Jump to content

Разработка через приемочное тестирование

Разработка через приемочное тестирование ( ATDD ) — это методология разработки , основанная на общении между бизнес-заказчиками, разработчиками и тестировщиками. [1] ATDD включает в себя многие из тех же практик, что и спецификация на примере (SBE), [2] [3] развитие, основанное на поведении (BDD), [4] разработка на основе примеров (EDD), [5] и разработка на основе поддержки, также называемая разработкой на основе историй (SDD). [6] Все эти процессы помогают разработчикам и тестировщикам понять потребности клиента до внедрения и позволяют клиентам общаться на языке своей предметной области.

ATDD тесно связан с разработкой через тестирование (TDD). [7] Он отличается упором на сотрудничество разработчиков, тестировщиков и бизнес-клиентов. ATDD включает в себя приемочное тестирование , но уделяет особое внимание написанию приемочных тестов до того, как разработчики начнут писать код.

Приемочные испытания проводятся с точки зрения пользователя – внешнего взгляда на систему. [1] Они исследуют внешне видимые эффекты, такие как определение правильного вывода системы при определенных входных данных. Приемочные тесты могут проверить, как меняется состояние чего-либо, например, заказ меняется с «оплаченного» на «отгруженный». Они также могут проверять взаимодействие с интерфейсами других систем, таких как общие базы данных или веб-сервисы. В общем, они не зависят от реализации, хотя их автоматизация может и не быть такой. [8] [9]

Создание

[ редактировать ]

Приемочные тесты создаются при анализе требований и до кодирования. [1] Они могут разрабатываться совместно отправителем требований (владельцем продукта, бизнес-аналитиком, представителем клиента и т. д.), разработчиком и тестировщиком. Разработчики реализуют систему с помощью приемочных тестов. Неудачные тесты обеспечивают быструю обратную связь о том, что требования не выполняются. Тесты определены в терминах бизнес-доменов. Затем эти термины образуют универсальный язык, которым пользуются клиенты, разработчики и тестировщики. [10] Тесты и требования взаимосвязаны. [11] Требование, не имеющее проверки, может быть реализовано неправильно. Тест, который не ссылается на требование, является ненужным тестом. Приемочное тестирование, разрабатываемое после начала реализации, представляет собой новое требование. [12]

Стратегия тестирования

[ редактировать ]

Приемочные тесты являются частью общей стратегии тестирования. Это пользовательские тесты, которые демонстрируют бизнес-цели системы. Компонентные тесты — это технические приемочные тесты, разработанные архитектором, которые определяют поведение больших модулей. Модульные тесты создаются разработчиком для управления простым в обслуживании кодом. [13] Они часто получаются из приемочных и модульных тестов. Кросс-функциональное тестирование включает в себя тестирование юзабилити, [14] исследовательское тестирование, [15] и тестирование свойств (масштабирование и безопасность). [16]

Критерии приемки и испытания

[ редактировать ]

Критерии приемки — это описание того, что будет проверено с помощью теста. Учитывая такое требование, как «Как пользователь, я хочу получить книгу из библиотеки», критерием принятия может быть «убедиться, что книга помечена как извлеченная». Приемочное тестирование для этого требования дает подробную информацию, чтобы тест можно было каждый раз запускать с одним и тем же эффектом.

Формат теста

[ редактировать ]

Приемочные испытания обычно имеют следующую форму: [1]

Учитывая (настройка)

Определенное состояние системы

Когда (триггер)

Происходит действие или событие

Затем (проверка)

Состояние системы изменилось или был получен выходной сигнал.

Кроме того, можно добавлять операторы, начинающиеся с AND, в любой из разделов ниже («Дано», «Когда», «Тогда»).

Для примера требования шаги могут быть перечислены как:

Given Book that has not been checked out
And User who is registered on the system
When User checks out a book
Then Book is marked as checked out

Полный тест

[ редактировать ]

Предыдущие шаги не включают в себя какие-либо конкретные примеры данных, поэтому они добавляются для завершения теста:

Данный:

Книга, которую не выписали
Книги
Заголовок Выписано
Отличная книга Нет
Пользователь, зарегистрированный в системе
Пользователи
Имя Один

Когда:

Пользователь проверяет книгу
Действие оформления заказа
Пользователь Один Выезд Отличная книга

Затем:

Книга помечена как извлеченная
Книги
Заголовок Выписано Пользователь
Отличная книга Да Один

Тестовый экзамен

[ редактировать ]

Изучение теста с конкретными данными обычно приводит к множеству вопросов. Для примера это могут быть:

  • Что делать, если книга уже извлечена?
  • Что делать, если книги не существует?
  • Что делать, если пользователь не зарегистрирован в системе?
  • Есть ли дата, когда книгу нужно будет сдать?
  • Сколько книг может получить пользователь?

Эти вопросы помогают выявить недостающие или неоднозначные требования. К ожидаемому результату можно добавить дополнительные сведения, такие как срок выполнения. Другие приемочные тесты могут проверить, что такие условия, как попытка извлечь книгу, которая уже извлечена, приводят к ожидаемой ошибке.

Еще один тестовый пример

[ редактировать ]

Предположим, что бизнес-клиент хочет ввести бизнес-правило, согласно которому пользователь может брать только одну книгу за раз. Следующий тест покажет, что:

Сценарий: Проверьте, соблюдается ли бизнес-правило оформления заказа

Данный:

Книга, которая была извлечена
Книги
Заголовок Выписано Пользователь
Отличная книга Да Один
Еще одна отличная книга Нет
Пользователи
Имя
Один

Когда:

Пользователь проверяет другую книгу
Действие оформления заказа
Пользователь Один Выезд Еще одна отличная книга

Затем:

Возникла ошибка
Произошла ошибка
Описание
Нарушение бизнес-правила кассы

Приемочные испытания проекта

[ редактировать ]

Помимо приемочных испытаний требований, приемочные испытания можно использовать для проекта в целом. [1] Например, если бы это требование было частью проекта по проверке книг в библиотеке, приемочные испытания могли бы проводиться для всего проекта. Их часто называют целями SMART . Пример теста: «Когда новая библиотечная система будет запущена в эксплуатацию, пользователи смогут загружать и выдавать книги в три раза быстрее, чем сегодня».

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и Пью, Кен (2011). Lean-Agile-разработка на основе приемочного тестирования: лучшее программное обеспечение благодаря сотрудничеству . Аддисон-Уэсли. ISBN  978-0321714084 .
  2. ^ Аджич, Гойко. (2009) Преодоление разрыва в общении: спецификация на примере и гибкое приемочное тестирование , Neuri Limited,
  3. ^ Аджич, Гойко (2011). Спецификация на примере: как успешные команды создают правильное программное обеспечение . Мэннинг. ISBN  978-0-321-27865-4 .
  4. ^ Челимский, Дэвид, Дэйв Астелс, Зак Деннис, Аслак Хеллесой, Брайан Хелмкамп и Дэн Норт. Книга RSpec: Разработка, основанная на поведении, с RSpec, Cucumber и друзьями. Прагматичная книжная полка.
  5. ^ «Примерный дизайн» . Проверено 15 апреля 2013 г.
  6. ^ «История разработки через тестирование» (PDF) . Проверено 15 апреля 2013 г.
  7. ^ Бек, Кент. Разработка через тестирование: на примере. Аддисон-Уэсли Профессионал, 2002.
  8. ^ Мельник, Григори и Франк Маурер. Мельник, Григорий; Маурер, Франк (2007). «Множественные перспективы разработки, основанной на приемочном тестировании исполняемых файлов». Гибкие процессы в программной инженерии и экстремальном программировании . Конспекты лекций по информатике. Том. 4536. стр. 245–249. дои : 10.1007/978-3-540-73101-6_46 . ISBN  978-3-540-73100-9 .
  9. ^ Коскела, Лассе. (2007) Test Driven: TDD и Acceptance TDD для разработчиков Java. Публикации Мэннинга
  10. ^ Эванс, Эрик. (2003) Доменно-ориентированный дизайн: решение проблем в сердце программного обеспечения . Аддисон-Уэсли Профессионал.
  11. ^ Вайнберг, Джеральд ; Гаус, Дональд (1989). Изучение требований: качество прежде проектирования . Дорсет Хаус. ISBN  0-932633-13-7 .
  12. ^ Мартин, Роберт С. и Григорий Мельник. «Тесты и требования, Требования и тесты: Лента Мёбиуса» (PDF) . Проверено 15 апреля 2013 г.
  13. ^ [Разработка через тестирование]
  14. ^ Месарос, Джерард и Дженис Астон. (2006) «Добавление юзабилити-тестирования в гибкий проект». Гибкая конференция
  15. ^ «Описание исследовательского тестирования» (PDF) .
  16. ^ Месарос, Джерард. (2007) Тестовые шаблоны xUnit: рефакторинг тестового кода . Аддисон-Уэсли.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ff8ec3d83258fe1159e3e63a20977ab5__1654222080
URL1:https://arc.ask3.ru/arc/aa/ff/b5/ff8ec3d83258fe1159e3e63a20977ab5.html
Заголовок, (Title) документа по адресу, URL1:
Acceptance test-driven development - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)