Software Quality
What is software?
Organized information in the form of operating systems, utilities, programs, and applications that enable computers to work. Software consists of carefully-organized instructions and code written by programmers in any of various special computer language.
Software errors, faults and failures
Software Errors
Software errors are sections of the code that are partially or
totally incorrect as a result of a grammatical, logical or other
mistake made by a systems analyst, a programmer, or another
member of the software development team.
• An error can be a grammatical error in one or more of the
code lines,
• or a logical error in carrying out one or more of the client’s
requirements.
• An error may or may not be detected during the coding or
testing of the program before it is released to a customer.
Software Faults
Software faults are software errors that cause the incorrect functioning
of the software during a specific application.
• A software fault occurs as a result of an error that remains in the
executing program.
• However, not all software errors become software faults.
• Not all faults however are detected and the software may continue
executing without any obvious problems.
Software Failure
Software faults become software failures only when they are
“activated”, that is, when a user tries to apply the specific
software section that is faulty. Thus, the root of any software
failure is a software error.
Causes of software errors
1. Faulty requirements definition
2. Client–developer communication failures
3. Deliberate deviations from software requirements
4. Logical design errors
5. Coding errors
6. Non-compliance with documentation and coding instructions
7. Shortcomings of the testing process
8. Procedure errors
9. Documentation errors
Faulty requirements definition
The faulty definition of requirements, usually prepared by the client, is one of the main causes of software errors.
Erroneous definition of requirements
Absence of vital (necessary or essential) requirements
Incomplete definition of requirements
Inclusion of unnecessary requirements, functions that are not expected to be needed in the near future.
Client–developer communication
failures
Misunderstandings resulting from defective client developer communication are additional causes for errors that prevail in the early stages of the development process.
Misunderstanding of the client’s instructions
Misunderstanding of the client’s requirements changes presented to the developer
Deliberate deviations from
software requirements
In several circumstances, developers may deliberately deviate from the documented requirements.
• The developer reuses software modules taken from an earlier project without sufficient analysis of the changes and adaptations needed to correctly fulfill the new requirements.
• Due to time or budget pressures, the developers decides to omit part of the required functions in an attempt to cope with these pressure.
Logical design errors
Software errors can enter the system when the professional who design the system- system architects, software engineers, analysts etc. formulate the requirements.
Definitions that represent software requirements by mean of erroneous algorithms.
Process definitions that contain sequential errors
Erroneous definition of boundary conditions
Omission of required software system states.
Coding errors
A broad range of reasons cause programmers to make coding errors. These include,
• misunderstanding the design documentation,
• linguistic errors in the programming languages,
• Errors in the applications of CASE and other development tools
• Errors in data selection
Non-compliance with documentation
and coding instructions
Almost every development unit has its own documentation and coding standards that define the content, order and format of the documents, and the code created by team members.
Shortcomings of the testing process
Shortcomings of the testing process affect the error rate by leaving a grater number of errors undetected or uncorrected.
• Incomplete test plans leave untreated portions of the software or the application functions and states of the systems
• Failures to document and report detected errors and faults
• Failures to promptly correct detected software faults as a result of inappropriate indications of the reasons for the fault.
Procedure errors
Procedures direct the user with respect to the activities required at each step of the process.
They are of special importance in complex software systems where the processing is conducted in several steps, each of which may feed a variety of types of data and allow for examination of the intermediate results.
No comments:
Post a Comment