From 8c5b00349898dd3309cf055e4135eb8b5566b147 Mon Sep 17 00:00:00 2001 From: Johannes Ernst Date: Mon, 5 Feb 2024 18:25:52 -0800 Subject: [PATCH] Added blog post --- content/_index.md | 3 +- ...-what-is-a-test-suite-for-the-fediverse.md | 65 +++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 content/blog/2024-02-06-what-is-a-test-suite-for-the-fediverse.md diff --git a/content/_index.md b/content/_index.md index 6160ee8..217c561 100644 --- a/content/_index.md +++ b/content/_index.md @@ -9,7 +9,8 @@ layout: front This wants to become the website for the FediTest project, which builds a test suite for the Fediverse. -**Pardon our early work in progress.** +**Pardon our early work in progress.** There will be blog posts before we have much content +for the rest of the site.
diff --git a/content/blog/2024-02-06-what-is-a-test-suite-for-the-fediverse.md b/content/blog/2024-02-06-what-is-a-test-suite-for-the-fediverse.md new file mode 100644 index 0000000..54adec6 --- /dev/null +++ b/content/blog/2024-02-06-what-is-a-test-suite-for-the-fediverse.md @@ -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. +