KEMBAR78
SDD error types and detection | PPTX
SOFTWARE DESIGN &
DEVELOPMENT
ON LINE WITH
MR CUSACK
LESSON TOPIC
T3W2 – ERROR TYPES & DETECTION
WHAT TYPES OF ERROR ARE THERE?
HINT: THERE ARE 3 TYPES!
ERROR TYPES AND DETECTION
SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS
ARE NOT AS EXPECTED.
ERROR TYPES AND DETECTION
SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS
ARE NOT AS EXPECTED.
WHAT TYPE OF ERROR ?
ERROR TYPES AND DETECTION
SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS
ARE NOT AS EXPECTED.
WHAT TYPE OF ERROR ?...... LOGIC ERROR
ERROR TYPES AND DETECTION
SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS
ARE NOT AS EXPECTED.
WHAT TYPE OF ERROR ?...... LOGIC ERROR
WHY NOT A SYNTAX ERROR ?
ERROR TYPES AND DETECTION
SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS
ARE NOT AS EXPECTED.
WHAT TYPE OF ERROR ?...... LOGIC ERROR
WHY NOT A SYNTAX ERROR ?
WHY NOT A RUNTIME ERROR ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ? SYNTAX ERROR !
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ? SYNTAX ERROR !
DESCRIBE WHAT HAS CAUSED THIS ERROR
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ? SYNTAX ERROR !
DESCRIBE WHAT HAS CAUSED THIS ERROR
AT SOME POINT IN THE CODING THE PROGRAMMER HAS ENTERED CODE THAT DOES NOT COMPLY
WITH THE RULES THAT APPLY TO THIS LANGUAGE. I.E. NOT COMPLIED WITH THE SYNTAX RULES
FOR THAT LANGUAGE.
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ? SYNTAX ERROR !
WHAT IS AVAILABLE TO THE PROGRAMMER TO HELP AVOID THIS ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ? SYNTAX ERROR !
WHAT IS AVAILABLE TO THE PROGRAMMER TO HELP AVOID THIS ?
METALANGUAGES !
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN
EXECUTABLE SOLUTION. THIS FAILS.
WHAT TYPE OF ERROR ? SYNTAX ERROR !
WHAT IS AVAILABLE TO THE PROGRAMMER TO HELP AVOID THIS ?
SYNTAX DEFINITIONS AND HELP IN THE FORM OF METALANGUAGES SUCH AS EBNF AND RAILROAD
DIAGRAMS
MESSAGES WITHIN THE PROGRAMMING ENVIRONMENT THAT REPORT SYNTAX ERRORS AND
SUGGEST CORRECTIONS
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR
HOW IS THIS DIFFERENT TO A LOGIC ERROR ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR
HOW IS THIS DIFFERENT TO A LOGIC ERROR ?
LOGIC ERRORS USUALLY ALLOW THE PROGRAM TO CONTINUE TO RUN…BUT GIVE
UNEXPECTED RESULTS.
RUNTIME ERRORS CRASH (OR REQUIRE RECOVERY)
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR
WHAT DID THE USER DO THAT MADE THIS HAPPEN ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR
WHAT DID THE USER DO THAT MADE THIS HAPPEN ?
PROBABLY ENTERED UNEXPECTED OR INAPPROPRIATE DATA
..OR CREATED EVENTS THAT ARE NOT NORMAL..
..OR WERE NOT ANTICIPATED BY THE PROGRAMMER.
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR
WAS THIS THE USERS FAULT ?
ERROR TYPES AND DETECTION
SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER
REPORTS THAT THE PROGRAM HAS “CRASHED”.
WHAT TYPE OF ERROR ? RUNTIME ERROR. WHAT DID THE USER DO THAT MADE THIS
HAPPEN ?
WAS THIS THE USERS FAULT ?
NO ! THE DEVELOPER SHOULD HAVE ALLOWED FOR THIS POSSIBILITY AND INCLUDED
ADEQUATE TRAPS OR CODE SO THAT THE USER CANNOT CAUSE THIS TO HAPPEN
ERROR TYPES SUMMARY
LOGIC ERRORS
SYNTAX ERRORS
RUNTIME ERRORS
ERROR TYPES SUMMARY
LOGIC ERRORS
SYNTAX ERRORS
RUNTIME ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
LOGIC ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
LOGIC ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
THOROUGH CREATION OF TEST DATA AND DESK CHECKING AT PLANNING STAGE
REPEATING OF THIS TESTING AFTER IMPLEMENTATION
SYNTAX ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
SYNTAX ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
IN MOST PROGRAMMING ENVIRONMENTS THE PROGRAMMING TOOL REPORTS SUCH ERRORS
EITHER AS CODE IS CREATED OR WHEN AN ATTEMPT IS MADE TO TRANSLATE THE CODE.
THESE ARE DETECTED BECAUSE THE PROGRAM WON’T RUN !
RUNTIME ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
(PROBABLY THE MOST DIFFICULT TO DETECT)
RUNTIME ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
(PROBABLY THE MOST DIFFICULT TO DETECT)
AT BOTH THE PLANNING AND DURING IMPLEMENTATION AND TESTING THE DEVELOPER HAS
TO PREDICT WHAT USERS CAN DO AND CREATE TEST DATA SETS TO ENSURE THAT ALL OF
THESE POSSIBILITIES ARE COVERED.
RUNTIME ERRORS
HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
(PROBABLY THE MOST DIFFICULT TO DETECT)
AT BOTH THE PLANNING AND DURING IMPLEMENTATION AND TESTING THE DEVELOPER HAS TO
PREDICT WHAT USERS CAN DO AND CREATE TEST DATA SETS TO ENSURE THAT ALL OF THESE
POSSIBILITIES ARE COVERED.
IN THE CASE OF LARGER SOLUTION RUNTIME ERROR DETECTION
IS OFTEN ACHIEVED BY EXTENSIVE BETA TESTING. IN THIS CASE
MANY USERS ARE ASKED TO RUN THE SOLUTION AND REPORT
BACK PROBLEMS. THIS IS ANOTHER WAY TO HOPEFULLY TEST THE
UNEXPECTED.
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF 5
ELEMENTS IN AN ARRAY
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF 5
ELEMENTS IN AN ARRAY
BEGIN
SET TOTAL TO 0
SET COUNTER TO 1
WHILE COUNTER <5
TOTAL = TOTAL + ARRAY(COUNTER)
INCREMENT COUNTER
ENDWHILE
AVERAGE = TOTAL /COUNTER
END
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF 5
ELEMENTS IN AN ARRAY
BEGIN
SET TOTAL TO 0
SET COUNTER TO 1
WHILE COUNTER <5
TOTAL = TOTAL + ARRAY(COUNTER)
INCREMENT COUNTER
ENDWHILE
AVERAGE = TOTAL /COUNTER
END LOGIC ERROR
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF 5
ELEMENTS IN AN ARRAY
VB CODE
WHILE COUNTER < 5
MAKE THE TOTAL = TOTAL + ARRAY (COUNTER)
ENDDO
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF 5
ELEMENTS IN AN ARRAY
VB CODE…. BEHIND THE AVERAGE BUTTON.
WHILE COUNTER < 5
MAKE THE TOTAL = TOTAL + ARRAY (COUNTER)
ENDDO
SYNTAX ERROR
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF
NUMBERS THAT THE USER ENTERS
LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK
LETS ASSUME THAT THE EXE WAS CREATED OK
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF
NUMBERS THAT THE USER ENTERS
LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK
LETS ASSUME THAT THE EXE WAS CREATED OK
NOW THE USER RUNS THE PROGRAM…SEVERAL TIMES AND IT GIVES CORRECT RESULTS
EVERY TIME
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF
NUMBERS THAT THE USER ENTERS
LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK
LETS ASSUME THAT THE EXE WAS CREATED OK
NOW THE USER RUNS THE PROGRAM…SEVERAL TIMES AND IT GIVES CORRECT RESULTS
EVERY TIME
THEN THE USER RUNS THE PROGRAM AGAIN. ENTERS NO NUMBERS AND CLICKS THE
AVERAGE BUTTON
AN EXAMPLE
A PROGRAM TO FIND THE AVERAGE OF
NUMBERS THAT THE USER ENTERS
LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK
LETS ASSUME THAT THE EXE WAS CREATED OK
NOW THE USER RUNS THE PROGRAM…SEVERAL TIMES AND IT GIVES CORRECT RESULTS
EVERY TIME
THEN THE USER RUNS THE PROGRAM AGAIN. ENTERS NO NUMBERS AND CLICKS THE
AVERAGE BUTTON
RUNTIME ERROR….DIVISION BY ZERO
FIXING BUGS
SCENARIO: YOU HAVE COMPLETED CODING AND ATTEMPT TO RUN YOUR (LARGE
MODULAR) PROGRAM.
EITHER A RUNTIME OR A LOGIC ERROR IS APPARENT.
HOW CAN YOU FIND AND FIX THE ERROR ?
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
3. STUBS
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
3. STUBS
4. FLAGS
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
3. STUBS
4. FLAGS
5. PROGRAMMING TOOLS….BREAKPOINTS, STEPPING, WATCH EXPRESSIONS
AN EXAM QUESTION
A LARGE AND COMPLEX PROGRAM CONTAINS MANY MODULES THAT MANIPULATE DATA.
THE PROGRAM PRODUCES INCORRECT OUTPUT, POSSIBLY AS A RESULT OF CALCULATION
ERRORS IN ONE OR MORE MODULES.
DESK CHECKING THE SOURCE CODE AND PEER CHECKING ARE TWO TECHNIQUES THAT
COULD BE USED TO DEBUG THIS PROGRAM.
DESCRIBE HOW OTHER TECHNIQUES COULD BE USED TO HELP LOCATE THE ERRORS IN THIS
PROGRAM.
HSC 2012
AN EXAM QUESTION
A LARGE AND COMPLEX PROGRAM CONTAINS MANY MODULES THAT MANIPULATE DATA. THE PROGRAM PRODUCES
INCORRECT OUTPUT, POSSIBLY AS A RESULT OF CALCULATION ERRORS IN ONE OR
MORE MODULES.
DESK CHECKING THE SOURCE CODE AND PEER CHECKING ARE TWO TECHNIQUES THAT COULD BE USED TO DEBUG THIS
PROGRAM.
DESCRIBE HOW OTHER TECHNIQUES COULD BE USED TO HELP LOCATE THE ERRORS IN THIS PROGRAM.
YOU COULD USE A PROGRAM TRACE TOGETHER WITH A VARIABLE WATCHER TO
CHECK THE CONTENTS OF VARIABLES AT EACH RELEVANT STEP IN THE PROGRAM –
TO MAKE SURE VALUES ARE CALCULATED CORRECTLY. BREAK POINTS SET IN KEY
SUBROUTINES – IN CONJUNCTION WITH A TRACE – CAN BE USED TO ENSURE THESE
SUBROUTINES ARE EXECUTED AND THAT CRITICAL VARIABLES CONTAIN THE
EXPECTED VALUES AT THESE POINTS IN THE EXECUTION. THE USE OF DEBUGGING
OUTPUT STATEMENTS AND FLAGS WILL ALSO ENSURE THAT THE VARIOUS MODULES
ARE EXECUTED APPROPRIATELY.
ERROR DETECTION TOOLS
1. FOCUS ON MODULES
FIND IN WHICH MODULE THE ERROR OCCURS. DETERMINE WHAT THE USER WAS DOING WHEN THE ERROR
HAPPENED ? THEN FOCUS YOUR DETECTION METHODS ON THAT MODULE.
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
INSERT TEMPORARY OUTPUTS (LABELS) THAT TELL US THE VALUE OF KEY VARIABLES. REMOVE THESE WHEN
THE ERROR IS FIXED.
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
INSERT TEMPORARY OUTPUTS (LABELS) THAT TELL US THE VALUE OF KEY VARIABLES. REMOVE THESE WHEN
THE ERROR IS FIXED.
WHAT WOULD BE APPROPRIATE DEBUGGING OUTPUTS IN THE PREVIOUS AVERAGE
CALCULATOR ?
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
INSERT TEMPORARY OUTPUTS (LABELS) THAT TELL US THE VALUE OF KEY VARIABLES. REMOVE THESE WHEN
THE ERROR IS FIXED.
WHAT WOULD BE APPROPRIATE DEBUGGING OUTPUTS IN THE PREVIOUS AVERAGE
CALCULATOR ?
OUTPUT: THE COUNTER, THE TOTAL
TEMPORARILY !
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
3. STUBS
PARTIALLY COMPLETED MODULES (“UNDER CONSTRUCTION”) THAT TELL US THAT NAVIGATION TO A
MODULE HAS WORKED AND THAT PARAMETERS HAVE BEEN SUCCESSFULLY PASSED. PROGRESSIVELY USE
THESE TO REPLACE MODULES IN ORDER TO ISOLATE THE PROBLEM.
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
3. STUBS
4. FLAGS
A SIMPLE BOOLEAN VARIABLE THAT RECORDS A “TRUE” WHEN CERTAIN PARTS OF A PROGRAM ARE
ACCESSED OR STATUSES REACHED. OUTPUT THIS AS A DEBUGGING OUTPUT STATEMENT. USEFUL TO SEE IF
CONDITIONS IN SELECTION AND ITERATION HAVE BEEN MET.
ERROR DETECTION TOOLS
1. FOCUS ON MODULES.
2. DEBUGGING OUTPUT STATEMENTS
3. STUBS
4. FLAGS
5. PROGRAMMING TOOLS….BREAKPOINTS, STEPPING,
WATCH EXPRESSIONS
THESE ARE DEALT WITH IN THE VB EXERCISES.
ESSENTIALLY THESE CAN STEP THROUGH OR STOP EXECUTION…AND DISPLAY THE CURRENT VALUES OF
VARIABLES.
TURNS A BLACK BOX TEST INTO A WHITE BOX TEST.
WHITE BOX TEST:
We see what is changing inside.
We trace the changes in variables.
We know the inputs (test data) and the
expected outputs
Deskchecks when in the planning stage
Breakpoints and debugging output statements
when in the implementation stage
BLACK BOX TEST:
We only know the inputs (test data) and the outputs
We compare these outputs with what is expected.
If actual and expected don’t match…….
We start debugging !
WHEN WE WORK TOGETHER
WE ACHIEVE A LOT
IT’S ALL ABOUT TEAMWORK!
THANKS FOR JOINING SDD

SDD error types and detection

  • 1.
  • 2.
    LESSON TOPIC T3W2 –ERROR TYPES & DETECTION
  • 3.
    WHAT TYPES OFERROR ARE THERE? HINT: THERE ARE 3 TYPES!
  • 4.
    ERROR TYPES ANDDETECTION SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS ARE NOT AS EXPECTED.
  • 5.
    ERROR TYPES ANDDETECTION SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS ARE NOT AS EXPECTED. WHAT TYPE OF ERROR ?
  • 6.
    ERROR TYPES ANDDETECTION SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS ARE NOT AS EXPECTED. WHAT TYPE OF ERROR ?...... LOGIC ERROR
  • 7.
    ERROR TYPES ANDDETECTION SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS ARE NOT AS EXPECTED. WHAT TYPE OF ERROR ?...... LOGIC ERROR WHY NOT A SYNTAX ERROR ?
  • 8.
    ERROR TYPES ANDDETECTION SCENARIO: AFTER USING A SOLUTION FOR SOME TIME USERS REPORT THAT SOME OUTPUTS ARE NOT AS EXPECTED. WHAT TYPE OF ERROR ?...... LOGIC ERROR WHY NOT A SYNTAX ERROR ? WHY NOT A RUNTIME ERROR ?
  • 9.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ?
  • 10.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ? SYNTAX ERROR !
  • 11.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ? SYNTAX ERROR ! DESCRIBE WHAT HAS CAUSED THIS ERROR
  • 12.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ? SYNTAX ERROR ! DESCRIBE WHAT HAS CAUSED THIS ERROR AT SOME POINT IN THE CODING THE PROGRAMMER HAS ENTERED CODE THAT DOES NOT COMPLY WITH THE RULES THAT APPLY TO THIS LANGUAGE. I.E. NOT COMPLIED WITH THE SYNTAX RULES FOR THAT LANGUAGE.
  • 13.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ? SYNTAX ERROR ! WHAT IS AVAILABLE TO THE PROGRAMMER TO HELP AVOID THIS ?
  • 14.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ? SYNTAX ERROR ! WHAT IS AVAILABLE TO THE PROGRAMMER TO HELP AVOID THIS ? METALANGUAGES !
  • 15.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAMMER COMPLETES CODING. SHE ATTEMPTS TO CREATE AN EXECUTABLE SOLUTION. THIS FAILS. WHAT TYPE OF ERROR ? SYNTAX ERROR ! WHAT IS AVAILABLE TO THE PROGRAMMER TO HELP AVOID THIS ? SYNTAX DEFINITIONS AND HELP IN THE FORM OF METALANGUAGES SUCH AS EBNF AND RAILROAD DIAGRAMS MESSAGES WITHIN THE PROGRAMMING ENVIRONMENT THAT REPORT SYNTAX ERRORS AND SUGGEST CORRECTIONS
  • 16.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ?
  • 17.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR
  • 18.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR HOW IS THIS DIFFERENT TO A LOGIC ERROR ?
  • 19.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR HOW IS THIS DIFFERENT TO A LOGIC ERROR ? LOGIC ERRORS USUALLY ALLOW THE PROGRAM TO CONTINUE TO RUN…BUT GIVE UNEXPECTED RESULTS. RUNTIME ERRORS CRASH (OR REQUIRE RECOVERY)
  • 20.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR WHAT DID THE USER DO THAT MADE THIS HAPPEN ?
  • 21.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR WHAT DID THE USER DO THAT MADE THIS HAPPEN ? PROBABLY ENTERED UNEXPECTED OR INAPPROPRIATE DATA ..OR CREATED EVENTS THAT ARE NOT NORMAL.. ..OR WERE NOT ANTICIPATED BY THE PROGRAMMER.
  • 22.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR WAS THIS THE USERS FAULT ?
  • 23.
    ERROR TYPES ANDDETECTION SCENARIO: A PROGRAM HAS BEEN SUCCESSFULLY RUNNING FOR SOME TIME. A USER REPORTS THAT THE PROGRAM HAS “CRASHED”. WHAT TYPE OF ERROR ? RUNTIME ERROR. WHAT DID THE USER DO THAT MADE THIS HAPPEN ? WAS THIS THE USERS FAULT ? NO ! THE DEVELOPER SHOULD HAVE ALLOWED FOR THIS POSSIBILITY AND INCLUDED ADEQUATE TRAPS OR CODE SO THAT THE USER CANNOT CAUSE THIS TO HAPPEN
  • 24.
    ERROR TYPES SUMMARY LOGICERRORS SYNTAX ERRORS RUNTIME ERRORS
  • 25.
    ERROR TYPES SUMMARY LOGICERRORS SYNTAX ERRORS RUNTIME ERRORS HOW CAN THESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
  • 26.
    LOGIC ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
  • 27.
    LOGIC ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ? THOROUGH CREATION OF TEST DATA AND DESK CHECKING AT PLANNING STAGE REPEATING OF THIS TESTING AFTER IMPLEMENTATION
  • 28.
    SYNTAX ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ?
  • 29.
    SYNTAX ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ? IN MOST PROGRAMMING ENVIRONMENTS THE PROGRAMMING TOOL REPORTS SUCH ERRORS EITHER AS CODE IS CREATED OR WHEN AN ATTEMPT IS MADE TO TRANSLATE THE CODE. THESE ARE DETECTED BECAUSE THE PROGRAM WON’T RUN !
  • 30.
    RUNTIME ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ? (PROBABLY THE MOST DIFFICULT TO DETECT)
  • 31.
    RUNTIME ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ? (PROBABLY THE MOST DIFFICULT TO DETECT) AT BOTH THE PLANNING AND DURING IMPLEMENTATION AND TESTING THE DEVELOPER HAS TO PREDICT WHAT USERS CAN DO AND CREATE TEST DATA SETS TO ENSURE THAT ALL OF THESE POSSIBILITIES ARE COVERED.
  • 32.
    RUNTIME ERRORS HOW CANTHESE BE DETECTED BEFORE THE SOLUTION GOES TO THE CLIENTS ? (PROBABLY THE MOST DIFFICULT TO DETECT) AT BOTH THE PLANNING AND DURING IMPLEMENTATION AND TESTING THE DEVELOPER HAS TO PREDICT WHAT USERS CAN DO AND CREATE TEST DATA SETS TO ENSURE THAT ALL OF THESE POSSIBILITIES ARE COVERED. IN THE CASE OF LARGER SOLUTION RUNTIME ERROR DETECTION IS OFTEN ACHIEVED BY EXTENSIVE BETA TESTING. IN THIS CASE MANY USERS ARE ASKED TO RUN THE SOLUTION AND REPORT BACK PROBLEMS. THIS IS ANOTHER WAY TO HOPEFULLY TEST THE UNEXPECTED.
  • 33.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF 5 ELEMENTS IN AN ARRAY
  • 34.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF 5 ELEMENTS IN AN ARRAY BEGIN SET TOTAL TO 0 SET COUNTER TO 1 WHILE COUNTER <5 TOTAL = TOTAL + ARRAY(COUNTER) INCREMENT COUNTER ENDWHILE AVERAGE = TOTAL /COUNTER END
  • 35.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF 5 ELEMENTS IN AN ARRAY BEGIN SET TOTAL TO 0 SET COUNTER TO 1 WHILE COUNTER <5 TOTAL = TOTAL + ARRAY(COUNTER) INCREMENT COUNTER ENDWHILE AVERAGE = TOTAL /COUNTER END LOGIC ERROR
  • 36.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF 5 ELEMENTS IN AN ARRAY VB CODE WHILE COUNTER < 5 MAKE THE TOTAL = TOTAL + ARRAY (COUNTER) ENDDO
  • 37.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF 5 ELEMENTS IN AN ARRAY VB CODE…. BEHIND THE AVERAGE BUTTON. WHILE COUNTER < 5 MAKE THE TOTAL = TOTAL + ARRAY (COUNTER) ENDDO SYNTAX ERROR
  • 38.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF NUMBERS THAT THE USER ENTERS LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK LETS ASSUME THAT THE EXE WAS CREATED OK
  • 39.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF NUMBERS THAT THE USER ENTERS LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK LETS ASSUME THAT THE EXE WAS CREATED OK NOW THE USER RUNS THE PROGRAM…SEVERAL TIMES AND IT GIVES CORRECT RESULTS EVERY TIME
  • 40.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF NUMBERS THAT THE USER ENTERS LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK LETS ASSUME THAT THE EXE WAS CREATED OK NOW THE USER RUNS THE PROGRAM…SEVERAL TIMES AND IT GIVES CORRECT RESULTS EVERY TIME THEN THE USER RUNS THE PROGRAM AGAIN. ENTERS NO NUMBERS AND CLICKS THE AVERAGE BUTTON
  • 41.
    AN EXAMPLE A PROGRAMTO FIND THE AVERAGE OF NUMBERS THAT THE USER ENTERS LETS ASSUME THAT THE ALGORITHM DESKCHECKED OK LETS ASSUME THAT THE EXE WAS CREATED OK NOW THE USER RUNS THE PROGRAM…SEVERAL TIMES AND IT GIVES CORRECT RESULTS EVERY TIME THEN THE USER RUNS THE PROGRAM AGAIN. ENTERS NO NUMBERS AND CLICKS THE AVERAGE BUTTON RUNTIME ERROR….DIVISION BY ZERO
  • 42.
    FIXING BUGS SCENARIO: YOUHAVE COMPLETED CODING AND ATTEMPT TO RUN YOUR (LARGE MODULAR) PROGRAM. EITHER A RUNTIME OR A LOGIC ERROR IS APPARENT. HOW CAN YOU FIND AND FIX THE ERROR ?
  • 43.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES.
  • 44.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS
  • 45.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS 3. STUBS
  • 46.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS 3. STUBS 4. FLAGS
  • 47.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS 3. STUBS 4. FLAGS 5. PROGRAMMING TOOLS….BREAKPOINTS, STEPPING, WATCH EXPRESSIONS
  • 48.
    AN EXAM QUESTION ALARGE AND COMPLEX PROGRAM CONTAINS MANY MODULES THAT MANIPULATE DATA. THE PROGRAM PRODUCES INCORRECT OUTPUT, POSSIBLY AS A RESULT OF CALCULATION ERRORS IN ONE OR MORE MODULES. DESK CHECKING THE SOURCE CODE AND PEER CHECKING ARE TWO TECHNIQUES THAT COULD BE USED TO DEBUG THIS PROGRAM. DESCRIBE HOW OTHER TECHNIQUES COULD BE USED TO HELP LOCATE THE ERRORS IN THIS PROGRAM. HSC 2012
  • 49.
    AN EXAM QUESTION ALARGE AND COMPLEX PROGRAM CONTAINS MANY MODULES THAT MANIPULATE DATA. THE PROGRAM PRODUCES INCORRECT OUTPUT, POSSIBLY AS A RESULT OF CALCULATION ERRORS IN ONE OR MORE MODULES. DESK CHECKING THE SOURCE CODE AND PEER CHECKING ARE TWO TECHNIQUES THAT COULD BE USED TO DEBUG THIS PROGRAM. DESCRIBE HOW OTHER TECHNIQUES COULD BE USED TO HELP LOCATE THE ERRORS IN THIS PROGRAM. YOU COULD USE A PROGRAM TRACE TOGETHER WITH A VARIABLE WATCHER TO CHECK THE CONTENTS OF VARIABLES AT EACH RELEVANT STEP IN THE PROGRAM – TO MAKE SURE VALUES ARE CALCULATED CORRECTLY. BREAK POINTS SET IN KEY SUBROUTINES – IN CONJUNCTION WITH A TRACE – CAN BE USED TO ENSURE THESE SUBROUTINES ARE EXECUTED AND THAT CRITICAL VARIABLES CONTAIN THE EXPECTED VALUES AT THESE POINTS IN THE EXECUTION. THE USE OF DEBUGGING OUTPUT STATEMENTS AND FLAGS WILL ALSO ENSURE THAT THE VARIOUS MODULES ARE EXECUTED APPROPRIATELY.
  • 50.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES FIND IN WHICH MODULE THE ERROR OCCURS. DETERMINE WHAT THE USER WAS DOING WHEN THE ERROR HAPPENED ? THEN FOCUS YOUR DETECTION METHODS ON THAT MODULE.
  • 51.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS INSERT TEMPORARY OUTPUTS (LABELS) THAT TELL US THE VALUE OF KEY VARIABLES. REMOVE THESE WHEN THE ERROR IS FIXED.
  • 52.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS INSERT TEMPORARY OUTPUTS (LABELS) THAT TELL US THE VALUE OF KEY VARIABLES. REMOVE THESE WHEN THE ERROR IS FIXED. WHAT WOULD BE APPROPRIATE DEBUGGING OUTPUTS IN THE PREVIOUS AVERAGE CALCULATOR ?
  • 53.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS INSERT TEMPORARY OUTPUTS (LABELS) THAT TELL US THE VALUE OF KEY VARIABLES. REMOVE THESE WHEN THE ERROR IS FIXED. WHAT WOULD BE APPROPRIATE DEBUGGING OUTPUTS IN THE PREVIOUS AVERAGE CALCULATOR ? OUTPUT: THE COUNTER, THE TOTAL TEMPORARILY !
  • 54.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS 3. STUBS PARTIALLY COMPLETED MODULES (“UNDER CONSTRUCTION”) THAT TELL US THAT NAVIGATION TO A MODULE HAS WORKED AND THAT PARAMETERS HAVE BEEN SUCCESSFULLY PASSED. PROGRESSIVELY USE THESE TO REPLACE MODULES IN ORDER TO ISOLATE THE PROBLEM.
  • 55.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS 3. STUBS 4. FLAGS A SIMPLE BOOLEAN VARIABLE THAT RECORDS A “TRUE” WHEN CERTAIN PARTS OF A PROGRAM ARE ACCESSED OR STATUSES REACHED. OUTPUT THIS AS A DEBUGGING OUTPUT STATEMENT. USEFUL TO SEE IF CONDITIONS IN SELECTION AND ITERATION HAVE BEEN MET.
  • 56.
    ERROR DETECTION TOOLS 1.FOCUS ON MODULES. 2. DEBUGGING OUTPUT STATEMENTS 3. STUBS 4. FLAGS 5. PROGRAMMING TOOLS….BREAKPOINTS, STEPPING, WATCH EXPRESSIONS THESE ARE DEALT WITH IN THE VB EXERCISES. ESSENTIALLY THESE CAN STEP THROUGH OR STOP EXECUTION…AND DISPLAY THE CURRENT VALUES OF VARIABLES. TURNS A BLACK BOX TEST INTO A WHITE BOX TEST.
  • 57.
    WHITE BOX TEST: Wesee what is changing inside. We trace the changes in variables. We know the inputs (test data) and the expected outputs Deskchecks when in the planning stage Breakpoints and debugging output statements when in the implementation stage
  • 58.
    BLACK BOX TEST: Weonly know the inputs (test data) and the outputs We compare these outputs with what is expected. If actual and expected don’t match……. We start debugging !
  • 59.
    WHEN WE WORKTOGETHER WE ACHIEVE A LOT IT’S ALL ABOUT TEAMWORK!
  • 60.