Kihagyás

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

  1. In Core.Events.Type.LeftClickEvent.java, the constructor assigns the y parameter value to the x field as well.
  2. The setHealth() method in server/game/city/City.java does not enforce the maximum value limit.
  3. The setIgnoresTileObstructions() method in server/game/city/City.java is incomplete and triggers an error.
  4. The getValue() method in shared/stat/StatLine.java performs 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

  1. When a WorkerShip object is moved onto a tile where it can fish, it becomes stuck after starting to fish, and the fishing action also stops.
  2. 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.
  3. 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.


Utolsó frissítés: 2025-11-06 11:51:02