FIT5171 Project Assignment 1Test Planning, System Setup, and CodeUnderstanding & ExtensionYuan-Fang Li and Yan LiuDue: 23:59pm, Friday 29th March, 20191 Project descriptionIn 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 eventuallydevelop 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 usesframeworks including Spark, OrmLite and Freemarker in the later parts.2 Assignment 1This assignment focuses on planning the testing approach and getting the basicstructure up and running.12.1 Test PlanningThe very high-level and potentially incomplete (functional and technical) descriptionhas been given in the “spec.pdf” document, which can be found onMoodle.1 Given the description, your task is to provide a high-level testingstrategy document.There is no specific format for this document. However, your testing strategyshould 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 mechanismsNote that there is no single correct answer. As not all details have been laidout in the description document (spec.pdf), each group may conduct someresearch 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 thestrategy document.2.2 Development & Testing Environment SetupYou 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 correctlyset up the local development environment, you will need to set up version controland 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 beenmade available on Moodle. You need to download and unzip this folderand import it into your IDE. Finally, you need to ensure that you cancompile and run the tests using Maven.1https://lms.monash.edu/course/view.php?id=50765§ion=52JDK 8, https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html3Maven, https://maven.apache.org/download.cgi4IntelliJ, https://www.jetbrains.com/idea/download5Create a repository, https://guides.github.com/activities/hello-world/#repository2Remote. Make sure you can update and commit your team’s source code toyour GitHub repository. Also you need to set up Jenkins for continous integrationso that it polls for changes in your repository and automatically runsthe tests (using Maven) whenever you commit any code into your repository.Instructions on remote Jenkins environment setup will be posted on Moodlewhen the it is ready. Important: the completion of the remote setup depends on the status ofthe server to be provided by the university. We let you know when it isready 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 TDDA basic code base will be provided that sets up the project structure with simpleclasses for certain components. The code includes the following Java classes inthe domain model: Rocket, Launch, LaunchServiceProvider, and User.You will need to read the source code and develop reasonable constraints, orconditions for classes User, Rocket, and LaunchServiceProvider. For example,the value of the attribute email in the User class should not be null andshould be a valid email address. Similarly, the parameters for the setter methodsfor 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, itstest 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 moreconcrete example, for class User, its complete path is:src/main/java/rockets/model/User.javaThe path of its (unit) test class should be:src/test/java/rockets/model/UserUnitTest.javaTo help you get started, the class UserUnitTest.java has already been createdwith a few test cases. You can refer to it as an example. You should extendit too. Besides, there is a shortcut for creating corresponding test classes6. UseMaven to run all the unit tests, and make sure they all pass without failures.3 AssessmentThis assignment carries 10 marks. The assessment will be based on the submittedfiles as well as a demo/interview conducted in-class in week 5.6Create test classes, https://www.jetbrains.com/help/idea/create-tests.html33.1 SubmissionYou will need to submit a report and the extended code base, contained in asingle .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 submissionclearly indicate the group members (in a separate readme.txt file, forexample).The report will include four parts: (1) testing strategy, (2) a descriptionof the setup, (3) a brief description of the extension and the testing of theextension, and (4) self assessment. The report should not exceed 6 pages inlength.Self assessment & peer assessment. Even though the project assignmentsare group-based, assessment is individual-based. Hence, we will incorporate selfand peer assessment in this assignment’s marking.For self and peer assessment, we will use CATME, an online system7. CATMEallows students to assess self and each other’s performance in a team-basedproject in a confidential way. More details on how to submit CATME peerevaluation will be provided on Moodle shortly.3.2 DemoA demo will be conducted in week-5 tutorials. Each group will demonstrateto the tutor their setup on a laptop. Each group will also need to give a codewalkthrough to the tutor, showing your understanding of the code base, yourextensions, and your tests. Also demonstrate to the tutor that you can run alltests automatically through Maven.3.3 Assessment Breakdown4 marks — Testing strategy documentation. This part of the report shouldbe concise: it should not exceed 2 pages in length.2 marks — Setup, that you have successfully setup the local working environmentas well as the continuous integration environment (if the serverbecomes 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 shouldbriefly document the problem and the status of the setup. This part ofthe 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/42 marks Tests correctly make use of JUnit test fixtures and assertions to validateconditions in the code and/or specification. Tests can be runby Maven automatically and they pass successfully without failure.Your report should contain a brief description of the extension(s) that youhave developed, and how they are tested in the TDD process. This partof 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 58is part of the Ariane family, and it in itselfrepresents a a number of variations: Ariane 5 ECA, Ariane 5 ES, and soon. 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 thecode base to capture Payload as part of the domain model, with associatedinformation.Write your extensions in appropriate places (existing or new classes), andintegrate them with the other classes in the domain model.Of course, adopting the TDD process and developing adequate test cases areessential for earning extra credit marks.8https://en.wikipedia.org/wiki/Ariane_55本团队核心人员组成主要包括硅谷工程师、BAT一线工程师,精通德英语!我们主要业务范围是代做编程大作业、课程设计等等。我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全 汇编语言 硬件编程 软件设计 工程标准规等。其中代写编程、代写程序、代写留学生程序作业语言或工具包括但不限于以下范围:C/C++/C#代写Java代写IT代写Python代写辅导编程作业Matlab代写Haskell代写Processing代写Linux环境搭建Rust代写Data Structure Assginment 数据结构代写MIPS代写Machine Learning 作业 代写Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导Web开发、网站开发、网站作业ASP.NET网站开发Finance Insurace Statistics统计、回归、迭代Prolog代写Computer Computational method代做因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected] 微信:codehelp