FIT2107 - Software Quality and Testing
ASSIGNMENT 2 [40%]
White box testing and code analysis
Overview
For this assignment, your task is to design and document appropriate tests for a
software system using white box techniques, build a CI/CD pipeline to run your tests,
and report on the code quality and test coverage. In doing this you must only use
concepts that have been covered in FIT2107.
This assignment is an individual, open book task. Every student must complete and
submit their own work. The use of AI in any way is not permitted.
Submissions will be marked out of 40, and will form 40% of your final grade in FIT2107. A
late penalty of 5% per day will be applied, and after 7 days a mark of 0 will be given and
no feedback will be provided on the submission.
This assignment covers FIT2107 learning outcomes 1, 2, and 3.
Deliverables
You must submit the following evidence using the Assignment 2 submission page on
Moodle:
● Your tests
Compress your “tests” folder from “bat” to a zip named “tests.zip”.
● Task 6 and Task 9 documents
Convert both documents to PDF for submission, and do not rename them (i.e., you
should submit files named “task_6.pdf” and “task_9.pdf”).
● Task 3 control flow graph
Submit as “task_3.png”
Your grade will also be based on the commit history in your unit repository on gitlab.
SUBMISSION DUE: Friday Week 12, 11:55PM
1FIT2107 - Software Quality and Testing
Tasks
For this assignment you are continuing to test the Borrowing Administration Terminal
(BAT) used by Anything Anytime Library (AAL). However, now you will have access to
some of the BAT code. This will enable you to run additional tests on the system using
white box techniques.
The code you have been provided with is a redacted version of BAT. Each part of the
code has been commented to describe its purpose and intended logic. In addition to
the in-code documentation, you should note:
● It is assumed that a patron will never attempt to take out a loan for an item they
are already borrowing (e.g., borrow two copies of the same book).
● It is assumed that there are no patrons with the same name and age.
● It is assumed that there are no logic errors in the JSON data provided to BAT (e.g.,
duplicate IDs, loans which aren't reflected in the catalogue). If there are any
syntax errors in the data then BAT will not open.
● Changes to data are not saved until the "Quit" menu option is selected.
● All functionality to do with late fees has been removed, except the calculation of
discounts for the purpose of determining if a patron is allowed to borrow an item
or is not allowed due to fees owed.
● Ability to update training records has been removed.
● All analytics code (e.g., for generating overdue loans reports) has been removed.
● All user and catalogue data is fabricated.