The testing will be conducted in three main phases: Unit Testing, Integration Testing, and User Testing. Each phase will focus on verifying specific aspects of the app.
Objective: Verify the functionality of individual components in isolation.
Key Components to Test:
Login System:
Test valid and invalid login credentials.
Test password recovery functionality.
Ensure Firebase authentication integration works correctly.
Virtual Closet:
Verify that clothing items can be added, edited, and deleted.
Test organization by user-defined categories.
Outfit Creation:
Confirm that items can be dragged and dropped into the outfit canvas.
Verify that the outfit can be saved to collections.
Scanner Page:
Test camera functionality and image capture.
Verify AI edge detection and background removal accuracy.
Machine Learning Algorithm:
Test the inspiration image upload process.
Verify that the algorithm generates appropriate outfit suggestions using closet items.
Tools:
Python's unittest or pytest for testing backend components.
Flutter’s built-in testing tools for UI and widget testing.
Objective: Test the interaction between components to ensure seamless functionality.
Key Test Cases:
Login → Home:
Verify redirection to the Home page after a successful login.
Ensure data retrieval from Firebase for the logged-in user.
Home → Scanner → Closet:
Test that items added via the scanner are correctly saved in the virtual closet.
Outfit Creation → Collections:
Confirm that outfits created on the Create page are saved under the correct collection in Firebase.
Inspiration Image → ML Algorithm:
Test that the ML algorithm processes the image and returns outfit suggestions without errors.
Tools:
Postman or equivalent tools to test API communication.
Firebase Emulator Suite to test backend interactions in a safe environment.
Objective: Evaluate the app’s usability and identify areas for improvement based on user feedback.
Key Scenarios:
New User Workflow:
A new user creates an account, adds items to the closet, and saves an outfit to a collection.
Frequent User Workflow:
A returning user uploads an inspiration image and creates a new outfit based on the ML-generated suggestions.
Task completion time: Measure how long it takes users to complete key tasks.
Error rate: Record the number of issues encountered by users.
User satisfaction: Collect feedback through surveys or interviews.
UsabilityHub or Google Forms for collecting feedback.
Screen recording tools to observe user interactions.