# Locating equipment, system and software faults

ICAT4221A - Locate equipment, system and software faults
From the official document:
    "This unit defines the competency required to apply systematic principles to fault finding in any field of IT."
Basically, that means creating tests, identifying problem areas and correcting faults in programs and/or systems. For a web developer this would typically mean debugging programs written in client or server side scripts.
You can read more about this unit on the National Training Information Systems Official document for ICAT4221A.
This unit forms part of the following qualifications:

## How this unit will help you

After learning and applying the skills required by this unit you'll be able to demonstrate your skills in:
* Installing and using debugging tools
* Designing test scenarios and data sets that look for lexical, syntax, execution and design errors
* Planning and implementing solutions to any problems identified
* Documenting the problems and solutions for future reference.
The official unit guide lists the following elements and criteria:
| ELEMENT | PERFORMANCE CRITERIA |
| 1. Choose the most appropriate fault finding method | Analyse and document the system that requires troubleshooting Identify and apply specifically designed troubleshooting tools for the system Investigate and record generic cyclic fault finding tools Obtain required specialist tools appropriate to the work |
| 2. Analyse the problem to be solved | Collect all data relevant to the system as well as signs and symptoms of the problem Organise the collected data to enable an understanding of the status of the system Analyse the data to determine that there is a problem, and the nature of the problem |
| 3. Define the causes of the problem and create a plan of action | Create a list of probable causes of the problem Organise causes in order of likelihood Formulate a solution or rectification Rectify probable causes, testing for the success of the solution and record results |
| 4. Review problem and system status | Test the system to ensure the problem has been solved and record results Document the problem, its signs and symptoms, and the ultimate solution and load to database of problems/solutions for future reference |
* translate the above elements and performance criteria into plain english and summarise here...

## Ideas for learning the required skills

Install firebug, watch this short screencast on using it to debug some JavaScript, and work through the Aptana howto section on Inspecting and debugging with Firebug (if you're already confident about debugging, you might prefer this short list of features instead). Once you're up to speed try these Debugging Challenges

## Ideas for demonstrating this unit

The best way to demonstrate these skills is by documenting your debugging efforts. From finding and installing a debugging environment, through designing test suites to identifying and rectifying various errors in some code; you can write up descriptions (blog or essay style) or capture the debugging story in screenshots (with or without audio) or full motion screencasts.

## Grading

If you are demonstrating this unit as part of a formal course, you might find that the unit is graded (meaning you can not only demonstrate your competence, but can also gain a credit or distinction). Your facilitator may already have set criteria that your college uses. If not, here are some ideas for possible credit/distinction activities that you can discuss with your facilitator:

## Notes and discrepancies

* There's tremendous scope for practicing and demonstrating fault finding in the I.T. field, and I've only scratched the surface here with a JavaScript-centric approach; which suits my web development class, but ymmv.