- Test plan
- 1. Introduction
- 2. Evaluation Mission and Test Motivation
- 3. Target Test Items
- 4. Outline of Planned Tests
- 5. Test Approach
- 6. Entry and Exit Criteria
- 7. Deliverables
- 8. Testing Workflow
- 9. Environmental Needs
- 10. Responsibilities, Staffing, and Training Needs
- 11. Iteration Milestones
- 12. Risks, Dependencies, Assumptions, and Constraints
- 13. Management Process and Procedures
The purpose of the Iteration Test Plan is to gather all of the information necessary to plan and control the test effort for a given iteration. It describes the approach to testing the software. This Test Plan for Ceangal Messenger supports the following objectives:
- Identifies the items that should be targeted by the tests.
- Identifies the motivation for and ideas behind the test areas to be covered.
- Outlines the testing approach that will be used.
- Identifies the required resources and provides an estimate of the test efforts.
This test plan will cover tests assuring the functionality of the application's front end, back end and the communication between the two. This document shows the following types of testing:
- Unit Testing
- Functional Testing
- API Testing
Not covered are any tests related to performance and scale or usability.
This test plan is written primarily for internal documentation reasons. It is meant to provide orientation to the developers to work from and as a documentation to measure the fullfillment of quality requirements against.
Abbr | Abbreviation |
---|---|
API | Application Programmable Interface |
CI | Continuous Integration |
CD | Continuous Delivery/Deployment |
N/A | not applicable |
SRS | Software Requirements Specification |
TBD | to be determined |
UI | User Interface |
VC | Version Control |
TDD | Test Driven Development |
Title | Publishing organization |
---|---|
Blog | Ceangal Team |
GitHub Repository | Ceangal Team |
UC1 Add friend | Ceangal Team |
UC2 Create text channel | Ceangal Team |
UC3 Create user profile | Ceangal Team |
UC4 Delete account | Ceangal Team |
UC5 Edit text channel | Ceangal Team |
UC6 Edit user profile | Ceangal Team |
UC7 Send private message | Ceangal Team |
UC8 Show friends | Ceangal Team |
Test Plan | Ceangal Team |
SRS | Ceangal Team |
SAD | Ceangal Team |
n/a
Testing serves to ensure that the written code does what it is intended to do. It also prevents future code changes to break existing functionality unnoticed. In the context of integration it can also prevent broken software states to be merged into secured VC branches.
Testing is a crucial phase in the development cycle. It is necessary in order to fix technical bugs and important functional problems. With TDD we define the test first and can fix bugs before they even occur.
The tests are done to ensure quality and mitigate risks and fulfill functional requirements. Their purpose is to provide stability for our application.
- (Electron frontend)
- Server backend (API)
Frontend: Electron Desktop Client:
- Unit testing
Backend: Spring Boot Application:
- Unit testing
- Functional testing
- Api testing
The tests themself will not be tested and will not account into code coverage.
n/a
Because of time and resource constraints we will not do:
- Stress test
- Load/performance tests
- Usability tests
- UI tests
- any further tests
Unit testing ensures, that the tested sourcecode works as expected. Therefore small parts like methods of the sourcecode are tested.
Description | |
---|---|
Technique Objective | Ensure that the implemented code works as expected |
Technique | Implement test methods using JUnit and MochaJS |
Oracles | Test execution logs results to the command line in IDE and GitHub Actions |
Required Tools | JUnit 5 and MochaJS Dependencies in Frontend and Backend |
Success Criteria | All tests pass in IDE and GitHub Actions. |
Special Considerations | - |
Functional testing is to develop test cases to test the behavior of software's functionality.
Description | |
---|---|
Technique Objective | Ensure that the application behaves correct |
Technique | Writing Gherkin .feature files with clearly defined steps and the expected result. Written in simple english. |
Oracles | Test execution logs results to the command line in IDE and GitHub Actions |
Required Tools | Dependencies of Cucumber and JUnit to execute tests |
Success Criteria | All cucumber tests pass. All tests pass in IDE and GitHub Actions. |
Special Considerations | - |
Api Testing is to test the endpoints of the application. The main goal of Api testing is to ensure, that the provided API of the Backend behave as expected.
Description | |
---|---|
Technique Objective | Test the endpoints with JUnit (MockMVC) |
Technique | For every important endpoint of the API an test exists |
Oracles | Test execution logs results to the command line in IDE and GitHub Actions |
Required Tools | JUnit |
Success Criteria | All tests of the endpoints pass. All tests pass in IDE and GitHub Actions. |
Special Considerations | - |
n/a
n/a
n/a
n/a
n/a
Incidents and Change Requests are handled via our project management tool YouTrack.
n/a
- Local testing in the IDE
- Commit and Push triggers build and test execution in the CI Pipeline (GitHub Actions)
- Each pull request triggers the pipeline again (build and test)
The following table sets forth the system resources for the test effort presented in this Test Plan.
Resource | Quantity | Name and Type |
---|---|---|
CI/CD server | 1 | GitHub Actions |
local test machine | 1 | computer (Ceangal Team |
The following base software elements are required in the test environment for this Test Plan.
Software Element Name | Type and Other Notes |
---|---|
IntelliJ | Test Runner / IDE |
JUnit 5 | Unit testing backend / API testing |
Cucumber | Functional testing |
MochaJS | Unit testing frontend |
The following tools will be employed to support the test process for this Test Plan.
Tool Category or Type | Tool Brand Name |
---|---|
Repository | GitHub |
CI/CD Service | GitHub Actions |
Role | Person Assigned | Specific Responsibilities or Comments |
---|---|---|
Test Manager | Fabian | Provides management oversight. |
Test Designer | Fabian,Lennart,David,Lorenz | Defines the technical approach to the implementation of the test effort. |
Test System Administrator | Fabian,Lennart | Ensures test environment and assets are managed and maintained. |
n/a
We want to keep over 25% code coverage.
n/a
n/a