University Project Module CS4004 by Italo Terto, Mark Harrison, Nicholas O'Mahony, Sam Ennis and Euan Bourke
The lab component of CS4004 covers a variety of tools, some of which are more challenging than others. It also involves some learning which is best done at your own pace.
This assignment has two aims:
1. To guide you through the learning objectives of the lab sessions
2. To assess your learning – to what extent you have achieved these objectives
You must select one of the project case studies supplied on Sulis as the subject of your assignment. The assignment is divided into 2 tasks (things to do), and is deliberately open-ended so you have the opportunity to learn as much as you want and to provide the evidence for said learning. Think of it as part of your portfolio that you might bring to a job interview.
You will use Jira to log bugs you think might arise based on the requirements you have been given. This should include also any reasonable enhancements that you want to suggest, within the overall purpose of the system. A high standard of bug reporting is expected.
You are expected to include tests designed using:
1. Test-Driven Development
2. Coverage Criteria and Criteria-Based Test Design
The main idea is to code the tests first and then run the tests, this causes the tests to fail, and only then do you write the program to make the tests pass in turn. The target program itself does not have to be complicated, as credit will be given for the amount of tests you write, along with the various versions of your program that in each case are just enough code to pass a given test. There are plenty of online resources that can help you understand test-driven development with JUnit, but you also need to practise doing it.
The main idea here is to develop a strategy on what coverage metric/s and technique/s you are going to use and why. Then you need to develop tests that satisfy your strategy. The target program/s itself/themselves can be very simple, as credit will be given for the appropriateness and justification of the strategy and the design of your test.