20. A system for testing a user interface for an application, comprising: a memory configured to hold executable code comprising instructions for testing a user interface to a software application; a processor communicable with the memory, configured to execute the executable code; a test written in an extended hardware verification language, wherein the hardware verification language has been extending by defining one or more custom libraries such that the extended hardware verification language can be used to interface with the user interface to the software application in addition to hardware designs, and 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; and wherein the test written in the hardware verification language is configured to drive one or more elements of the user interface to the software application.
26. The system of claim 20 in which multiple interface mechanisms are employed to test multiple applications under test.