Milestone III V(advisor) Online Class Management and Academic Advising 0 Samuel Yang University of Connecticut Milestone III Table of Contents 1. Phases of Testing............................................................................................................................1 1.1 Module Testing ................................................................................................................................... 1 1.2 Integration Testing .............................................................................................................................. 2 1.3 Systems/Acceptance Testing .............................................................................................................. 2 1.4 Alpha/Beta Testing.............................................................................................................................. 2 2. Schedules.......................................................................................................................................3 2.1 Test Plan Scheduling ........................................................................................................................... 3 2.2 Phase Dependencies ........................................................................................................................... 3 2.3 Responsibilities and Test Equipment .................................................................................................. 3 Appendix A: Part II .............................................................................................................................4 3.1 Test Documents .................................................................................................................................. 4 3.2 Test Case Generation .......................................................................................................................... 4 3.3 Execution............................................................................................................................................. 4 Appendix B: Terminology ...................................................................................................................4 1. Phases of Testing 1.1 Module Testing Module testing is the testing of functional areas of code that ensures that the ‘module’ meets its requirements and works the way it was designed. There are two subsets of module testing that will be completed in the process of testing this project. Each module is abstracted into a front-end and backend component. Figure 1 shows the generic design of a module. Module 1 Module 2 Back-end: Logic/heuristics, databases, etc. Front-end: User interface/interaction elements, etc. Figure 1: Module Design The goal of module testing is to ensure that the entire module works as it should and the front-end encapsulates the back-end data and logic through a user-friendly interface. The first step is to start from backend testing of each module. What this means is that I will the subset of MySQL queries that the logic can call at any time. This will be sufficient to test the combination of queries and logic when compared to expected results. The frontend testing will build on the back-end testing by displaying the data both accurately and in a user-friendly fashion without errors. This while the backend testing will involve a more systematic approach which will yield either a correct output or an error, the frontend testing contains elements that cannot be categorized in the latter manner. Characteristics such as user-friendliness, aesthetics, and graphical outputs will be adjusted based on designer preference and user standards. The modules that will be tested are listed in Table 1. Module Description Login This will check user login against the database of users Account This will allow a user to change options Status* This will show the user his/her general overview of degree Degree Report* This will show the user a detailed report on his/her degree Class Scheduling* This will allow the user to customize their schedules Class Search* This will allow the user to search for classes Table 1: Modules for testing 1 1.2 Integration Testing Integration testing is the testing of a group of modules. In other words, it will test all modules indicated in the prior section. Due to the nature of the project, the integration testing will be minimal. This is because each module operates independently of each other. The integration testing will mainly consist of test cases that test conflicts that may occur when all modules are active. Integration testing should also test data integrity. This is important because modules may overwrite information that a separate module may also modify. Thus, it is critical to ensure that no data is compromised and each module produces a consistent and accurate output. To delve into specifics, it will be essential to test that the Status module and the Degree Report Module will both output consistent data. The Degree Report Module is an extension of the Status module and it would be disastrous if the data is inconsistent or if any data is overwritten through the generation of each output. Changing the account settings, specifically the degree settings, should accurately be portrayed in every module. The modules should accurately account for setting changes and use the correct logic to calculate schedules and generate degree reports. On a more general level, different logins should direct to the correct user page and settings. 1.3 Systems/Acceptance Testing System testing is to ensure that the functionality of the entire system is according to the design requirements. The system will be tested on a number of different hardware/operating system configurations, although it shouldn’t make that much of a difference. A more relevant test would be to test on most of the popular browsers. Black box testing may apply to this stage of testing but we see that prior stages of testing encompass most elements we wish to test at this stage. Testing the translation of user inputs to system outputs is relevant but may overlap with integration testing. 1.4 Alpha/Beta Testing Alpha and beta testing are critical to the usage of the software in order to ensure that features are as they were intended and unknown errors are discovered. Alpha testing is the testing by the programming team by simulating potential customers. Beta testing is the release of test versions to users outside the programming team. Alpha testing may occur but beta testing will not due to time constraints. 2. Schedules Part II will be written prior to each testing phase. This is the most efficient method because testing will commence once each module is complete. 2.1 Test Plan Scheduling The tests will typically occur during the implementation of each module. There is a set plan, but it will be variably dependent on how much time it takes to complete each module. The plan is shown in Table 2. Component Student Overview Degree Progress Report Schedule Builder Degree/Class Database Integration Testing System Testing Alpha Testing Testing Dates April week 1 April week 2 April week 3 April week 3 April week 4 April week 4 April week 4 Table 2: Test Plan 2.2 Phase Dependencies All module components can be tested independently and concurrently. However, integration testing, system testing, and alpha testing must occur sequentially. Component Student Overview Degree Progress Report Schedule Builder Degree/Class Database Integration Testing System Testing Alpha Testing Dependencies None Maybe Student Overview None None All prior modules complete Integration Testing System Testing Table 3: Phase Dependencies 2.3 Responsibilities and Test Equipment The testing up to beta testing will be done independently since this is an independent project. There will be no additional test equipment necessary, although testing may be done at ITE labs. Appendix A: Part II Part II test documents will written after each module is completed. 3.1 Test Documents 3.2 Test Case Generation 3.3 Execution Appendix B: Terminology Term CSS MySQL PHP PHPMyAdmin Definition Cascading Style Sheets, used for website design A relational database implementation A scripting language for creating dynamic web pages An administrative tool to access and modify MySQL databases