diff --git a/tests/CaffeVGG-Armnn/CaffeVGG-Armnn.cpp b/tests/CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
index b859042..99ced3d 100644
--- a/tests/CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
+++ b/tests/CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
@@ -3,7 +3,7 @@
 // See LICENSE file in the project root for full license information.
 //
 #include "../InferenceTest.hpp"
-#include "../ImageNetDatabase.hpp"
+#include "../CaffePreprocessor.hpp"
 #include "armnnCaffeParser/ICaffeParser.hpp"
 
 int main(int argc, char* argv[])
@@ -12,12 +12,18 @@
     int retVal = EXIT_FAILURE;
     try
     {
+        using DataType = float;
+        using DatabaseType = CaffePreprocessor;
+        using ParserType = armnnCaffeParser::ICaffeParser;
+        using ModelType = InferenceModel<ParserType, DataType>;
+
         // Coverity fix: ClassifierInferenceTestMain() may throw uncaught exceptions.
-        retVal = armnn::test::ClassifierInferenceTestMain<ImageNetDatabase, armnnCaffeParser::ICaffeParser>(
+        retVal = armnn::test::ClassifierInferenceTestMain<DatabaseType, ParserType>(
                     argc, argv, "VGG_CNN_S.caffemodel", true,
                     "input", "prob", { 0 },
-                    [](const char* dataDir) { return ImageNetDatabase(dataDir, 224, 224); },
-                    &inputTensorShape);
+                    [](const char* dataDir, const ModelType&) {
+                        return DatabaseType(dataDir, 224, 224);
+                    }, &inputTensorShape);
     }
     catch (const std::exception& e)
     {
