In the world of data analysis, Jupyter notebooks are the de-facto solution to write and execute code in an interactive fashion by simply using a web browser. CERN provides a Jupyter notebook service called SWAN, which builds on top of Jupyter notebooks by integrating the storage, synchronization and sharing capabilities of CERNBox and the computational power of Hadoop clusters. Also, software packages are retrieved on the fly from the CernVM File System, allowing users to forget about installation, configuration, and compatibility of packages.
Jupyter notebooks, despite being easily accessible from an intuitive web-based interface, are a complex environment, especially when used together with JupyterHub, custom extensions, external storage backends and computational clusters. This project aims at the development of a testing framework covering the many aspects of the Jupyter environment, which is able to both run synthetics tests and to mimic users’ actions in the notebook interface.
Design and development of a testing framework including:
The framework should be designed with maintainability and extensibility in mind so to allow the addition of new tests to cover new features of the SWAN service. In addition, the framework should be self-contained and distributable by means of Docker containers.
A working implementation of a testing framework for Jupyter notebooks to troubleshoot issues and monitor performance.