Privacy notice. This is a real report delivered to a customer. To protect their privacy we removed the app name, package name, logins, links, device serials and every screenshot. The findings are unchanged.
Test Environment
| Field | Value |
|---|---|
| App name | Real estate CRM app |
| Android package | Removed to protect the customer's privacy |
| App version (versionName) | 1.2.3 |
| App version code (versionCode) | 29 |
| Target / minimum SDK | 36 / 24 |
| Test date | 2026-07-17 |
| Device name / model | ASUS ROG Phone (asus ASUS_I003D) |
| Android version | 12 |
| Android SDK level | 31 |
| Network type | Wi-Fi |
| Screen resolution / density | 1080 × 2340 / approximately 420 dpi |
| Device language / locale | English (United Kingdom) (en-GB) |
| Battery at test start | 33% |
- Tested by: Our QA team
- Build availability: This is an Alpha closed-testing build, not a public Play Store release. Testing used the enrolled account on the assigned physical device.
Scope
- Requested focus: Leads, WhatsApp Inbox, pipeline stages, notifications, profile, stability/crashes, UI/UX, and main user flows
App Overview
The app is an internal real-estate CRM for lead capture, ownership, pipeline progression, WhatsApp conversations, notifications, and employee profile metrics. Our QA team exercised authentication and recovery validation, lead creation and field validation, stage changes, budget input, timeline and activity actions, inbox search and filters, conversation detail, responsibility assignment, notification categories and deep links, profile metrics, biometric setting visibility, version display, logout, relaunch, and recovery behavior.
Product Perspective
The dark operational layout is compact and the stage, history, activity, notification, and ownership controls are easy to discover. The most important release risk is inconsistent backend state between screens: records visible through notifications are absent from the Leads list, and an inbox preview can open a conversation with neither the selected customer context nor message history. These failures prevent staff from relying on the app as the source of truth even though individual detail screens remain responsive.
Test Coverage
| Area | Result | Notes |
|---|---|---|
| Authentication | Pass | Valid access succeeded; empty recovery and malformed email inputs produced validation feedback. Logout and re-login were also exercised. |
| Lead creation validation | Fail | Required email validation worked, but alphabetic phone data was accepted and saved; see C-01. |
| Lead detail | Partial | Assignment, budget modal, stage, history, activity, and metadata loaded. Negative budget input was normalized to a positive numeric value. |
| Pipeline stage | Pass | The QA lead moved from Lead (New) to Qualified and its stage history and high-priority notification updated. |
| Leads list and recovery | Fail | The persisted Qualified lead is available from its notification but the Leads list reports zero records after re-login and Retry; see C-03. |
| Lead search | Blocked by list failure | Search cannot locate a record that the list endpoint does not return. |
| Activity comment | Fail | A submitted comment returned to detail without error but remained absent from Activity History after navigation, notification deep-link reload, and re-login; see M-04. |
| WhatsApp inbox list | Partial | Counts, status tabs, date clear, agent chooser, project and ad filter sheets, and responsibility chooser opened. Exact-name search fails; see M-01. |
| WhatsApp conversation | Fail | A row with a message preview opens an empty, unassigned conversation with unlinked project metadata and no reply composer; see C-02. |
| Notifications | Pass | All, New Leads, Follow-ups, and Needs Action tabs were exercised. Opening a notification deep-linked to the correct lead and reduced the unread count. |
| Profile | Partial | Employee, team, manager, seven-day metrics, biometric toggle, and installed version loaded. Appearance controls are absent and logout is immediate; see M-02 and M-03. |
| Resume and relaunch | Fail | Session persistence worked, but the Leads list remained empty across Retry and clean relaunch; see C-03. |
| Test-data cleanup | Blocked | The QA-created lead remains in backend notifications/detail, but no delete action is exposed and the Leads list no longer returns the record. |
| Crash / ANR check | Pass | No crashes or ANRs were found for the app. |
Standard Checks
- PassApp icon The ASUS launcher exposed a distinct branded app entry rather than a default, blank, or placeholder entry.
- Theme (dark / light / system) - Issue: Profile and all assigned top-level areas expose no Light, Dark, or System/Automatic choice; the app remains fixed in dark presentation. See M-02.
- N/AStatus bar overlap / contrast The available fixed dark presentation kept all content below the status bar and its icons readable, but a both-theme comparison is unavailable because no theme modes exist.
- N/ASplash screen quality Repeated clean launches completed before a stable splash frame could be assessed reliably; no cropped, stretched, blurry, or misaligned splash frame remained visible.
- Logout confirmation - Issue: Tapping Sign out immediately ends the session without a confirmation dialog. See M-03.
- PassBottom navigation / gesture safe area Lead detail actions, forms, inbox content, notifications, profile controls, and bottom navigation remained above the Android navigation area and tappable.
Issue Summary
| ID | Issue | Severity |
|---|---|---|
| C-01 | Lead creation accepts alphabetic phone data | High |
| C-02 | WhatsApp inbox row opens an empty, unrelated conversation state | High |
| C-03 | Persisted lead disappears from the Leads list after re-login | High |
| M-01 | Inbox search returns zero for an exact visible customer name | Medium |
| M-02 | Light, Dark, and System appearance choices are absent | Low |
| M-03 | Sign out has no confirmation safeguard | Medium |
| M-04 | Submitted lead comment is not visible in Activity History | Medium |
| M-05 | Project filter reports no linked projects while the inbox row shows one | Low |
Critical / Core-Feature Issues
C-01 Lead creation accepts alphabetic phone data High
- Severity / impact
- High - invalid contact data can be persisted into the CRM, undermining calling, WhatsApp routing, duplicate detection, and reporting.
- Steps to Reproduce
-
- Open Leads and select Create lead.
- Enter a valid name, email, and project.
- Enter
abcin Phone and submit. - Open the created lead detail.
- Expected
- Submission should be blocked with phone-format validation, or non-dialable characters should be rejected.
- Actual
- The lead is created successfully and its detail displays Phone as
abc. - Screenshot
- Removed from this public sample to protect the customer's privacy.
- Verified
- ✅ Reconfirmed from the persisted lead detail reached through Notifications after re-login.
C-02 WhatsApp inbox row opens an empty, unrelated conversation state High
- Severity / impact
- High - an employee cannot review or reply to the customer conversation selected from the inbox.
- Steps to Reproduce
-
- Open Messages and wait for the inbox to load.
- Select the visible customer row that includes a phone, linked project, responsible employee, and message preview.
- Review Conversation.
- Expected
- Conversation should retain the selected customer/project context, show the previewed message in its thread, and expose reply controls.
- Actual
- Conversation opens as Unassigned, says Project not linked and No WhatsApp ad attribution, and shows no thread or reply composer. Returning to the list briefly changes the row preview to
No messages yetbefore its original preview reappears. - Screenshot
- Removed from this public sample to protect the customer's privacy.
- Verified
- ✅ Reproduced from the single available inbox row and rechecked after returning to the list.
C-03 Persisted lead disappears from the Leads list after re-login High
- Severity / impact
- High - staff cannot discover or manage an existing lead through the primary Leads workspace even though the record still exists.
- Steps to Reproduce
-
- Create a lead and move it to Qualified.
- Verify the corresponding New lead and Entered Qualified notifications.
- Sign out, sign back in, and open Leads.
- Select All and Qualified, then tap Retry and clean-launch the app.
- Open the lead from its notification for comparison.
- Expected
- The Leads list and Qualified filter should return the persisted record consistently.
- Actual
- Leads reports
0andNo leads match the current backend filtersacross Retry and clean launch. The notification still opens the complete Qualified lead detail, proving the record persists. - Screenshot
- Removed from this public sample to protect the customer's privacy.
- Verified
- ✅ Confirmed across re-login, Retry, stage-filter changes, clean launch, and notification deep link.
Minor Issues
M-01 Inbox search returns zero for an exact visible customer name Medium
- Severity / impact
- Medium - agents cannot reliably locate a known WhatsApp conversation by the search field's advertised name criterion.
- Steps to Reproduce
-
- Open Messages and note the visible customer name in the only returned row.
- Enter the complete visible name in
Search by name or phone. - Repeat with the first word only.
- Expected
- The visible matching row should remain in the result set.
- Actual
- Total changes from 1 to 0 and the list becomes empty for both exact and partial name searches. Clear restores the row.
- Screenshot
- Removed from this public sample to protect the customer's privacy.
- Verified
- ✅ Reproduced with exact and partial name input, then recovery verified with Clear.
M-02 Light, Dark, and System appearance choices are absent Low
- Severity / impact
- Low - users cannot follow device appearance preferences, and contrast cannot be verified in the missing modes.
- Steps to Reproduce
-
- Review Leads, Messages, Notifications, and Profile.
- Inspect all Profile controls and available top-level actions.
- Expected
- Settings should expose Light, Dark, and System/Automatic appearance options.
- Actual
- The app remains in a fixed dark appearance and no theme control is available.
- Screenshot
- Removed from this public sample to protect the customer's privacy.
- Verified
- ✅ Rechecked before and after re-login and clean launch.
M-03 Sign out has no confirmation safeguard Medium
- Severity / impact
- Medium - a single accidental tap immediately removes the employee from an active CRM session.
- Steps to Reproduce
-
- Open Profile.
- Tap Sign out once.
- Expected
- A confirmation dialog should offer Cancel and Sign out before ending the session.
- Actual
- The app immediately returns to the login screen with no confirmation.
- Screenshot
- Removed from this public sample to protect the customer's privacy.
- Verified
- ✅ Reproduced once, followed by a successful re-login.
M-04 Submitted lead comment is not visible in Activity History Medium
- Severity / impact
- Medium - staff receive no durable feedback that a client note was recorded, risking duplicate work or lost context.
- Steps to Reproduce
-
- Open a lead and select Activity.
- Choose Add comment, enter a unique note, and submit.
- Open History and review Activity History.
- Navigate away, return through the lead notification, and review History again after re-login.
- Expected
- The submitted comment should appear in the lead timeline/history or the app should report a save failure.
- Actual
- Submission returns to detail without error, but Activity History continues to show only Lead Created, Lead Assigned, and Lead Stage Changed.
- Screenshot
- Not included - a still image cannot prove the submission transition and subsequent missing-history behavior.
- Verified
- ✅ Rechecked through navigation, notification deep link, and re-login.
M-05 Project filter reports no linked projects while the inbox row shows one Low
- Severity / impact
- Low - displayed conversation metadata cannot be used as a filter, reducing inbox triage reliability.
- Steps to Reproduce
-
- Open Messages and note the project shown on the returned conversation row.
- Open the Project filter.
- Expected
- The row's displayed project should be available as a filter choice.
- Actual
- The sheet offers All Project and states
No linked projectsdespite the list row displaying a project value. - Screenshot
- Not included - the mismatch requires comparison between the list and modal states.
- Verified
- ✅ Reproduced once after the inbox finished loading.
Suggestions
- Enforce E.164-compatible phone validation at both client and server boundaries before creating or updating leads.
- Use one canonical backend query/state model for Leads, Notifications, inbox previews, and conversation detail so the same record cannot disagree across screens.
- Surface explicit success/failure feedback for activity submission and add a visible, confirmed cleanup action for authorized test/admin users.
- Add a System-default appearance setting and preserve the existing dark palette as an explicit option.
Summary
Our QA team confirmed functional authentication, validation for malformed email, stage transitions, notification generation/deep links, responsibility and filter sheets, profile metrics, session persistence, correct version display, and crash-free operation. Release attention is required for invalid phone persistence, unusable WhatsApp conversation detail, and Leads-list/backend inconsistency. Exact inbox search, missing activity feedback, absent theme modes, unconfirmed logout, and contradictory project filtering are secondary but material workflow and usability defects.