A form of problem-solving used to identify, solve, and eliminate problems within a process that has failed or has the potential to fail. It is a logical and systematic search for the source or cause of the problem, and solutions presented to ensure that the process is restored back to its full operability. Trouble-shooting is often applied once a problem has arisen and the process stops functioning. In its simplest form, it can take the form of a systematic checklist and requires critical thinking. Computer techniques are used for more complex systems where a sequential approach is either too lengthy or not practical, or where the interaction between the elements in the system are not obvious.