-
Notifications
You must be signed in to change notification settings - Fork 10
/
index.html
314 lines (296 loc) · 15.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
---
layout: homepage
title: "Specification by Example | Concordion"
description: "By blending specification and checking of your software into executable specifications, Concordion creates beautiful living documentation."
sitemap:
priority: 1.0
redirect_from:
- "/dotnet/"
---
<section id="homepage-hero">
<div class="container">
<div class="row">
<div class="hero-heading col m8 offset-m4 l5 offset-l7">
<h1 class="white-text text-shadow">Concordion brings your software delivery team together around living documentation</h1>
</div>
<div class="cta-buttons col m8 offset-m4 l5 offset-l7 s12">
<div class="button-wrapper">
<a href="{{site.baseurl}}/tutorial/java/markdown" class="btn btn-large waves-effect waves-light">Get started</a>
</div>
</div>
</div>
</div>
<div class="background">
<img class="background-placeholder" id="home-background" onload="backgroundLoaded(this.id)" src="{{site.baseurl}}/img/hero.jpg" alt="Software Delivery Team"/>
</div>
</section>
<section class="section-separator white">
<div class="arrow-wrapper">
<div class="fill half left">
<div class="fill arrow"></div>
</div>
<div class="fill half right">
<div class="fill arrow"></div>
</div>
</div>
</section>
<section id="overview">
<div class="container">
<div class="row">
<h2>By blending specification and checking of your software into executable specifications, Concordion creates beautiful living documentation</h2>
<img src="{{ site.baseurl }}/img/main-example-output.png" alt="Concordion screenshot"/>
</div>
</div>
</section>
<section class="section-separator grey">
<div class="arrow-wrapper">
<div class="fill half left">
<div class="fill arrow"></div>
</div>
<div class="fill half right">
<div class="fill arrow"></div>
</div>
</div>
</section>
<section id="benefits">
<div class="container">
<div class="row">
<div class="col s12">
<p class="typed"><span>Concordion is for </span><span id="typed-text"></span></p>
</div>
</div>
<div id="stop-scrolling" class="row">
<div class="col l3 m6 s12 center-align">
<a id="btn-project-stakeholders" class="btn btn-large btn-light waves-effect waves-light active" onclick="ga('send', 'event', 'Benefits', 'click', 'Stakeholders');">Stakeholders</a>
</div>
<div class="col l3 m6 s12 center-align">
<a id="btn-business-analysts" class="btn btn-large btn-light waves-effect waves-light" onclick="ga('send', 'event', 'Benefits', 'click', 'Analysts');">Analysts</a>
</div>
<div class="col l3 m6 s12 center-align">
<a id="btn-developers" class="btn btn-large btn-light waves-effect waves-light" onclick="ga('send', 'event', 'Benefits', 'click', 'Developers');">Developers</a>
</div>
<div class="col l3 m6 s12 center-align">
<a id="btn-testers" class="btn btn-large btn-light waves-effect waves-light" onclick="ga('send', 'event', 'Benefits', 'click', 'Testers');">Testers</a>
</div>
</div>
</div>
<div class="benefits-wrapper">
<div id="project-stakeholders" class="container benefit-section">
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Get it right, first time</h4>
<p class="flow-text">By discussing specifications with examples up-front, your team will get it right first time more often, and discover early where uncertainty exists, leading to releases that are more predictable and reliable.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-icon-tick.png" alt="Tick icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 push-m4 s12">
<h4>Check it frequently</h4>
<p class="flow-text">Through automated checking of the examples on each change, developers build code that is fit for purpose. Regressions are detected and fixed during development, reducing the waste of the rework cycle.</p>
</div>
<div class="col m4 pull-m8 s12 icon">
<img src="./img/benefit-icon-swirl.png" alt="Loop icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>See what's working</h4>
<p class="flow-text">Concordion's living documentation is generated whenever the checks are run so it's easy to be up to date. Examples are highlighted inline to show their functional status. See the progress as the team implement behaviour and turn the specification green.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-checking-off.png" alt="Checking off list icon"/>
</div>
</div>
</div>
<div id="business-analysts" class="container benefit-section">
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Easily create engaging content</h4>
<p class="flow-text">The specifications are easy-to-write, and produce attractive output that is easy-to-read. Unlike other tools, Concordion provides the flexibility to use natural language and format the living documentation however you wish.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-engaging-content.png" alt="Engaging content icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 push-m4 s12">
<h4>Specs stay up-to-date</h4>
<p class="flow-text">Co-create specifications that are kept up-to-date and used by the whole team. By storing the specs in version control with the source code, they follow the same lifecycle as the system they are describing.</p>
</div>
<div class="col m4 pull-m8 s12 icon">
<img src="./img/benefit-icon-star.png" alt="Star icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Build trust in the specifications</h4>
<p class="flow-text">Since the examples are checked on each change, deviations between the specification and the system are detected. The specifications become trusted as an accurate source of reference.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-icon-doc-tick.png" alt="Document icon"/>
</div>
</div>
</div>
<div id="developers" class="container benefit-section active">
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Know when you're done</h4>
<p class="flow-text">By automating examples, they become checks to let you know when you are "done" with a feature. Writing the checks first will let you test-drive your code, guiding the design of your domain model.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-icon-doc-progress.png" alt="Progress icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 push-m4 s12">
<h4>Simple to learn, easy to integrate</h4>
<p class="flow-text">The small command-set has a short learning-curve. Automated checks run as JUnit or NUnit tests, providing easy integration to your current development, build and Continuous Integration tools.</p>
</div>
<div class="col m4 pull-m8 s12 icon">
<img src="./img/benefit-links.png" alt="Links icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Easy to extend</h4>
<p class="flow-text">Concordion's extension mechanism opens up a world of possibilities, allowing you to easily add new features and customise the specifications.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-icon-plane.png" alt="Flexible icon"/>
</div>
</div>
</div>
<div id="testers" class="container benefit-section">
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Build quality in</h4>
<p class="flow-text">Being involved in the discussion of examples prior to development, your critical thinking skills help prevent bugs from being introduced in the first place.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-icon-hand.png" alt="Build quality in icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 push-m4 s12">
<h4>Everyone can understand the checks</h4>
<p class="flow-text">Since the automated checks are written in plain language, everyone can understand them. It's easy to add screenshots and logging details to report what the checks are doing, making debugging easier.</p>
</div>
<div class="col m4 pull-m8 s12 icon">
<img src="./img/benefit-icon-clipboard.png" alt="Clipboard icon"/>
</div>
</div>
<div class="row valign-wrapper">
<div class="col m8 s12">
<h4>Better quality into test</h4>
<p class="flow-text">By checking behaviour during development, the quality delivered to test is higher and you can see which examples are working. With less manual checking to do, you can focus more on exploratory testing.</p>
</div>
<div class="col m4 s12 icon">
<img src="./img/benefit-icon-3-stars.png" alt="3 stars icon"/>
</div>
</div>
</div>
</div>
</section>
<section class="section-separator white">
<div class="arrow-wrapper">
<div class="fill half left">
<div class="fill arrow"></div>
</div>
<div class="fill half right">
<div class="fill arrow"></div>
</div>
</div>
</section>
<section id="documentation">
<div class="container about">
<div class="row">
<div class="col s12">
<h2 class="center-align">Create attractive, flexible documentation</h1>
<p class="flow-text">Concordion specifications use an attractive stylesheet that makes them easy to read. You can utilise the power of HTML with features such as hyperlinks and images to make the pages even more useful.</p>
</div>
</div>
<div class="row center-align">
<div class="col s12 m6 l4">
<div class="card medium grey lighten-3">
<div class="card-image">
<img src="{{ site.baseurl }}/img/intro-pass-fail1.png" alt="Spec with passing and failing test"/>
</div>
<div class="card-content">
<span class="card-title">Clear Results</span>
<p>Examples are highlighted to show the passing and failing assertions.</p>
<p>On failure the expected and actual values are clearly shown.</p>
</div>
</div>
</div>
<div class="col s12 m6 l4">
<div class="card medium grey lighten-3">
<div class="card-image">
<img src="{{ site.baseurl }}/img/intro-table.png" alt="Spec with table"/>
</div>
<div class="card-content">
<span class="card-title">Tables</span>
<p>When you want to show several examples of a behaviour, tables provide a concise alternative to repeating the same sentence.</p>
<p>You can also verify a list of results against a table.</p>
</div>
</div>
</div>
<div class="col s12 m6 l4">
<div class="card medium grey lighten-3">
<div class="card-image">
<img src="{{ site.baseurl }}/img/intro-index.png" alt="Spec with index"/>
</div>
<div class="card-content">
<span class="card-title">Indexes</span>
<p>Link to other specifications to run them, with colour-coded output showing success, failure or ignored status. The pages can be nested to form a hierarchical index, with aggregated results.</p>
</div>
</div>
</div>
<div class="col s12 m6 l4">
<div class="card medium grey lighten-3">
<div class="card-image">
<img src="{{ site.baseurl }}/img/intro-screenshot.png" alt="Spec with screenshot"/>
</div>
<div class="card-content">
<span class="card-title">Screenshots</span>
<p>Extensions such as <b>screenshot</b> and <b>storyboard</b> add screenshots and text cards to your specification output, providing confidence in the test implementation and insight into issues.</p>
</div>
</div>
</div>
<div class="col s12 m6 l4">
<div class="card medium grey lighten-3">
<div class="card-image">
<img src="{{ site.baseurl }}/img/intro-stack-trace.png" alt="Spec with stack trace"/>
</div>
<div class="card-content">
<span class="card-title">Stack Traces</span>
<p>When exceptions occur, the stack trace is available at the click of a button, right inside the specification.</p>
</div>
</div>
</div>
<div class="col s12 m6 l4">
<div class="card medium grey lighten-3">
<div class="card-image">
<img src="{{ site.baseurl }}/img/intro-breadcrumbs.png" alt="Spec with breadcrumb links at top"/>
</div>
<div class="card-content">
<span class="card-title">Breadcrumbs</span>
<p>To make it easier to navigate around the results, breadcrumbs are automatically added to output.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="call-to-action">
<div class="container about">
<div class="row">
<div class="next-action-button right">
<div class="button-wrapper">
<a href="{{site.baseurl}}/tutorial/java/markdown" class="btn btn-large waves-effect waves-light">Get started<i class="material-icons right">chevron_right</i></a>
</div>
</div>
</div>
</div>
</section>