Конкордеон

Спецификация по примеру фреймворка
Конкордеон
Оригинальный автор(ы)Дэвид Петерсон
Разработчик(и)Найджел Чарман и др.
Стабильный релиз
3.0.1 / 4 июля 2020 г. ; 4 года назад ( 2020-07-04 )
Репозиторий
  • github.com/concordion/concordion
Написано вJava , .NET
Операционная системаКроссплатформенный
ТипСпецификация по примеру инструмента
ЛицензияЛицензия Apache 2.0
Веб-сайтconcordion.org

Concordion — это фреймворк спецификаций по примерам, изначально разработанный Дэвидом Петерсоном [1] и в настоящее время поддерживаемый командой разработчиков [2] во главе с Найджелом Чарманом.

Вдохновленный Fit Framework , Дэвид утверждает, что при создании Concordion были поставлены следующие цели: [3]

  • Улучшение читаемости документов
  • Более «упрямый» (написание сценариев активно не приветствуется)
  • Проще в использовании

Как это работает

Спецификации Concordion пишутся в Markdown, HTML или Excel [4] , а затем инструментируются специальными ссылками, атрибутами или комментариями соответственно. Когда запускается соответствующий класс тестового приспособления, Concordion интерпретирует инструментарий для выполнения теста. Вместо того чтобы заставлять владельцев продукта указывать требования на специально структурированном языке, Concordion позволяет вам писать их на обычном языке, используя абзацы, таблицы и правильную пунктуацию. Это делает спецификации гораздо более естественными для чтения и написания и помогает всем понять и договориться о том, что должна делать функция. [5]

Файлы Markdown, HTML или Excel обычно хранятся вместе с исходным кодом, что дает то преимущество, что они могут находиться в той же системе контроля версий, что и остальной код, гарантируя, что спецификация и тесты будут разветвлены и объединены с основным исходным кодом.

Concordion включает гибкий механизм расширения [6] для добавления функциональности, например, внедрения новых команд, прослушивания событий или изменения выходной документации. Предоставляя функциональность, такую ​​как встраивание скриншотов, [7] раскадровок [8] или ведение журнала выходных данных, [9] расширения обеспечивают уверенность в том, что делает тест, не привязывая его к конкретной реализации. [10]

Concordion обогащает гибкие процессы [11] и успешно применяется в промышленном контексте. [12]

Пример

Спецификация формата Markdown

HelloWorld.md
Перед приборостроением
Приветствие для Мира — Hello World!
После инструментации
Приветствие для [ Мир ]( - "#name" ) - [ Привет, Мир! ]( - "?=greetingFor(#name )")

Спецификация формата HTML

HelloWorld.html
Перед приборостроением
< html >  < body >  < p > Приветствие для < b > Мира </ b > : < b > Привет, мир! </ b ></ p >  </ body > </ html >
После инструментации
< html  xmlns:concordion = "http://www.concordion.org/2007/concordion" >  < body >  < p > Приветствие для < b  concordion:set = "#name" > мира </ b > : < b  concordion:assertEquals = "greetingFor(#name)" > Привет, мир! </ b >  </ p >  </ body > </ html >

Код приспособления

HelloWorldTest.java
Приспособление, работающее с приборами
пакет org.wikipedia ; импорт org.concordion.integration.junit4.ConcordionRunner ;  @RunWith ( ConcordionRunner . class ) публичный класс HelloWorldTest {    public String greetingFor ( String firstName ) { return "Привет " + firstName + "!" ; } }           

Поддержка интегрированной среды разработки

Плагин Concordion Support для интегрированной среды разработки (IDE) IntelliJ IDEA упрощает разработку приспособлений и спецификаций с помощью таких функций, как автодополнение, навигация между спецификациями и тестовыми приспособлениями, переименование, запуск тестов, проверки и быстрые исправления. [13]

Плагин Eclipse (программное обеспечение) Concordion гораздо более ограничен и не обновлялся с 2011 года. [14] Первоначальный автор прекратил использовать Concordion и Eclipse и не может выделить необходимое время для расширения и поддержки плагина. [15]

Порты

Concordion был портирован на другие языки, включая:

Ссылки

  1. ^ Гертнер, Маркус (июль 2012 г.). ATDD на примере: практическое руководство по разработке на основе приемочных испытаний. Addison-Wesley Professional. ISBN 978-0321784155.
  2. ^ "concordion". GitHub . Получено 2016-09-04 .
  3. ^ "Concordion FAQ" . Получено 2 мая 2011 г. ..
  4. ^ "concordion/concordion-excel-extension". GitHub . Получено 2016-09-04 .
  5. ^ Райли, Тим; Гучер, Адам (октябрь 2009 г.). Красивое тестирование: ведущие специалисты рассказывают, как они улучшают программное обеспечение. O'Reilly Media. стр. 350. ISBN 978-0596159818.
  6. ^ "Concordion | Расширения | Java". concordion.org . Получено 2016-09-04 .
  7. ^ "concordion/concordion-screenshot-extension". GitHub . Получено 2016-09-04 .
  8. ^ "concordion/concordion-storyboard-extension". GitHub . Получено 2016-09-04 .
  9. ^ "concordion/concordion-logback-extension". GitHub . Получено 2016-09-04 .
  10. ^ "David Peterson: Concordion Extensions". blog.davidpeterson.co.uk . Архивировано из оригинала 2016-09-11 . Получено 2016-09-04 .
  11. ^ Бессон, Фелипе М.; Бедер, Делано М.; Хаим, Маркос Л. (июнь 2010 г.). «Автоматизированный подход к моделированию и выполнению приемочных веб-тестов». Agile-процессы в программной инженерии и экстремальном программировании . 11-я международная конференция по гибкой разработке программного обеспечения, XP 2010. Тронхейм, Норвегия: Springer Berlin Heidelberg. стр. 160–165. doi :10.1007/978-3-642-13054-0_12.Архивировано 2014-07-18 в Wayback Machine
  12. ^ Латорре, Латорре (2014-06-01). «Успешное применение стратегии разработки через тестирование в промышленной среде». Эмпирическая программная инженерия . 19 (3): 753–773. doi :10.1007/s10664-013-9281-9. S2CID  15196251.
  13. ^ "concordion/idea-concordion-support". GitHub . Получено 2016-09-04 .
  14. ^ "Архив Google Code — долгосрочное хранилище для хостинга проектов Google Code". code.google.com . Получено 2016-09-04 .
  15. ^ "Группы Google". groups.google.com . Получено 2016-09-04 .
  • Официальный сайт
  • Дэвид Петерсон: Concordion 1.3.1 на Wayback Machine (архив 2017-08-31)
  • concordion на GitHub
  • concordion.net на GitHub
Взято с "https://en.wikipedia.org/w/index.php?title=Concordion&oldid=1191380831"