The C++ code consists of a short system that calculates the total amount to be paid based on hours watched on a streaming platform.
The main menu consists of 3 options:
1οΈβ£ First, enter the data and information so that the system calculates the amount.
2οΈβ£ The second, show on a receipt all the required data based on what was entered on menu 1.
3οΈβ£ The third, close the system.
There are already 2 fixed payments each month, which are:
- fixedFee: 10 USD
- contentProtection: 5 USD
The streaming hour has a fixed price of 2 USD per hour. For the additional hourly charge, it works as follows:
- Category 1: The first 10 hours have no additional charges.
- Category 2: After 10 to 50 hours consumed, an additional 10% is applied to the final price + the price of the first 10 hours consumed.
- Category 3: From 51 to 100 hours, the price of the first 10 hours consumed + 10% of the previous 40 hours, and 20% is applied to the final price based on the hours consumed in this category.
- Category 4: Above 100 hours, the price of the first 10 hours consumed(first category) + 10% of the previous 40 hours (second category) + 20% of the third category + 30% applied to the hours above 100 hours.
The tax price is 13% of the final total payment price. If the client is exempt from taxes, this additional price is not added.
For additional information on the code logic, requirements, processes used, and more, I created a document about all the work behind this project: π Code Documentation
To ensure the functionality and robustness of this system, I applied comprehensive QA strategies:
- Created a Test Plan that outlined the scope, objectives, and testing approach for the system: π Test_Plan
- Black-Box Testing: Focused on verifying the system's input-output behavior, with Boundary Value Analysis.
- Experience-Based Techniques: Conducted Exploratory Testing to uncover unexpected behaviors and edge cases, providing valuable insights beyond predefined test cases.
- Static Analysis/Testing: Reviewed the code to ensure there was no dead code, unused functions, or variables.
Defined Test Cases to validate both functional and edge-case scenarios.
Test cases named 'Regression' represent the test cases executed after each bug fix iteration was submitted.
- π Test Case Document
- π Test Case Regression 1
- π Test Case Regression 2
- Identified issues during test case execution, reported them systematically and fixed the issues: The reporting of the bugs is documented using Notion, here is the link to view the reports: βοΈ Backlog
- Conducted retest and regression testing to confirm fixes and ensure no new issues were introduced.
- Set up C++
- Install a git client such as git bash.
Clone the repository: π₯
git clone https://github.com/kendallvargas/StreamingQA.git
-
Go to the project location and open the 'main' file π
-
Build and Run
βΆοΈ