Desk checking is an informal manual test that programmers can use to verify coding and algorithm logic before a program launch. This enables them to spot errors that might prevent a program from working as it should. Modern debugging tools make desk checking less essential than it was in the past, but it can still be a useful way of spotting logic errors.
Desk Checking Overview
Desk checking is a similar process to proofreading; in this exercise, the programmer runs through lines of code to identify errors and to check logic. Typically, the programmer will print out the code and go through it in a pencil and paper exercise. He may run a manual test on algorithms, checking that they work correctly and contain no coding errors. This usually involves creating a table with columns containing line numbers, variables, conditions, and inputs and outputs, depending on the checks he is making.
Advantages of Desk Checking
Even experienced programmers make mistakes -- a desk check may help catch and fix them before a program goes through a formal run. Running a desk check is quick and inexpensive. The programmer who wrote the code typically checks it herself; if she identifies issues, she can fix them on the spot before the project moves onto the next stage. If she doesn't desk check and an error causes problems later down the line, it might delay a project. Errors may also be harder to identify at a later stage.
Disadvantages of Desk Checking
A desk check does not guarantee that a programmer will find mistakes. It is also subject to human error. Programmers may miss things that need to be fixed, simply because they wrote the code themselves and are too close to it to be objective. Getting a different programmer to desk check may solve this issue. However, the person running the check also needs to understand the requirements behind the code before he can evaluate if it will work.
Desk Checking and the Structured Walkthrough
Desk checking is sometimes part of a broader testing process. In a structured walkthrough, for example, the programmer is part of a peer group that reviews and analyzes the work prior to launch. The programmer typically gives the materials for review to group members before the meeting. During the meeting itself, she walks the group through the code. Ideally, the group will spot errors if they exist or make viable suggestions for improvement. Projects may have one or more walkthrough stages, checking issues such as the understanding of requirements and coding accuracy.