联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2019-03-28 08:52

FIT5171 Project Assignment 1

Test Planning, System Setup, and Code

Understanding & Extension

Yuan-Fang Li and Yan Liu

Due: 23:59pm, Friday 29th March, 2019

1 Project description

In this assignment, you will work on the first part of a semester-long project.

This project, http://www.allaboutrockets.com, is based on Java and it will eventually

develop into a simple Web application.

The project has been set up to use the build management tool Apache Maven

(http://maven.apache.org/), which you have practiced in Tutorial 1. It also uses

frameworks including Spark, OrmLite and Freemarker in the later parts.

2 Assignment 1

This assignment focuses on planning the testing approach and getting the basic

structure up and running.

1

2.1 Test Planning

The very high-level and potentially incomplete (functional and technical) description

has been given in the “spec.pdf” document, which can be found on

Moodle.1 Given the description, your task is to provide a high-level testing

strategy document.

There is no specific format for this document. However, your testing strategy

should include at least the following components:

Types of testing (functional, non-functional, etc, including their sub-types)

and their objectives

Testing tools and approach (manual, automatic, etc.)

Defect tracking mechanisms

Note that there is no single correct answer. As not all details have been laid

out in the description document (spec.pdf), each group may conduct some

research on the above topics and come up with a proposed solution.

You can refer to the lecture slides for advice on the level of details in the

strategy document.

2.2 Development & Testing Environment Setup

You will need to properly set up the development environment on your laptop.

The setup is very similar to the one used in Tutorial 1. Once you have correctly

set up the local development environment, you will need to set up version control

and continuous integration.

Local. On your laptop, you need to

Setup the development environment, including:

– JDK 8 2

– Maven 3

– An IDE of your choice, recommended IntelliJ 4

– GitHub private repository 5

– Adding your tutor(s) to your private repository

Import the code base provided. A compressed Maven project has been

made available on Moodle. You need to download and unzip this folder

and import it into your IDE. Finally, you need to ensure that you can

compile and run the tests using Maven.

1https://lms.monash.edu/course/view.php?id=50765&section=5

2JDK 8, https://www.oracle.com/technetwork/java/javase/downloads/

jdk8-downloads-2133151.html

3Maven, https://maven.apache.org/download.cgi

4

IntelliJ, https://www.jetbrains.com/idea/download

5Create a repository, https://guides.github.com/activities/hello-world/#repository

2

Remote. Make sure you can update and commit your team’s source code to

your GitHub repository. Also you need to set up Jenkins for continous integration

so that it polls for changes in your repository and automatically runs

the tests (using Maven) whenever you commit any code into your repository.

Instructions on remote Jenkins environment setup will be posted on Moodle

when the it is ready.

Important: the completion of the remote setup depends on the status of

the server to be provided by the university. We let you know when it is

ready for use. If it becomes available too late, this part (remote setup)

does not need to be completed.

2.3 Code Base Understanding and Extension, using TDD

A basic code base will be provided that sets up the project structure with simple

classes for certain components. The code includes the following Java classes in

the domain model: Rocket, Launch, LaunchServiceProvider, and User.

You will need to read the source code and develop reasonable constraints, or

conditions for classes User, Rocket, and LaunchServiceProvider. For example,

the value of the attribute email in the User class should not be null and

should be a valid email address. Similarly, the parameters for the setter methods

for setting the username and password attributes should be non-empty too.

Please consider the best place to develop such validation code.

You will utilise the test-driven development (TDD) process for the extension.

Hence, your extension will need to be accompanied by JUnit unit tests.

For each class under test, for example src/main/java/bar/Foo.java, its

test methods should be in a file called FooUnitTest.java (or FooTest.java),

in the same package, but under the directory src/test/java/bar/. For a more

concrete example, for class User, its complete path is:

src/main/java/rockets/model/User.java

The path of its (unit) test class should be:

src/test/java/rockets/model/UserUnitTest.java

To help you get started, the class UserUnitTest.java has already been created

with a few test cases. You can refer to it as an example. You should extend

it too. Besides, there is a shortcut for creating corresponding test classes6

. Use

Maven to run all the unit tests, and make sure they all pass without failures.

3 Assessment

This assignment carries 10 marks. The assessment will be based on the submitted

files as well as a demo/interview conducted in-class in week 5.

6Create test classes, https://www.jetbrains.com/help/idea/create-tests.html

3

3.1 Submission

You will need to submit a report and the extended code base, contained in a

single .zip file, to Moodle. Other file types are not accepted for submission.

Only one member from each group needs to submit the file. In your submission

clearly indicate the group members (in a separate readme.txt file, for

example).

The report will include four parts: (1) testing strategy, (2) a description

of the setup, (3) a brief description of the extension and the testing of the

extension, and (4) self assessment. The report should not exceed 6 pages in

length.

Self assessment & peer assessment. Even though the project assignments

are group-based, assessment is individual-based. Hence, we will incorporate self

and peer assessment in this assignment’s marking.

For self and peer assessment, we will use CATME, an online system7

. CATME

allows students to assess self and each other’s performance in a team-based

project in a confidential way. More details on how to submit CATME peer

evaluation will be provided on Moodle shortly.

3.2 Demo

A demo will be conducted in week-5 tutorials. Each group will demonstrate

to the tutor their setup on a laptop. Each group will also need to give a code

walkthrough to the tutor, showing your understanding of the code base, your

extensions, and your tests. Also demonstrate to the tutor that you can run all

tests automatically through Maven.

3.3 Assessment Breakdown

4 marks — Testing strategy documentation. This part of the report should

be concise: it should not exceed 2 pages in length.

2 marks — Setup, that you have successfully setup the local working environment

as well as the continuous integration environment (if the server

becomes available on time, to be advised).

Your report can contain screenshots showing that your setup is successful.

If you ran into problems setting up the environment, your report should

briefly document the problem and the status of the setup. This part of

the report should be concise: it should not exceed 2 pages in length.

4 marks — Code base understanding and extension.

2 marks Reasonable constraints or conditions are added to the code base.

7https://www.catme.org/

4

2 marks Tests correctly make use of JUnit test fixtures and assertions to validate

conditions in the code and/or specification. Tests can be run

by Maven automatically and they pass successfully without failure.

Your report should contain a brief description of the extension(s) that you

have developed, and how they are tested in the TDD process. This part

of the report should be concise: it should not exceed 2 pages in length.

4 Extra Credit: Maximum 3 Marks (Optional)

The provided code base can be extended in many ways to enrich its functionality.

The following are only some possible extensions.

A rocket may belong to a family of similar rockets, each with some variation.

For example, Ariane 58

is part of the Ariane family, and it in itself

represents a a number of variations: Ariane 5 ECA, Ariane 5 ES, and so

on. You can extend the model to capture this (complex) information.

A Launch may include a number of payloads (satellites, spacecrafts, etc.),

which is currently captured as a set of String values. You can extend the

code base to capture Payload as part of the domain model, with associated

information.

Write your extensions in appropriate places (existing or new classes), and

integrate them with the other classes in the domain model.

Of course, adopting the TDD process and developing adequate test cases are

essential for earning extra credit marks.

8https://en.wikipedia.org/wiki/Ariane_5

5


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp