Skip to content
All report samples

Sample QA report

Food and parcel delivery app (Spanish)

A real report our QA testers delivered to a customer. To protect the customer's privacy we removed the app name, package name, logins, links and screenshots. The findings are unchanged.

  • Sharp AQUOS R8, Android 13
  • Tested September 2026
  • 7 minor issues
  • 4 suggestions

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 Food and parcel delivery app (Spanish)
Android package Removed to protect the customer's privacy
App version 1.0.4 (version code 14)
Device Sharp AQUOS R8 (A301SH)
Android version 13 (SDK 33)
Screen resolution 1260 × 2730
  • Tested by: Our QA team

App Overview

The app is a Spanish-language customer app for food and parcel delivery in one Colombian town. After a two-step cellphone login, home shows nearby restaurants, product offers, a package-delivery request (Domi), a cart, order history, and a profile with saved addresses and payment methods (cash, card, Nequi). We signed in, browsed restaurants, added a bowl to the cart, opened checkout, followed old food and parcel tickets, edited the profile, and signed out.

Product Perspective

The product is easy to understand: one home for food, one tap for a rider, and cash-on-delivery as the default. Restaurant chips, the cart banner, and the cash checkout path all work without a crash. The weak spots are how the app talks to the user. Login, OTP, profile save, and order tracking still surface English or raw technical text on an otherwise Spanish product, and card expiry fields look filled when they are only placeholders. Those gaps hurt trust more than the catalog itself.

Test Coverage

Area Result
Launch and onboarding Pass
Phone login and SMS code Passed (wrong-data issues filed)
Create-account phone step Passed (same cellphone gate; we did not finish a new account)
Home, search, restaurant chips Pass
Add to cart and open cart Pass
Checkout (cash) Passed up to "Enviar pedido"; we did not send a live order
Card / Wompi setup Failed (placeholder and English-button issues); no real card was saved
Nequi payment Not Tested (no live Nequi charge)
Domi parcel request Passed for the form; we did not dispatch a rider
Order history (Domicilios and Comida) Failed (stale English tracking status)
Saved addresses Passed (empty address rejected with a clear Spanish line)
Profile edit Failed (empty name dumps a JSON error)
Language switcher Passed (Sistema / Espanol / English present; left on Espanol)
Logout Passed (session ended; no confirm dialog)
Landscape on home Passed (offers scroll above the tab bar)

Standard Checks

  • App icon: The launcher lists the app under its customer-app name with a purple lightning-bolt icon on a white circle, matching the in-app mark.
  • Theme: There is no light/dark/system appearance control. Language can be switched, but the app stays on one light look. See S-01.
  • Status bar: Clock and system icons stay readable on the light screens we used. Content does not sit under the status bar on home, login, cart, or profile.
  • Logout: "Cerrar sesion" returns immediately to the welcome screen and the next launch asks for login again. There is no confirmation. See S-02.
  • Bottom navigation / gesture area: Inicio, Historial, Domi, Carrito, and Perfil sit above the system gesture bar and stay tappable.

Critical / Core-Feature Issues

None.

Minor Issues

M-01 Phone login shows English "Invalid input"

Impact: Someone who types letters into the cellphone field gets a generic English error instead of a clear Spanish explanation of what to fix.

Steps to Reproduce:

  1. Open the app and tap "Iniciar sesion".
  2. On "Entra con tu celular", replace the number with abc.
  3. Tap "Enviar codigo".

Expected: A Spanish message that the cellphone number is not valid.

Actual: The field turns red and the helper line is "Invalid input".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

M-02 "Codigo enviado" dialog uses an English Continue button

Impact: After the SMS is sent, the only action on the confirmation dialog is English "Continue" on an otherwise Spanish screen.

Steps to Reproduce:

  1. Open "Iniciar sesion".
  2. Enter a valid 10-digit cellphone number.
  3. Tap "Enviar codigo".

Expected: The button matches the rest of the Spanish UI (for example "Continuar").

Actual: The title is "Codigo enviado", the body is "Revisa el SMS del celular registrado.", and the button is "Continue".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

M-03 Wrong SMS code shows a technical English token message

Impact: A mistyped code produces "Token has expired or is invalid", which does not tell a Spanish-speaking user to try again.

Steps to Reproduce:

  1. Reach "Confirma tu acceso" after sending a code.
  2. Enter 000000 in "Codigo de verificacion".
  3. Tap "Verificar codigo".

Expected: A plain Spanish message that the code is wrong or expired, with a Spanish button.

Actual: The dialog title is "Codigo invalido", the body is "Token has expired or is invalid", and the button is "Continue".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

M-04 Parcel tracking mixes English into a stale "Difundiendo" status

Impact: Older parcel tickets still read as if a rider is being sought, while the status line says the broadcast window already expired, in mixed Spanish and English.

Steps to Reproduce:

  1. Sign in and open Historial.
  2. Stay on "Domicilios".
  3. Open Detalle on a ticket that shows "Difundiendo".

Expected: A finished or expired request should show a finished Spanish status, not a live "searching" state plus an English leftover.

Actual: The header still says "Difundiendo". Under it the app shows "Ventana de difusion expired - Actualizado 45s ago".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

M-05 Card setup validation dialog uses an English OK button

Impact: Saving a card with missing fields pops a Spanish message, then an English "OK", so the payment path does not stay in one language.

Steps to Reproduce:

  1. Add a product, open Carrito, and choose "Tarjeta".
  2. Tap "Configurar".
  3. Leave Wompi terms unchecked and tap "Guardar tarjeta".

Expected: The dialog button is Spanish, in line with "Revisa los campos requeridos".

Actual: The title and body are Spanish. The button is "OK".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

M-06 Card expiry and CVC use misleading placeholder hints

Impact: The Mes, Ano, and CVC boxes show "08", "2029", and "123" as grey hint text that reads like real pre-filled values. A user may believe the expiry and security code are already set, skip them, and only find out at save that the fields were empty.

Steps to Reproduce:

  1. Open Carrito, choose "Tarjeta", and tap "Configurar".
  2. Fill the email and card number, but do not type into Mes / Ano / CVC (they already display "08", "2029", "123").
  3. Tap "Guardar tarjeta".

Expected: The placeholder hints should clearly not look like values (for example "MM", "AAAA", "CVC"), so it is obvious those fields still need input.

Actual: Mes / Ano / CVC show "08", "2029", and "123" in grey placeholder text, which looks like real entries. Because they are only hints, saving shows a red "Ingresa un mes valido." / "Ingresa un ano valido." / "Ingresa un CVC valido." under each, and the card preview still reads "VENCE MM/YYYY".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

M-07 Empty profile name dumps a raw JSON validation error

Impact: Clearing the name and tapping save shows a developer JSON blob instead of a simple "write your name" message, so a normal user cannot tell what to fix.

Steps to Reproduce:

  1. Open Perfil.
  2. Clear "Nombre completo".
  3. Tap "Guardar perfil".

Expected: A short Spanish line next to the name field, for example that the name needs at least two characters.

Actual: A dialog titled "No se pudo guardar" shows a JSON array with "code": "too_small", "path": ["fullName"], and "message": "Too small: expected string to have >=2 characters". The button is "Continue".

Screenshot: Removed from this public sample to protect the customer's privacy.

Verified: ✅

Suggestions

S-01 Add a light / dark / system appearance setting on Perfil

This is a shopping and tracking app people keep open while they wait for food or a rider. Perfil already has an "Idioma" block. A matching appearance control would make night-time tracking easier without changing the brand color.

S-02 Ask before "Cerrar sesion"

Tapping "Cerrar sesion" on Perfil drops straight back to the welcome screen. A short "¿Cerrar sesion?" confirm would stop an accidental tap from dropping a cart and a signed-in session.

S-03 Let customers cancel a food order that stays "Pendiente del restaurante"

Historial > Comida still lists tickets from 30 and 31 de ago as "Pendiente del restaurante", and the detail screen has no cancel action. If a restaurant never accepts, the customer should be able to close that ticket from the same Detalle page.

S-04 Show delivery cost next to Subtotal on Carrito

Checkout currently shows only "Subtotal" and "Enviar pedido". A line for domicilio (even if it is COP 0) would make the cash total obvious before the order goes to the restaurant.

Summary

We wanted to sign in, pick a restaurant, put food in the cart, check a parcel request, and manage the account. Login, browsing, cart, cash checkout up to send, Domi, history, and sign-out all complete. The build is held back by English and raw technical copy on login, tracking, card setup, and profile save, plus expiry fields that look filled when they are not. Fix those messages and the card form before a wider release; the ordering path itself is already usable.

PrimeTestLab Android QA Sample report, one phone Tested September 2026 Findings describe the stated build, phone and flows only. Not a promise of Google Play approval.