Functional Requirements: 1. FR01: Browse Menu: The system shall allow customers to browse restaurant menus, view item details (including name, description, price, and optionally, images), and filter or search for specific dishes or cuisines. Test Case ID: TC_FR01_001 Test Objective: Verify that customers can successfully browse restaurant menus and view item details. Test Steps: 1. Open the online food delivery system (website or app). 2. Navigate to the restaurant listing or search for a specific restaurant. 3. Select a restaurant to view its menu. 4. Verify that the menu items are displayed with their names, descriptions, and prices. 5. Click on a specific menu item to view detailed information (if available). 6. Navigate back to the menu. Expected Result: The system displays the restaurant's menu with all items, including names, descriptions, and prices. Detailed information for selected items is also displayed correctly. Acceptance Criteria: o Customers can successfully navigate to and view restaurant menus. o Menu items are displayed with their name, description, and price. o Customers can view detailed information for individual menu items (if available). 2. Place Order: The system shall allow registered customers to select items from a restaurant's menu, add them to a virtual cart, specify quantities, and place an order. Test Case ID: TC_FR02_001 Test Objective: Verify that registered customers can successfully place an order. Test Steps: 1. Log in to the online food delivery system as a registered customer. 2. Browse a restaurant's menu and select at least one item. 3. Add the selected item(s) to the virtual cart, specifying the desired quantity for each item. 4. Review the items and quantities in the cart. 5. Proceed to checkout. 6. Confirm the delivery address and any other required details. 7. Click the "Place Order" button. Expected Result: The system successfully processes the order and displays an order confirmation message with an order ID. The order details should be saved in the system. Acceptance Criteria: o Registered customers can add items to their virtual cart with specified quantities. o The system displays a summary of the order in the cart. o Customers can proceed to checkout and place an order. o The system generates an order confirmation with a unique order ID. 3. Secure Payment: The system shall integrate with a secure payment gateway to process payments for orders using various methods (e.g., credit/debit cards, digital wallets). Test Case ID: TC_FR03_001 Test Objective: Verify that the system securely processes payments for orders using a valid payment method. Test Steps: 1. Log in to the online food delivery system as a registered customer. 2. Add items to the cart and proceed to checkout as per FR02. 3. Select a payment method (e.g., credit card). 4. Enter valid payment details. 5. Click the "Pay Now" or similar button. Expected Result: The system connects to the payment gateway, processes the payment successfully, and displays a payment confirmation message. The order status should be updated to reflect successful payment. Acceptance Criteria: o Customers can select a payment method during checkout. o The system accepts valid payment details. o The payment is processed successfully through the payment gateway. o The system displays a payment confirmation message, and the order status is updated. 4. Track Delivery: The system shall allow customers to track the status and location of their placed orders in real-time or near real-time. Test Case ID: TC_FR04_001 Test Objective: Verify that customers can track the status and location of their order. Test Steps: 1. Log in to the online food delivery system as a registered customer. 2. Place an order that has been accepted by a restaurant and is out for delivery. 3. Navigate to the "Order History" or "Track Order" section. 4. Select the order to track. 5. Observe the displayed order status and delivery location (if available). 6. (If applicable) Verify that the status updates as the delivery progresses (e.g., "Preparing," "Out for Delivery," "Delivered"). Expected Result: The system displays the current status of the order (e.g., "Preparing," "Out for Delivery," "Delivered") and, if available, the real-time location of the delivery driver on a map. Acceptance Criteria: o Customers can access the order tracking feature. o The system displays the current status of the order. o (If available) The system displays the real-time location of the delivery driver. o The status updates accurately reflect the progress of the delivery. 5. Provide Feedback: The system shall allow customers to provide feedback on their orders and overall experience after the delivery is completed. Test Case ID: TC_FR05_001 Test Objective: Verify that customers can successfully provide feedback on their completed orders. Test Steps: 1. Log in to the online food delivery system as a registered customer. 2. Navigate to the "Order History" and locate a completed order. 3. Look for an option to provide feedback (e.g., "Rate Order," "Provide Review"). 4. Select the option to provide feedback. 5. Enter a rating and/or comments about the order and delivery experience. 6. Submit the feedback. Expected Result: The system successfully records the customer's feedback and displays a confirmation message. Acceptance Criteria: o Customers can access the feedback submission feature for completed orders. o Customers can provide a rating and/or comments. o The system accepts and stores the submitted feedback. o The system displays a confirmation message upon successful submission. Non-Functional Requirements: 1. Performance: The system should have an average page load time of no more than 3 seconds under normal operating conditions with up to 100 concurrent users. Test Case ID: TC_NFR01_001 Test Objective: Verify that the system meets the specified performance criteria for page load time. Test Steps: 1. Use a performance testing tool (e.g., Apache JMeter, LoadRunner) to simulate 100 concurrent users accessing various pages of the system (e.g., homepage, restaurant listings, menu pages). 2. Measure the average response time for each page. Expected Result: The average page load time for all tested pages should be less than or equal to 3 seconds. Acceptance Criteria: o The average page load time for all critical user flows is within the 3-second limit under the specified load. 2. NFR02: Security: The system must protect customer payment information using industry-standard encryption protocols (e.g., HTTPS, TLS). Test Case ID: TC_NFR02_001 Test Objective: Verify that customer payment information is transmitted securely. Test Steps: 1. Initiate a payment process in the system. 2. Using a browser developer tool or a network monitoring tool (e.g., Wireshark), inspect the network traffic during the payment information submission. 3. Verify that the connection uses HTTPS and that the payment data is encrypted using TLS. Expected Result: All communication involving the transmission of payment information is conducted over HTTPS, and the data is encrypted using TLS protocols. Acceptance Criteria: o The website/app uses HTTPS for all pages where payment information is entered or displayed. o The TLS protocol version is up to date and considered secure. o Payment data is encrypted during transmission. 3. Usability: The system should have an intuitive and user- friendly interface that allows customers to easily navigate through the menus, place orders, and track their deliveries with minimal effort. Test Case ID: TC_NFR03_001 Test Objective: Evaluate the usability of the system for core functionalities. Test Steps: 1. Recruit a group of representative users (e.g., individuals with varying levels of technical expertise). 2. Ask them to perform specific tasks using the system, such as: ▪ Browse a menu and adding items to the cart. ▪ Proceeding to checkout. ▪ Locating the order tracking information. ▪ Finding the feedback option for a past order. 3. Observe user behavior, noting any difficulties, confusion, or errors encountered. 4. Collect feedback from the users through questionnaires or interviews. Expected Result: Users can successfully complete the assigned tasks efficiently and with minimal difficulty. Feedback indicates a positive and intuitive user experience. Acceptance Criteria: o A high percentage of users (e.g., 80%) can successfully complete the core tasks without significant errors or assistance. o User feedback indicates that the interface is intuitive and easy to use. o Navigation is clear and logical. Validation and Redefinition: After creating the test cases, review the requirements. In this case, the initial requirements seem reasonably clear and testable. The test cases directly address each requirement with specific steps, expected results, and measurable acceptance criteria. For example, FR01 (Browse Menu) is tested by ensuring that the user can navigate the menus and view item details. FR03 (Secure Payment) is tested by verifying the use of HTTPS and TLS for payment information. NFR01 (Performance) has a quantifiable acceptance criterion (page load time within 3 seconds under a specific load). If any requirement had been ambiguous (e.g., "The system should be fast"), it would need to be redefined with more specific and measurable criteria, similar to how NFR01 defines performance. Similarly, if a requirement was untestable as stated, the test case creation process would highlight the need for a clearer definition. For instance, a requirement like "The system should be user- friendly" is subjective and untestable without further definition, which is why NFR03 focuses on specific tasks and user feedback to assess usability.