Spec-Zone.ru › Yii 2.0

Тестирование

  1. Разработка с использованием тестов
  2. Когда и как проводить тестирование
  3. Дополнительные материалы для чтения

Тестирование является важной частью разработки программного обеспечения. Сознаём мы это или нет, мы постоянно проводим тестирование. Например, когда мы пишем класс на PHP, мы можем отлаживать его по шагам или просто использовать echo или die операторы, чтобы проверить, соответствует ли реализация первоначальному плану. В случае веб-приложения мы вводим тестовые данные в формы, чтобы убедиться, что страница взаимодействует с нами так, как ожидается.

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

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

Разработка с применением подходов Test-Driven Development (TDD) и Behavior-Driven Development (BDD) заключается в описании поведения фрагмента кода или целой функции как набора сценариев или тестов до написания фактического кода, а затем только создании реализации, которая позволяет этим тестам пройти, подтверждая, что достигнуто желаемое поведение.

Процесс разработки функции следующий:

  • Создайте новый тест, описывающий функцию, подлежащую реализации.
  • Запустите новый тест и убедитесь, что он завершается неудачей. Это ожидается, так как реализации ещё нет.
  • Напишите простой код, чтобы заставить новый тест пройти.
  • Запустите все тесты и убедитесь, что все они пройдены.
  • Улучшите код и убедитесь, что тесты всё ещё работают.

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

Совет: Если вы чувствуете, что тратите много времени на множество мелких и простых итераций, попробуйте охватить больше своей тестовой сценарием, чтобы сделать больше до повторного выполнения тестов. Если вы слишком много отлаживаете, попробуйте сделать наоборот.

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

Итак, преимущества такого подхода можно сформулировать следующим образом:

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

В долгосрочной перспективе это, как правило, даёт хороший эффект экономии времени.

Совет: Если вы хотите узнать больше о принципах сбора требований к программному обеспечению и моделирования предметной области, полезно изучить Domain Driven Development (DDD).

Когда и как проводить тестирование

Хотя описанный выше подход «сначала тесты» имеет смысл для долгосрочных и относительно сложных проектов, он может быть излишним для более простых проектов. Есть некоторые признаки того, когда он подходит:

  • Проект уже большой и сложный.
  • Требования к проекту начинают усложняться. Проект постоянно растёт.
  • Проект предназначен для долгосрочной работы.
  • Стоимость сбоя слишком высока.

Нет ничего плохого в создании тестов, охватывающих поведение существующей реализации.

  • Проект является устаревшим и должен быть постепенно обновлён.
  • У вас есть проект для работы, и в нём нет тестов.

В некоторых случаях любая форма автоматизированного тестирования может быть излишней:

  • Проект простой и не становится более сложным.
  • Это разовый проект, над которым больше не будут работать.

Тем не менее, если у вас есть время, автоматизация тестирования в этих случаях также полезна.

Дополнительные материалы для чтения

  • Test Driven Development: By Example / Kent Beck. ISBN: 0321146530.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-test-overview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API