Fall 2025 — Assignment 3
Due 8-October-2025, 11am EST (before class)
Purpose:
- Understand Input Domain Model (IDM) and practice Input Space Partition (ISP) testing
- Be able to apply ISP coverage criteria to create tests
- Be able to analyze and determine the quality of the tests
- Practice test automation using JUnit and Selenium (web test automation framework)
All homeworks are due before class on the due date.
All homework assignments must reflect your own understanding of the topic
and be communicated in your own words.
You may use one of the
collaborative options.
You may also request help and advice from your classmates on Piazza.
Any help not allowed by that policy will be an honor violation.
Early-submission bonus points
Purpose: To encourage students to start working on the homework assignments early
and recognize students who are actively engaged in the content
You will receive
- 4% of the points you earn (from the assignment)
if you submit your assignment at least 48 hours early (submitted by 6-October-2025 11am EST).
- 2% of the points you earn (from the assignment)
if you submit your assignment at least 24 hours early (submitted after 6-October-2025 11am EST,
by 7-October-2025 11am EST).
Note:
The final submission timestamp shown on Gradescope will be used.
[Total: 20 points]
Apply Input Space Partitioning (ISP) testing to design tests for
the Duhhuh Maintenance Services
(https://www.cs.virginia.edu/~up3f/cs3250/assigns/sut/maintenance-request.php)
web app.
Since a web app is accessible through a web browser and a browser's back button has been
shown to be a common cause of web app failures,
you are required to consider the browser's back button when developing IDMs.
Complete the following tasks:
- (2 points) Define characteristics of the input variables. Make sure you cover all input variables
- (2 points) Partition the characteristics into blocks. Make sure to satisfy the "completeness" and "disjointness" properties.
- At least one of your IDMs must cover the browser's back button
- (1 point) Define value for each block
- (1 point) Provide one base test.
You will later use this base test when applying the Base Choice Coverage criterion (next question)
- (8 points) Write a set of test cases that satisfies Base Choice Coverage (BCC).
- Derive your test requirements —
be sure to submit your set of test requirements
- Write your test cases with the values from the previous step (question 3)
- Be sure to include inputs (test input values) and expected outputs
(-2 points) for giving redundant test(s)
(-1 point) for not providing the expected output(s)
- (6 points) Automate your tests (from question 5) using a web test automation framework
- You are required to use
Selenium — Java version
- In addition to the web test automation framework, you should use JUnit for assertion.
- Demonstrate success by submitting your tests (.java file, do not submit .class file)
and screenshot(s) showing the result(s) of execution.
- Reminder: for naming convention, use meaningful and descriptive test method names.
It is expected that your BCC-test set (from question 5)
must adequately test the software under test.
If your BCC-test set consists of only a few tests,
it is obviously inadequate and/or inappropriate —
you should review and revise your test design (questions 1-5).
The points for question 6 will be awarded based on
the quality and adequacy of your automated tests.
Grading Rubric
[Total: 20 points]
Complete the tasks and satisfy the requirements. Answer the questions correctly and clearly.
( -5 points) for 24 hours late (submitted after 8-October 11am EST, by 9-October 11am EST)
(-10 points) for 48 hours late (submitted after 9-October 11am EST, by 10-October 11am EST)
(-2 points) for submitting a Word document or handwriting, or a write-up that is not a typed PDF file.
Submission
- Your write-up
- Save your write-up as a PDF file (only typed PDF is accepted)
— No handwriting. No hand-drawing. No Word document.
- Your Selenium test file and evidence(s)
- A .java file, not a .class file.
By default, we will download, compile, and run your test file.
- (-6 points) if your Selenium test file (.java) is missing or inaccessible,
does not open, does not compile, or does not run.
Thus, be sure to verify that your Selenium .java file is accessible, compiles, and runs.
- Evidence(s) or screenshot(s) showing the results of running your tests.
Be sure to show the result of each test and
a discussion of any tests that failed.
- (-1 point) if no evidence showing the run and the results is provided
Log in to Canvas, then upload
all files
to Assignment 3 on Gradescope.
Make sure you connect your partner to your group on Gradescope so that everyone receives credit.
Each team submits only one copy.
Verify that you submitted the correct version of your assignment.
Making your submission available to the instructor and course staff is your
responsibility;
if we cannot access or open your file, you will not get credit.
Be sure to test access to your file before the due date.
Copyright © 2025 Upsorn Praphamontripong
Released under the
CC-BY-NC-SA 4.0 license.
Last updated 2025-09-22 23:07