Skip to content

QA / manual test checklist for the battery-monitoring changes #35

Description

@almothafar

Purpose

A living manual-QA checklist for the battery-monitoring work (the review #5#16, #18 temp, #12 capacity, #7 cycle count). Tracks what to check, how, where, and whether it's verified — so testing is done deliberately on a real device rather than ad-hoc.

Legend: ✅ verified · ⏳ not yet verified · 🔬 needs a physical device (can't be done reliably on an emulator) · 🤖 covered by automated unit tests (CI).

How to test

  • Install the debug build: ./gradlew :app:installDebug (or adb install -r -g app/build/outputs/apk/debug/app-debug.apk), or Run from Android Studio.
  • Grant the notification permission when prompted (Android 13+).

Automated (CI) — 🤖 no manual action needed

  • 🤖 getBatteryPercentage() guards invalid scale (BatteryDOTest)
  • 🤖 Quiet-hours range logic: same-day / overnight / equal / boundaries (NotificationServiceTest)
  • 🤖 Temperature °C↔°F conversion + "45 °F ≠ 45 °C threshold" (TemperatureUtilsTest)
  • 🤖 Capacity estimate charge_counter ÷ capacity% (SystemServiceTest)

Core behaviour — manual

# Check How / Where Status
1 App launches, shows battery % + status Open app ✅ (emulator)
2 Persistent notification shows live % · status · temp, silent + ongoing Pull notification shade ✅ (emulator)
3 Warning alert fires at warning level Let battery pass the warning % (or set warning high)
4 Critical alert fires at critical level Let battery pass the critical % ✅ (emulator, in-app)
5 Full-charge alert fires at 100% while charging Charge to full
6 Alerts arrive while app is fully closed / swiped away Swipe app away, let level cross a threshold, wait 🔬 ⏳
7 Monitoring + persistent notification resume after reboot Reboot device, don't open app, check shade 🔬 ⏳

Temperature alert (#18)

# Check How / Where Status
8 "High Temperature Alert" toggle + threshold slider present Settings → Notifications & Sounds → Temperature ✅ (emulator)
9 Threshold shows user's unit; switching to °F shows °F range (e.g. 45 °C ↔ 113 °F) Change General → Temperature Unit, revisit slider ✅ (emulator)
10 Temperature reads in chosen unit on main + details Main screen "Temperature" row ✅ (emulator: 25 °C / 77 °F)
11 Alert actually fires when battery gets hot (with hysteresis, one alert per hot spell) Heavy load / charging in warm room 🔬 ⏳

Settings / preferences

# Check How / Where Status
12 Vibrate toggle present; ON→alerts vibrate, OFF→silent-vibration Settings → Notifications & Sounds; trigger an alert ✅ present / ⏳ behaviour
13 Warning/critical level validation (warning must stay > critical) General → move the sliders together
14 Quiet-hours window suppresses sound outside range Set a time window, trigger an alert inside/outside it
15 Long settings list clears the system nav bar (no overlap) Scroll to the bottom of Notifications & Sounds ✅ (emulator)
16 Debug menu (long-press health %) is absent in release, present in debug Long-press the health % on Battery Insights ⏳ (logic verified)

Battery Insights

# Check How / Where Status
17 Charge cycles show the real OS value where reported Battery Insights → Charge Cycles 🔬 ⏳ (emulator doesn't report EXTRA_CYCLE_COUNT; fallback shown)
18 Health % + status render and are consistent with cycles Battery Insights ✅ (emulator, cycle-based)
19 Capacity shows a value from the public API, or "Unknown" if unavailable Main screen "Capacity" row ✅ value (emulator synthetic) / ⏳ "Unknown" path

Notes

Tick boxes / update the Status column as things get verified on device.

Metadata

Metadata

Assignees

Labels

testingManual QA / test checklist

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions