[ Home | Syllabus | Course Notes | Assignments | Search]
Programming/Testing Policy
In order to gain experience with more examples without over burdening either me or you (too much), I want to try a split programming/testing policy. For selected assignments, one half the class will program it and one half will test it. How to decide? You must do an equal amount of both. You should e-mail you choice (program/grade) for the selected assignments. If more than half choose one option, then the first half repsonding will get their choice. I will notify by e-mail which you should do. If not enough respond, then I will assign, Decision will be made within 24 hours after the Assignment is given.
Since testing is itself an important activity in software engineering, testers will also be graded (by me). Testers are required to submit a report summarizes their testing. This report will consist of 1) Description of the tests performed and rationale for performing them (files used for testing can be attached separately if appropriate) 2) results of the tests 3) recommendation for grade (outstanding - should be placed on the website, solid - all major requirements met, unsatisfactory - some requirements not met or significant errors in the solution). This report will typically be less than a page. The original programmer will receive a copy of this report (after I review it) along with my decision. However, the identity of the tester will not be forwarded to the original programmer. Test Reports are due a week after they are assigned.
Grading the test reports: This grade is assigned by me and I will use the same scale (outstanding, solid, unsatisfactory). If I find your test report to be unsatisfactory, I will grade the program myself (which will make me very unhappy). Outstanding testing will also be published on the web site (with the identity of the programmer removed unless the program was considered outstanding).
Confused? Well this is an experiment. Remember the guiding principles.
We are here to learn
Testing is a very important activity
Learn from your peers
Programming Assignments
Change Version 0 so that it does not
store the text of all messages but rather uses direct file access to read a message when
requested by the user to "Show" a message. IT is OK to store Message Topics in
memory but NOT the Message Text. Change all appropriate data structures. Submit your
source code and a make file in a compressed zip file using the "submit wild" command. Due: Jan 21.
It is OK (even necessary) to store at least one Message Text body. It is OK to store all
the message topics in memory but no more than 2 message text bodies. (i.e. its space
complexity for message text bodies should be constant regardless of the number of
messages). The User interface and file structure should remain the same.
Write a recursive program which will take as
input a file extension (like "txt") and print a list of all files in the current
directory tree (this is the current directory and all its sub directories recursively)
which have that extension. Relevant material is found on pages 56-58 of the Win32
textbook) Due Feb 1
OBJECTIVES : 1) Practice enumerating a list of kernel objects. 2) Use
pattern matching in directory searches 3) See the beauty of recursive programming in
action.
(Note: only half the class has to do this assignment and the other half will grade it -
see programming/grading policy.
GRADING CRITERIA: Grader must define a set of tests and
create a testing directory tree with several files with different extensions. The depth of
this test directory tree must be at least 3. Three grades are possible: Outstanding, Good,
Poor. All outstanding solutions will be published on the web site. A solution which only
prints files in the current directory is poor.
HINT: a recursive solution is the most elegant and easiest to write.
Output Requirements from the Monitoring Client: every RPC from a message client must be displayed on the monitor client screen. Ths output should contain the name of the function being called and the client number assigned to that client.
It is OK to work on this project in teams of 2. In that case, you must provide a testing report which describes the nature and outcome of your testing (test passed/failed).