Homework 2 Part 1

Deadline: January 30, 2016 @ 10:00pm

This assignment is to be completed in groups of 2-3, as assigned by CATME.

Your team's repo should show up on your NCSU GitHub page, but the groups are also available here.

No late submissions will be accepted.

Overview

Now that you have been brought up to speed with the technologies behind iTrust, Homework 2 Part 1 is your first step into the profession and improving iTrust. This assignment contains two parts and will consist of the planning portion for Homework 2. Homework 2 Part 2 will be actual implementation.

Part A: Bug Reporting Using GitHub Issue Tracker (24 or 32 points)

During the BugHunt in Lab 2, many issues were found in iTrust. We are going to focus on six issues that were identified by you and your peers.

Teams of size 2: You can choose any three of the bugs

Teams of size 3: You can choose any four of the bugs

Bug Summaries and links:

  1. Full calendar crashes Bug Reports

  2. View basic patient health issue Bug Reports

  3. Read messages marked unread Bug Reports

  4. No appointment made upon request Bug Reports

  5. Multiple invalid login attempts issue Bug Reports

  6. Editing personnel records issue Bug Reports

In practice, when bug reports are filed by customers, there are many ambiguities and often conflicting information. It is up to the developers to sift through the information and identify the root cause of the issues. This is also the situation for the bugs you filed during Lab 2. So, it is up to you to aggregate the information in the bug reports generated by you and your peers. Here's what you need to do:

For each bug, you must create a complete bug report using GitHub's Issue Tracker functionality. Each issue for a failure must demonstrate 1) steps to reproduce; and 2) any further details for isolation (so that this bug can be demonstrated by itself without other bugs, as easily as possible. This can be thought of as the minimum steps required to reproduce the bug. Things to consider (not a complete list): browsers, OS, internet connection speed, size of input files, etc.). In addition to the bug report, include in the comments any test cases, JSP pages, or Java classes to which this bug is relevant as far as you currently know it. Until these bugs are fixed in Homework 2 Part 2, these issues should remain open.

Part B: Cucumber Test(s) for Each Bug (24 or 32 points)

In addition to using the Issue Tracker in GitHub, each team must create at least one Cucumber test per bug to test the correct functionality. Note that these tests should not pass until the bug is fixed in Homework 2 Part 2.

Participation and Cheating:

  • Your grade on Part 2 can be adjusted significantly if your partner(s) indicate that you did not contribute to the homework, based on the peer evaluation. (For example, if you did half of what you should have done, you get half the points.) You cannot expect to get credit for work that you did not help with.

  • Be sure not to collaborate between groups - programs will be used to detect cheating. If you use any freely-available code in your project, be sure to properly cite it in code comments and commit messages.

  • We expect that all group members will contribute to the assignment, which means that we expect to see at least one GitHub push for each person on the team. A team member without a GitHub push will have an automatic deduction of 10 points. The exceptions to this are 1) a documented technology problem that prevents pushing to GitHub on personal AND lab machines (notification to the teaching staff must occur a least 24 hours BEFORE the deadline) and 2) documented pair programming on the assignment. Pair programming documentation should occur in the commit messages for a push.

Extra credit (3 points)

Filing a GitHub issue and writing Cucumber test(s) for an extra bug will earn your team 3 points of extra credit. This is all or nothing - you must write both the GitHub issue and the Cucumber test(s) to earn the points. The extra credit GitHub issue and tests must be of the same quality as the rest of your submission. If you do the extra credit, we will randomly select three (or four, depending on team size) of your issues+tests for the required part of the assignment, and the leftover one will be for extra credit.

For clarity, this means a team of size 2 that completes this assignment for four bugs will earn the extra credit. A team of size 3 that completes this assignment for five bugs will earn extra credit. No additional extra credit will be earned by addressing additional bugs beyond these thresholds.

If you contributed one or more of the bug reports that was selected for this assignment, you will automatically earn 1 point of extra credit on your personal homework score. This is our way of saying thanks for doing a great job in Lab 2!

Submission

Submissions will be made through GitHub. This means that all commits and issues must be made by the homework deadline. Any commits/issues made after the deadline will be counted as a late submission and will not be graded. There is nothing to submit to this Moodle assignment directly; graders will look at your GitHub repository instead.

Rubric

Part A: Bug Reporting (24 or 32 points)

Part B: Cucumber Tests (24 or 32 points)

Points

6 points

2 points

Item - Per Test - Each test is worth 8 points total.

A Cucumber test that tests the correct functionality of the bug, i.e. the test should pass only if the expected functionality is correct.

The test should be failing until the bug is properly fixed.

Total Points: 64 points for teams of size 3 (that means your grade will be divided by 64 to put it on a 100 point scale), or 48 points for teams of size 2 (that means your grade will be divided by 48 to put it on a 100 point scale). Extra credit points, if any, are added after conversion to the 100 point scale.

For example, a team of size 3 that earns 60 points will get 60/64 * 100 = 93.75 points. If that same teams addresses five bugs instead of four, they will earn 96.75 points. If they address all six bugs, they will still earn 96.75 points.