The purpose of this document is to describe the standards and procedures to follow during the software testing phases of BookingLive. These are the general standards and procedures to follow to plan and conduct software testing and validation. These may be changed via a change control mechanism.
Testing is the process of analysing the software item to detect the differences between existing and required conditions and to evaluate the features of the software. BookingLive define a test strategy for each key area of the software as outlined below.
Test Plan Components
Test plans include the following components:
- Purpose for the test
- Items and features to be tested / not tested
- Pass / Fail criteria
- Individual roles and responsibilities
- Milestones / Schedules
- Risk assumptions and constraints
Specific documentation available during testing includes:
- Requirements specification
- Design specification
- User manual guide
- Installation / setup guide
- Verification and validation plans
Testing will be performed at several points in the life cycle as the product is constructed. Testing is a very dependent activity. As a result, test planning is a continuing activity performed throughout the system development life cycle. Test plans are developed for each level of product testing.
During the testing process, the specific methods and procedures for each type of test are defined and the following methods and criteria are established for the testing of a given deliverable:
To identify Testing Requirements (Scope):
- Identify the software to be tested
- Identify the testing objectives
- Identify the test phases
- Identify the estimates for each task
To Identify Testing Approach:
- Identify the methods and tools required
- Identify any client assumptions / dependencies
To Identify Testing Tasks and Deliverables:
- Identify the activities to perform at each phase
- Identify the client deliverable document
- Identify the contents for each deliverable
- Identify the internal deliverable documents
To Compile Testing Estimates:
- Identify the budgetary estimate for each identified phase of software testing
To Determine Testing Schedules:
- Identify all testing phases
- Identify delivery dates for all deliverables
- Identify training dates required for testing staff
To Determine Testing Phase Completion Criteria:
- Identify the completion criteria of each identified software phase
To Determine Test Environments:
- Identify the software/hardware requirements
- Identify the number of test environments
To Identify Test Team Roles and Responsibilities:
- Identify the overall testing management responsibility and for each test phase
- Identify client roles and responsibilities
- Identify team member training requirements
Software Testing Procedures
The overall approaches to testing are summarised below and identify the types of testing that is performed on the software. The specific methods and procedures for each type of testing are defined individually in separate test plans and is used for evaluating the test results.
Additionally the inputs and outputs required for each type of test, the source of the input and the techniques that will be used to judge the comprehensiveness of the testing effort, the frequency of testing are identified in the test plans.
Automated / Selenium Testing
Automated testing checks the individual components of the booking system to ensure that they function as specified in the scope.Selenium testing is also used to take screen shots of each core system page across multiple browsers.
This measures the site’s interface for ease and intuitiveness of navigation. Observational tests ensure that user requirements have been fulfilled and given tasks to perform whilst using the website have been executed correctly.
User Acceptance Testing (UAT)
Acceptance testing ensures that customer requirements’ objectives are met and that all components are correctly included in a customer package.
Testing done to ensure that that applied changes to the application have not adversely affected previously tested functionality.
Testing done to ensure that the application operates efficiently and effectively outside the application boundary with all interface systems.
Integration / System Testing
Testing conducted in which software elements, hardware elements, or both are combined and tested until the entire system has been integrated. The purpose is to ensure that objectives are met and the software, as a complete entity, complies with requirements.
Security and Penetration Testing
Security testing is performed to ensure that the site, database and data are secure from hackers. Penetration testing is often a component of this, evaluating a sites’ vulnerability to malicious attack.
Confirms functionality against the requirements laid out in the functional specification often using test cases to evaluate whether tasks can be successfully completed
Accessibility testing measures how well the site’s interface accommodates users with disabilities usually through a combination of automated tests using W3C guidelines and live user testing.
Performance testing describes the processes of making the web site and its server as efficient as possible, in terms response time, availability, portability, and scalability.
Component / Unit Testing
Testing conducted to verify the implementation of the design for one software element (e.g., unit, module) or a collection of software elements. Sometimes called unit testing. The purpose of component testing is to ensure that the program logic is complete and correct and ensuring that the component works as designed.
Testing to ensure that all data elements and historical data is converted from an old system format to the new system format.