Jupyter clients are some of the most powerful pieces of technology users can run in their web browsers. By developing cross-client capabilities, either as kernel-level extensions, widgets, media types, or other confections, you are helping to advance fields of inquiry you might not even know exist.
Unit tests and strongly-typed languages are superb for rapid, confident iteration on even large codebases. But users will be installing Your Code next to an unknown number of Other People’s Code, and then write Their Code. If
^H^H When it breaks, they might not be able to tell that it’s the subtle interaction between these things. Testing All the Code together, as your user will use it, gives you greater confidence in your ability to ship.
write tests in concise, plain language
and extend this language to meet your needs
test multiple Jupyter clients
and multiple versions of them
run in multiple, real browsers (even at the same time)
and on multiple operating systems
view rich reports of your test results
but also compare your reports over time with machine-readable formats
generate screenshots to augment your documentation