user actions may also be considered in understanding gui logic problems for example the user may move and click the mouse or open a new page and each action can change the system state another factor to specify may be execution context of the system for example a web page is an execution context for mouse handling logic therefore the same logic and the same user action when executed on different web pages can produce different results in certain exemplary embodiments the methods described may include mapping a visual invariant such as u201c the web site that a user navigates to must be the same as that indicated on the status bar u201d to a well defined program invariant such as a boolean condition about user state and software state the mapping is done based on an in depth understanding of the source code of the software e g browser software this can lead to discovering possible inputs to the software which can cause the visual invariant to be violated in the example of finding status bar spoofing scenarios a goal may be to discover all html document tree structures that can cause the inconsistency between the url indicated on the status bar and the url that the browser is navigating to upon a click event the resulting html tree structures can be used to craft instances of status bar spoofing to systematically derive these scenarios a.