Title: Desk Checking
1Desk Checking
2Desk Checking
- Desk checking is a manual (non computerised)
technique for checking the logic of an algorithm.
The person performing the desk check effectively
acts as the computer, using pen and paper to
record results. The desk checker carefully
follows the algorithm being careful to rigidly
adhere to the logic specified. The desk check can
expose problems with the algorithm. - Desk checks are useful to check an algorithm
(before coding) thereby confirming that the
algorithm works as expected and saves time
possibly writing a program that doesn't do what
was intended. Another benefit of a desk check is
that it confirms to the programmer/designer that
the algorithm performs as intended. - A desk check is normally done as a table with
columns for - Pseudo code line number column (Pseudo code
doesn't normally have lines numbers, but these
are necessary in a desk check to specify the
line(s) being executed) - One column per variable used. The columns should
be in alphabetical order on variable name with
the variable name at the top of the column. As
the algorithm is executed, the new values of the
variables are put in the appropriate column. Show
working for calculations. - A condition column. The result of the condition
will be true (T) or false (F). As the algorithm
is executed, conditions are evaluated and the
details are recorded in the column. Show working
when evaluating the conditions. This is used
whenever a condition is evaluated - IF WHILE or
FOR statements all have explicit or implicit
conditions. - An Input/Output column is used to show what is
input by the user and displayed by the program.
Show inputs with the variable name, a "?" and
the value input e.g. price ? 200. Show outputs
with the variable name, an , and the value
displayed (or just the value displayed) e.g.
discountPrice 180 .
3Desk Checks vs Test Plans
- A Desk Check concentrates on the value of
variables and the logic i.e. what is the value
of variable x after statement n what is the next
statement to be executed? - A Test Plan focuses on the values of inputs and
outputs required to test a program without
concern for the internal workings i.e. are the
results (outputs) correct for the inputs?.
4Sequence Desk Check
- Example 1
- Problem Description Calculate the discounted
price of an item purchased. (Note a problem
description is not normally specified in a desk
check, it is only included to assist in
understanding the problem.) - The following example shows desk checking
involving sequence, executing instructions one
after the other. - Sequence involves executing all instructions
once, from top to bottom, one after the other. - Algorithm (with line numbers added for the Desk
Check) - 1 calcDiscountPrice()
- 2 Input price, discountPercent
- 3 discount price discountPercent / 100
- 4 discountPrice price - discount
- 5 Display discountPrice 6 STOP
5Sequence Desk Check
- Test Data
- Inputs price 200, discountPercent
10.Correct results discount 20,
discountPrice 180.
6Selection Desk Check
- Example 2
- Problem Description Calculate the discounted
price of an item purchased. Customers receive a
discount of 15 on an item if the purchase price
of the item is over 100. - The following example shows desk checking
involving selection using an IF. - For an IF without an ELSE, if the condition
evaluates to True then execution continues to the
next line and the lines between the IF and ENDIF
are executed (inclusive), otherwise (the
condition is False) execution jumps from the IF
to the ENDIF. - Algorithm (with line numbers added for the Desk
Check) - 1 calcPrice()
- 2 Input price
- 3 IF price gt 100 THEN
- 4 discount price 15 / 100
- 5 price price - discount
- 6 ENDIF
- 7 Display price 8
- STOP
7Selection Desk Check
- Inputs price 200Correct results price
170.
8Selection Desk Check cont.
Inputs price 50Correct results price 50.
9Iteration Desk Check
- Problem Description Display a table of values of
x and x squared. X is to start at 1 and increase
by 1 up to 3. - The following example shows desk checking
involving iteration (repetition) using a FOR
loop. - The counter variable is initialized once at the
top of the loop, the first time through the loop.
The implied condition is evaluated at the top of
the loop, with execution going to the next line
if the condition is True and going to the line
after the ENDFOR if the condition is False. In
this case the implied condition is x lt 3 ?. On
the ENDFOR line the counter variable is
incremented by 1, then program execution loops
from the ENDFOR line, back to the FOR line. - Algorithm (with line numbers added for the Desk
Check) - 1 calcSquares()
- 2 Display "X", "X Squared"
- 3 FOR x 1 TO 3 DO
- 4 xSquared x x
- 5 Display x, xSquared
- 6 ENDFOR
- 7 Display "-----------"
- 8 STOP
10Input NoneCorrect results x 1, xSquared 1
x 2, xSquared 4 x 3, xSquared 9.
11Example from Case Study
- 1. Dim CashPaid, Change, GrandTotal As Currency
- 2. GrandTotal txtnettotal.Text
- 3. CashPaid txtcashtendered.Text
- 4. If GrandTotal gt CashPaid Then
- 5. txtcashtendered.Text ""
- 6. Else
- 7. Change CashPaid - GrandTotal
- 8. End If
12GrandTotal 120 CashPaid 200 Change should
80
13Try this one
- Dim Count As Integer
- Adodc1.Recordset.MoveFirst
- Do While Not Adodc1.Recordset.EOF
- Count Count 1
- Adodc1.Recordset.MoveNext
- Loop
- txtNo_Records.Text Count
- Adodc1.Recordset.MoveFirst
- End Sub
5 records in database