Skip to content

M8T3:Perform Full System Validation Test #101

@Hisham4Ahmed

Description

@Hisham4Ahmed

M8T3:Perform Full System Validation Test

(Full-System Validation After Flashing Final Firmware)

With maximum details, zero code, and a pure developer instruction format.


1. Summary

This task ensures the entire system , both hardware + firmware + mobile app + dashboard + server integration, works together in real-world conditions exactly as intended.

It is the final and largest validation stage before long-term testing and demo preparation.

This is NOT unit testing.

This is NOT integration testing.

This is full end-to-end behavior validation , under realistic operation.


2. Goals / Deliverables

✔️ Full validation of

  • Hardware
  • MCAL Layer
  • HAL Layer
  • Application Layer
  • ESP-01 WiFi firmware
  • Mobile App and Dashboard
  • Server communication
  • Power system
  • Sensor readings and decision logic
  • Alerts and data storage

✔️ All functional scenarios validated

✔️ A detailed System Validation Report , including

  • Test checklist
  • Pass/Fail for each item
  • Photos/screenshots of real hardware behavior
  • Logs (MCU UART, ESP logs, server logs)

3. What This Test Covers

This task validates that:

1) System powers up correctly

  • Power stability
  • Brown-out behavior
  • Splash screen
  • Initial sensor detection

2) All sensors operate normally

  • PMS5003
  • MQ135
  • DHT22
  • BME680
  • Internal ADC channels

3) All HAL outputs operate

  • LCD / OLED
  • Buzzer
  • LEDs
  • Bluetooth
  • External EEPROM
  • ESP-01 WiFi

4) All application tasks run within scheduler time limits

  • Sensor manager
  • Display manager
  • Alerts manager
  • Data processing
  • Communication manager
  • Storage manager
  • System control

5) Mobile app syncs properly

  • Bluetooth readings
  • Commands (threshold update)
  • Device status

6) Dashboard works

  • Real-time data stream
  • Historical logs
  • Alerts notification
  • Server endpoints

7) WiFi provisioning works

  • AP mode
  • Web UI
  • Save credentials
  • STA connect
  • Auto-reconnect

8) Server communication

  • POST sensor data
  • GET thresholds
  • Server acknowledgment
  • Timeout recovery

9) EEPROM persistence

  • Saving thresholds
  • Loading config after reboot

10) Error handling

  • Sensor failure
  • WiFi disconnect
  • Overflow of UART buffers
  • Power dip
  • Invalid ADC reading

4. Step-by-Step Validation Procedure

Step 1 — Pre-Test Setup

Developer prepares:

  • Final hardware prototype (from M8T1)
  • Final flashed firmware (from M8T2)
  • Mobile app installed
  • Web dashboard accessible
  • ESP-01 provisioned + server online
  • Serial terminals open (optional logs)
  • All sensors connected and functioning
  • Power supply stable (recommended: bench PSU)

Step 2 — Power-On Behavior

Check:

  • MCU boots with splash screen
  • No resets within first 10s
  • ESP-01 sends boot messages
  • LCD/OLED displays initial state
  • No abnormal buzzer or LED behavior

Record observations.


Step 3 — Sensor Reading Validation

For each sensor:

Verify:

  • Raw readings are stable
  • Processed values follow specifications
  • No out-of-range values
  • Trends follow environmental changes

Perform dynamic tests:

  • Blow air on PMS5003
  • Use alcohol near MQ135
  • Warm DHT22 slightly
  • Breathing near BME680

Each sensor must react correctly.


Step 4 — Application Layer Tasks Validation

Check all scheduler tasks:

Task Expected Behavior
System Control System state transitions correct
Sensor Manager Non-blocking sampling, updated values
Data Processing Threshold logic executes properly
Storage Manager No EEPROM corruption
Alerts Manager Alerts are correct and non-spammable
Display Manager Screen updates without flicker
Communication Manager WiFi/BT runs without blocking

Ensure CPU time <= deadline for each task.


Step 5 — WiFi Provisioning Test

Trigger provisioning:

  • MCU → CMD_ENTER_AP
  • ESP-01 enters AP mode
  • Connect mobile phone to AP
  • Open Web UI
  • Enter SSID, Password, Server URL
  • Save
  • ESP-01 connects to router
  • MCU receives: RESP_PROVISIONING_COMPLETED

Verify:

  • Credentials saved in ESP flash
  • Auto-connect on reboot

Step 6 — Communication (Server) Test

Push sensor data

MCU → ESP: CMD_SEND|{...}

Server must log the data.

Get thresholds

MCU → ESP: CMD_GET_THRESHOLDS

MCU updates internal config.

Simulate timeout

Disable router temporarily → ESP must retry.


Step 7 — Mobile App Sync

Check via Bluetooth:

  • Live readings
  • Update thresholds
  • Control buzzer (if allowed)
  • Device info

Ensure no lag > 1 sec.


Step 8 — Display Validation

LCD/OLED must show:

  • Multi-sensor page
  • Alerts page
  • WiFi status page
  • Device info

Switching must be smooth.


Step 9 — EEPROM Persistence

Test:

  1. Update thresholds
  2. Reboot device
  3. Confirm values restored from EEPROM

Step 10 — System Stress Test

Run device for 30–60 minutes :

  • Monitor stability
  • Sensor trends
  • No memory leaks
  • No reset loops
  • No ESP hangs

5. Deliverables

Developer must deliver

✔️ System Validation Checklist (Filled)

Step-by-step table marking PASS / FAIL / NOTES.

✔️ Test Logs

  • MCU UART logs
  • ESP logs
  • Server logs
  • App screenshots
  • Dashboard screenshots

✔️ Photo/Video Evidence

  • Power-on behavior
  • Alerts
  • Display pages

✔️ Final Validation Report

Document containing:

  • All test procedures
  • Results
  • Notes
  • Issues found
  • Fix suggestions

✔️ GitHub Issue Updated

With attachments + conclusions.


6. Acceptance Criteria

System passes validation if:

  • All subsystems work as expected
  • No critical or blocking issues
  • All communications reliable
  • Sensors produce stable readings
  • Device can run for 1 hour continuously
  • Dashboard + App both sync correctly

7. Definition of Done (DoD)

  • ✔️ Full validation report complete
  • ✔️ Test evidence attached
  • ✔️ All PASS or minor issues only
  • ✔️ Green light for M8T4 (Power Optimization)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status

Backlog

Relationships

None yet

Development

No branches or pull requests

Issue actions