Test Results - CankayaUniversity/ceng-407-408-2024-2025-ReSort GitHub Wiki
Test Results
1. INTRODUCTION
1.1 Version Control
Version No | Description of Changes | Date |
---|---|---|
1.0 | First Version | March 23, 2025 |
1.2 Overview
This test plan was prepared to evaluate the functionality and accuracy of the waste separation system developed within the scope of the Resort project. The project covers data collection, classification, recording and interface display processes.
1.3 Scope
This document outlines the test strategy for the software and hardware components of the Intelligent Recycling System including image classification, sensor-actuator interactions, waste sorting mechanisms, and performance under real-world conditions.
1.4 Terminology
Acronym | Definition |
---|---|
YO | YOLOv11 Detection |
RPi | Raspberry Pi Controller |
ARD | Arduino Sensors & Actuators |
WM | Waste Sorting Mechanism |
UX | User Experience |
PERF | Performance & Scalability |
SEC | Security & Privacy |
ROI | Return on Investment & Market Acceptance |
2. FEATURES TO BE TESTED
2.1 YOLOv11 Waste Detection (YO)
- Test the accuracy and consistency of YOLOv11 model to detect waste types.
2.2 Raspberry Pi Control System (RPi)
- Test if the Raspberry Pi runs inference correctly and controls connected components.
2.3 Arduino Sensors & Actuators (ARD)
- Test if Arduino collects sensor data (metal, proximity) and controls motors, servos.
2.4 Waste Sorting Mechanism (WM)
- Test if the physical system correctly directs waste to the appropriate bin.
2.5 User Experience (UX)
- Test the usability and user interaction for setting up and maintaining the system.
2.6 Performance & Scalability (PERF)
- Test how the system behaves under high load and stressful conditions.
2.7 Security & Privacy (SEC)
- Test the system's resistance against unauthorized access and data security.
2.8 ROI & Market Acceptance (ROI)
- Evaluate the system's cost efficiency, market acceptance, and ROI.
3. FEATURES NOT TO BE TESTED
- Cloud logging system.
- External database integration.
4. ITEM PASS/FAIL CRITERIA
A test case passes if all expected outcomes are met without errors. A failure is recorded if the observed result deviates from the expected behavior.
4.1 Exit Criteria
- All High Priority test cases executed.
- Minimum 70% success rate on waste classification.
- Correct waste sorting confirmed in functional tests.
- Usability rating of at least 80% positive feedback.
- Security tests passed without critical vulnerabilities.
5. REFERENCES
- Software Requirement Specification (March 2025)
- Software Design Description
6. TEST DESIGN SPECIFICATIONS
6.1 YOLOv11 Waste Detection (YO)
Subfeatures:
- Plastic Detection (YO.PL)
- Metal Detection (YO.MT)
- Glass Detection (YO.GL)
- Paper Detection (YO.PP)
- Model Accuracy Testing (YO.AC)
- Confusion Matrix Evaluation (YO.CM)
- False Positive/Negative Analysis (YO.FP)
Test Cases:
6.2 Raspberry Pi Control System (RPi)
Subfeatures:
- Model Inference Trigger (RPi.INF)
- Camera Interface Test (RPi.CAM)
- GPIO Pin Test (RPi.GPIO)
Test Cases:
6.3 Arduino Sensors & Actuators (ARD)
Subfeatures:
- Proximity Sensor (ARD.PS)
- Servo Motor Control (ARD.SV)
- Metal Sensor Response (ARD.MS)
- Motor Speed and Direction Control (ARD.MD)
Test Cases:
6.4 Waste Sorting Mechanism (WM)
Subfeatures:
- Conveyor Belt Mechanism (WM.CB)
Test Cases:
6.5 User Experience (UX)
Subfeatures:
- Usability Testing (UX.US)
- Task Efficiency (UX.TE)
- Error Recovery and Feedback (UX.ER)
Test Cases:
7. DETAILED TEST CASES
YO.PL.01
- Purpose: Detect plastic waste correctly
- Requirements: 3.1
- Priority: High
- Dependency: YOLOv11 model trained with plastic class
- Setup: Load sample images containing plastic waste
- Procedure:
- [A01] Run YOLOv11 on plastic images
- [V01] Verify detection includes correct plastic labels and bounding boxes
- Cleanup: Log detection confidence scores and bounding box coordinates
YO.MT.01
- Purpose: Detect metal waste correctly
- Requirements: 3.2
- Priority: High
- Dependency: YOLOv11 model trained with metal class
- Setup: Load sample images containing metal waste
- Procedure:
- [A01] Run YOLOv11 on metal images
- [V01] Confirm model detects metal items accurately
- Cleanup: Generate accuracy report
YO.GL.01
- Purpose: Detect glass waste correctly
- Requirements: 3.3
- Priority: Medium
- Dependency: YOLOv11 model includes glass category
- Setup: Provide test images with glass waste
- Procedure:
- [A01] Execute model inference on glass images
- [V01] Check that glass objects are correctly identified
- Cleanup: Note any missed or misclassified glass items
YO.PP.01
- Purpose: Detect paper waste correctly
- Requirements: 3.4
- Priority: Medium
- Dependency: YOLOv11 model supports paper class
- Setup: Select images featuring paper waste
- Procedure:
- [A01] Perform detection using YOLOv11
- [V01] Validate accurate classification of paper objects
- Cleanup: Record results and annotate errors if any
YO.CM.01
- Purpose: Evaluate confusion matrix of classification
- Requirements: 3.6
- Priority: Medium
- Dependency: YOLOv11 test results generated
- Setup: Use classification results from test dataset
- Procedure:
- [A01] Calculate confusion matrix
- [V01] Analyze true positives, true negatives, false positives, and false negatives
- Cleanup: Document confusion matrix analysis
YO.FP.01
- Purpose: Analyze false positives and false negatives
- Requirements: 3.7
- Priority: Medium
- Dependency: Confusion matrix calculated
- Setup: Identify misclassified items
- Procedure:
- [A01] Analyze false positives and false negatives
- [V01] Document causes of misclassifications
- Cleanup: Propose model improvements
RPi.INF.01
- Purpose: Trigger YOLOv11 model on Raspberry Pi and return result
- Requirements: 4.1
- Priority: High
- Dependency: YOLOv11 model deployed on Raspberry Pi
- Setup: Raspberry Pi booted and camera connected, YOLOv11 inference script ready
- Procedure:
- [A01] Trigger image capture via control signal
- [A02] Run YOLOv11 inference on captured image
- [V01] Validate detection result is returned successfully
- Cleanup: Log inference response and timing
RPi.CAM.01
- Purpose: Validate camera initialization and image capture
- Requirements: 4.2
- Priority: Medium
- Dependency: Camera connected and powered
- Setup: Raspberry Pi with camera module connected
- Procedure:
- [A01] Initialize camera via test script
- [A02] Capture image
- [V01] Verify image is saved/displayed correctly
- Cleanup: Delete captured test images
RPi.GPIO.01
- Purpose: Test GPIO pin response for sensor communication
- Requirements: 4.3
- Priority: Medium
- Dependency: Sensors connected to GPIO pins
- Setup: Connect mock sensors or test circuits to GPIO pins
- Procedure:
- [A01] Send/receive signal on GPIO pins
- [V01] Verify correct read/write operation
- Cleanup: Propose model improvements
ARD.PS.01
- Purpose: Detect object presence with proximity sensor
- Requirements: 5.1
- Priority: High
- Dependency: Arduino board and proximity sensor connected
- Setup: Place object in proximity range
- Procedure:
- [A01] Monitor sensor output
- [V01] Validate detection triggers correct signal
- Cleanup: Propose model improvements
ARD.SV.01
- Purpose: Activate servo motor for sorting
- Requirements: 5.2
- Priority: Medium
- Dependency: Servo motor connected and powered
- Setup: System idle and item detected
- Procedure:
- [A01] Send activation signal to servo
- [V01] Validate movement to correct bin position
- Cleanup: Reset motor to neutral position
ARD.MS.01
- Purpose: Detect metal object and signal system correctly
- Requirements: 5.3
- Priority: Medium
- Dependency: Metal sensor connected
- Setup: Place metal item near sensor
- Procedure:
- [A01] Monitor sensor output
- [V01] Validate correct system signaling
- Cleanup: Log detection output
ARD.MD.01
- Purpose: Test motor speed and direction control
- Requirements: 5.4
- Priority: Medium
- Dependency: Motor driver and DC motor connected
- Setup: Load test firmware to Arduino
- Procedure:
- [A01] Send speed and direction commands
- [V01] Validate motor rotates accordingly
- Cleanup: Stop and reset motor
WM.CB.01
- Purpose: Conveyor directs item to correct bin based on classification
- Requirements: 6.1
- Priority: Medium
- Dependency: Fully integrated system with actuators
- Setup: Item placed on conveyor belt
- Procedure:
- [A01] Run classification and sorting routine
- [V01] Observe if item moves to correct bin
- Cleanup: Reset conveyor for next item
UX.US.01
- Purpose: Evaluate usability with end users
- Requirements: 7.1
- Priority: High
- Dependency: UI functional and accessible
- Setup: Conduct usability testing session with test users
- Procedure:
- [A01] Ask users to complete waste sorting task
- [V01] Collect feedback on interface clarity and ease of use
- Cleanup: Summarize findings in usability report
UX.TE.01
- Purpose: Measure time-to-task efficiency
- Requirements: 7.2
- Priority: Medium
- Dependency: Interface deployed
- Setup: Set stopwatch or log interaction timing
- Procedure:
- [A01] Instruct user to perform sorting or monitoring task
- [V01] Record task completion time
- Cleanup: Compare with baseline targets
UX.ER.01
- Purpose: Test error messages and system feedback
- Requirements: 7.3
- Priority: Medium
- Dependency: Error handling implemented in UI
- Setup: Simulate invalid inputs and system failures
- Procedure:
- [A01] Trigger known error conditions
- [V01] Verify appropriate error messages and guidance displayed
- Cleanup: Reset error states and retry flows
Figures
-
Figure 12: Waste Detection
-
Figure 13: Waste Classification
-
Figure 14: Waste Detection Area
-
Figure 15: Detection Percentages
-
Figure 16: Raspberry Pi and Camera Module
-
Figure 17: New Data Insert