Solid Test Suite Update December 2019
Goal
Overarching goal
Produce test suites that can be used to verify the
compliance of any server implementation to the Solid
specifications
What it is not
- Finished
- Unit or integration tests for internal use
- Tests to verify that apps work correctly, or has
certain values
- A reimplementation of existing test suites
- A complete verification of certain workflows, like
Data Portability
Project up to now
- I have tightened the framework
code
- Incorporated the feedback from Oxford
meeting
- Made many experiments to see how
- the RDF can be made most human-readable
- have a high degree of test reuse
- Created an EARL formatter for test
results
- Started writing tests to verify Solid
as of now
- I've been working mostly with Sarven
on the specification
The test suite
Anatomy of tests, updated
:test_bob_r_nr a test:AutomatedTest ;
test:purpose "Check that Bob can only read Non-RDF resource when he is authorized read only."@en ;
test:test_script <http://example.org/httplist#http_req_res_list> ;
test:params [
<http://example.org/httplist/param#bearer> <https://idp.test.solidproject.org/tokens/BOB_ID_GOOD> ;
test:steps (
[
test:request :test_bob_nr_read_req ;
test:response_assertion :ok_res ;
]
[
test:request :test_bob_nr_head_req ;
test:response_assertion :ok_res ;
]
[ ... ]
)
] .
TAP::Formatter::EARL
- TAP = Test Anything Protocol
- EARL = Evaluation and Report Language
- Can be used on any TAP output
-
All testers should output EARL for reports
- Current formatter creates only basic output
- I wasn't impressed with available parser classes
At crossroads
- Complete focus on specification writing
- Write tests for current state of Solid
- Pursue Beautiful Linked Data
State of the Art Tests
To put firmly down how Solid works now.
Invalid authentication tokens
Test status codes returned by using all HTTP methods with varying
permissions for
-
RDF sources
- Non-RDF sources
- Containers
Without using LDP
Findings
- NSS5 has a problematic relationship towards invalid tokens
- Solid does not require client to supply LDP interaction models in NSS5
- With the hierarchy decision, LDP
client-supplied interaction models are technically
redundant
- Suggests that the important part of LDP are the LDP-server-managed triples
Test reuse within the framework
- Dimensions can be added: E.g. LDP
interaction model
- Imaginebly many dimensions. Likely to
see a combinatorial explosion.
- Simpler: Merging files to add relevant
tests or generate RDF using SPARQL
CONSTRUCT
Lament of the lonesome developer
Largely been a one-man show
Difficult to incorporate feedback when it occurs on a quarterly
basis
Now, lets write specs