Structural Bugs in Software Testing Methodologies

Structural Bugs

Various categories in structural bugs include:

Control and Sequence Bugs: 

Control and sequence bugs includes paths left out, unreachable code, improper nesting of loops, loop-back or loop termination criteria incorrect, missing process steps, duplicated processing, unnecessary processing, GOTO's, ill-conceived (not properly planned) switches, spaghetti code and worst of all, pachinko code
One reason for control flow bugs is that this area is supportive to theoretical treatment
These are easily tested and caught in unit testing
Another reason for this bugs is because of using the old code especially ALP and COBOL code
Control and sequence bugs at all levels are caught by testing, especially structural testing, more specifically path testing combined with a bottom line functional test base on specification

Logic Bugs:

Bugs in logic, especially those elated to misunderstanding how case statements and logic operators behave, singly and in combinations
Also includes evaluation of boolean expressions in deeply nested IF-THEN-ELSE constructs
If the bugs are parts of logical (i.e. boolean) processing not related to control flow, they are characterized as processing bugs
If the bugs are parts of logical expression (i.e. control-flow statements) which is used to direct the control flow, then they are categorized as control-flow bugs

Processing Bugs:

Processing bugs include arithmetic bugs, algebraic, mathematical function evaluation, algorithm selection and general processing
Example:
Incorrect conversion from one data representation to other
Ignoring overflow
Improper use of greater than or equal etc.
Although these bugs are less frequent (12%), they tend to be caught in good unit testing

Initialization Bugs:

Initialization bugs are common and these bugs can be improper and superfluous (useless)
Superfluous bugs are generally less harmful but can affect performance
Typical initialization bugs include: Forgetting to initialize the variables before first use, assuming that they are initialized else where, initializing to the wrong format, representation or type etc.
Explicit declaration of all variable, as in Pascal, can reduce some initialization problems

Data-Flow Bugs and Anomalies:

Most initialization bugs are special case of data flow anomalies
A data flow anomaly occurs where there is a path along which we expect to do something unreasonable with data, such as using an uninitialized variable, attempting to use a variable before it exists, modifying and then not storing or using the result, or initializing twice without an intermediate use

Share on Google Plus

About Data Sciences by Venu

Hi, My name is Venugopala Chary and I'm Currently working as Associate Professor in Reputed Engineerng College, Hyderabad. I have B.Tech and M.tech in regular from JNTU Hyderabad. I have 11 Years of Teaching Experience for both B.Tech and M.Tech Courses.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment