diff --git a/.scrutinizer.yml b/.scrutinizer.yml
new file mode 100644
index 000000000..361b21e38
--- /dev/null
+++ b/.scrutinizer.yml
@@ -0,0 +1,34 @@
+before_commands:
+    - "composer install --no-dev --prefer-source"
+
+tools:
+    external_code_coverage:
+        timeout: 3600
+    php_code_coverage:
+        enabled: true
+    php_code_sniffer:
+        enabled: false
+    php_cpd:
+        enabled: true
+        excluded_dirs: ["bin", "docs", "tests", "tools", "vendor"]
+    php_cs_fixer:
+        enabled: false
+    php_loc:
+        enabled: true
+        excluded_dirs: ["bin", "docs", "tests", "tools", "vendor"]
+    php_mess_detector:
+        enabled: true
+        filter:
+            paths: ["lib/*"]
+    php_pdepend:
+        enabled: true
+        excluded_dirs: ["docs", "examples", "tests", "vendor"]
+    php_analyzer:
+        enabled: true
+        filter:
+            paths: ["lib/*", "tests/*"]
+    php_hhvm:
+        enabled: true
+        filter:
+            paths: ["lib/*", "tests/*"]
+    sensiolabs_security_checker: true
diff --git a/.travis.yml b/.travis.yml
index b494da77a..01f7f35e9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,8 +13,8 @@ env:
   - DB=sqlite
 
 before_script:
-  - if [[ $TRAVIS_PHP_VERSION = '5.6' && $DB = 'sqlite' ]]; then PHPUNIT_FLAGS="--coverage-clover ./build/logs/clover.xml"; else PHPUNIT_FLAGS=""; fi
-  - if [[ $TRAVIS_PHP_VERSION != '5.6' && $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then phpenv config-rm xdebug.ini; fi
+  - if [[ $TRAVIS_PHP_VERSION = '7.0' && $DB = 'sqlite' ]]; then PHPUNIT_FLAGS="--coverage-clover ./build/logs/clover.xml"; else PHPUNIT_FLAGS=""; fi
+  - if [[ $TRAVIS_PHP_VERSION != '7.0' && $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then phpenv config-rm xdebug.ini; fi
   - composer self-update
   - composer install --prefer-source
 
@@ -23,7 +23,8 @@ script:
   - ENABLE_SECOND_LEVEL_CACHE=1 ./vendor/bin/phpunit -v -c tests/travis/$DB.travis.xml --exclude-group performance,non-cacheable,locking_functional
 
 after_script:
-  - php vendor/bin/coveralls -v
+  - if [[ $TRAVIS_PHP_VERSION = '7.0' && $DB = 'sqlite' ]]; then wget https://scrutinizer-ci.com/ocular.phar; fi
+  - if [[ $TRAVIS_PHP_VERSION = '7.0' && $DB = 'sqlite' ]]; then php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml; fi
 
 matrix:
   include:
diff --git a/composer.json b/composer.json
index 27262ec8f..cd1f81ade 100644
--- a/composer.json
+++ b/composer.json
@@ -9,7 +9,8 @@
         {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
         {"name": "Roman Borschel", "email": "roman@code-factory.org"},
         {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
-        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}
+        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
+        {"name": "Marco Pivetta", "email": "ocramius@gmail.com"}
     ],
     "minimum-stability": "dev",
     "require": {
@@ -24,8 +25,7 @@
     },
     "require-dev": {
         "symfony/yaml": "~2.3|~3.0",
-        "phpunit/phpunit": "~4.0",
-        "satooshi/php-coveralls": "dev-master"
+        "phpunit/phpunit": "~4.0"
     },
     "suggest": {
         "symfony/yaml": "If you want to use YAML Metadata Mapping Driver"