This repository contains the source code implemented as part of my master thesis at the University of Technology in Brno in 2023/2024.
- Docker must be installed on the host system, as well as Docker Compose. The Docker Engine must be running before building and deploying any of the containers. On Linux host machine, refrain from using Docker Desktop.
- In case of a Windows host machine you also need to install X server software in order to display any browser windows during the execution. None of the tests are performed in
headlessbecause many of the performed tests are not supported in that mode. During the developement and testing, X410 was used. Please note on Windows you need to install Docker Desktop. - For Windows, Firefox also requires Pulseaudio for webaudio testing. Download Pulseaudio binaries and extract them anywhere you like. Then add the line
load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1into theetc/pulse/default.pafile and start Pulseaudio frombin/pulseaudio.exe --use-pid-file=false --exit-idle-time=-1 -D. - For Linux, install Pulseaudio with the command
apt-get install -y pulseaudio. - All other individual requirements are installed into the images while building them via Docker.
- The
integration_testingfolder contains the code base needed to perform integration browser extension testing as described in detail in the thesis. - The
system_testingfolder similarly contains the code base for system testing.
Building either of the images from the Dockerfile might take several minutes based on the internet speed and host machine capacity. The Dockerfile takes advangate of multi-stage builds. The overlap of technologies is not huge so this is done in order to save space and time. After the first build, build data is cached through Docker, so subsequent builds take very litte time, unless the cache is cleared with the docker prune command.
To build the image and run the container on Linux host, run the following command:
docker-compose run --rm --service-ports testing_integration_linuxIn order to build an image and run a container for integration testing on Windows host (assuming Docker Desktop, Xserver and Pulseaudio are running), use this command:
docker-compose run --rm --service-ports testing_integration_windowsTo build the image and run the container on Linux host, run the following command:
docker-compose run --rm --service-ports testing_system_linuxIn order to build an image and run a container for system testing on Windows host (assuming Docker Engine is running), use this command:
docker-compose run --rm --service-ports testing_system_windowsIf you run into privileges issues on Linux, try giving both start_testing.sh scripts execution privileges on the local machine.
sudo chmod +x ./integration_tests/start_testing.sh
sudo chmod +x ./system_tests/start_testing.shIf you run into display issues on Linux, try adding Docker to xhost:
sudo xhost +local:dockerThe tests results are stored locally after each run.
- For integration testing, see folder
integration_tests/outputsfor stored attributes generated by the server and the integration testing results. - For system testing, see folder
system_tests/datato see the results of log and screenshot analysis.