Skip to content

Commit

Permalink
Added blog post
Browse files Browse the repository at this point in the history
  • Loading branch information
Johannes Ernst committed Feb 6, 2024
1 parent 491ca52 commit 8c5b003
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
3 changes: 2 additions & 1 deletion content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<div style="height: 10em"></div>

Expand Down
65 changes: 65 additions & 0 deletions content/blog/2024-02-06-what-is-a-test-suite-for-the-fediverse.md
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.

0 comments on commit 8c5b003

Please sign in to comment.