Tuesday, 11 December 2012

Common Software Errors


Type of Errors

  • User Interface Errors

  • Error Handling

  • Boundary related errors

  • Calculation errors

  • Initial and Later states

  • Control flow errors

  • Errors in Handling or Interpreting Data

  • Race Conditions

  • Load Conditions

  • Hardware

  • Source, Version and ID Control

  • Testing Errors

Let us go through details of each kind of error.

User Interface Errors

Functionality
Sl No
Possible Error Conditions
1
Excessive Functionality
2
Inflated impression of functionality
3
Inadequacy for the task at hand
4
Missing function
5
Wrong function
6
Functionality must be created by user
7
Doesn't do what the user expects

Communication
Missing Information
Sl No
Possible Error Conditions
1
No on Screen instructions
2
Assuming printed documentation is already available.
3
Undocumented features
4
States that appear impossible to exit
5
No cursor
6
Failure to acknowledge input
7
Failure to show activity during long delays
8
Failure to advise when a change will take effect
9
Failure to check for the same document being opened twice
Wrong, misleading, confusing information
10
Simple factual errors
11
Spelling errors
12
Inaccurate simplifications
13
Invalid metaphors
14
Confusing feature names
15
More than one name for the same feature
16
Information overland
17
When are data saved
18
Wrong function
19
Functionality must be created by user
20
Poor external modularity
Help text and error messages
21
Inappropriate reading levels
22
Verbosity
23
Inappropriate emotional tone
24
Factual errors
25
Context errors
26
Failure to identify the source of error
27
Forbidding a resource without saying why
28
Reporting non-errors
29
Failure to highlight the part of the screen
30
Failure to clear highlighting
31
Wrong/partial string displayed
32
Message displayed for too long or not long enough
Display Layout
33
Poor aesthetics in screen layout
34
Menu Layout errors
35
Dialog box layout errors
36
Obscured Instructions
37
Misuse of flash
38
Misuse of color
39
Heavy reliance on color
40
Inconsistent with the style of the environment
41
Cannot get rid of on screen information
Output
42
Can't output certain data
43
Can't redirect output
44
Format incompatible with a follow-up process
45
Must output too little or too much
46
Can't control output layout
47
Absurd printout level of precision
48
Can't control labeling of tables or figures
49
Can't control scaling of graphs
Performance
50
Program Speed
51
User Throughput
52
Can't redirect output
53
Perceived performance
54
Slow program
55
slow echoing
56
how to reduce user throughput
57
Poor responsiveness
58
No type ahead
59
No warning that the operation takes long time
60
No progress reports
61
Problems with time-outs
62
Program pesters you

Program Rigidity
User tailorability
Sl No
Possible Error Conditions
1
Can't turn off case sensitivity
2
Can't tailor to hardware at hand
3
Can't change device initialization
4
Can't turn off automatic changes
5
Can't slow down/speed up scrolling
6
Can't do what you did last time
7
Failure to execute a customization commands
8
Failure to save customization commands
9
Side effects of feature changes
10
Can't turn off the noise
11
Infinite tailorability
Who is in control?
12
Unnecessary imposition of a conceptual style
13
Novice friendly, experienced hostile
14
Surplus or redundant information required
15
Unnecessary repetition of steps
16
Unnecessary limits

Command Structure and Rigidity
Inconsistencies
Sl No
Possible Error Conditions
1
Optimizations
2
Inconsistent syntax
3
Inconsistent command entry style
4
Inconsistent abbreviations
5
Inconsistent termination rule
6
Inconsistent command options
7
Similarly named commands
8
Inconsistent Capitalization
9
Inconsistent menu position
10
Inconsistent function key usage
11
Inconsistent error handling rules
12
Inconsistent editing rules
13
Inconsistent data saving rules
Time Wasters
14
Garden paths
15
choice can't be taken
16
Are you really, really sure
17
Obscurely or idiosyncratically named commands
Menus
18
Excessively complex menu hierarchy
19
Inadequate menu navigation options
20
Too many paths to the same place
21
You can't get there from here
22
Related commands relegated to unrelated menus
23
Unrelated commands tossed under the same menu
Command Lines
24
Forced distinction between uppercase and lowercase
25
Reversed parameters
26
Full command names are not allowed
27
Abbreviations are not allowed
28
Demands complex input on one line
29
no batch input
30
can't edit commands
Inappropriate use of key board
31
Failure to use cursor, edit, or function keys
32
Non std use of cursor and edit keys
33
non-standard use of function keys
34
Failure to filter invalid keys
35
Failure to indicate key board state changes

Missing Commands
State transitions
Sl No
Possible Error Conditions
1
Can't do nothing and leave
2
Can't quit mid-program
3
Can't stop mid-command
4
Can't pause
Disaster prevention
5
No backup facility
6
No undo
7
No are you sure
8
No incremental saves
Disaster prevention
9
Inconsistent menu position
10
Inconsistent function key usage
11
Inconsistent error handling rules
12
Inconsistent editing rules
13
Inconsistent data saving rules
Error handling by the user
14
No user specifiable filters
15
Awkward error correction
16
Can't include comments
17
Can't display relationships between variables
Miscellaneous
18
Inadequate privacy or security
19
Obsession with security
20
Can't hide menus
21
Doesn't support standard OS features
22
Doesn't allow long names

Error Handling

Error prevention
Sl No
Possible Error Conditions
1
Inadequate initial state validation
2
Inadequate tests of user input
3
Inadequate protection against corrupted data
4
Inadequate tests of passed parameters
5
Inadequate protection against operating system bugs
6
Inadequate protection against malicious use
7
Inadequate version control

Error Detection
Sl No
Possible Error Conditions
1
ignores overflow
2
ignores impossible values
3
ignores implausible values
4
ignores error flag
5
ignores hardware fault or error conditions
6
data comparison

Error Recovery
Sl No
Possible Error Conditions
1
automatic error detection
2
failure to report error
3
failure to set an error flag
4
where does the program go back to
5
aborting errors
6
recovery from hardware problems
7
no escape from missing disks



Boundary related errors

Sl No
Possible Error Conditions
1
Numeric boundaries
2
Equality as boundary
3
Boundaries on numerosity
4
Boundaries in space
5
Boundaries in time
6
Boundaries in loop
7
Boundaries in memory
8
Boundaries with data structure
9
Hardware related boundaries
10
Invisible boundaries
11
Mishandling of boundary case
12
Wrong boundary
13
Mishandling of cases outside boundary

Calculation Errors

Sl No
Possible Error Conditions
1
Bad Logic
2
Bad Arithmetic
3
Imprecise Calculations
4
Outdated constants
5
Calculation errors
6
Impossible parenthesis
7
Wrong order of calculations
8
Bad underlying functions
9
Overflow and Underflow
10
Truncation and Round-off error
11
Confusion about the representation of data
12
Incorrect conversion from one data representation to another
13
Wrong Formula
14
Incorrect Approximation

Race Conditions

Sl No
Possible Error Conditions
1
Races in updating data
2
Assumption that one event or task finished before another begins
3
Assumptions that one event or task has finished before another begins
4
Assumptions that input won't occur during a brief processing interval
5
Assumptions that interrupts won't occur during brief interval
6
Resource races
7
Assumptions that a person, device or process will respond quickly
8
Options out of sync during display changes
9
Tasks starts before its prerequisites are met
10
Messages cross or don't arrive in the order sent

Initial and Later States

Sl No
Possible Error Conditions
1
Failure to set data item to zero
2
Failure to initialize a loop-control variable
3
Failure to initialize a or re-initialize a pointer
4
Failure to clear a string
5
Failure to initialize a register
6
Failure to clear a flag
7
Data were supposed to be initialized elsewhere
8
Failure to re-initialize
9
Assumption that data were not re-initialized
10
Confusion between static and dynamic storage
11
Data modifications by side effect
12
Incorrect initialization

Control Flow Errors

Program runs amok
Sl No
Possible Error Conditions
1
Jumping to a routine that isn't resident
2
Re-entrance
3
Variables contains embedded command names
4
Wrong returning state assumed
5
Exception handling based exits


Return to wrong place
Sl No
Possible Error Conditions
1
Corrupted Stack
2
Stack underflow/overflow
3
GOTO rather than RETURN from sub-routine
Interrupts
Sl No
Possible Error Conditions
1
Wrong interrupt vector
2
Failure to restore or update interrupt vector
3
Invalid restart after an interrupt
4
Failure to block or un-block interrupts



Program Stops
Sl No
Possible Error Conditions
1
Dead crash
2
Syntax error reported at run time
3
Waiting for impossible condition or combinations of conditions
4
Wrong user or process priority

Error Detection
Sl No
Possible Error Conditions
1
infinite loop
2
Wrong starting value for the loop control variables
3
Accidental change of loop control variables
4
Command that do or don't belong inside the loop
5
Command that do or don't belong inside the loop
6
Improper loop nesting

If Then Else , Or may not
Sl No
Possible Error Conditions
1
Wrong inequalities
2
Comparison sometimes yields wrong result
3
Not equal verses equal when there are three cases
4
Testing floating point values for equality
5
confusion between inclusive and exclusive OR
6
Incorrectly negating a logical expression
7
Assignment equal instead of test equal
8
Commands being inside the THEN or ELSE clause
9
Commands that don't belong either case
10
Failure to test a flag
11
Failure to clear a flag


Multiple Cases
Sl No
Possible Error Conditions
1
Missing default
2
Wrong default
3
Missing cases
4
Overlapping cases
5
Invalid or impossible cases
6
Commands being inside the THEN or ELSE clause
7
Case should be sub-divided





Errors Handling or Interpreting Data

Problems in passing data between routines
Sl No
Possible Error Conditions
1
Parameter list variables out of order or missing
2
Data Type errors
3
Aliases and shifting interpretations of the same area of memory
4
Misunderstood data values
5
inadequate error information
6
Failure to clean up data on exception handling
7
Outdated copies of data
8
Related variable get out of synch
9
Local setting of global data
10
Global use of local variables
11
Wrong mask in bit fields
12
Wrong value from table

Data boundaries
Sl No
Possible Error Conditions
1
Un-terminated null strings
2
Early end of string
3
Read/Write past end of data structure or an element in it

Read outside the limits of message buffer
Sl No
Possible Error Conditions
1
Complier padding to word boundaries
2
value stack underflow/overflow
3
Trampling another process's code or data

Messaging Problems
Sl No
Possible Error Conditions
1
Messages sent to wrong process or port
2
Failure to validate an incoming message
3
Lost or out of synch messages
4
Message sent to only N of N+1 processes

Data Storage corruption
Sl No
Possible Error Conditions
1
Overwritten changes
2
Data entry not saved
3
Too much data for receiving process to handle
4
Overwriting a file after an error exit or user abort


Load Conditions

Sl No
Possible Error Conditions
1
Required resources are not available
2
No available large memory area
3
Input buffer or queue not deep enough
4
Doesn't clear item from queue, buffer or stock
5
Lost Messages
6
Performance costs
7
Race condition windows expand
8
Doesn't abbreviate under load
9
Doesn't recognize that another process abbreviates output under load
10
Low priority tasks not put off
11
Low priority tasks never done

Doesn't return a resource
Sl No
Possible Error Conditions
1
Doesn't indicate that it's done with a device
2
Doesn't erase old files from mass storage
3
Doesn't return unused memory
4
Wastes computer time

Hardware

Sl No
Possible Error Conditions
1
Wrong Device
2
Wrong Device Address
3
Device unavailable
4
Device returned to wrong type of pool
5
Device use forbidden to caller
6
Specifies wrong privilege level for the device
7
Noisy Channel
8
Channel goes down
9
Time-out problems
10
Wrong storage device
11
Doesn't check the directory of current disk
12
Doesn't close the file
13
Unexpected end of file
14
Disk sector bug and other length dependent errors
15
Wrong operation or instruction codes
16
Misunderstood status or return code
17
Underutilizing device intelligence
18
Paging mechanism ignored or misunderstood
19
Ignores channel throughput limits
20
Assuming device is or isn't or should be or shouldn't be initialized
21
Assumes programmable function keys are programmed correctly
Source, Version, ID Control

Sl No
Possible Error Conditions
1
Old bugs mysteriously re appear
2
Failure to update multiple copies of data or program files
3
No title
4
No version ID
5
Wrong version number of title screen
6
No copy right message or bad one
7
Archived source doesn't compile into a match for shipping code
8
Manufactured disks don't work or contain wrong code or data

Testing Errors

Missing bugs in the program
Sl No
Possible Error Conditions
1
Failure to notice a problem
2
You don't know what the correct test results are
3
You are bored or inattentive
4
Misreading the Screen
5
Failure to report problem
6
Failure to execute a planned test
7
Failure to use the most promising test case
8
Ignoring programmer's suggestions

Finding bugs that aren't in the program
Sl No
Possible Error Conditions
1
Errors in testing programs
2
Corrupted data files
3
Misinterpreted specifications or documentation

Poor reporting
Sl No
Possible Error Conditions
1
Illegible reports
2
Failure to make it clear how to reproduce the problem
3
Failure to say you can't reproduce the problem
4
Failure to check your report
5
Failure to report timing dependencies
6
Failure to simplify conditions
7
Concentration on trivia
8
Abusive language

Poor Tracking and follow-up
Sl No
Possible Error Conditions
1
Failure to provide summary report
2
Failure to re-report serious bug
3
Failure to check for unresolved problems just before release
4
Failure to verify fixes

No comments:

Post a Comment