请输入您要查询的百科知识:

 

词条 Concordion
释义

  1. How it works

  2. Example

      Markdown format specification    HTML format specification    The fixture code  

  3. Integrated Development Environment Support

  4. Ports

  5. References

  6. External links

{{Distinguish|Concordian (disambiguation){{!}}Concordian}}{{Infobox software
| name = Concordion
| logo = File:Concordion-logo-web-green.png
| logo size = 150px
| screenshot =
| caption =
| developer = [https://plus.google.com/+ConcordionOrganization/ Concordion Organization]
| latest release version = 2.2.0
| latest release date = {{release date|2018|07|14}}
| status = Active
| programming language = Java, .NET
| operating system = Cross-platform
| genre = Specification by example tool
| license = Apache License 2.0
| website = {{URL|concordion.org}}
}}

Concordion is a specification by example framework originally developed by David Peterson,[1] and now maintained by a team of contributors,[2] led by Nigel Charman.

Inspired by the Fit Framework, David states the following aims were behind Concordion:[3]

  • Improved readability of documents
  • More "opinionated" (scripting is actively discouraged)
  • Easier to use

How it works

Concordion specifications are written in Markdown, HTML or Excel[4] and then instrumented with special links, attributes or comments respectively. When the corresponding test fixture class is run, Concordion interprets the instrumentation to execute the test. Rather than forcing product owners to specify requirements in a specially structured language, Concordion lets you write them in normal language using paragraphs, tables and proper punctuation. This makes the specifications much more natural to read and write, and helps everyone to understand and agree about what a feature is supposed to do.[5]

The Markdown, HTML or Excel files are typically stored with the source code, which has the benefit that they can be under the same version control system as the rest of the code ensuring the specification and tests are branched and merged along with the main source code.

Concordion includes a flexible extension mechanism[6] for adding functionality, for example implementing new commands, listening to events, or modifying the output documentation. By providing functionality such as embedding screenshots,[7] storyboards[8] or logging output,[9] extensions provide confidence in what the test is doing without locking the test into a specific implementation.[10]

Concordion enriches agile processes[11][12] and has been successfully applied in industrial context.[13]

Example

Markdown format specification

al}} | HelloWorld.md
ar | Before instrumentation
ar | After instrumentation

The greeting for [World](- "#name") is [Hello World!](- "?=greetingFor(#name)")

HTML format specification

al}} | HelloWorld.html
ar |Before instrumentation

The greeting for World is Hello World!

ar | After instrumentation

The greeting for World is

Hello World!

The fixture code

HelloWorldTest.java

The fixture that works with the instrumentation

package org.wikipedia;

import org.concordion.integration.junit4.ConcordionRunner;

import org.junit.runner.RunWith;

@RunWith(ConcordionRunner.class)

public class HelloWorldTest {

    public String greetingFor(String firstName) {        return "Hello " + firstName + "!";    }

}

Integrated Development Environment Support

The Concordion Support plugin for the IntelliJ IDEA Integrated development environment (IDE) simplifies development of fixtures and specifications with features including autocompletion, navigation between spec and test fixture, renaming, running tests, inspections and quick fixes.[14]

The Eclipse (software) Concordion plugin is much more limited and hasn't been updated since 2011.[15] The original author has stopped using Concordion and Eclipse and is unable to accommodate the necessary time to extend and maintain the plugin.[16]

Ports

Concordion has been ported to other languages including:

  • C# (Concordion.NET)
  • Python (PyConcordion)
  • Ruby (Ruby-Concordion)

References

1. ^{{cite book |last=Gärtner |first=Markus |date=Jul 2012 |title=ATDD by Example: A Practical Guide to Acceptance Test-Driven Development |url=http://www.pearsoned.co.uk/bookshop/detail.asp?WT.oss=atdd%20by%20example&WT.oss_r=1&item=100000000444627 |publisher=Addison-Wesley Professional |isbn=978-0321784155 }}
2. ^{{Cite web|url=https://github.com/orgs/concordion/people|title=concordion|website=GitHub|access-date=2016-09-04}}
3. ^{{cite web|url = http://www.concordion.org/Questions.html |title = Concordion FAQ |accessdate = May 2, 2011}}.
4. ^{{Cite web|url=https://github.com/concordion/concordion-excel-extension|title=concordion/concordion-excel-extension|website=GitHub|access-date=2016-09-04}}
5. ^{{cite book |last=Riley |first=Tim |last2=Goucher |first2=Adam |date=October 2009 |title=Beautiful Testing: Leading Professionals Reveal How They Improve Software |url=http://shop.oreilly.com/product/9780596159825.do |publisher=O'Reilly Media |page=350 |isbn=978-0596159818 }}
6. ^{{Cite web|url=http://concordion.org/extensions/java/markdown/|title=Concordion {{!}} Extensions {{!}} Java|website=concordion.org|access-date=2016-09-04}}
7. ^{{Cite web|url=https://github.com/concordion/concordion-screenshot-extension|title=concordion/concordion-screenshot-extension|website=GitHub|access-date=2016-09-04}}
8. ^{{Cite web|url=https://github.com/concordion/concordion-storyboard-extension|title=concordion/concordion-storyboard-extension|website=GitHub|access-date=2016-09-04}}
9. ^{{Cite web|url=https://github.com/concordion/concordion-logback-extension|title=concordion/concordion-logback-extension|website=GitHub|access-date=2016-09-04}}
10. ^{{Cite web|url=http://blog.davidpeterson.co.uk/2011/01/concordion-extensions.html|title=David Peterson: Concordion Extensions|website=blog.davidpeterson.co.uk|access-date=2016-09-04}}
11. ^{{cite conference |title=An Automated Approach for Acceptance Web Test Case Modeling and Executing |last1=Besson |first1=Felipe M. |last2=Beder |first2=Delano M. |last3=Chaim |first3=Marcos L. |date=June 2010 |conference=11th International Conference on Agile Software Development, XP 2010 |conferenceurl=http://xp2010.org/ |publisher=Springer Berlin Heidelberg |booktitle=Agile Processes in Software Engineering and Extreme Programming |pages=160–165 |location=Trondheim, Norway|doi=10.1007/978-3-642-13054-0_12 }}
12. ^{{cite journal |last=Kamalrudin |first=Massila |last2=Sidek |first2=Safiah |last3=Moketar |first3=Nor Aiza |last4=Robinson |first4=Mark |date=2013 |title=Automated Acceptance Testing Tools Evaluation in Agile Software Development |url=http://service6.org/download/15507 |journal=Science International |volume=ISSN 1013-5316 |issue=CODEN: SINTE 8 |pages=1053–58 |doi=}}
13. ^{{Cite journal |last=Latorre |first=Latorre |date=2014-06-01 |title=A successful application of a Test-Driven Development strategy in the industrial environment |url=https://www.researchgate.net/publication/257208780 |journal=Empirical Software Engineering |volume=19 |issue=3 |pages=753–773 |doi=10.1007/s10664-013-9281-9}}
14. ^{{Cite web|url=https://github.com/concordion/idea-concordion-support|title=concordion/idea-concordion-support|website=GitHub|access-date=2016-09-04}}
15. ^{{Cite web|url=https://code.google.com/archive/p/concordion-eclipse/|title=Google Code Archive - Long-term storage for Google Code Project Hosting.|website=code.google.com|access-date=2016-09-04}}
16. ^{{Cite web|url=https://groups.google.com/d/msg/concordion/F-16dOWgwBg/LqbOCS_RBQAJ|title=Google Groups|website=groups.google.com|access-date=2016-09-04}}

External links

  • {{Official website|www.concordion.org}}
  • David Peterson
  • [https://github.com/concordion/concordion Github repository]
  • [https://github.com/bodar/yatspec YatSpec] - a Java testing framework that supersedes Concordion

1 : Programming languages

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/11 5:54:17