1. A method comprising: receiving, by a computing device, a plurality of application blueprints for a plurality of versions of an application, wherein each application blueprint for each version of the application includes at least one different feature; selecting, by the computing device, one of the versions of the application for testing; loading, by the computing device, the application blueprint for the first version of the application, the application blueprint defining a first set of features supported by the first version of the application; loading, by the computing device, the first set of features and a first set of interfaces for the features, wherein interfaces in the first set of interfaces describe what a corresponding feature does; building, by the computing device, the application model by connecting the first set of interfaces to the first set of features; connecting, by the computing device, the application model to the version of the application and a test case for the version of the application; and testing, by the computing device, the version of the application by executing a test case against the application model, wherein the first set of interfaces are used to test the first set of features of the version of the application.