-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Johannes Ernst
committed
Feb 6, 2024
1 parent
491ca52
commit 8c5b003
Showing
2 changed files
with
67 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
content/blog/2024-02-06-what-is-a-test-suite-for-the-fediverse.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
--- | ||
title: 'What do we mean when we say "Fediverse Test Suite"?' | ||
date: 2024-02-05 | ||
author: Johannes Ernst | ||
authorurl: https://j12t.org/ | ||
--- | ||
|
||
Let's start with the term [Test Suite](https://en.wikipedia.org/wiki/Test_suite). | ||
This is what Wikipedia has to say about it: | ||
|
||
> In software development, a test suite, ... is a collection of test cases that | ||
> are intended to be used to test a software program to show that it has some | ||
> specified set of behaviors. | ||
About [Test Case](https://en.wikipedia.org/wiki/Test_case), it says: | ||
|
||
> ... a test case is a specification of the inputs, | ||
> execution conditions, testing procedure, and expected results that define a | ||
> single test to be executed to achieve a particular software testing objective, | ||
> such as to exercise a particular program path or to verify compliance with a | ||
> specific requirement. | ||
and | ||
|
||
> Test cases underlie testing that is methodical rather than haphazard. | ||
This latter sentence is really important. One of our goals is to make it possible | ||
for a range of parties (more about that later) to methodically test the Fediverse, | ||
which would be a significant advance over the state of the art. | ||
|
||
The Fediverse, for our purposes here, is as a global network of communicating "Fediverse | ||
instances", i.e. running software applications, implemented and operated by a variety of | ||
parties. These instances interact with each other on a voluntary basis, based on set of | ||
agreed-upon protocols and conventions. | ||
|
||
Today's Fediverse is centered around the | ||
[ActivityStreams Core](https://www.w3.org/TR/activitystreams-core/), | ||
[ActivityStreams Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/) and | ||
[ActivityPub](https://www.w3.org/TR/activitypub/) standards | ||
as published by the [World-Wide-Web Consortium](https://www.w3.org/). However, today's | ||
Fediverse would not be functional with only agreement on those W3C standards. | ||
For example, the use of the IETF's | ||
[RFC7033: WebFinger](https://www.rfc-editor.org/rfc/rfc7033) standard is also required, | ||
and a fairly significant number of conventions that are not standardized and sometimes | ||
only partially codified, such as: | ||
|
||
* The use of HTTP Signatures in a now-obsolete draft, as pioneered by Mastodon. | ||
|
||
* Various [Fediverse Enhancement Proposals](https://codeberg.org/fediverse/fep). | ||
|
||
* The use the "Note" object in preference to many other defined object types which are | ||
not broadly understood by participating software. | ||
* Conventions for using only a subset of the power of JSON-LD. | ||
|
||
... and more. | ||
|
||
So our scope here is not merely ActivityPub, but the set of all protocols and conventions | ||
that are used to make today's Fediverse work. Of course, the Fediverse is not a static | ||
construct. Developers build new cool features all the time, which often require, or | ||
suggest extensions or improvements to some of the protocols and conventions currently | ||
in use. The Fediverse Test Suite is intended to be flexible in growing | ||
with the Fediverse, in whatever direction it develops. Specifically, it should be easy | ||
for developers to extend the test suite to support the testing of additional protocols | ||
and conventions. | ||
|