Reference no: EM131658278
Assignment- Teamwork - Version Control - Testing
Task
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.