Master Test Plan
Author: | Sampsa Tervo |
Version: | 0.9 |
Date: | 14.2.2023 |
General information
The purpose of this document is to provide an overview of the testing approach and strategies for the "Skill Collector". This document includes the tests to be performed, roles and responsibilities of people in context to testing and the necessary recources for testing purposes. This document is for all project stakeholders, including the project team, project manager and especially the testers.
About the Test Target / System Under Test
The target of the testing is the "Skill Collector" as a whole including all of its features and functionalities. The "Skill Collector" is a survey web app which sends survey data into a database.
Test goals and primary needs
The various goals of the testing include the following:
- Making sure that the service works and intended
- Ensuring that the service fulfills the end-user's needs and requirements
- Identifying possible vulnerabilities and issues in the system before it's released
- Ensuring that the service is compatible with any possible hardware that it could be accessed with
- Verifying that the service meets the industry standards and regulations
- Making sure that the usability and accessability of the service are up to bar with the end-users' expectations
Schedule
Release Plan
Tested Features
This list contains the features that are to be tested in the project.
Feature ID | Feature name | Test case |
---|---|---|
FEA01 | Backup system | |
FEA02 | Service analytics | |
FEA03 | Feedback system | TC-001 |
FEA04 | GDPR info | TC-006 |
FEA05 | Log management | |
FEA06 | Service containerized | |
FEA07 | Regression test automatized | |
FEA10 | Secured connection | TC-003 |
FEA11 | Domain name | |
FEA20 | Skill info view | TC-008 |
FEA21 | Skill selection view | TC-002 |
FEA22 | Data-csv exporter | |
FEA23 | Skill data importer | |
FEA24 | User management | |
FEA26 | User authorization | |
FEA27 | Admin management panel | TC-009 |
FEA28 | Skill search | TC-005 |
FEA29 | Softskill selection view | TC-004 |
FEA30 | Progress bar | TC-001 |
Non-tested Features
Features that don't require testing.
Feature ID | Feature name | Notes |
---|---|---|
FEA08 | Production environment | |
FEA09 | Testing environment |
Testing Environments
The main testing environment of the project is a docker container running in a cPouta virtual machine. The developers will also be actively testing the system locally on their own machines. The system is going to be tested on machines running on Linux and Windows operating systems.
Resources and responsibilities
Resource | Responsibility | Notions | Company |
---|---|---|---|
Sampsa Tervo | Experimental, functional and performance testing | Test manager | Gang de Farine |
Reima Parviainen | Security testing | Cyber security expert | Gang de Farine |
Justus Hänninen | Functional testing | Mainly testing while developing | Gang de Farine |
Aarne Salmi | Security testing | Gang de Farine |
Testing Levels
There are different functional and non-functional testing levels, which will be explained in the section below.
Acceptance Testing
Acceptance testing is the final stage of the testing, and it will be performed with the end-user of the service before the final release. It's main focus is to ensure that the service meets the end users' requirements and that everything is working as intended. In order to move onto acceptance testing, we need to pass the functional tests and determine that the service is complete.
System Testing
The service as a whole will be tested during the system testing period. The purpose of it is to ensure that all the different components work with each other as intended and that the whole package meets the specified requirements. In system testing we will test different inputs to make sure that they deliver wanted outputs. Different parts of system testing include the following:
- Functional testing: Making sure that the service has all the required functions and that they work as they are supposed to.
- Regression testing: Running the same tests after updates to the code to ensure that nothing breaks in the service.
- Usability testing: Testing the ease of use of different parts of the system and making sure that everything works smoothly.
System Integration Testing
System integration testing will ensure that all the different components in the system are compatible with each other. In this project the main point of system integration testing is to ensure that the web survey works well with the back-end and database to create the correct outputs.
Module / Component Testing
Also known as unit testing, is a type of testing that focuses on testing individual components of the service. The main portion of it will be done by the developers as the service is being developed.
About test planning
The purpose of test planning is to create a detailed picture of how the system is going to be tested, ensuring that the outcome of the project meets all the requirements of the end user.
Testing and troubleshooting processes
The testing will be executed during the development of the project and at the end before release. Each of the different features will undergo testing and they will after each test they will either pass or fail according to each test's specific pass/fail criterias. All of the test will follow general criterias for acceptance and rejection, which go as follows:
- The feature meets the expectations and requirements of the end-user and works as stated in the feature descrtiption.
- The feature doesn't work as intended or doesn't meet the requirements of the end-user.
Chosen test strategy
The testing will be mainly performed manually, but also automated testing will be used especially for regression testing.
Test tools and software used
Functional Testing
The primary goal of functional testing is to ensure that the result meets the end-users requirements and expectations. For this project functional tests will be performed with the Robot framework.
Performance Testing
Performance testing includes tests about speed, responsiveness, stability and resource utilization. We will use Apache JMeter to perform these tests.
Security testing
We will use Robot framework and Naughty Strings for security testing the user interface side. For local security testing we will use Kali Linux.
Availability testing
Availability testing is a process where the service is put under heavy load, and we will be using Apache JMeter for this type of testing.