Small application Debugging

Small application Debugging TASK

Assignment 4 revolves around debugging a small application. This is an individual assignment.

You will be provided with some code which contains several known bugs. The source code and initial bug reports will be made available in the Resources section of the subject’s Interact site.

Your task is to replicate, simplify, trace, and eliminate these bugs using best practice debugging techniques. Your debugging effort should take place within a version control system using appropriately sized, commented, and timely commits.

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 the problem addressed.

Tasks

1.Replication.

  1. For each of the reported bugs, generate a test case in UAT format that will reliably reproduce the buggy behaviour.
  2. Commit the test case documentation to version control.

2.Simplification.

  1. For each of the reported bugs, produce a simplified and automated test that reliably reproduces the bug.
  2. Commit the test code demonstrating the bug to version control.
  3. Record output from your test, demonstrating the buggy behaviour.

3.Tracing. 

  1. For each of the reported bugs, trace back through the programs dependences from the point of failure to find the origin of the bug. Use a sequence of hypotheses and tests to support this search, and document this sequence in a debugging log.
  2. For each of the reported bugs, demonstrate that before the identified origin, variable values are ‘sane’ and that after the origin, at least one value is ‘infected’.
  3. Record screenshots demonstrating the origin of the bug.

4.Resolution. 

  1. For each of the reported bugs, correct the bug.
  2. Commit the corrected code to version control.
  3. Record output listings from your automated test demonstrating that the buggy behaviour has been eliminated.
  4. Carry out the user test case with the specified data and show that the buggy behaviour has been eliminated.

RATIONALE

This assessment task will assess the following learning outcome/s:

  • be able to recognise and apply knowledge and skills to effectively utilize version control as part of professional programming practice.
  • be able to critically analyse software programs and apply theories of debugging together with specialised and technical skills to generate solutions to complex debugging problems.
  • be able to design and implement an appropriate suite of software tests to support the complete system development life cycle.

MARKING CRITERIA AND STANDARDS

Debugging (100 marks)

Criteria High Distinction Distinction Credit Pass
How well did the student demonstrate the ability to critically analyse software programs and apply theories of debugging together with specialised and technical skills to generate solutions to complex debugging problems? Displayed comprehensive insight and extensive application of debugging principles through a detailed and comprehensive description of the circumstances leading to the expression of the bug, the creation of a reliable automated test that demonstrates the bug and simplifies the circumstances in which it is expressed, a detailed and comprehensive log of the sequence of hypotheses and tests used to trace the origin of the bug, and an insightful and correct resolution of the bug. Displayed insight and detailed application of debugging principles through a thorough description of the circumstances leading to the expression of the bug, the creation of a reliable automated test that demonstrates the bug, a log of the sequence of hypotheses and tests used to trace the origin of the bug, and a correct resolution of the bug. Displayed sound understanding and thorough application of debugging principles through a general description of the circumstances leading to the expression of the bug, the creation of a test that demonstrates the bug, a log of the logical progression of steps taken to trace the origin of the bug, and a correct resolution of the bug. Displayed basic understanding and application of debugging principles through a brief description of the circumstances leading to the expression of the bug, the creation of an interactive procedure that demonstrates the bug, a log of steps taken to trace the origin of the bug which may be partially based on intuition, and a resolution of the bug which may introduce other defects.

 

Small application Debugging PRESENTATION

Submit a summary file through Turnitin containing the following:

  1. For each bug:
    1. The user tests (in UAT format) that demonstrate the bug. (specifying expected buggy output)
    2. Output demonstrating the buggy behaviour.
    3. A debugging log recording the succession of hypotheses, tests, and results of those tests that you used to trace the origin of each bug.
    4. ‘Before’ and ‘after’ screenshots identifying the origin of the bug. (show variable values)
    5. Output demonstrating correct operation after resolution of each bug.
    6. Test results from the user test you specified for each bug demonstrating correct operation.
  2. Copies of the files and/or a link to the version control repository where all code development and tests for the debugging assignment can be found. Include a README file at the top of the directory indicating where in your repository the files related to each debugging effort can be found. Make sure you commit both at the start of the debugging process, once you have developed an automated test demonstrating each bug, and after you have resolved each bug.