Defects

WHAT IS DEFECTS

• A DEFECT IS A FAULT OR IMPERFECTION IN A PERSON OR THING.

• DEFICIENCY, WANT, FAILING, LACK \

• A LACK OF SOMETHING NECESSARY FOR COMPLETENESS OR PERFECTION; SHORTCOMING; DEFICIENCY

DEFECTIVE PRODUCT

• DEFECTIVE PRODUCT IS A PRODUCT THAT CAUSES INJURY TO A PERSON TO DUE EITHER A DESIGN

DEFECT, A MANUFACTURINGDEFECT, OR A MARKETINGDEFECT

WHAT IS A SOFTWARE DEFECT?

• A SOFTWARE DEFECT IS AN ERROR, FLAW, MISTAKE, FAILURE, OR FAULT IN SOFTWARE THAT PREVENTS IT FROM BEHAVING AS INTENDED (E.G., PRODUCING AN INCORRECT OR UNEXPECTED RESULT)SOFTWARE DEFECTS ARE ALSO KNOWN AS SOFTWARE ERRORS OR SOFTWARE BUGS

EFFECTS OF SOFTWARE DEFECTS

• BUGS CAN HAVE A WIDE VARIETY OF EFFECTS, WITH VARYING LEVELS OF INCONVENIENCE TO THE USER OF THE SOFTWARE.

• THE RESULTS OF BUGS MAY BE EXTREMELY SERIOUS.

• IN 1996, THE EUROPEAN SPACE AGENCY’S US $1 BILLION PROTOTYPE ARIAN 5 ROCKET WAS DESTROYED LESS THAN A MINUTE AFTER

LAUNCH

• INCREASE COST/EXPENSES

• IN 2002, A STUDY COMMISSIONED BY THE US DEPARTMENT OF COMMERCE’ NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

(NIST) CONCLUDED SOFTWARE BUGS ARE SO PREDOMINANT AND DAMAGING THAT THEY COST ESTIMATED US $59 BILLION ANNUALLY ESTIMATED $22.2 BILLION, COULD BE ELIMINATED BY AN IMPROVED TESTING INFRASTRUCTURE THAT ENABLES EARLIER AND MORE EFFECTIVE IDENTIFICATION AND REMOVAL OF SOFTWARE DEFECTS.

• HUMAN LIVES WILL BE AT STAKE

• IN JUNE 1994, A ROYAL AIR FORCE CHINOOK CRASHED INTO THE MULL OF KINTYRE, KILLING 29 PEOPLE.WHY? A SOFTWARE BUG IN THE

AIRCRAFT’S ENGINE CONTROL COMPUTER

CATEGORIES OF SOFTWARE DEFECTS

 ERRORS OF COMMISSION SOMETHINGWRONG IS DONE

 A CLASSIC EXAMPLE AT THE CODE LEVEL WOULD BE GOING THROUGH A LOOP ONE TIME TOO MANY OR BRANCHING ON THE WRONG ADDRESS

 ERRORS OF OMISSION SOMETHING LEFT OUT BY ACCIDENT

 OMITTING A PARENTHESES IN NESTED EXPRESSIONS

 ERRORS OF CLARITY AND AMBIGUITY

 DIFFERENT INTERPRETATIONS OF THE SAME STATEMENT THIS KIND OF ERROR IS COMMON WITH ALL NATURAL LANGUAGE REQUIREMENTS AND SPECIFICATION DOCUMENTS AND USER MANUALS, TOO.

 ERRORS OF SPEED AND CAPACITY

 APPLICATION WORKS, BUT NOT FAST ENOUGH

DEFECT ORIGIN

SOFTWARE DEFECTS CAN BE FOUND IN ANY OF THE DOCUMENTS AND WORK PRODUCTS INCLUDING VERY SERIOUS ONES IN COST ESTIMATES AND DEVELOPMENT PLANS

SOFTWARE DEFECTORIGINS

ERRORS IN REQUIREMENTS ERRORS IN DESIGN ERRORS IN SOURCE CODE

ERRORS IN USER DOCUMENTATION ERRORS DUE TO “BAD FIXES” ERRORS IN DATA AND TABLES

ERRORS IN TEST CASES

SOFTWARE ERRORS AND BUGS

“AN ERROR IS A DEVIATION FROM ACCURACY OR CORRECTNESS” AND “A SOFTWARE BUG IS AN ERROR, FLAW, FAILURE, OR FAULT IN A COMPUTER PROGRAM OR SYSTEM THAT CAUSES IT TO PRODUCE AN INCORRECT OR UNEXPECTED RESULT, OR TOBEHAVE IN UNINTENDED WAYS

COMMON CATEGORIES OF SOFTWARE ERRORS:

#1) FUNCTIONALITY ERRORS:

FUNCTIONALITY IS A WAY THE SOFTWARE IS INTENDED TO BEHAVE. SOFTWARE HAS A FUNCTIONALITY ERROR IF SOMETHINGTHAT YOU EXPECT IT TO DO IS HARD, AWKWARD, CONFUSING, OR IMPOSSIBLE.

COMMON CATEGORIES OF SOFTWARE ERRORS:

#2) COMMUNICATION ERRORS:

THESE ERRORS OCCUR IN COMMUNICATION FROM SOFTWARE TO END-USER. ANYTHING THAT THE END USER NEEDS TO KNOW IN ORDER TO USE THE SOFTWARE SHOULD BE MADE AVAILABLE ON SCREEN.

EX – NO HELP INSTRUCTIONS/MENU PROVIDED, FEATURES THAT ARE PART OF THE RELEASE BUT ARE NOT DOCUMENTED IN THE HELP MENU, A BUTTON NAMED ‘SAVE’ SHOULD NOT ERASE A FILE ETC.

COMMON CATEGORIES OF SOFTWARE ERRORS:

• #3) MISSING COMMAND ERRORS:

THIS HAPPENS TO OCCUR WHEN AN EXPECTED COMMAND IS MISSING.

COMMON CATEGORIES OF SOFTWARE ERRORS:

• #4) SYNTACTIC ERROR:

• SYNTAX REFERS TO THE RULES OF A PROGRAMMING

LANGUAGE

• THE COMPILER WILL WARN THE DEVELOPER ABOUT ANY SYNTAX ERRORS THAT OCCUR IN THE CODE

COMMON CATEGORIES OF SOFTWARE ERRORS:

• #5) ERROR HANDLING ERRORS:

• ANY ERRORS THAT OCCUR WHILE

THE USER IS INTERACTING WITH THE SOFTWARE NEEDS TO BE HANDLED IN A CLEAR

AND MEANINGFUL MANNER. IF NOT, IT IS CALLED AS AN ERROR HANDLING ERROR.

COMMON CATEGORIES OF SOFTWARE ERRORS:

• #6) CALCULATION ERRORS:

THESE ERRORS OCCUR DUE TO ANY OF THE FOLLOWING REASONS:

• BAD LOGIC

• INCORRECT FORMULAE

• DATA TYPE MISMATCH

• CODING ERRORS

• FUNCTION CALL ISSUES , ETC.

IN 1999, NASA LOST ITS MARS CLIMATE ORBITER BECAUSE ONE OF THE SUBCONTRACTORS NASA EMPLOYED HAD USED ENGLISH UNITS INSTEAD OF THE INTENDED METRIC SYSTEM, WHICH CAUSED THE ORBITER’S THRUSTERS TO WORK INCORRECTLY. DUE TO THIS BUG, THE ORBITER CRASHED ALMOST IMMEDIATELY WHEN IT ARRIVED AT MARS.

COMMON CATEGORIES OF SOFTWARE ERRORS:

• #7) CONTROLFLOW ERRORS:

THE CONTROL FLOW OF A SOFTWARE DESCRIBES WHAT IT WILL DO NEXT AND ON WHAT CONDITION.

FOR EXAMPLE, CONSIDER A SYSTEM WHERE USER HAS TO FILL IN A FORM AND THE OPTIONS AVAILABLE TO USER ARE: SAVE, SAVE AND CLOSE, AND CANCEL. IF A USER CLICKS ON ‘SAVE AND CLOSE’ BUTTON, THE USER INFORMATION IN THE FORM SHOULD BE SAVED AND THE FORM SHOULD CLOSE. IF CLICKING ON THE BUTTON DOES NOT CLOSE THE FORM, THEN IT IS A CONTROL FLOW ERROR.

CONCLUSION

• DEFECT IDENTIFICATION, CATEGORIZATION, REPORTING AND EVENTUALLY REMOVAL ARE ALL PART OF QUALITY CONTROL ACTIVITIES.

• BUT, PREVENTION IS BETTER THAN CURE. THE VERY CRUX OF SOFTWARE QUALITY ASSURANCE IS TO ESTABLISH MONITORING AND INSPECTING PROCESSES AT EACH STAGE OF THE SOFTWARE DEVELOPMENT LIFE CYCLE.