-
Notifications
You must be signed in to change notification settings - Fork 14
/
slide.html
166 lines (131 loc) · 5.27 KB
/
slide.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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Why we use Cucumber for end-to-end testing?</title>
<style>
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
h1, h2, h3 {
font-weight: 400;
margin-bottom: 0;
}
.remark-slide-content h1 { font-size: 3em; }
.remark-slide-content h2 { font-size: 2em; }
.remark-slide-content h3 { font-size: 1.6em; }
.footnote {
position: absolute;
bottom: 3em;
}
li p { line-height: 1.25em; }
.red { color: #fa0000; }
.large { font-size: 2em; }
a, a > code {
color: rgb(249, 38, 114);
text-decoration: none;
}
code {
background: none repeat scroll 0 0 #F8F8FF;
border: 1px solid #DEDEDE;
border-radius: 3px ;
padding: 0 0.2em;
}
.remark-code, .remark-inline-code { font-family: "Bitstream Vera Sans Mono", "Courier", monospace; }
.remark-code-line-highlighted { background-color: #373832; }
.pull-left {
float: left;
width: 47%;
}
.pull-right {
float: right;
width: 47%;
}
.pull-right ~ p {
clear: both;
}
#slideshow .slide .content code {
font-size: 0.8em;
}
#slideshow .slide .content pre code {
font-size: 0.9em;
padding: 15px;
}
.main-title, .title {
background: #272822;
color: #777872;
text-shadow: 0 0 20px #333;
}
.title h1, .title h2, .main-title h1, .main-title h2 {
color: #f3f3f3;
line-height: 0.8em;
}
/* Custom */
.remark-code {
display: block;
padding: 0.5em;
}
</style>
</head>
<body>
<textarea id="source">
# Why we use Cucumber for end-to-end testing?
Before knowing why we use cucumber for End-to-end testing. Let understand what is end-to-end testing and cucumber
<span style="color:blue">some _blue_ text</span>.
---
## What is End to end testing?
End to end testing (E2E testing) is a software testing method that validates entire software from beginning to end.
The purpose of end-to-end testing is to simulate what a real user scenario and testing whole software for dependencies, data integrity and communication with other systems, interfaces, network connectivity and databases to exercise complete production like scenario.
---
## What is Cucumber?
What is the world said:
> Cucumber is a software tool that supports behavior-driven development (BDD).Central to the Cucumber BDD approach is its ordinary language parser called Gherkin. It allows expected software behaviors to be specified in a logical language that customers can understand. As such, Cucumber allows the execution of feature documentation written in business-facing text. It is often used for testing other software. It runs automated acceptance tests written in a behavior-driven development (BDD) style.
### What is Behavior-driven development?
The world said:
> In software engineering, behavior-driven development (BDD) is an agile software development process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project
BDD is
- specification by example.
- focuses on behavior first
- a refinement of the Agile process, not an overhaul.
- is a paradigm shift
For more detail: https://automationpanda.com/2017/01/25/bdd-101-introducing-bdd/
---
## Why we use Cucumber for end-to-end testing?
Cucumber is following syntax called Gherkin to explain and validate executable specifications written in plain text.
To define Gherkin in a simple way, it is:
- Define test cases as plain text, using Gherkin language.
- It is designed to be non-technical and human-readable, becomes a ubiquitous language between tech and non-tech peoples. And collectively describes use cases relating to a software system.
For example:
```feature
Scenario: Bob applies for a Frontend engineer at Manabie
Given Bob receives the test challenge for Frontend engineer at Manabie
When Bob submits the challenge after complete
Then Manabie reviews his submission
```
Gherkin also has their rule and syntax. As you see Scenario, Given, When, and Then is Gherkin keyword
Each keyword represents each purpose.
As non-technical person, they can understand it well as a plain text with step by step.
- Which they have
- Which they do
- Which they're result
The technical person also has same look, but needs to implement some things to can integrate with our system. It's called step definitions in Cucumber.
In this step, you can use any language to do like JS, Golang, ...
End-to-end testing is not only software testing. But also is documentation, source of truth
That's why cucumber becomes is one of the best choices for us
- Implementation of end-to-end testing quickly with many plugin supports
- Behavior-driven development. Document how the system actually behaves.
- Using Gherkin language supports human-readable easy
## Reference
1. [Cucumber Wiki](<https://en.wikipedia.org/wiki/Cucumber_(software)>)
2. [Behavior-driven development Wiki](https://en.wikipedia.org/wiki/Behavior-driven_development)
3. [Introduce BDD](https://automationpanda.com/2017/01/25/bdd-101-introducing-bdd/)
4. [Cucumber](https://cucumber.io/docs/)
5. [End-to-end testing](https://www.guru99.com/end-to-end-testing.html)
</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js"></script>
<script>
var slideshow = remark.create();
</script>
<script></script>
</body>
</html>