Running head: LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE Lab 3 – Nutricipe Prototype Test Plan/Procedure Olga V Gallup CS411 Professor Janet Brunelle Old Dominion University November 30, 2010 V3.1 1 LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 2 Table of Contents 1 OBJECTIVES ..........................................................................................................................3 2 REFERENCES ........................................................................................................................5 3 TEST PLAN.............................................................................................................................5 3.1 Testing Approach ............................................................................................................. 5 3.2 Identification of Tests....................................................................................................... 8 3.3 Test Schedule ................................................................................................................. 12 3.4 Fault Reporting and Data Recording.............................................................................. 13 3.5 Resource Requirements .................................................................................................. 13 3.6 Test Environments.......................................................................................................... 14 4 TEST RESPONSIBILITIES ..................................................................................................15 5 TEST PROCEDURES ...........................................................................................................15 6 TRACEABILITY TO REQUIREMENTS ............................................................................15 List of Figures Figure 1. Prototype Major Functional Component Diagram...........................................................6 Figure 2. Classroom Layout ..........................................................................................................14 List of Tables Table 1. Identification of Tests ......................................................................................................12 Table 2. Test Schedule ...................................................................................................................13 [This space intentionally left blank] LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 1 3 OBJECTIVES Nutricipe is a meal planning tool conceived by the Old Dominion University (ODU) CS410 Blue Group. It is designed to facilitate healthier eating, provide education about healthy food choices, offer nutritional advice based on individual profile, preferences, values, suggest healthy and delicious recipes with nutritional facts, and generate shopping lists. Nutricipe helps people save time by allowing them to organize a daily routine of preparing wholesome meals and including a variety of foods based on personal needs and goals in their diet. It is aimed at individuals who are interested in improving their current health conditions and those who are interested in maintaining good health by eating the right meal, the right way, every time. The prototype of the Nutricipe solution is designed to demonstrate the feasibility of using a profile-based meal planning tool by multiple independent users via the website. The Nutricipe prototype allows demonstrating what the proposed solution will do in a smaller scale and scope. The prototype is intuitive to use. Hence, it allows garnering support from the customers to build the final product, demonstrating mitigation of risks for the final solution, proving the concept of the real world product (RWP), and demonstrating the ease of use. The main goal of the Nutricipe solution is to offer a meal planning tool based on the customer’s individual preferences and nutritional goals. In order to accomplish this goal, the profile system must be built. Every registered user must access and populate his or her profile before Nutricipe is used. The profile will include the customer’s age, gender, activity level, nutritional goals, food preferences, and available ingredients. One of the functional objectives is to show that Nutricipe customers are able to build healthy, delicious meals which account for their individual needs and preferences. Nutricipe customers must fill out their profiles as previously discussed. The Nutricipe software searches LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 4 through the recipe database and selects those recipes that are beneficial to the particular customer based on his or her profile. Then, it allows customer to select different recipes, add individual ingredients, and build a meal. The created meal is built solely based on the unique profile and customer’s choices. Another goal is to educate Nutricipe customers. By specifying different nutritional goals and by filling out their personal profiles, Nutricipe customers can learn what foods they need to consume, what the amounts of calories are best for them, what types of food they need to focus on, and ways on how to prepare their meals based upon results from algorithms. Nutricipe can provide different reports that are based on individual needs, nutritional goals, and preferences. The reports are built using the Graphical User Interface (GUI) and data provided by the algorithms. There are the following functional objectives that support the educational goal of the Nutricipe solution: to provide food recommendations, to offer a meal history, and to track the progress of customers. Nutricipe offers different reports in order to educate customers about nutrition and food recommendations. Nutricipe customers can learn how many calories they need to consume on a daily basis from the daily calorie needs report. They can also gain knowledge on what types of food are better for their nutritional goals, what food categories they need to focus on, and the amounts of food in each category by viewing the food variety report. The recipe search report allows users to learn what recipes can better suit their personal needs and accommodate their nutritional goals. Nutricipe also teaches about the nutritional facts for recipes and individual ingredients by providing the nutritional value report. It also shows customers the percentage of daily goals for the ingredients, recipes, and the entire meals by offering the percentage of daily goals report. Since Nutricipe customers are able to track their meals and LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 5 progress, they can view what they have been eating in the past by producing the food tracking report. They can also evaluate how they are reaching their goals based on the food history report. Finally, Nutricipe produces the user satisfaction survey report to the health clubs to prove that it is capable of helping its customers to accomplish their goals. The purpose of this test plan and procedure is to establish the overall approach, testing sequence, and specific tests to be conducted in order to show that the operational prototype has achieved its objectives. The objectives are a user interface to display data to users, user registration, user authentication, profile population, nutritional recommendations, meal builder generation, tracking history, and administrative interface. The plan and procedures described in this document are designed to verify stable, safe operational performance of the Nutricipe prototype. 2 REFERENCES (Group Section) Gallup, Olga. (2010) Lab I - Nutricipe Product Description. Oct 5th, 2010 Gallup, Olga. (2010) Lab II - Nutricipe Prototype Specification. November 8th, 2010 USDA Nutrient Data Laboratory. (n.d.). The USDA National Nutrient Database for Standard Reference. Retrieved from http://www.nal.usda.gov/fnic/foodcomp/search/ 3 TEST PLAN The following section provides a comprehensive explanation of the Nutricipe test plan. It discusses the types of tests to be performed, the testing schedule, reporting procedures, resource requirements, and the testing environment. It also describes the team member responsibilities. 3.1 Testing Approach The following types of tests will be used to verify performance of the Nutricipe prototype: unit tests, integration tests, system tests, and compliance tests. The unit tests will test the LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 6 individual software components of the prototype. The integration tests will consist of tests of two or more related individual software components. They demonstrate the ability of those components to function properly when they are combined together. The system tests will demonstrate how the entire system works. The purpose of the system tests is to prove that the system is trustworthy. Finally, the compliance tests will demonstrate that the functionality and performance of the prototype matches the requirements of the Nutricipe prototype. Figure 1. Prototype Major Functional Component Diagram The major functional components of the Nutricipe prototype are illustrated in Figure 1. Each component of the prototype must be tested during the component testing phase. The LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 7 components that need to be tested are the SR22 database, the recipes database, the user profiles database, seven algorithms, and the GUI screens. The database functionality of the Nutricipe prototype will be verified using a MySQL query test tool (QTest) and a set of test queries. The queries will verify that all tables and fields are created correctly for the SR22, recipes, and user profile schemas. The select queries will verify that the proper data is populated for the SR22, recipes and user profile schemas. In order to test that all the changes to the database are captured correctly, access to the database will be available throughout the entire prototype testing. When the User Interface updates the database, the appropriate queries will be executed to verify that the changes have been made. The GUI screens will play a role of the test harness. It will allow changing the data and verifying the results via the GUI screens. By changing the user profile data, selecting various recipe search options, and inputting different values for the history prompt, all test cases will be verified by visual inspection of the outputted results via the GUI screens. The integration tests will consist of testing the algorithms and the GUI screens together. In order to test the functionality of the algorithms, different inputs will be selected through the GUI screens. These inputs include, but are not limited to, the user’s age, gender, activity level, nutritional goals, likes, dislikes, available ingredients, and recipes search options. The output of the algorithms will be displayed in the corresponding GUI screens. The compliance tests will consist of testing all components together in a real world simulation and doing a visual inspection of results produced. The tester will be able to access the Nutricipe website and create an account. Then, he or she will be able to proceed with populating a personal profile and exploring all the features. These features include individual recommendations that are based on the user profile, meal builder that offers various types of LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE recipes searches, shopping list generator, food history, and goal history. To test the administrative interface, the tester will be able to log in as an administrator. All testing will be performed in a controlled classroom environment. Results of testing will be confirmed visually. The test cases will be utilized to demonstrate risk mitigation. Prototype functionality will be proven by demonstrating all components successfully pass the test cases described in section 5. 3.2 Identification of Tests (Group Section) Table 1 shows the test cases that will be performed, grouped by category. These test cases may prove one or more functional requirements specified for the Nutricipe prototype. Specific details for each test will be discussed in section 5. Cat ID Description Test Case # Description 1 Database Schema and Interface (Erik) 1.1 Verify all tables and fields are created correctly for the SR22 schema 1.2 Verify that data populated for the SR22 schema 1.3 Verify SR22 database interface is functional and allows for retrieval of information from the MySQL tables 1.4 Verify all tables and fields are created correctly for the recipes schema 1.5 Verify that data populated for the recipes. Model USDA source. 1.6 Verify recipe database interface is functional and allows for retrieval of information from the MySQL tables 8 LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE Cat ID 1 2 Description Database Schema and Interface (Erik) Graphical User Interface – Non-authenticated Users (Ben and Mark) Test Case # 9 Description 1.7 Verify all tables and fields are created correctly for the profile schema 1.8 Verify that data populated for the profiles tables 1.9 Verify profile database interface is functional and allows for insertion and retrieval of information from the MySQL tables 2.1 “About us” page: Verify the “About us” page is rendered correctly (Mark) 2.2 “Contact us” page: Verify the “Contact us” page is rendered correctly (Mark) 2.3 Verify that the User Registration Process creates an account (Ben) 2.4 User Authentication Process: Verify that the login process behaves correctly (Ben) 2.5 User Authentication Process: Verify that an un-authenticated user may only view pages that do not depend on authentication (Ben) [This space intentionally left blank] LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE Cat ID 3 Description Graphical User Interface – Authenticated Nutricipe Customers (Ben, Mark, John, Olga, Erik, Adam) Test Case # 10 Description 3.1 “About us” page: Verify the “About us” page is rendered correctly (Mark) 3.2 “Contact us” page: Verify the “Contact us” page is rendered correctly (Mark) 3.3 Verify that the Account Maintenance module displays/functions properly (Ben) 3.4 Verify that the User Authentication Process allows a user to create/modify only one account (Ben) 3.5 Verify that Profile Set Up and Maintenance modules correctly display dietary data / effect changes. (Ben) 3.6 Verify Daily Caloric Needs Display (John) 3.7 Verify Food Variety Display (John) 3.8 Verify Recipe Search Prompt (John) 3.9 Verify Recipe Search Report Display (John) 3.10 Verify Recipe Card Display (John) 3.11 Verify Nutritional Values and Percentage of Daily Goals of Selected Meal Components Display (John) 3.12 Verify Meal Builder Display (John) LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE Cat ID 3 4 Description Test Case # Graphical User Interface – Authenticated Nutricipe Customers (Ben, Mark, John, Olga, Erik, Adam) Graphical User Interface – Authenticated Administrators and Health Club Moderators (Mark and Or’Sasha) 11 Description 3.13 Shopping List Display: Verify the user can request a shopping list and shopping list is displayed correctly based on the selected meal (Olga) 3.14 Verify User Meal History Display (Erik) 3.15 Verify User Goal Achievement Display (Adam) 3.16 Verify User Satisfaction Survey Prompt (Mark) 4.1 “About us” page: Verify the “About us” page is rendered correctly (Mark) 4.2 “Contact us” page: Verify the “Contact us” page is rendered correctly (Mark) 4.3 Verify Admin Interface (Or’Sasha) 4.4 Verify “Create account” option (Or’Sasha) 4.5 Verify “Deactivate account” option (Or’Sasha) 4.6 Verify “Reactivate account” option (Or’Sasha) 4.7 Verify “User Satisfaction Survey Report” option (Or’Sasha) 4.8 Verify User Satisfaction Survey Report (Mark) [This space intentionally left blank] LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE Cat ID 5 Description Nutricipe Algorithms Test Case # 12 Description 5.1 Verify Calorie Needs Algorithm Functionality (Olga) 5.2 Verify Food Variety Algorithm Functionality (Erik) 5.3 Verify Nutritional Content Calculator Functionality (Cole) 5.4 Verify Recipe Selection Algorithm Functionality (Adam) 5.5 Verify Shopping List Generator Functionality (Olga) 5.6 Verify Food Tracking Algorithm Functionality (Erik) 5.7 Verify Goal Tracking Algorithm Functionality (Adam) Table 1. Identification of Tests 3.3 Test Schedule (Group Section) The Nutricipe team has been allotted a one hour and thirty minutes to demonstrate the functionality of the Nutricipe prototype. The first 15 minutes will be used to introduce the Nutricipe prototype. Table 2 shows the order in which each test case will be executed. [This space intentionally left blank] LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE Start Time (min) Duration Description 13 Test Case # 0:00 15 Introduction n/a 0:15 15 Show Database Schema and Test Interface 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.6, 1.8, 1.9 0:30 5 GUI: Non-authenticated Users 2.1, 2.2, 2.3, 2.4 0:35 30 GUI and Algorithms: Authenticated Nutricipe Customers 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 1:05 15 GUI: Authenticated Administrators and Health Club Moderators 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8 1:20 10 Questions n/a Table 2. Test Schedule 3.4 Fault Reporting and Data Recording One team member will be assigned to record the results of each test through visual inspection of the returned queries and the GUI screens. Test results will be recorded on a test validation sheet as passing or failing. Performance results will also be documented. Performance values may include time intervals to access the database, to output the results on the screen, and to navigate the Nutricipe website. 3.5 Resource Requirements The Nutricipe prototype will require a set of resources to be available to successfully demonstrate the prototype. Two Internet-connected computers will be required. The Nutricipe website will be displayed and tested on one of these computers. Another computer will display test data from the database. LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 3.6 14 Test Environments The prototype demonstration will take place in the Teletechnet classroom in the Gornto building on the ODU campus. Two computers located in the room will be required by the Nutricipe team and will be positioned at the desk. Figure 2 shows the layout of the room. Figure 2. Classroom Layout Two team members will be seated with the computers in front of the room. During the introduction, one team member will stand in front of the room and deliver the Nutricipe introduction presentation. Another team member will be equipped with a test validation sheet to record the status of all the tests. One computer operator will be responsible for executing queries and demonstrating the functionality of the database. Another computer operator will be responsible for launching the Nutricipe website and demonstrating the prototype. LAB 3 – NUTRICIPE PROTOTYPE TEST PLAN/PROCEDURE 4 TEST RESPONSIBILITIES Please see the team’s collaborative version. 5 TEST PROCEDURES Please see the team’s collaborative version. 6 TRACEABILITY TO REQUIREMENTS Please see the team’s collaborative version. 15