首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代写FIT2107、代做Python设计编程
项目预算:
开发周期:
发布时间:
要求地区:
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.
2FIT2107 - Software Quality and Testing
Task 1: File Setup (Marked as part of development history modifier)
You should have the knowledge to complete this task after Week 1.
Download the assignment template (template.zip) from Moodle. Unzip the folder, and
copy all of the files into the “Assignment 2” folder in your unit repository. Add, commit,
and push the files.
Task 2: MC/DC (4 marks)
You should have the knowledge to complete this task after Week 7.
In the file “test_task_2.py” in the “tests” folder in “bat”, write tests for the method
“can_borrow_carpentry_tool” from the “business_logic.py” source file. Write the
minimum number of tests needed to reach 100% MC/DC for the condition on line 126. Do
not write any extra tests.
Document your tests in comments as shown in the week 7 answer guide for MC/DC.
Your documentation must:
● List the possible tests and their outcomes, numbering each test.
● List the optimal test sets.
● Clearly identify which optimal set you have chosen to implement.
● Clearly identify which test number is being tested by each test method.
Task 3: Path Coverage (5 marks)
You should have the knowledge to complete this task after Week 7.
Part A:
Draw a control flow graph for the method “can_use_makerspace” from the
“business_logic.py” source file. In your graph, show “else” explicitly as a node. Save your
graph in the “Assignment 2” folder in your repository as “task_3.png”.
Part B:
In the file “test_task_3.py” in the “tests” folder in “bat”, write tests for the method
“can_use_makerspace” (from the “business_logic.py” source file). Write the minimum
number of tests needed to reach 100% path coverage. Do not write any extra tests.
Document your tests in comments as shown in the week 7 answer guide for path
coverage. Your documentation must:
3FIT2107 - Software Quality and Testing
● List the feasible paths, number each.
● Clearly identify which path is being tested by each test method.
Task 4: Mocking (5 marks)
You should have the knowledge to complete this task after Week 8.
In the file “test_task_4.py” in the “tests” folder in “bat”, write tests for the method
“_main_menu” from the “bat_ui” source file. Use the method “get_current_screen” to
verify that the UI has moved to the correct screen. Do not write any extra tests.
Make sure you test that:
● All valid inputs cause the UI to move to the correct screen.
● The user is repeatedly asked for input until a valid input is given.
Task 5: Coverage (10 marks)
You should have the knowledge to complete this task after Week 8.
In the “tests” folder in “bat”, write tests for any of the code in BAT you like until you reach:
● At least 90% statement coverage.
● At least 80% branch coverage.
All tests written for this assignment (i.e., not just for Task 5) count towards coverage.
Add as many test files to the “tests” folder as you need, but do not add tests to the
“test_task_X.py” files, and do not rename any of the “test_task_X.py” files. Part of your
grade for this task will be based on your ability to write appropriate tests, and organise
them into appropriately named test files. Make sure you follow all guidelines given in
this unit.
Note: to get just branch coverage, run the terminal command “coverage json” after a
“coverage run” command. This will generate a file (“coverage.json”). In that file, under
"totals" there'll be "covered_branches" and "missing_branches".
Task 6: Find the Bugs (9 marks)
You should have the knowledge to complete this task after Week 8.
Part A:
Using any technique or combination of techniques you like, find 3 bugs in BAT.
Part B:
In “task_6.docx” in the assignment template, write a bug report for each of the three
bugs you found.
Task 7: CI (2 marks)
You should have the knowledge to complete this task after Week 9.
4FIT2107 - Software Quality and Testing
Configure gitlab to automatically run all of the tests you have written for BAT. Ensure
that only the BAT tests run, and the output is verbose. Gitlab should show that all your
tests were run, and all your tests pass.
Task 8: Static Analysis (2 marks)
You should have the knowledge to complete this task after Week 9.
Update your gitlab configuration to also automatically run the “pylint” and
“pycodestyle” static analysis tools on the BAT source code and tests. Gitlab should
show that all your tests were run and pass, but the code does not have to pass linting.
Task 9: Software Metrics (3 marks)
You should have the knowledge to complete this task after Week 10.
As mentioned, you have been given a redacted version of the BAT code. The real
version of BAT has 9842 lines of code.
In “task_9.docx” in the assignment template, explain (including your working) how
many defects you would expect the real version of BAT to contain. Your answer should
not be longer than one page.
Assessment Criteria
This assignment 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.
● Development history
After your submission is marked, a modifier will be applied to your score based on
your development history. The lowest possible modifier is 0.5, and the highest
possible modifier is 1.0 (i.e., no grade reduction). Your final grade will be your
original grade multiplied by this modifier. To get a modifier of 1.0 you need to:
○ Have all the files from the assignment template in the “Assignment 2”
folder in your unit repository, and not in a sub-folder.
○ Make at least 11 commits total.
○ Make at least 2 commits of each file in the template.
○ Use meaningful and concise commit messages.
● Appropriate use of unit concepts
The marker will verify that you have used only concepts covered in FIT2107.
● Correctness
The marker will verify the correctness of your answers.
● Clarity
The marker will verify whether your answers use clear, specific, and appropriate
examples. This is particularly important when you are writing justifications.
5FIT2107 - Software Quality and Testing
● Consistency
The marker will verify whether related answers are consistent with each other.
● Good coding practice
The marker will verify whether you have followed good coding practice for writing
tests in python, as demonstrated in this unit.
6
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!