A method for testing usability of an application, comprising: identifying, via a testing tool, a task for a user to complete in an application; recording, via the testing tool, actions of the user of the application, the actions being active inputs to the application via an input device; recording, via the testing tool, interactions of the user with the application, the interactions being passive inputs to the application via the input device; aggregating, via the testing tool, the actions and interactions of the user with results of testing for a plurality of users; comparing, via the testing tool, a user flow comprising an order and timeliness of the actions and interactions of the user as the user uses the application with a baseline flow of actions and interactions for the application; and identifying via the testing tool, an action and/or interaction beyond those of the baseline flow that occurred for more than a threshold of the plurality of users as indicating a usability problem with the application based on the comparison, whereby said usability problem includes ineffectiveness of the user flow to complete an identified task, inefficiency of the user flow to complete the identified task, or dissatisfaction of the user with the user flow to complete the identified task; wherein passive inputs are chosen among: hovering over an object with an input device, mousing over an icon, selecting a text-entry field without entering text, and lingering on a particular portion of the application without taking an action for a period of time; and the active inputs being chosen among: selecting various objects in the application with the input device, clicking on an icon, and entering text with the input device. identifying, via a testing tool, a task for a user to complete in an application; recording, via the testing tool, actions of the user of the application, the actions being active inputs to the application via an input device; recording, via the testing tool, interactions of the user with the application, the interactions being passive inputs to the application via the input device; aggregating, via the testing tool, the actions and interactions of the user with results of testing for a plurality of users; comparing, via the testing tool, a user flow comprising an order and timeliness of the actions and interactions of the user as the user uses the application with a baseline flow of actions and interactions for the application; and identifying via the testing tool, an action and/or interaction beyond those of the baseline flow that occurred for more than a threshold of the plurality of users as indicating a usability problem with the application based on the comparison, whereby said usability problem includes ineffectiveness of the user flow to complete an identified task, inefficiency of the user flow to complete the identified task, or dissatisfaction of the user with the user flow to complete the identified task; wherein passive inputs are chosen among: hovering over an object with an input device, mousing over an icon, selecting a text-entry field without entering text, and lingering on a particular portion of the application without taking an action for a period of time; and the active inputs being chosen among: selecting various objects in the application with the input device, clicking on an icon, and entering text with the input device.