Desk Checking

13
Desk Checking Desk Checking

description

Desk Checking. Desk Checking. - PowerPoint PPT Presentation

Transcript of Desk Checking

Page 1: Desk Checking

Desk CheckingDesk Checking

Page 2: Desk Checking

Desk CheckingDesk 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:1. 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) 2. 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.

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

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

Page 3: Desk Checking

Desk Checks vs Test PlansDesk 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?.

Page 4: Desk Checking

Sequence Desk CheckSequence Desk CheckExample 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

Page 5: Desk Checking

Sequence Desk CheckSequence Desk CheckTest DataInputs: price = $200, discountPercent = 10%.

Correct results: discount = $20, discountPrice = $180.

LineNumber

discountDiscountPercent

DiscountPrice

price Input/Output

1          

2   10   200price ? 200;

discountPercent ? 10

3200 * 10 / 100

= 20       

4    200 - 20 =

180   

5         discountPrice = 180

6          

Page 6: Desk Checking

Selection Desk CheckSelection Desk CheckExample 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 > 100 THEN

4 discount = price * 15 / 100 5 price = price - discount

6 ENDIF 7 Display price 8 STOP

Page 7: Desk Checking

Selection Desk CheckSelection Desk Check• Inputs: price = $200

Correct results: price = $170.

Line Number discount price Conditions Input/Output

1        

2   200   price ? 200

3     200 > 100 ? is T  

4 200 * 15 / 100 = 30      

5   200 - 30 = 170    

6        

7       price = 170

8        

Page 8: Desk Checking

Selection Desk Check cont.Selection Desk Check cont.

Line Number discount price Conditions Input/Output

1        

2   50   price ? 50

3     50 > 100 ? is F  

6        

7       price = 50

8        

Inputs: price = $50Correct results: price = $50.

Page 9: Desk Checking

Iteration Desk CheckIteration 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 <= 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

Page 10: Desk Checking

Input: NoneInput: NoneCorrect results: x = 1, xSquared = 1; x = 2, xSquared = 4; x = Correct results: x = 1, xSquared = 1; x = 2, xSquared = 4; x =

3, xSquared = 9.3, xSquared = 9. Line Number x xSquared Conditions Input/ Output

1        

2       X, X Squared

3 1   1 <= 3 ? is T  

4   1 * 1 = 1    

5       x = 1, xSquared = 1

6 1 + 1 = 2      

3     2 <= 3 ? is T  

4   2 * 2 = 4    

5       x = 2, xSquared = 4

6 2 + 1 = 3      

3     3 <= 3 ? is T  

4   3 * 3 = 9    

5       x = 3, xSquared = 9

6 3 + 1 = 4      

3     4 <= 3? is F  

7       -----------

8        

Page 11: Desk Checking

Example from Case StudyExample from Case Study1. Dim CashPaid, Change, GrandTotal As Currency

2. GrandTotal = txtnettotal.Text3. CashPaid = txtcashtendered.Text

4. If GrandTotal > CashPaid Then 5. txtcashtendered.Text = ""6. Else 7. Change = CashPaid - GrandTotal8. End If

Page 12: Desk Checking

Line Number GrandTotalCashPaid

Change Conditions Input/Output

2  120      

3  200

 

4    120 > 200 ? is F

 

7    Change = 200 - 120

   Change = 80

8      

       

GrandTotal = 120CashPaid = 200

Change should = 80

Page 13: Desk Checking

Try this one…Try this one…Dim Count As IntegerAdodc1.Recordset.MoveFirstDo While Not Adodc1.Recordset.EOF

Count = Count + 1Adodc1.Recordset.MoveNext

LooptxtNo_Records.Text = CountAdodc1.Recordset.MoveFirstEnd Sub

*5 records in database