1. A method, comprising: inputting an application program to be tested to a data processing system; creating an augmented application program by injecting, into native application logic of the application program, additional application logic; linking the augmented application program to a software library comprising algorithms configured to analyze a user interface of the application program; performing, in cooperation with the additional application logic and with calls made to the analysis algorithms in the software library, a static analysis of the user interface of the application program without executing the application program to generate a set of static analysis results; performing, in cooperation with the additional application logic and with calls made to the analysis algorithms in the software library, a dynamic analysis of the user interface of the application program while executing the application program to generate a set of dynamic analysis results; and based on the set of static analysis results and the set of dynamic analysis results, determining if the user interface of the application program violates one or more user interface policy rules.