1. Phases of Testing - University of Connecticut

advertisement
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
Download