Quality Assurance Assessment Report
1. Executive Summary
Between October 16 and October 19, 2026, AppTestPro QA Labs executed 80 structured functional, UI/UX, and multi-device compatibility test scenarios across 10 physical Android and iOS devices for ZenFit Health & Calorie Tracker v2.4.1.
The build demonstrates high overall stability with an 88.7% test pass rate across basic onboarding and calorie logging workflows. However, testing uncovered 1 Critical crash defect on Android 14 biometrics and 1 High-severity defect in background Bluetooth BLE reconnection. These defects should be addressed prior to wide public release.
2. Physical Device Matrix & Results
| Device Model | Operating System | Screen Resolution | Execution Status | Defects Logged |
|---|---|---|---|---|
| Samsung Galaxy S24 Ultra | Android 14 (OneUI 6.1) | 1440 x 3120 | 100% Executed | 2 Issues |
| Google Pixel 8 | Android 14 (Stock) | 1080 x 2400 | 100% Executed | 1 Issue |
| Apple iPhone 15 Pro | iOS 17.5.1 | 1179 x 2556 | 100% Executed | 2 Issues |
| OnePlus 12 | Android 14 (OxygenOS 14) | 1440 x 3168 | 100% Executed | 0 Issues |
| Redmi Note 13 Pro+ | Android 13 (MIUI 14) | 1220 x 2712 | 100% Executed | 1 Layout Issue |
3. Defect Log & Reproducible Steps
Fatal Exception (NullPointerException) on Biometric Authentication Cancellation
- 1. Open ZenFit v2.4.1 and navigate to Settings > Security.
- 2. Toggle 'Enable Biometric Lock' -> Successfully enroll biometric.
- 3. Send app to background or lock device screen.
- 4. Relaunch app. System biometric fingerprint/face dialog appears.
- 5. Tap 'Cancel' or click anywhere outside the biometric dialog bounds.
- 6. Application terminates immediately with an unhandled exception.
FATAL EXCEPTION: main Process: com.zenfit.tracker, PID: 24810 java.lang.NullPointerException: Parameter specified as non-null is null: method com.zenfit.auth.BiometricCallback.onAuthenticationError at com.zenfit.auth.BiometricCallback.onAuthenticationError(BiometricCallback.kt:42) at androidx.biometric.BiometricPrompt$2.run(BiometricPrompt.java:710) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Looper.loopOnce(Looper.java:205)
BLE Heart Rate Strap Fails to Reconnect After 15+ Min Background Sleep
- 1. Pair Bluetooth heart-rate strap (Polar H10) from workout configuration screen.
- 2. Initiate 'Outdoor Run' session and verify live BPM stream.
- 3. Lock iPhone display and leave inactive in pocket for 15 minutes.
- 4. Unlock display and return to active workout screen.
[CoreBluetooth] Peripheral <CBPeripheral: 0x280e4f200> disconnected with reason: CBErrorConnectionTimeout (0x06) [SessionManager] Heartbeat timed out. Waiting for peripheral reconnection... [SessionManager] State deadlocked: CBCentralManagerStatePoweredOn
Checkout Paywall CTA Button Overlaps Terms of Service on 360dp Displays
- 1. Launch ZenFit on device with 360dp screen width (or set display size to Largest).
- 2. Navigate to 'Upgrade to Premium' paywall modal.
- 3. Observe bottom fixed-action container.
W/View: RequestLayout() improperly called by com.zenfit.ui.paywall.FloatingActionContainer - layout bounds exceed viewport height by 14.5dp
App Icon Badge Count Fails to Clear Immediately on Reading Push Notification
- 1. Receive workout milestone push notification (badge count shows '1').
- 2. Tap push notification to open inbox screen.
- 3. Return to iOS Home Screen.
UNUserNotificationCenter.setBadgeCount(0) invoked asynchronously with delayed dispatch queue
Testing Limitations:
Testing was conducted on public staging build 2.4.1. Financial transactions were simulated via Razorpay Sandbox test credentials. Continuous GPS background battery profiling was recorded for 4 continuous hours per device tier.
Senior QA Recommendations:
1. Wrap the BiometricPrompt failure callback in BiometricCallback.kt with null-safety checks to prevent crash on Android 14.
2. Implement CBCentralManager background restoration identifiers to preserve peripheral state on iOS 17.
3. Constrain CTA buttons to maximum viewport height for 360dp display profiles.
Ready for a comprehensive report on your app?
Choose a testing package today. Our team begins hardware test execution within 24 hours of build submission.