1. A computer-implemented method executed by one or more processors of an application gateway, the method comprising: receiving, at the application gateway, an application package that includes: i) an application for execution in a cloud computing system that is communicatively coupled to the application gateway and ii) at least one test scenario for testing whether the application is suitable to be executed in the cloud computing system; determining, by the application gateway, a set of application characteristics associated with the application based at least in part on an automatic analysis of the application that includes performing a test execution of the application, in an environment of the application gateway that simulates the cloud computing system, to determine at least one communication protocol supported by the application, wherein the test execution includes applying the at least one test scenario, included in the application package, to attempt to communicate with the executing application using a plurality of different communication protocols and designating the at least one communication protocol as supported by the application in response to a successful attempt to use the at least one communication protocol to communicate with the application during the test execution, and wherein the testing included in the automatic analysis is based at least in part on a trust level associated with an author of the application; determining by the application gateway, that the application is suitable to be executed in the cloud computing system based at least in part on the at least one communication protocol being supported by the cloud computing system; and in response to determining that the application is suitable to be executed in the cloud computing system, storing, by the application gateway, the application and at least a portion of the determined set of application characteristics in an application repository of the application gateway, and checking in the application to a repository of the cloud computing system for execution in the cloud computing system.