Поведение является управляемой разработкой о дизайне или анализе?

От PEP 8:

Конвенции для записи хороших строк документации (иначе "docstrings") увековечены в PEP 257.

  • docstrings Записи для всех общедоступных модулей, функций, классов и методов. Docstrings не необходим для непубличных методов, но у Вас должен быть комментарий, который описывает то, что делает метод. Этот комментарий должен появиться после строки "определения".
  • PEP 257 описывает хорошие docstring конвенции. Обратите внимание, что самое главное," "" который заканчивает мультилинию, docstring должен быть на строке отдельно, и предпочтительно предшествовавший пустой строкой.
  • Для docstrings лайнера, это должно хорошо сохранить закрытие" "" на той же строке.

5
задан Sandeep G B 26 April 2011 в 11:54
поделиться

6 ответов

Короче говоря, это связано с Анализом .

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

Когда я работал с Jbehave, мы использовали его на уровне пользовательской истории и по-прежнему использовали «обычную» TDD для обработки взаимодействия между отдельными объектами и между подсистемами.

Обычно бизнес-системы используют сценарии BDD для описания бизнеса доменное поведение, чтобы не тестировать крошечные детали реализации внутри системы. Вы хотите, чтобы сценарии BDD были представлены на уровне абстракции эксперта в предметной области. Эти сценарии не имели бы особого смысла для экспертов в предметной области и были бы очень хрупкими, если бы описывали каждую мельчайшую деталь реализации.

6
ответ дан 18 December 2019 в 14:48
поделиться

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

Таким образом, BDD не может быть связан с дизайном, BDD предназначен для тестирования функций / историй / сценариев, BDD ближе к анализу.

2
ответ дан 18 December 2019 в 14:48
поделиться

Я думаю, что с точки зрения архитектуры POV BDD был бы о дизайне. Мне нужно разработать приложение, которое может что-то делать, которое позже будет использовано при приемочном тестировании. Итак, исходя из дизайна высокого уровня, я хочу убедиться, что я проектирую с учетом различных требований к поведению, чтобы не переоценивать дизайн и ограничивать дублирование.

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

1
ответ дан 18 December 2019 в 14:48
поделиться

BDD (или TDD, если на то пошло) не t о ни о чем. Это метод (в случае BDD, скорее подход), который поддерживает анализ и проектирование (а также этот надоедливый маленький этап реализации). Вы часто слышите фразу «красный, зеленый, рефакторинг», связанную с TDD, и поэтому она применима к BDD: создайте тест и увидите, что он не прошел, выполните тест, обновив кодовую базу, затем переделайте систему в улучшенную форму, пока вы сохраняете прохождение тестов.

Итак, BDD поддерживает анализ при создании тестов: вы должны описывать требуемое поведение в форме тестов или примеров. Он поддерживает дизайн при запуске тестов: ваши проектные решения не могут непреднамеренно нарушить требуемое поведение и могут быть основаны на анализе. Но он не делает за вас никакого анализа или дизайна; тебе еще нужно подумать. Это способ убедиться, что на этапах анализа и проектирования вы не противоречите себе.

1
ответ дан 18 December 2019 в 14:48
поделиться

BDD и даже TDD имеют очень неудачное название, потому что оно фактически не охватывает то, для чего они используются.

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

BDD / TDD: любой из двух подходов хорош, если вы не напишите ни строчки кода, прежде чем у вас появится фрагмент кода, описывающий фрагмент кода, который вы собираетесь написать. Так вы попадете в зону.
Хотя нет никаких доказательств того, что BDD / TDD улучшит вашу скорость разработки (скорее всего, не будет), это значительно снизит количество проблем, которые вы получите после выпуска проверенного программного обеспечения.

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

BDD - это не только дизайн, но и анализ, но я не думаю, что это ваш вопрос? Вы хотите знать, как преобразовать истории в блок-схемы и архитектурные диаграммы?

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

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

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

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

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

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

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

Я завершил этот незавершенный пункт, а затем взял следующий и начал заново.

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

Я завершил этот незавершенный пункт, а затем взял следующий и начал заново.

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

1
ответ дан 18 December 2019 в 14:48
поделиться

Хотя я в целом согласен с подходом «не версии сгенерированных файлов», у нас есть проблемы с ним, и мы должны вернуться к нему.

Примечание: меня также интересуют VonC. ответ , особенно по поводу пункта «Включите Eclipse за несколько минут». Но для нас это не имеет решающего значения.

Наш контекст - Eclipse + Maven с использованием подключаемого модуля m2eclipse. У нас есть общая среда разработки, с максимально общими каталогами. Но иногда случается, что кто-то пробует подключаемый модуль, или изменяет мелочи в конфигурации, или импортирует вторую рабочую область для другой ветки ...

Наша проблема в том, что генерация .project выполняется при импорте файла проект в Eclipse, но он не во всех случаях обновляется позже . Это грустно, и, вероятно, не навсегда, поскольку плагин m2eclipse улучшится, но сейчас это правда. Таким образом, мы получаем разные конфигурации. Сегодня у нас было следующее: несколько сущностей были добавлены ко многим проектам на какой-то машине, которые затем вели себя по-другому : - (

Единственное решение, которое мы видим, - это версия файла .project (чтобы избежать рисков, мы сделаем то же самое для .classpath и .settings). Таким образом, когда один разработчик изменяет свой pom, локальные файлы обновляются с помощью m2eclipse, все они фиксируются вместе, и другие разработчики будут видеть все изменения.

Примечание: в нашем случае мы используем относительные имена файлов, поэтому у нас нет проблем с тем, чтобы поделиться этими файлами.

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


Я также понравилось:

  • Богатый продавец ' Развитие - ... в построении ...

    Развитие в этом случае указывает мне, что анализ был проведен, и что-то реализуется в контексте определенного поведения.

    так что, чтобы ответить на Вопрос, я полагаю, это в Design .

2
ответ дан 18 December 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: