|
CS 121 -- Fall 2012Phase 3 - Beta Design and Implementation |
In Phase 1 you developed your game concept and in Phase 2 you produced an Alpha release. In Phase 3 you will produce a Beta, which is a feature-complete version of your game. During this phase you will practice a variety of review and testing techniques that reduce software defects and improve software usability. You are to continue all the practices that you have been following and also to update your project documents, e.g., UML, as you make changes.
A key point of Phase 3 is feature-complete. You are to add any and all features that you determine are important to your game to fulfill the original requirements. In Phase 4, you will only make improvements...no additional features. Thus, if you think some feature is important, now is the time to add it.
| Major Deliverables | Component | Points |
|---|---|---|
| Management | Management updates | 5 each week |
| Testing | Test log | 5 each week |
| Code | Code development | 10 each week |
| Code standard | 10 | |
| Static code analysis | 10 | |
| Code walk through | 10 | |
| User tests | User test 1 | 10 |
| User test 2 | 10 | |
| Beta release | Executable | 20 |
| Class presentation | 20 | |
| Documentation | 5 |
Management updates will continue through Phase 3 as described here.
In this phase you will implement the test plan designed in Phase 2 as well as extending it for any new code you write. You are required to maintain a test log that documents the tests you performed, when you performed them, and a summary of the results. The log also documents changes to the test plan. You are also required to maintain a list of known bugs; the description of a bug should be adequate for someone else (e.g. grutors) to reproduce it. (See lecture notes on bug reports. In the case you can't reproduce a bug, include as much information as you can about the conditions under which it arose and the effect.)
Entries in the test log might look like:
4/2/12 2AM performed test protocol A, found one new bug: Missing map
4/2/12 6AM added new unit test for myClass.doSomething(), ran and found no new bugswhere test protocol A and new unit test for myClass are links to descriptions of tests in your test plan and Missing map is a link to the description of the bug (called "missing map") in your know bug list.
Your test log, bug reports, and know bug list will be evaluated weekly according to this rubric.
Throughout this phase you will continue to develop code. You will also assess your code using a variety of techniques.
3.3.1 Weekly code developmentIn this phase you will develop code to add new functionality, which should be specified by Use Cases. You may also refactor existing code to improve its structure. In either case, your code development goals for each week should be based on risk analysis and should be documented in your planning/assessment notes. Details on the requirements for this code is given here. Important and non-trivial details about submitting code is given here.
Earlier in the semester you might have developed coding standards for use by your team. In this phase, you will evaluate and revise (as necessary) your standards. These standards will be used in several code reviews in Phases 3 and 4. Your code standard will be evaluated by this rubric.
You will research static code analysis tools appropriate for your project and choose one or more to run on your code. You will analyze the results of the tests and prioritize problems identified. After fixing the high priority problems you will re-run the tests.
You will write a brief report discussing the tools you considered, rationalizing your choices, documenting initial results (pre-test), analyzing those results, documenting new results (post-test), and, finally, discussing your analysis of the strengths and weaknesses of the tests. Your analysis will be evaluated by this rubric.
One team will conduct a code walkthrough for the class team based on a gameplay video sequence. (The gameplay sequence will be developed by your interaction with Mike a week prior to your presentation). The overall process should take about an hour and will be organized as follows:
You will conduct user tests of your game on your classmates. There is no specific rubric for these tests. Rather you are to take notes and use your survey (which should be on Survey Monkey) to evaluate your game.
Your beta release deliverable will include the game executable and installation/execution instructions. Important: your executable submission should follow these guidelines. You will also give an in-class presentation and demonstration.
Documenting your design, tests, and code should be an ongoing process across phase 3. When the beta release is complete you should provide a wiki document that provides a roadmap to the various forms of documentation including:Deliverables are due as indicated on the Calendar (almost always, Sunday midnight). You should link deliverables to your wiki where specified in the template.
I am not going to rehash grading here. Check out: grading.