1. A method for testing a user interface for an application comprising: extending a hardware verification language by defining one or more custom libraries such that the extended hardware verification language can be used to interface with a user interface to a software application in addition to hardware designs, wherein the hardware verification language is different from a programming language used to create the user interface to the software application, and is a programming language specifically designed for verification of hardware designs, and wherein the extended hardware verification language is extended by providing an API (applications programming interface) corresponding to the e language; generating a test for the user interface to the software application written in the extended hardware verification language; using the test written in the extended hardware verification language to drive one or more elements of the user interface to the software application; collecting data resulting from driving the user interface to the software application using the test; analyzing the data from driving the user interface to the software application; and displaying analysis results or storing the analysis results in a computer readable medium.