HeadSpin Documentation
Documentation

AI-based Issue Detection Engine

HeadSpin AI-based Issue Detection Engine

The HeadSpin AI automatically detects and provides actionable insight into the root causes of issues due to network, device, and app architecture performance.

Note that some issue analyses require permissions to run. If you have any questions about whether your org has the necessary permissions for certain issues, please contact your HeadSpin administrator for assistance.

Impact Time

Impact Time is HeadSpin's proprietary performance metric. It measures the amount of time a session is affected by an issue, taking into account our benchmark for app performance. Typically, the total Impact Time is the time added to the length of the session. If addressed, users can accomplish the session's tasks or User Flow in that much less time. Resolving high Impact Time issues will typically yield the biggest performance boosts.

Impact Time is measured relative to a benchmark. The benchmark for an issue is the expected amount of time for an optimized app to accomplish the same tasks. If a task is accomplished during a session in less time than the benchmark, the app is considered to have performed satisfactorily with respect to that issue. On the other hand, an Impact Time above 0 signifies poor performance relative to the benchmark, and represents an opportunity for performance improvement. HeadSpin will flag all such issues in the Waterfall and the Issue UI.

The Union Impact Time of a session provides an estimate of how much the session's specific User Flow can be improved. It is an aggregation of the Impact Time from all issues, merging any overlapping Impact Time regions regardless of how many issues affect them. The Union Impact Time is bounded by 0 and the duration of the session.

Types of Issues

HeadSpin distinguishes between four types of issues: user experience issues, root cause issues, warnings, and testing pitfalls.

User experience issues are issues as perceived from an end user's perspective. They describe the experience of the user when using the app. These issues do not provide immediate insights into the underlying cause or how to fix them. However, they suggest high visibility issues to investigate in order to improve the quality of the user experience.

Issue Name Requires Permissions Description
Low Page Content No Your application had little user-visible content on screen for more than 1 second in the impacted regions of the video.
Loading Animation Yes Your application had a loading animation on the screen for more than 1 second in the impacted regions of the video.
Screen Freezing No The screen appears to have frozen intermittently in these regions. The analysis: ScreenFreezing tag must be applied to a session for this issue to be analyzed.
Poor Video Quality Yes The rich media content displayed on the screen has exhibited poor video quality characteristics for more than 5 seconds.
Slow App Launch Yes Your app took more than 5 seconds to fully load.
Slow Webpage Load Yes Your webpage took more than 3 seconds to fully load.
Audio Too Loud No The audio volume is higher than the recommended upper limit in ITU-R BS.1770-4.
Audio Too Quiet No The audio volume is lower than the recommended lower limit in ITU-R BS.1770-4.
Rage Tapping Yes User tapped same location with a frequency of 2 taps per second or higher.

Root cause issues are discovered through the monitoring of device and network status. These issues tell you exactly what went wrong in the session, and how to fix it.

Fixing root cause issues may also improve, though not necessary eliminate, the Impact Time for user experience issues.

Issue Name Requires Permissions Description
Connection Reuse: Externally Powered Device No Your application created new TCP connections instead of reusing existing ones, incurring additional network traffic and app load time.
Connection Reuse: Battery Powered Device No Your application created new TCP connections in quick succession instead of reusing existing ones, incurring additional network traffic, app load time, and battery usage.
DNS Error: Format Error No The DNS query was improperly formatted.
DNS Error: Server Failure No A name server was unable to respond to the DNS query.
DNS Error: Non-Existent Domain No The domain name in the DNS query does not exist.
DNS Error: Not Implemented No The name server does not support the specified query.
DNS Error: Query Refused No The name server refused to perform the action specified in the query.
Domain Sharding No Your application used multiple subdomains to serve resources in parallel.

Domain sharding is a technique popular for the web, but can cause performance issues on mobile devices which have different connection pool limits. Each additional connection on a subdomain requires a DNS lookup and new TCP/TLS handshakes for each connection, causing significant overhead.
Duplicate Messages No Your app received identical copies of these resources.

It's rare for an app to really need to download the same resource multiple times.
Unoptimized Resource: image/png No Your app downloaded an image in the lossless PNG format, which is not optimal for performance.
Unoptimized Resource: image/tiff No Your app downloaded an image in the TIFF format, which is not optimal for performance.
Unoptimized Resource: image/gif No Your app downloaded an image in the GIF format, which is not optimal for performance.
Unoptimized Resource: text No Your app downloaded resources as uncompressed plain text, which is not optimal for performance.
Unoptimized DNS: High Latency Host Yes A DNS response provided a host so distant from the client that latency will have a detrimental impact on user experience.
Unoptimized DNS: Poor Host Prioritization Yes A DNS response prioritized a distant host instead of a host closer to the client.
HTTP Client Errors No These HTTP responses are client errors (4xx).
HTTP Server Errors No These HTTP responses are server errors (5xx).
HTTP Redirects No These HTTP responses are redirects.

HTTP redirects can be costly, especially if they redirect to a new host, which can incur additional DNS, TCP, TLS, and request-response roundtrips and thus add unnecessary delay.
Hung CPU Method Yes Application methods that take longer than 32 ms of CPU time to execute can render the app unresponsive and are suggested to be optimized.
Hung Real Method Yes Application methods that take longer than 32 ms of wall time to execute may render the app unresponsive and are suggested to be optimized.
This issue analysis is only triggered when CPU time profiling is unavailable (typically for iOS apps).
Low Frame Rate No The device frame rate dropped below 24 frames per second for more than 1 second in these regions of the session. This issue is only raised for devices in the landscape orientation by default.
Slow DNS Query No The DNS querying took longer than 150 ms to resolve.
Duplicate DNS Query No The client performed multiple queries for the same domain within the session.
Slow Downloads No These HTTP responses took longer than 500 ms to download.
Slow Server No Your application waited longer than 500 ms to receive the first byte in HTTP responses from these hosts.
Slow TLS No Your application waited longer than 300 ms to complete TLS handshakes with these hosts.

Warnings are issues that do not incur any Impact Time but can still be improved. Warnings include security risks or tips on how to maximize the insights gained from the HeadSpin platform.

Warnings can be viewed in the Waterfall UI and Issue UI associated with a session.

Issue Name Requires Permissions Description
Unencrypted Traffic No Your application is making use of unencrypted HTTP requests instead of secure, encrypted HTTPS requests.
Java Language Reflection Yes Your Android application is calling Java reflection methods that can generally be replaced to reduce unnecessary overhead time.
Log Exceptions Yes An app logged an error while it was in the foreground.
Log Warnings No An app logged a warning while it was in the foreground.
High Battery Drain Yes The device battery was draining at either an exceptionally high rate (e.g., draining 45% of battery per hour over one second) or at a high rate for a prolonged period of time (e.g., draining 15% of battery per hour over one minute).
Audio Not Detected No The audio source is either not present or too low to be detected.
Unsafe Header Value: Referrer-Policy No Your application has the header value for 'Referrer-Policy' set to 'unsafe-url'.
Obsolete Header Value: X-Frame-Options No Your application uses the ALLOW FROM directive for the 'X-Frame-Options' header.
Missing Security Header: Strict-Transport-Security No Your application is missing the Strict-Transport-Security header.
Missing Security Header: X-Content-Type-Options No Your application is missing the X-Content-Type-Options header.
Missing Security Header: Content-Security-Policy No Your application is missing the Content-Security-Policy header.
User-Defined Log Issues Yes A log entry matched a search pattern specified for user-defined log issues.

Pitfall issues are issues that do not affect real end users and are attributable to some suboptimal usage or configuration at the interface between your application and the HeadSpin Platform. These issues may adversely affect or prohibit the capture of certain data or require some action or trade-off to maximize the value of the data captured.

Issue Name Requires Permissions Description
TLS Exception No Hosts with pinned TLS certificates may fail to establish secure connections with our man-in-the-middle (MitM) network capture setup. See recommendations in the Session API documentation.
Slow Find Element Command No Your Appium or Selenium "Find Element" command took longer than 500 ms. Bad selector paths are one of the largest causes of slow scripts.