DOC PREVIEW
assignment

This preview shows page 1 out of 4 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

17-654: Analysis of Software ArtifactsJonathan AldrichAssignment 8/9: Framework Implementation and TestingAssignment Goals- Evaluate a framework design from a client’s or implementer’s perspective- Gain experience with lightweight formal verification approaches, in this case bychecking typestate with Plural- Practice component, integration and system testing techniquesAt long last an appropriate Bored Games framework design has been selected, and it istime to proceed with implementation. Multiple teams will be working in parallel, withone team developing the framework while another team works on a core game plugin anda third team develops a UI plugin for that game. With the goal of maximizing thelikelihood of product success, Bored Games management has chosen an iterative processthat emphasizes early prototyping and testing. In Phase I, the testing organizations willbe writing test suites for the plugins and frameworks, while the developmentorganizations simultaneously try to get an initial prototype of the game working. Phase IIwill include the completion of game, framework, and UI functionality and morecomprehensive testing.Phase I (Assignment 8) Tasks- [Each team individually]: Design a set of system tests that cover the functionalityof the component you are implementing. The game plugin team should focus onsystem tests that cover the game state space and anything else their plugin isresponsible for; the UI plugin team should focus on system tests that exercise theUI; and the framework team should focus on system tests that exercise differentinteractions between the framework and its plugins. Try to keep the number ofsystem tests reasonable, as you will be responsible for executing them in Phase II.These tests do not have to be automated, although you may find it desirable toautomate them. Include both normal and robustness tests; use you knowledge ofequivalence classes and boundary value testing to maximize the effectiveness ofyour test design.o Turn in your test design, which should briefly summarize what will bedone in each test, and give the rationale for the choice of tests. Therationale can either be paired with each test individually or given for agroup of related tests. For each test, mark it as “core” or “optional.” Coremeans that you are confident you can implement it by Phase II and it isessential to a working game. All other tests are optional; you do not evenhave to have optional tests, but if you do be sure to mark them that way.o Grading: 15 points for the test design. Must have at least 5 system tests,although we expect most teams will have more (there would be manymore in a real setting but we are trying to keep the workload realistic forthe class). Must include both normal and robustness tests. Given theresources available (we expect about 10 tests on average) they shouldcover the functionality reasonably well. The rationale for the test designshould be understandable.- [Each team individually]: Design component tests for the components you will beinteracting with, as follows:o The UI plugin team should design tests for the framework from the UIplugin’s perspective (largely ignoring game interactions); the Gameplugin team should design tests for the framework from the game’sperspective (largely ignoring the UI). When testing the framework, besure to include robustness tests, as frameworks should give good feedbackwhen plugins misuse them.o The Framework team should design tests for both the UI and gameplugins. The framework should not misuse plugins, so there is lessemphasis on robustness when testing them. However, a plugin test should(A) allow testing one plugin at a time (i.e. test the game plugin withoutrequiring a UI plugin implementation) and (B) show interesting ways inwhich the framework might interact with the plugin.o Turn in your test design in the same format described above.o Also turn in the automated code for two (2) tests, written in the JUnitframework. The framework team should write one for each plugin; theplugin teams should write one normal test and one robustness test. Thesetests should be runable against the component(s) you are interacting with,but of course they will not necessarily succeed because those componentsare not fully implemented.o Grading: 10 points for the test design, graded on coverage offunctionality, and robustness tests in the case of testing the framework. 10points for the implemented tests—these must be chosen to be helpful forthe teams you are interacting with, should compile and be “ready to run”against the other teams’ components.- [Framework, Game, and UI teams together]: Implement enough of theframework, the game plugin, and the UI plugin to support the following basicsystem test: Using the user interface, the user will give one or more commandsresulting in a new game, will see the initial game state displayed, will make onelegal move, and will see the game state that is the result of that move displayed.o Demonstrate this simple working system test to an instructor or TA on thePhase I due date.o Grading: 15 points if the basic test works, partial credit for partialfunctionality on the basic testPhase II (Assignment 9) Tasks (tentative)- [Each team individually] Complete the implementation of your plugin orframework codeo Turn in your codeo Grading: 10 points for code that compiles- [Each team individually] Test your code against the system tests you defined inPhase I, as well as the automated tests the other groups wrote for your plugin.Work cooperatively with the other groups to get everyone’s system tests to pass.o Turn in the results of your system testing (i.e. which tests passed). o Grading: 15 points for executing and documenting your system testing.30 points for passing all your core system tests. 15 points if the groupsyou are working with also pass all their core system tests. Partial credit ifsome tests fail.- [Each team individually] Run Plural on your component implementation, and tryto get it to pass your code, using appropriate annotations and minor coderefactorings where appropriate. Write up your experiences with Plural in a shortdocument, with approximately 500


assignment

Download assignment
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view assignment and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view assignment 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?