A testing module 302 may automatically and/or dynamically (e.g., with little or no user input) perform one or more testing protocols (e.g., a predefined test script or other list of instructions comprising one or more user input events such as touch input events, a predefined set of tests comprising one or more simulated user input events such as touch input events, or the like). In response to performing one or more testing protocols, a testing module 302 may receive data from the tested devices 102, such as the error data described above (e.g., state information for a hardware device 102, an application, and/or an operating system; a screenshot; a hierarchical scene tree and/or nodes thereof; a system file; an application file; a database; a database table; a database record; a log; a log entry; a value for a runtime variable of an application and/or operating system; a value for a memory pointer used by an application and/or operation; a network communication such as an API request or a query or the like; an identifier of a hardware device 102; an identifier of an application executing on a hardware device 102; or the like).