Patent ID: 8880951

Claim:
A system comprising: a memory comprising instructions executable by one or more processors; and the one or more processors coupled to the memory and operable to execute the instructions, the instructions causing the one or more processors to perform: recording a plurality of widget interaction instances (WIIs) for a user interface that includes at least one instance of each of at least one widget, each WII resulting from a user interaction applied to a particular instance of a particular widget; hashing the plurality of WIIs into at least one hashing bucket based on a text value of each WII; clustering each hashing bucket of WIIs based on a path value of each WII such that each cluster of WIIs is associated with a particular widget, wherein clustering a particular hashing bucket of WIIs comprises: for each pair of WIIs in the particular hashing bucket: computing a distance between a first path value and a second path value of the pair of WIIs, respectively; placing the pair of WIIs in a same cluster when the distance between the first path value and the second path value is less than or equal to a predetermined threshold; and placing the pair of WIIs each in a different cluster when the distance between the first path value and the second path value is greater than the predetermined threshold; and determining, for each of at least one cluster of WIIs, whether the particular widget associated with the cluster of WIIs is erroneous based on whether the user interactions corresponding to the WIIs in the cluster have not produced any perceptible responses from a software application that includes the user interface.