Created milestone 7 authored by Jeremie Michaud (jdm489)'s avatar Jeremie Michaud (jdm489)
**Quality Assurance Plan**
* Introduction
* Automated and Regression testing
* User testing
* Experienced users
* Inexperienced users
* Scope
* FURPS
* Functionality goals
* Receipt Input
* User should be able to manually enter a receipt
* User should be able to save an entered receipt
* User should be able to upload an image
* User should be able to have the image scanned and fill in a template receipt
* User should be able to correct errors from scanning image
* Receipt Search
* User should be able to search receipts by business, by date, by contained items categories
* Visualization
* User should be able to visualize their spending by time-frame
* User should be able to visualize their spending by category
* User should be able to visualize their spending in different charts/graphs
* Usability goals
* Software is easy to use
* Success/Error of operations should be clearly indicated
* Reliability goals
* Regular usage is free of unexpected errors
* Manual input is 100% reliable
* OCR is 90%+ reliable
* Program should be available 24/7
* Performance goals
* System responds to any user request in less than 1 second
* Supportability goals
* System should not be dependant on any specific DBMS
* System should be easily extendable and modular
* Quality Objective -
* Users are able to run the program without it crashing
* Users are able to use it with little guidance
* UI is visually appealing
* Roles and responsibilities of team members
* Jeremie
* Backend Testing
* Test database module (unit testing)
* Test OCR module (unit testing)
* Jorgen
* Backend Testing
* Test database module (unit testing)
* Test OCR module (unit testing)
* Lucas
* Frontend Testing
* Test upload function (such as it is)
* Test manual receipt input
* Michael
* Frontend Testing
* Test manual receipt input
* Test sidenav menu
* Test methodology
* Deliverables
* Test Scripts
* Strategies/approach (unit, regression, system/integration, acceptance)
* Unit testing for the database tables, operations
* Manual testing for frontend?
* Bug reporting
* GitLab issue flagging, separate discord channel
* Test tools
* None
* Inspection methodology - deliverables, strategies/approach (not graded)
* Deliverables
* Code review improvement report
* Strategies/approach
* Pair programming
* Code review
* Action Plan (as usual)
<table>
<tr>
<td>
<strong>Person</strong>
</td>
<td><strong>Accomplished</strong>
</td>
<td><strong>Time taken</strong>
</td>
</tr>
<tr>
<td>Jeremie
</td>
<td>Test Plan
<p>
Some database models
</td>
<td>4 hours
</td>
</tr>
<tr>
<td>Jorgen
</td>
<td>Database module debugging
<p>
Test plan
</td>
<td>4 hours
</td>
</tr>
<tr>
<td>Lucas
</td>
<td>Upload UI
<p>
Helped with manual input
</td>
<td>4 hours
</td>
</tr>
<tr>
<td>Michael
</td>
<td>Manual input
</td>
<td>4 hours
</td>
</tr>
</table>
<table>
<tr>
<td><strong>Person</strong>
</td>
<td><strong>To do next week</strong>
</td>
<td><strong>Estimated time required</strong>
</td>
</tr>
<tr>
<td>Jeremie
</td>
<td>Finish database module
<p>
Installing TesseractJS
</td>
<td>5 hours
</td>
</tr>
<tr>
<td>Jorgen
</td>
<td>Finish database module
</td>
<td>5 hours
</td>
</tr>
<tr>
<td>Lucas
</td>
<td>Implement searching
</td>
<td>7 hours
</td>
</tr>
<tr>
<td>Michael
</td>
<td>Connect manual input with database
</td>
<td>5 hours
</td>
</tr>
</table>