Java

shahew
Asg3.docx

Asg 3 - Teamwork - Version Control - Testing

Value: 40%

Due date: 26-Sep-2017

Return date: 17-Oct-2017

Submission method options

Interact2 Wiki

Task

Assignment 3 revolves around developing and testing a small application based on the classes you developed for Assignment 2.

You will be provided with some further requirement and design documentation describing a use case realization. These will be available in the Resources section of the subject's Interact site.

Your task as a team is to develop and test the required classes and methods to support the use case. You are required to divide the development task equitably, complete your assigned task independently, and merge your contributions as required to produce an integrated and functional final product. Your development should take place within a version control system using appropriately sized, commented, and timely commits. You must plan and report on all activities performed through a set of iteration plans and evaluations.

Initially you are required to develop a suite of unit tests to demonstrate that the classes you developed for Assignment 2 meet the functional requirements specified. You then need to integrate your classes with a control class to support several system operations, and finally integrate the system operations to completely support the specified use case. You must then identify and specify user acceptance tests for that use case, and carry out and report on those tests

Please note that the focus in this assignment is on the process and techniques applied, not the complexity of the code. It is recognised that the process applied is ‘way over the top’ for the size of problem addressed.

Also note that it is recognised that standard practice is to specify user acceptance tests before development activities occur. Unfortunately the semester timetable makes this impractical.  

Tasks

1. Teamwork (20 marks)

On a fortnightly basis:

1. Carry out your assigned development tasks using best practice version control within your individual branch.

2. Communicate as necessary and desirable with your team members.

3. Upload whatever you have completed to version control as evidence for evaluation of work items.

4. Attend the weekly iteration planning and assessment meeting. At the meeting present whatever you have done in the preceding week and evaluate it against the objective completion criteria specified in the iteration plan.

5. Create a plan for the next iteration, setting out individual tasks and objective completion criteria for the coming week. Divide work equitably between team members. 

 

2. Testing (70 marks)

a) Unit Testing - 25 marks

Implement the modules required to support your chosen use case according to the provided design. Use a unit test framework to comprehensively test your implementations as you develop them. Use stubs, fake, or mock objects as appropriate to isolate the class under test.

Commit your code changes to the version control system with every new addition of functionality (method or class implementation)

b) Integration Testing - 30 marks

Integrate your modules to support your chosen use case. Provide integration tests to check interaction between control, entity, and service classes without requiring GUI inputs.

Once again commit your code changes with every increment of functionality.

c) User Acceptance Tests (UAT) - 15 marks

On the basis of the requirement and design documentation identify some use case scenarios and test cases which can be used to check correct functionality in the implemented use case. Specify alpha stage user acceptance test procedures, test data, and expected results for the muse case implemented. A template for a UAT will be available in the Resources section of the subject's Interact site.

Commit your UAT specifications to version control.

Once the use case has been implemented, carry out the alpha stage user acceptance tests you specified. Use the test data and procedures specified and check that it meets stated acceptance criteria. Report on the success or otherwise of the test.

Commit the completed test reports to your version control system.

3. Version Control (10 marks)

Follow version control best practice during your implementation and testing of the required code modules. All code should be under version control from the beginning of the assignment.

Submit:

Create a wiki page for Assignment 3 in your team wiki. Provide a link to the version control repository used for Assignment 3 on that wiki page. Also include links to iteration plans and evaluations relevant to the assignment.

 

Rationale

This assignment is motivated by the following subject learning outcomes:

· be able to demonstrate the ability to work effectively in a team environment (learning Outcome 1);

· apply knowledge and skills to effectively utilize version control (Learning Outcome 2);

· identify the purpose and limitations of software testing (Learning Outcome 4);

· design and implement an appropriate suite of software tests to support the complete system development life cycle (Learning Outcome 5);

The intent of the assignment is to articulate taught concepts and skills in the context of developing a suite of unit, integration, and user acceptance tests for a small application.

Marking criteria

Teamwork (20 marks)

Criteria

High Distinction 

Distinction

Credit

Pass

How well did the team demonstrate the ability to work effectively?

Displayed comprehensive insight, and extensive application of teamwork processes through the creation of a high quality and useful team charter, clear and effective planning and reporting of iterations, and clear and useful team meeting minutes that record issues discussed, key considerations and decisions taken..

 

Dealt effectively but sensitively and politely with any non-performance issues that arose.

Displayed insight and detailed application of teamwork processes through the creation of a useful team charter, effective planning and reporting of iterations, and useful team meeting minutes that record issues discussed, key considerations and decision taken.

 

Dealt effectively with any non-performance issues that arose.

Displayed sound understanding and thorough application of teamwork processes through the creation of a useful team charter, evidence of iteration planning and reporting, and team meeting minutes that record key considerations and decisions taken.

 

Dealt sensitively and politely with any non-performance issues that arose.

Displayed basic understanding and application of teamwork processes through the creation of a team charter, generalised planning and reporting of iterations, and abbreviated team meeting minutes.

How well did the student demonstrate the ability to work effectively in a team environment?

Displayed comprehensive insight and extensive application of teamwork principles through effective, engaged and polite participation in all team meetings, timely, useful, and polite communication and coordination with team members, application of SMART principles in specification of all workitems, and timely, high quality completion of all workitems as evidenced in iteration plans and evaluations.

Contributed equitably to team outcomes, neither monopolising work, nor failing to contribute adequately as evidenced in iteration plans and evaluations. Provided effective and appropriate support to other team members when requested or desirable from a team outcome perspective.

Displayed insight and detailed application of teamwork principles through effective, engaged and polite participation in all team meetings, timely, useful, and polite communication and coordination with team members, application of SMART principles in specification of most workitems, and timely and high-quality completion of most workitems as evidenced in iteration plans and evaluations.

Contributed equitably to team outcomes, neither monopolising work, nor failing to contribute adequately as evidenced in iteration plans and evaluations. Provided effective and appropriate support to other team members when requested.

Displayed sound understanding and thorough application of teamwork principles through engaged and polite participation in most team meetings, useful and polite though sometimes tardy communication and coordination with team members, concrete specification of most workitems, and good quality completion of most workitems as evidenced in iteration plans and evaluations.

Contributed adequately to team outcomes as evidenced in iteration plans and evaluations. Provided support to other team members when requested.

Displayed basic understanding of teamwork principles through polite participation in most team meetings, polite though tardy communication with team members, generalised specification of workitems and adequate quality though often tardy completion of most workitems as evidenced in iteration plans and evaluations.

Contributed adequately though somewhat inequitably to team outcomes as evidenced in iteration plans and evaluations.

  

Testing (70 marks)

Criteria

High Distinction 

Distinction 

Credit

Pass

How well did the student demonstrate an understanding of the purpose and limitations of software testing in the context of dynamic developer and user acceptance testing?

 

How well did the student demonstrate skills in terms of designing and implementing an appropriate suite of software tests in the context of dynamic development and user acceptance testing?

 

Displayed comprehensive insight, and extensive application of the concepts and practices involved in dynamic developer and user acceptance testing through a thorough, well targeted, well prioritised test plan.

Demonstrates effective, well structured, well named and well organised unit testing; effective use of test substitutes; targeted, well organised, and well structured integration testing covering all levels of software integration, and effective, well organised, and well presented alpha stage user acceptance test scripts with clear acceptance criteria which address all flows of the use case implemented.

 

 

Displayed insight, and detailed application of the concepts and practices involved in dynamic developer and user acceptance testing through a thorough, prioritised test plan.

Demonstrates effective well structured, well named and well organised unit testing; effective use of test substitutes; well structured integration testing covering all levels of software integration, and effective and well organised alpha stage user acceptance test scripts with clear acceptance criteria which address most flows of the use case implemented.

 

Demonstrates sound understanding and application of the concepts and practices involved in dynamic developer and user acceptance testing through a thorough test plan.

Demonstrates well structured, named and organised unit testing; use of test substitutes integration testing covering key levels of software integration, and alpha stage user acceptance test scripts with clear acceptance criteria which address the most important flows of the use case implemented.

 

 

 

Demonstrates basic understanding and application of the concepts and practices involved in dynamic developer and user acceptance testing through a test plan which addresses most aspects of testing.

Demonstrates somewhat structured and organised unit testing, integration testing covering some levels of software integration, and alpha stage user acceptance test scripts which address some of the most important flows of the use case implemented.

 

 

 

Version Control (10 marks)

Criteria

Fail

Pass

Credit

Distinction

How well did the student apply knowledge and skills to effectively utilize version control?

Displayed comprehensive insight, and extensive application of the concepts and practices involved in best practice GIT based version control through correct use of feature branches, frequent, well commented single purpose commits, and timely, well-coordinated and successful merging of feature branch after code review.

 

Displayed insight and detailed application of the concepts and practices involved in best practice GIT based version control through correct use of feature branches, well commented single purpose commits, and well-coordinated and successful merging of feature branch after code review.

 

Displayed sound understanding and application of the concepts involved in GIT based version control through use of feature branches with relatively frequent somewhat meaningfully commented commits, and well-coordinated, troublesome though eventually successful merging of feature branch after code review.

 

Displayed basic understanding and application of the concepts involved in GIT based version control through use of feature branches with several commits although commenting may be obscure, and somewhat coordinated but troublesome merging of feature branch after code review. Merge required intervention by other team members to be successful.

 

 

Presentation

There are two aspects to the presentation of this assignment.

The first is wiki page in your team which details where the version control repository for the assignment can be found, and where in that repository various assessable elements can be found.

The second aspect of the assignment is presented as a functional code repository containing the complete development history and code for the assignment. You should clearly comment the update which represents the point at which you submit the assignment.

It is critical that you do not delete the repository until after you have received your mark for thre assignment.