Skip to content

Instantly share code, notes, and snippets.

@adampetrovic
Created June 11, 2010 06:04
Show Gist options
  • Save adampetrovic/434110 to your computer and use it in GitHub Desktop.
Save adampetrovic/434110 to your computer and use it in GitHub Desktop.
Marking scheme for Electronic Book Store
========================================
Username: 308165721
Automarking tests
-----------------
1/1 create user: base (*)
1/1 create user: duplicate
1/1 create user: 2nd user
1/1 set password: successful (*)
1/1 set password: not logged in
1/1 set password: not logged in after logging out
1/1 set credit card: successful (*)
1/1 set credit card: not logged in
1/1 clear credit card: successful (*)
1/1 clear credit card: not logged in
1/1 get user: successful (*)
1/1 get user: successful - 2nd user
1/1 get user: not logged in
1/1 login: successful (*)
1/1 login: unsuccessful - wrong password
1/1 login: unsuccessful - non-existent user
1/1 logout: not logged in - lecture example
1/1 logout: logged in (*)
1/1 logout: not logged in after logged out
1/1 get categories: empty
1/1 get categories: one category
1/1 get categories: two categories - sort order (*)
1/1 get category: non-existent category
1/1 get category: titles - sort order
1/1 add book: new book (*)
1/1 add book: two different books
1/1 add book: duplicate book
1/1 add book: two categories
1/1 add book: two categories same title
1/1 add book: reusing a title
1/1 remove book: first of two (*)
1/1 remove book: second of two
1/1 remove book: nonexistent title
1/1 remove book: nonexistent category
1/1 protect book (*)
1/1 protect book: nonexistent title
1/1 protect book: nonexistent category
1/1 clear cart (*)
1/1 clear cart: not logged in
1/1 add book to cart: (*)
1/1 add book to cart: not logged in
1/1 add book to cart: non existent category
1/1 add book to cart: non existent title
1/1 remove book from cart: (*)
1/1 remove book from cart: not logged in
1/1 remove book from cart: non existent category
1/1 remove book from cart: non existent title
-/1 remove book from cart: book not in cart
1/1 purchase cart: not logged in
1/1 purchase cart: free books (*)
1/1 purchase cart: non free books (*)
1/1 purchase cart: non free books no credit card
1/1 purchase cart: protected books
1/1 purchase cart: mixed cart (*)
1/1 download: not logged in
1/1 download: not purchased
1/1 download: added but not purchased
1/1 download: purchased (*)
1/1 clear machines: not logged in
1/1 clear machines: empty list
1/1 clear machines: non-empty list (*)
1/1 add machine: not logged in
1/1 get machines: not logged in
1/1 get machines: empty list
1/1 get machines: non-empty list (*)
1/1 get machines: on limit
1/1 get machines: over limit
======
66/67 = 3/3
Testing was unforgiving with regards to non-specified output being
emmitted by the programme: debugging output left in would have caused
problems. [C == Did not compile. T == Terminated by signal (usually
SIGALRM but could be SIGSEGV or SIGBUS).]
Handmarking
-----------
UML object-type model /2 Sensible refinement of subject
0: Major errors/bad design,
e.g. setter/getter-based
1: More right that wrong,
clearly responsibility-based
2: Sensible with only minor errors
UML technical model /3 +1: Must match code
+1: Sensible use of design patterns
+1: Clear refinement of object-type model
Design open to extension /1 Design must follow open/closed principle
Code style /3 +1: Must be readable, consistent
+1: Must have comments
-1: #inclusion of .cc files
+1: Not one big .cc file; separate .cc/.h
Test suite completeness /3 0: No automated test of coverage of even
base cases (marked as *) or unit tests
1: Automated: most 'basic' functionality
2: Automated: good negative case coverage
3: Automated:coverage comparable to above
-1: no unit tests for C++ classes
===
/12
--------------------------------------------------------------------------
3/3 + /12 = /15
Tutor's signature: _______________________________________________________
::::: T000.create_user:_base.output :::::
::::: T001.create_user:_duplicate.output :::::
::::: T002.create_user:_2nd_user.output :::::
::::: T003.set_password:_successful.output :::::
::::: T004.set_password:_not_logged_in.output :::::
::::: T005.set_password:_not_logged_in_after_logging_out.output :::::
::::: T006.set_credit_card:_successful.output :::::
::::: T007.set_credit_card:_not_logged_in.output :::::
::::: T008.clear_credit_card:_successful.output :::::
::::: T009.clear_credit_card:_not_logged_in.output :::::
::::: T010.get_user:_successful.output :::::
::::: T011.get_user:_successful_-_2nd_user.output :::::
::::: T012.get_user:_not_logged_in.output :::::
::::: T013.login:_successful.output :::::
::::: T014.login:_unsuccessful_-_wrong_password.output :::::
::::: T015.login:_unsuccessful_-_non-existent_user.output :::::
::::: T016.logout:_not_logged_in_-_lecture_example.output :::::
::::: T017.logout:_logged_in.output :::::
::::: T018.logout:_not_logged_in_after_logged_out.output :::::
::::: T019.get_categories:_empty.output :::::
::::: T020.get_categories:_one_category.output :::::
::::: T021.get_categories:_two_categories_-_sort_order.output :::::
::::: T022.get_category:_non-existent_category.output :::::
::::: T023.get_category:_titles_-_sort_order.output :::::
::::: T024.add_book:_new_book.output :::::
::::: T025.add_book:_two_different_books.output :::::
::::: T026.add_book:_duplicate_book.output :::::
::::: T027.add_book:_two_categories.output :::::
::::: T028.add_book:_two_categories_same_title.output :::::
::::: T029.add_book:_reusing_a_title.output :::::
::::: T030.remove_book:_first_of_two.output :::::
::::: T031.remove_book:_second_of_two.output :::::
::::: T032.remove_book:_nonexistent_title.output :::::
::::: T033.remove_book:_nonexistent_category.output :::::
::::: T034.protect_book.output :::::
::::: T035.protect_book:_nonexistent_title.output :::::
::::: T036.protect_book:_nonexistent_category.output :::::
::::: T037.clear_cart.output :::::
::::: T038.clear_cart:_not_logged_in.output :::::
::::: T039.add_book_to_cart:.output :::::
::::: T040.add_book_to_cart:_not_logged_in.output :::::
::::: T041.add_book_to_cart:_non_existent_category.output :::::
::::: T042.add_book_to_cart:_non_existent_title.output :::::
::::: T043.remove_book_from_cart:.output :::::
::::: T044.remove_book_from_cart:_not_logged_in.output :::::
::::: T045.remove_book_from_cart:_non_existent_category.output :::::
::::: T046.remove_book_from_cart:_non_existent_title.output :::::
::::: T047.remove_book_from_cart:_book_not_in_cart.output :::::
book 0 added book 0 added
book 1 added book 1 added
user 0 created user 0 created
logged in logged in
title error | category error
::::: T048.purchase_cart:_not_logged_in.output :::::
::::: T049.purchase_cart:_free_books.output :::::
::::: T050.purchase_cart:_non_free_books.output :::::
::::: T051.purchase_cart:_non_free_books_no_credit_card.output :::::
::::: T052.purchase_cart:_protected_books.output :::::
::::: T053.purchase_cart:_mixed_cart.output :::::
::::: T054.download:_not_logged_in.output :::::
::::: T055.download:_not_purchased.output :::::
::::: T056.download:_added_but_not_purchased.output :::::
::::: T057.download:_purchased.output :::::
::::: T058.clear_machines:_not_logged_in.output :::::
::::: T059.clear_machines:_empty_list.output :::::
::::: T060.clear_machines:_non-empty_list.output :::::
::::: T061.add_machine:_not_logged_in.output :::::
::::: T062.get_machines:_not_logged_in.output :::::
::::: T063.get_machines:_empty_list.output :::::
::::: T064.get_machines:_non-empty_list.output :::::
::::: T065.get_machines:_on_limit.output :::::
::::: T066.get_machines:_over_limit.output :::::
g++ -g -c -o Main.o Main.cc
g++ -g -c -o ShopFacade.o ShopFacade.cc
g++ -g -c -o Shop.o Shop.cc
g++ -g -c -o UserStorage.o UserStorage.cc
g++ -g -c -o User.o User.cc
g++ -g -c -o ItemStorage.o ItemStorage.cc
g++ -g -c -o CreditCard.o CreditCard.cc
g++ -g -c -o Book.o Book.cc
flex scanner.ll
g++ -g -c -o parser.o parser.cc
g++ -g -c -o driver.o driver.cc
g++ -g -c -o lex.Shop.o lex.Shop.cc
rm -f libinterface.a
ar cq libinterface.a lex.Shop.o parser.o driver.o
ranlib libinterface.a
g++ -g -L. -o shop Main.o ShopFacade.o Shop.o UserStorage.o User.o ItemStorage.o CreditCard.o Book.o -linterface
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment