UMass Lowell Dept. of Computer Science
COMP 4620 — GUI Programming II
Spring 2016 Semester, Section 201
Prof. Jesse M. Heines
Notes for Class No. 11
Introduction to Usability Testing and Using MongoDB
Thursday, February 25, 2016
A video of this class is (or will be) posted at:
http://echo360.uml.edu/heines2016/comp4620-201.html
Handouts and Materials
Openings / Announcements / Reminders
The GUI Programming project sequence is not dying just because I’m retiring!
- Prof. Haim Levkowitz is scheduled to teach COMP-4610 and COMP-4620 next semester
- we are, however, hiring three new professors, so one of them might teach it instead
- the course will most likely be renamed to “GUI and Web Programming” to better reflect its content
- in any event, you are welcome to tell fellow students that they can take these courses next year
I have been asked to remind and encourage you to please take the NSSE survey
- eligible students should have received an email from the NSSE administrators with login information and a link to the survey
- the survey takes about 15 minutes to complete
- taking the survey gets you a $5 Starbucks gift card
- there are also numerous other prizes for those who complete the survey
- additional information is available here
I have also been asked to remind and encourage you to take advantage of the Drop-in Resume Makeover event on Tuesday, March 1st
- companies attending: PC Connection, Kronos, Draper Labs, and Philips
- career counselors will also be available to review resumes
- each reviews will be about 15 minutes
- the event is 12:00 noon to 4:00 PM in Alumni Hall here on North Campus
- you must bring a hard copy of your resume
- this event fulfills an E1 requirement for honors students
- for further information or questions, please contact:
- Afua Serwa Addae-Adoo, Assistant Director, Career Services
- University Crossing, Suite 450
- 978-934-6087
- afua_addaeadoo@uml.edu
Code School courses, at least some of which are free
Class Notes
Related reading for this class: Handouts and GetMEAN: Chap. 6
Introduction to Usability Testing
I want to try to present the entire “big picture” today, but you’ll only do part of this in next Tuesday’s class (March 1, 2016)
- remember that I will not be present next Tuesday
- remember that that Tuesday’s tests and documents will not be graded
- the purpose of that Tuesday’s work is for you to get feedback from your peers on your project as it currently stands so that you can improve it before it’s too late
- the more projects you try out, the more you’ll help your fellow students as well as yourself
- group partners can take turns running tests on their own project and testing others’ projects
- this is an important opportunity for everyone, and I rely on your honor to be present and to participate fully
Documents Needed for Usability Tests
- Instructions to be read to the test subject
- Tasks to be performed by the subject on a form that you will hand to the subject for him or her to follow during the usability test
- A form to be used by the evaluator (yourself) to record what happened during the test
- Questions you will ask of the subject after the test
Before the Tests
- If you have time, it is nice to add hooks to your software to
capture users actions
- even a simple time-stamped log is highly useful in reconstructing what
happened
- Test the software thoroughly yourself and with the other member(s) of your
project team
- be critical — help each other — work slowly and deliberately — look
at everything
- dont be shy about making suggestions for improvement
- little changes can have big effects
- Identify potential users who are available to test your software
- schedule them at reasonable intervals
- dont tell them about your software, let them discover things for
themselves
- just say that youre asking them to test a program you wrote
for a class
- Write down the directions you will give these users when they come to take
the test
- even if youre going to give the directions verbally, write them
dosn so that everyone gets the same directions
- Write down the things you will want users to do
- this list may be given to the testers when they come so that they
can refer to it during the test
- Make sure you have everything you need to take notes during the test
During the Tests
- Stick to your plan
- dont deviate from your written directions
- dont answer too many questions, let the user try to figure things
out
- dont improvise, make every test the same
- Sit back and silently watch the subject use your program
- watch carefully -- be as observant as possible
- look at facial expressions for signs of confusion
- Take copius notes during the test! -- write down everything that you observe
- do not “filter” your notes at this point, just write down
everything
- you can analyze and filter the notes after the test is completed, but
you get only one chance to record what went on
- try to record how the user was reacting at specific, identified points
in the program
- Do not talk to the subject during the test!
- if the subject asks a question, reply with something like, “What
do you think?”
- if you must answer a question, try to give a simple “Yes”
or “No” answer
- do not interrupt the subject for any reason
- exception: when it’s time to end the test
- exception: if he or she is obviously stuck and cannot proceed
and is getting frustrated
- let the subject “struggle” for at least 60 seconds before
you interrupt, which can feel like an eternity
- If you have to “bail the subject out,” just fix the problem
and let him or her continue
- do not try to explain what went wrong, just get in, fix the problem, get
out, and let the subject proceed
- Be sure to thank the test participant
After the Tests — With the Subject
- Ask the subject to describe his or her experience before you start asking specific
quesitons of your own
- Ask all subjects the same questions in the same way
- as with the directions, the best way to ensure this is to write your
specific questions down beforehand
After the Tests — Back at the Office
- Organize your notes
- Review them with your fellow co-workers
- Prioritize the changes suggested by the tests
- Make those changes that you can
Final Step — Writing Your Reports — to do immediately after testing or being a test subject
Final Step — Writing Your Report — for Assignment No. 2
- I am expecting a report of about five pages in length
- Your paper should report:
- the details of what happened during your tests
- the changes you plan to make in the final version of your software based on these results
- the changes your tests indicate should be made but that you simply dont have the time to do
- your conclusions about the quality of your user interface
- Use the Short Usability Test Report Template { DOCX | PDF } to guide your work
- See the grading criteria in Assignment No. 2 as we discussed in our last class
Brief review from last class ...

- what, exactly, do we have here?
Writing a REST API (Ch. 6, p. 160)
Overview
The type of API that we will be building is called a REST API
- REST stands for REpresenational State Transfer
- a REST API is stateless, meaning that is has no concept of a current user or history
Here’s where the REST API fits in our application

and here, in a nutshell, is how it works
- the REST API “takes an incoming HTTP request, does some processing, and always sends back an HTTP response” (p. 162)

Syntactic Details
Each CRUD operation has a URL path and optional parameters (p. 163)

- note that some of these are the same
The requests are differentiated by the method that each operations uses (or with which each URL path is called) (p. 163)

Putting these two together we get (p. 164)

When subdocuments are involved, we add the subdocument path to the URL (pp. 164-165)

Response and status codes (p. 165)
- a REST API (or any API for that matter) should always respond
- if the database call is successful, both the returned data (as JSON in our case) and a status code should be returned
- if the call fails for any reason (an error occurs), an appropriate status code should be returned

- status codes — these are standard HTTP status codes

Please don’t forget to fill out the Google form as you review each other’s projects on Tuesday