diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c014ef0294aa6dfa08bfa16acfda86cda153c37d..6de1914553207bb7c189f551b3bf55acb8fad679 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,46 +1,67 @@
 variables:
   GIT_SUBMODULE_STRATEGY: recursive
 
+
+default:
+  image: python:3.8
+
+
 before_script:
-  - export DEBIAN_FRONTEND=noninteractive
-  - apt-get -qq update
-  - apt-get -qq install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git > /dev/null
-  - export DEBIAN_FRONTEND=dialog
-  - export LC_ALL=C.UTF-8
-  - export LANG=C.UTF-8
-  - git clone https://github.com/pyenv/pyenv.git ~/.pyenv
-  - export PYENV_ROOT="$HOME/.pyenv"
-  - export PATH="$PYENV_ROOT/bin:$PATH"
-  - eval "$(pyenv init -)"
-
-
-test:python37:
+  - pip install --upgrade pip
+  - pip install pytest
+  - pip install -r requirements.txt
+
+
+# test saqc with python 3.7
+python37:
+  stage: test
+  image: python:3.7
   script:
-    - pyenv install 3.7.5
-    - pyenv shell 3.7.5
-    - pip install --upgrade pip
-    - pip install -r requirements.txt
-    - python -m pytest --ignore test/lib test
+    - pytest tests/core tests/flagger tests/funcs
     - python -m saqc --config ressources/data/config_ci.csv --data ressources/data/data.csv --outfile /tmp/test.csv
 
 
-test:python38:
+# test saqc with python 3.8
+python38:
+  stage: test
   script:
-    - pyenv install 3.8.0
-    - pyenv shell 3.8.0
-    - pip install --upgrade pip
-    - pip install -r requirements.txt
-    - python -m pytest --ignore test/lib test
+    - pytest tests/core tests/flagger tests/funcs
     - python -m saqc --config ressources/data/config_ci.csv --data ressources/data/data.csv --outfile /tmp/test.csv
 
-# Make html docu with sphinx
+
+# test lib saqc
+testLib:
+  stage: test
+  script:
+    - pytest tests/lib
+
+
+# fuzzy testing saqc
+fuzzy:
+  stage: test
+  script:
+    - pytest tests/fuzzy
+  allow_failure: true
+
+
+# make (visual) coverage in gitlab merge request diff's
+coverage:
+  stage: test
+  script:
+    - pip install pytest-cov coverage
+    - pytest --cov=saqc tests/core tests/flagger tests/funcs
+    - coverage xml
+  # regex to find the coverage percentage in the job output
+  coverage: '/^TOTAL.+?(\d+\%)$/'
+  artifacts:
+    reports:
+      cobertura: coverage.xml
+
+
+# make html docu with sphinx
 pages:
   stage: deploy
   script:
-    - pyenv install 3.8.0
-    - pyenv shell 3.8.0
-    - pip install --upgrade pip
-    - pip install -r requirements.txt
     - cd sphinx-doc/
     - pip install -r requirements_sphinx.txt
     - make doc