summaryrefslogtreecommitdiff
path: root/index.mdwn
blob: d2b9e5e7032e296d790a14691c019f880c8a514c (plain)
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
[[!meta title="Subplot"]]

[[Download]] —
[[Documentation|docs]] —
[[Contact]] —
[[License]] —
[[Blog]]

[[!img subplot.svg class=float_right
   alt="Subplot alpha logo"]]


## Latest from the project

<div class="newslist">
[[!inline pages="page(blog/*)" 
  limit=5 template=titlepage archive=yes trail=no feeds=no]]
</div>


## When all stakeholders really need to understand acceptance criteria

Capture and communicate acceptance criteria for software and systems,
and how they are verified, in a way that's understood by all project
stakeholders.

Subplot is a set of tools for specifying, documenting, and
implementing automated acceptance tests for systems and software.
Subplot tools help produce a human-readable document of acceptance
criteria and a program that automatically tests a system against those
criteria.

Subplot is currently in its ALPHA stage.


## Participate

Subplot is a community project: it is developed by some people who
want to do it. You could help!

* [[Governance]] model
* [[Code of conduct|conduct]]
* [[Architecture]]
* [[Road map|roadmap]]
* [[Definition of success|success]]
* [[Contributing]] to the project
* [[Contact]] the project

Please note that this project is released with a [[Contributor Code of
Conduct|conduct]]. By participating in this project you agree
to abide by its terms.


## Examples

This is a pretty minimal example.

~~~~~{.markdown .numberLines}
---
title: "**echo**(1) acceptance tests"
...

Introduction
=============================================================================

**echo**(1) is a Unix command line tool, which writes its command line
arguments to the standard output. This is a simple acceptance test
suite for the `/bin/echo` implementation.

No arguments
=============================================================================

```scenario
when user runs echo without arguments
then exit code is 0
then standard output contains a newline
then standard error is empty
```

Hello, world
=============================================================================

```scenario
when user runs echo with arguments hello, world
then exit code is 0
then standard output contains "hello, world"
then standard error is empty
```
~~~~~

See actual, working, tested examples:

* The Unix echo command
  ([html](https://examples.subplot.liw.fi/echo.html),
  [PDF](https://examples.subplot.liw.fi/echo.pdf),
  [source](https://gitlab.com/larswirzenius/subplot/-/blob/main/echo.md)).

* A hypothetical JSON store with access control and a web API
  ([html](https://examples.subplot.liw.fi/muck.html),
  [PDF](https://examples.subplot.liw.fi/muck.pdf),
  [source](https://gitlab.com/larswirzenius/subplot/-/blob/main/muck.md)).

* Subplot's own acceptance criteria, a non-trivial example
  ([html](https://examples.subplot.liw.fi/subplot.html),
  [PDF](https://examples.subplot.liw.fi/subplot.pdf),
  [source](https://gitlab.com/larswirzenius/subplot/-/blob/main/subplot.md)).

The [examples][] site may have more examples, if we forget to list
them here. These are generated automatically from the Subplot source
repository by CI, so they're always up to date, and tested as part of
Subplot's CI build, so they always work.

[examples]: https://examples.subplot.liw.fi/

# A bonus kitten

Because you scrolled all the way down.

[[!img kitten.jpg class=float_right
   alt="Kitten being adorable. By Ckahler on English Wikipedia"]]