Repository navigation
We are pleased to announce ReelRec v1.0.1, a quality and testing focused update to the ReelRec movie recommendation system. This release builds upon the foundation of v1.0 by introducing a comprehensive testing framework, improved code structure for testability, and detailed code coverage analysis, significantly enhancing the reliability and maintainability of the application.
What's New/Changed in v1.0.1
- Enhanced Testing Framework:
- Implemented comprehensive Unit Testing (JUnit 5) for core components (
Validator,RecommendationSystem,Movie,User). - Added explicit Integration Testing (
IntegrationTest.java) demonstrating Top-Down techniques using Stubs to test the coreReelRecProcessorlogic. - Implemented System-Level Integration Testing (
AppEndToEndTest.java) verifying the end-to-end application flow with all real components under various scenarios (valid inputs, file errors, data errors). - Formalized Black-Box Testing scenarios within
AppEndToEndTest.javacovering equivalence partitioning, boundary values, and error conditions. - Verified Data Flow implicitly through integration and end-to-end tests, ensuring data propagates correctly between components.
- Implemented comprehensive Unit Testing (JUnit 5) for core components (
- Code Coverage Integration:
- Integrated the JaCoCo Maven plugin to provide detailed code coverage reports (HTML format).
- Achieved high coverage (~96% Instruction / ~86% Branch) for the core logic classes after excluding UI/Launcher code, increasing confidence in code quality. (Refer to the latest generated report for exact figures).
- Improved Testability & Structure:
- Refactored the main application workflow into a dedicated
ReelRecProcessorclass, separating core logic from theReelRecAppentry point. This enhances testability, particularly enabling testing with stubs.
- Refactored the main application workflow into a dedicated
- Updated Documentation:
- Added detailed testing strategy documents:
docs/integration-tests.mdanddocs/test-cases.md. - Updated
README.mdto include instructions for running tests and viewing coverage reports.
- Added detailed testing strategy documents:
- Build Process Improvements:
- Updated Maven
pom.xmlto reliably execute tests and generate coverage reports, including configurations for class exclusions.
- Updated Maven
Core Features (Retained from v1.0)
- Dual Interface Support: GUI Application (window-based) and CLI Application (command-line).
- Default Resources Included: Sample
movies.txtandusers.txt. - Robust File Validation: Validates input files and provides error messages.
- Integrated Packaging: Executable JAR files for both GUI and CLI.
Testing Enhancements in Detail
This release introduces significant testing capabilities:
- Running Tests: Execute the full suite of unit, integration, and end-to-end tests using Maven:
mvn clean test - Viewing Test Results: Detailed test outcomes (pass/fail/error) are generated by the Surefire plugin in
target/surefire-reports/. - Viewing Code Coverage: An HTML code coverage report is generated by JaCoCo. Open
target/site/jacoco/index.htmlin a web browser to explore line and branch coverage for tested classes.
Folder Structure
- reelrec-1.0.1: Contains the executable GUI application (
reelrec-1.0.1.jar). - reelrec_CLI: Contains the executable CLI application.
- resources: Default input files (
movies.txt,users.txt). - README.txt: Includes detailed usage instructions and system requirements.
- LICENSE: License information.
Installation & Usage Instructions
-
Download and Unzip:
Download the release package (e.g., ReelRec_1.0.1.zip) and extract it. -
For the GUI Application:
- Navigate to the
reelrec-1.0.1folder (or equivalent) and run the executable jar file:java -jar reelrec-1.0.1.jar
- (GUI usage remains the same as v1.0)
- Navigate to the
-
For the CLI Application:
- Navigate to the
reelrec_CLIfolder (or equivalent). - Run the CLI jar via the command line:
java -jar reelrec_CLI.jar [moviesFilePath] [usersFilePath] [recommendationsFilePath]
- (CLI usage remains the same as v1.0)
- Navigate to the
System Requirements
- Java Runtime Environment (JRE) version 11
Future Work
(Same as v1.0 unless you have new plans)
Future releases will aim to expand features such as:
- Enhanced recommendations algorithms.
- Improved user interface and configuration options.
- Extended support for additional data sources and file formats.
Licensing
This project is licensed under the terms specified in the included LICENSE file.
Full Changelog: v1.0...v1.0.1