HeadSpin Documentation
Getting Started
HeadSpin Platform
API Reference
Mini Remote
Biometrics SDK
Performance Analysis
Performance Monitoring
On-Premise Deployments
Deprecated Documentation
Legal Matters

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.

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 Burst 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 Description
Low Page Content Your application had little user-visible content on screen for more than 1 second in the impacted regions of the video.
Loading Animation Your application had a loading animation on the screen for more than 1 second in the impacted regions of the video.
Screen Freezing 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 The rich media content displayed on the screen has exhibited poor video quality characteristics for more than 5 seconds.
Slow App Launch Your app took more than 5 seconds to fully load.
Slow Webpage Load Your webpage took more than 3 seconds to fully load.
Audio Too Loud The audio volume is higher than the recommended upper limit in ITU-R BS.1770-4.
Audio Too Quiet The audio volume is lower than the recommended lower limit in ITU-R BS.1770-4.

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 Description
Connection Reuse: Externally Powered Device Your application created new TCP connections instead of reusing existing ones, incurring additional network traffic and app load time.
Connection Reuse: Battery Powered Device 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 The DNS query was improperly formatted.
DNS Error: Server Failure A name server was unable to respond to the DNS query.
DNS Error: Non-Existent Domain The domain name in the DNS query does not exist.
DNS Error: Not Implemented The name server does not support the specified query.
DNS Error: Query Refused The name server refused to perform the action specified in the query.
Domain Sharding 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 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 Your app downloaded content in a format that may not be optimized for performance.
Unoptimized DNS: High Latency Host 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 A DNS response prioritized a distant host instead of a host closer to the client.
HTTP Client Errors These HTTP responses are client errors (4xx).
HTTP Server Errors These HTTP responses are server errors (5xx).
HTTP Redirects 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 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 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 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 The DNS querying took longer than 150 ms to resolve.
Duplicate DNS Query The client performed multiple queries for the same domain within the session.
Slow Downloads These HTTP responses took longer than 500 ms to download.
Slow Hosts Your application waited longer than 500 ms to receive the first byte in HTTP responses from these hosts.
Slow TLS 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 Burst UI associated with a session.

Issue Name Description
Unencrypted Traffic Your application is making use of unencrypted HTTP requests instead of secure, encrypted HTTPS requests.
Java Language Reflection Your Android application is calling Java reflection methods that can generally be replaced to reduce unnecessary overhead time.
Log Exceptions An app logged an error while it was in the foreground.
Log Warnings An app logged a warning while it was in the foreground.
High Battery Drain Beta Feature 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 The audio source is either not present or too low to be detected.
Unsafe Header Value: Referrer-Policy Your application has the header value for 'Referrer-Policy' set to 'unsafe-url'.
Obsolete Header Value: X-Frame-Options Your application uses the ALLOW FROM directive for the 'X-Frame-Options' header.
Missing Security Header: Strict-Transport-Security Your application is missing the Strict-Transport-Security header.
Missing Security Header: X-Content-Type-Options Your application is missing the X-Content-Type-Options header.
Missing Security Header: Content-Security-Policy Your application is missing the Content-Security-Policy header.

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 Description
TLS Exception 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 Your Appium or Selenium "Find Element" command took longer than 500 ms. Bad selector paths are one of the largest causes of slow scripts.