Homework 5
caution
- You are expected to work individually.
- Due: Monday April 7th at 11pm EST (Baltimore time).
- This assignment is worth 50 points.
Objectives
- Debugging Basics
- Usability Testing
- Load Testing Metrics
#
Task 0 (23 points)Answer the following questions in details:
- What are the differences between testing and debugging?
- How testing and debugging complement each other?
- Is testing necessarily a prerequisite of debugging? Explain.
- The original
ddmin()
algorithm finds only one possible 1-minimal input i.e. an input where removing any single character makes the failure disappear. Sketch an extension ofddmin()
algorithm namedddminAll()
that finds ALL possible 1-minimal inputs. - Why throughput is a valuable and important metric when it comes to load testing? Explain clearly with at least two reasons.
#
Task 1 (12 points)The function bool geegg(String s)
returns:
true
, i.e. failure, if the strings
contains threeg
characters or more,true
, i.e. failure, if the strings
contains twoe
characters or more,false
, i.e. no failure, otherwise.
For instance,geegg("good eggs tomorrow")
returnstrue
, andgeegg("no eggs today")
returns false.
Apply ddmin() algorithm on the following inputs:
a-debugging-exam
as-easy-as-pie
Write down all the steps ddmin()
would take to simplify these inputs.
#
Task 2 (15 points)Consider the following three "authentication" views. Rank them in the order of usability (i.e., most usable to least usable). Back up your suggested ranking with at least 5 usability reasons.
#
SubmissionSubmission
Submissions should be made to Gradescope. Create a zip file named hw5.zip
which contains all the deliverables for all the parts. For each task, create a separate folder named taskX, where X is the part number, under which you put all the deliverables for that task. For each task, make sure to submit all the necessary deliverables including JUnit test classes (.java
files NOT .class
files), documents, reports etc.
danger
Important Note: If any of your .java
files is not compilable/executable for any reason, you will receive a zero for that part. Thus, please make sure all the source files you hand in successfully compile and run!