Intermediate Report¶
Document Information¶
Document Number: KR-002
Tested Software¶
OpenCiv - https://github.com/RyanGrieb/OpenCiv/tree/old_java
Team Members¶
- Kiss Pista István - Tester
- Metil Ibolya - Tester
- II. Derivált - Lead Tester
Version History¶
| Version | Release Date | Description |
|---|---|---|
| 1.0 | 2025.11.10. | Report submitted as an interim deliverable |
Executive Summary¶
This report presents the progress of testing activities for the OpenCiv project as follows:
No issues have arisen in communication or collaboration; everyone performs their assigned tasks according to plan, and teamwork proceeds smoothly. However, a major change had to be recorded in our test plan once it became clear that the selected project also has a Java-based version instead of TypeScript, which includes more features and, consequently, more testable components. Switching to the Java version altered our schedule, but the transition was successful and smooth, and the test plan received an updated version with corrected details.
In Phase 2, manual testing was carried out, during which identified defects were recorded. Unit testing was also performed, along with coverage measurement. Some defects were also detected during unit testing (see "Achieved Results" section). In this phase, the focus was mainly on coverage; therefore, in Phase 3, we will focus more on load testing while still maintaining the planned coverage levels.
Tasks Completed¶
Development Environment Setup for All Team Members:
- Dependency injection configuration in IntelliJ IDEA
- JUnit setup
- Mockito setup
- Adjustments necessary for execution
Manual Testing:
- Learning the gameplay
- Recording noticeable defects
Knowledge Acquisition Related to Required Technologies:
- Basics of coverage measurement
- Learning JUnit version 5 (Annotations, built-in functions)
Defining Conventions:
- Proper use of directory structure (test packages)
Unit Testing:
- Unit testing of the packages and classes specified in the issues using JUnit 5 and Mockito
Coverage Measurement:
- Current number of unit tests in the main project: 245
Achieved Results¶
Defects Identified During Unit Testing¶
- In
Core.Events.Type.LeftClickEvent.java, the constructor assigns theyparameter value to thexfield as well. - The
setHealth()method inserver/game/city/City.javadoes not enforce the maximum value limit. - The
setIgnoresTileObstructions()method inserver/game/city/City.javais incomplete and triggers an error. - The
getValue()method inshared/stat/StatLine.javaperforms incorrect calculations with float values (occurs in two tests:GardenTest,BazaarTest).
Additional failing test cases indicate null pointer exceptions
(AIPlayerTest, ColossusTest, GreatLibrary, SoundHandlerTest).
Defects Identified Manually¶
- When a
WorkerShipobject is moved onto a tile where it can fish, it becomes stuck after starting to fish, and the fishing action also stops. - The built-in counters for research and learning features do not display the correct remaining turns, and when a user initiates new research or learning, the counters do not update.
- The “Next Turn” button works correctly when clicked with the mouse, but if the spacebar (which has the same function) is pressed, it allows the player to skip mandatory actions that should be completed in the current turn.
Main Coverage Results¶
| Unit | Class | Method | Line |
|---|---|---|---|
| Entire project | 31% | 11% | 7% |
| Event | 95% | 94% | 90% |
| Server | 61% | 23% | 15% |
| Util | 50% | 16% | 5% |
| Unit | Class | Method | Line |
|---|---|---|---|
| Entire project | 275/870 | 592/5146 | 1286/17011 |
| Event | 46/48 | 182/192 | 252/278 |
| Server | 446/730 | 872/3678 | 1994/13058 |
| Util | 2/4 | 2/12 | 4/76 |
Coverage Test Success Rate: 98.4%
Actual Efforts¶
| Task | Planned Effort | Actual Effort | Note |
|---|---|---|---|
| Setting up development environments for all team members | 4 hours | 8 hours | |
| Manual testing | 8 hours | 8 hours | |
| Learning required technologies | 3 hours | 5 hours | |
| Defining conventions | 2 hours | 1 hour | |
| Unit testing | 12 hours | 12 hours | |
| Coverage measurement | 4 hours | 2 hours |
Note: The above data are illustrative only. The original report linked the corresponding issues and described the tasks performed instead of listing time efforts. Linking the issues remains, of course, possible.
Progress¶
- Testing is being conducted according to the revised test plan.
- Risk mitigation methods are applied as defined in the plan.
- Communication is smooth, and we use the channels described in the test plan.
- The selected testing approaches and techniques are applied as planned.
- Work pace slightly decreased due to minor difficulties, but this does not affect project success.
- Coverage testing proceeds according to the design plan.
- Overall, Phase 2 was completed on time; some coverage measurements remain to be done.
- Next, we will focus more on load testing and complete the remaining coverage tasks.
Deviations from the Test Plan¶
- The initial test plan had to be modified when we decided to test the Java branch. The reason was improved testability, richer functionality, and better workload distribution among team members.
- Due to the transition, we had to include additional learning for new technologies, which caused some role deviations in Phase 2 compared to the original plan.
- The transition also shortened the working portions of our phase schedules, but all deadlines defined in the test plan were met.
Date: 2025.11.10.