CSC/ECE 517 Fall 2009/program2 buddi wn
Buddi Project
Important Information
- Submission: October 26 (Monday)
- First Feedback: October 30 (Friday)
- Resubmission: November 6 (Friday)
- Final Review: November 9 (Monday)
- Metareview: November 11 (Wednesday)
E-mail for Buddi questions: wyatt@digitalcave.ca or wyatt.olson+buddi-ncsu@gmail.com.
Required Results
This project is more about QA and usability testing, rather than pure development. While some coding may be required to enhance the view layer, the vast majority of the code written will be in JUnit tests. The following is required for your results:
- A .zip or .tgz archive containing the entire Buddi project (or at a minimum, all files which have changed OR a .diff of your changes, as you desire).
- A written report (Model) on the model testing, indicating what your unit tests test (paying attention to edge cases where problems are more likely to occur) and the results of these tests. (The actual unit tests themselves will be included in the archive in part a)
- A written report (View) on the view testing, indicating what tests you performed, and what the results were. Screenshots taken throughout the test procedure are optional, but a very good idea to demonstrate what problems (if any) you have found.
- A written report on what changes you have made to the view (or the model) as a result of your testing. If there were failures or potential improvements discovered in either your tests, this report should include a re-run of the failed tests, showing that they are now working.
Objectives
Functionality
- Verify that splits in the data model have been implemented correctly. Ensure that the API wrapper functions allow transparent access to the model. Ensure that there are no edge cases where data corruption occurs.
- Refine and complete the view layer, and verify that it works as desired in all cases.
Testing
- Verify Model using JUnit.
There are already some model and API tests in the junit source folder - you can use these as a basis for creating more. You should construct some tests to only test the model, others to test the plugin API, and still others to verify that changes written to the API are accessible to the model (and vice-versa).
Be sure to test the edge cases and exceptional input, for instance: what happens if you try to split a transaction 1000 ways? What happens if you try to include 0 splits? What happens when you try to pass null to various setter methods?
- Verify UI
Using your understanding gained from the model tests, you must construct written documents detailing what tests you are planning on doing, and how you plan to go about them. You must then carry out these tests, and document the results. In addition to data integrity, the view tests should include a usability component - is the way which split transactions are expressed intuitive? Are there better ways to do this?
Bugs or Undesired Behaviors
Title | Details | Actual Behavior | Expected Behavior | Solved |
---|---|---|---|---|
Default Amount for split | The default amount is not set to the difference automatically for the new split | Currently, default amount is set to zero | The remaining split amount represents the remaining balance among the splits | No |
Category drop down | Category list not filtered | Some items (credit, cash) are not selectable when selecting a split source. | If it's not available for selection, then better take them off the list | No |
Split From Source | Transaction involves split from sources didn't show the split when selected | It shows <From> in an unselected mode | Should show "split" entry with "..." button surfaced | No |
Create New menu | Undesired behavior. Create new options shouldn't be put under Edit menu. It's not intuitive for new users. | Under My Accounts tab, Edit -> Create Account.
Under My Budget tab, Edit -> Create Budget Category. |
Several options:
|
No |
Create Budget Category using existing category as parent | From "My Budget" tab, "Edit" -> "Create Budget Category" -> create new category and choose one of the parents that does not have any children yet -> "OK". | Parent does not have + sign next to its name. It will only show up when you highlight parent's row or switch view from Buddi and come back. | Parent's name should have "+" sign next to it right after child creation. | No |
No |