Desk Checking

1 / 13
About This Presentation
Title:

Desk Checking

Description:

Desk checks are useful to check an algorithm (before coding) thereby confirming ... it confirms to the programmer/designer that the algorithm performs as intended. ... – PowerPoint PPT presentation

Number of Views:164
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: Desk Checking


1
Desk Checking
2
Desk 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 .

3
Desk 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?.

4
Sequence 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

5
Sequence Desk Check
  • Test Data
  • Inputs price 200, discountPercent
    10.Correct results discount 20,
    discountPrice 180.

6
Selection 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

7
Selection Desk Check
  • Inputs price 200Correct results price
    170.

8
Selection Desk Check cont.
Inputs price 50Correct results price 50.
9
Iteration 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

10
Input NoneCorrect results x 1, xSquared 1
x 2, xSquared 4 x 3, xSquared 9.
11
Example 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

12
GrandTotal 120 CashPaid 200 Change should
80
13
Try 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
Write a Comment
User Comments (0)