summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/docs/intro-video-transcript.md
blob: b43ebf728fc2340420827be04e17b884015daf1f (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
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
# "Introduction to WPT" video transcript

<iframe
  width="560"
  height="315"
  src="https://www.youtube.com/embed/zuK1uyXPZS0"
  frameborder="0"
  allow="autoplay; encrypted-media"
  allowfullscreen></iframe>

**Still image of the WPT logo. The song ["My
Luck"](http://brokeforfree.bandcamp.com/track/my-luck) by [Broke for
Free](http://brokeforfree.com/) (licensed under [Creative Commons Attribution
3.0](https://creativecommons.org/licenses/by/3.0/))
plays in the background.**

> Hello, and welcome to the Web Platform Tests!
>
> The goal of this project is to ensure that all web browsers present websites
> in exactly the way the authors intended.
>
> But what is the web platform, exactly? You can think of it as having three
> main parts.

**A top-down shot of a blank sheet of graph paper**

> First, there are the web browsers.

A hand places a paper cutout depicting a browser window in the lower-right
corner of the sheet.

> Applications like Firefox, Chrome, and Safari allow people to interact with
> pages and with each other.
>
> Second, there are the web standards.

A hand places a paper cutout depicting a scroll of parchment paper in the
lower-left corner of the sheet.

> These documents define how the browsers are supposed to behave.

**A screen recording of a web browser**

`https://platform.html5.org` is entered into the location bar, and the browser
loads the page.

> That includes everything from how text is rendered to how augmented reality
> apps are built. Specifying it all takes a lot of work!

The browser clicks through to the Fetch standard and begins scrolling.

> And as you might expect, the standards can get really complicated.

**Return to the graph paper**

A hand draws an arrow from the cutout of the scroll to the cutout of the
browser window.

> The people who build the browsers use the specifications as a blue print for
> their work. A shared set of generic instructions like these make it possible
> for people to choose between different browsers, but only if the browsers get
> it right.

A hand places a cutout representing a stack of papers on the top-center of the
sheet and draws an arrow from that cutout to the cutout of the browser window.

> To verify their work, the browser maintainers rely on the third part of the
> web platform: conformance tests.

A hand draws an arrow from the cutout of the scroll to the cutout of the tests.

> We author tests to describe the same behavior as the standards, just
> formatted in a way that a computer can understand.

A hand draws an arrow from the cutout of the browser window to the cutout of
the scroll.

> In the process, the maintainers sometimes uncover problems in the design of
> the specifications, and they recommend changes to fix them.

A hand draws an arrow from the cutout of the tests to the cutout of the scroll.

> Test authors also find and fix these so-called "spec bugs."

A hand draws an arrow from the cutout of the browser window to the cutout of
the tests.

> ...and as they implement the standards, the maintainers of each browser
> frequently write new tests that can be shared with the others.
>
> This is how thousands of people coordinate to build the cohesive programming
> platform that we call the world wide web. The web-platform-tests project is
> one of the test suites that make this possible.
>
> That's pretty abstract, though! Let's take a quick look at the tests
> themselves.

**A screen recording of a web browser**

`http://wpt.live` is entered into the location bar, and the browser loads the
page.

> The latest version of the tests is publicly hosted in executable form on the
> web at wpt.live.

The browser begins scrolling through the enormous list of directories.

> There, were can navigate among all the tests for all the different web
> technologies.
>
> Let's take a look at a typical test.

The browser stops scrolling, and a mouse cursor clicks on `fetch`, then `api`,
then `headers`, and finally `headers-basic.html`.

> This test is written with the web-platform-tests's testing framework,
> testharness.js. The test completes almost instantly, and testharness.js
> reports that this browser passes all but one subtest. To understand the
> failure, we can read the source code.

The mouse opens a context menu, selects "View Source", and scrolls to the
source of the failing test.

> It looks like the failing subtest is for what happens when a `Headers`
> instance has a custom JavaScript iterator method. That's a strange edge case,
> but it's important for browsers to agree on every detail!

The mouse clicks on the browser's "Back" button and then navigates through the
directory structure to the test at
`css/css-transforms/transform-transformed-tr-contains-fixed-position.html`. It
displays text rendered at an angle.

> Many tests don't use testharness.js at all. Let's take a look at a couple
> other test types.
>
> When it comes to the visual appearance of a page, it can be hard to verify
> the intended behavior using JavaScript alone. For these situations, the
> web-platform-tests uses what's known as a reftest.
>
> Short for "reference test", this type of test uses at least two different web
> pages.
>
> The first page demonstrates the feature under test.

The mouse opens a context menu, selects "View Source", and clicks on the `href`
value for the matching reference. It looks identical to the previous page.

> Inside of it, we'll find a link to a second page. This second page is the
> reference page. It's designed to use a different approach to produce the same
> output.

The mouse clicks back and forth between the browser tabs displaying the test
page and the reference page.

> When tests like these are run automatically, a computer verifies that
> screenshots of the two pages are identical.

The mouse clicks on the browser's "Back" button and then navigates through the
directory structure to the test at
`css/css-animations/animation-fill-mode-002-manual.html`. The page includes the
text, "Test passes if there is a filled color square with 'Filler Text', whose
color gradually changes in the order: YELLOW to GREEN." It also includes the
described animated square.

> Even with testharness.js and reftests, there are many web platform features
> that a computer can't automatically verify. In cases like these, we fall back
> to using manual tests.
>
> Manual tests can only be verified by a living, breathing human. They describe
> their expectations in plain English so that a human operator can easily
> determine whether the browser is behaving correctly.

`https://web-platform-tests.org` is entered into the location bar, and the
browser loads the page.

> You can read more about all the test types in the project documentation at
> [web-platform-tests.org](https://web-platform-tests.org).

`https://wpt.fyi` is entered into the location bar, and the browser loads the
page.

> [wpt.fyi](https://wpt.fyi) is a great way to see how today's browsers are
> performing on the web-platform-tests.

The browser scrolls to `fetch`, and a mouse cursor clicks on `fetch`, then
`api`, then `headers`, and finally `headers-basic.html`.

> Here, you'll find all the same tests, just presented with the results from
> various browsers.

`https://web-platform-tests.live/LICENSE.md` is entered into the location bar,
and the browser loads the page.

> The web-platform-tests project is free and open source software. From bug
> reports to documentation improvements and brand new tests, we welcome all
> sorts of contributions from everyone.

`https://github.com/web-platform-tests/wpt` is entered into the location bar,
and the browser loads the page.

> To get involved, you can visit the project management website hosted on
> GitHub.com.

The browser navigates to the project's "issues" list and filters the list for
just the ones labeled as "good first issue."

> Some issues are more difficult than others, but many are perfect for people who
> are just getting started with the project. When we come across an issue like
> that, we label it as a "good first issue."

`https://lists.w3.org/Archives/Public/public-test-infra` is entered into the
location bar, and the browser loads the page.

> You can also join the mailing list to receive e-mail with announcements and
> discussion about the project.

`http://irc.w3.org/` is entered into the location bar, and the browser loads
the page. `web4all` is entered as the Nickname, and `#testing` is entered as
the channel name. A mouse clicks on the "Connect" button.

> For more immediate communication, you can join the "testing" channel on the
> IRC server run by the W3C.

**Return to the graph paper**

A hand places a paper cutout depicting a human silhouette on the sheet. It then
draws arrows from the new cutout to each of the three previously-introduced
cutouts.

![](assets/web-platform.png "The diagram drawn in the video")

> We're looking forward to working with you!