• No results found

The Nine Causes of Software Errors

N/A
N/A
Protected

Academic year: 2022

Share "The Nine Causes of Software Errors"

Copied!
38
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Quality Assurance

(2)

ISO definition (from ISO 9000-3) lists four components necessary to assure the quality of the software development process :

✓ computer programs (code)

✓ procedures

✓ documentation

✓ data necessary for operating the software system.

(3)

Basic Definitions

Software Error – made by programmer

✓ Syntax (grammatical) error

✓ Logic error (in place of multiply, addition

operator is applied in between two operands) Software Fault –

✓ All software errors may not cause software faults

✓ That part of the software may not be executed (An error is present but not encountered….)

(4)

3. Software Failures

✓ A software fault becomes a software failure when/if it is activated.

✓ Faults may be found in the software due to the

way the software is executed or other constraints on the software’s execution, such as execution options.

• Some runs result in failures; some not.

(5)

Software development process

software fault software failure software error

(6)

The Nine Causes of Software Errors

1. Faulty requirements definition

Usually considered the root cause of software errors

Incorrect requirement definitions

Simply stated, ‘wrong’ definitions (formulas, etc.)

Incomplete definitions

Unclear or implied requirements

Missing requirements

Just flat-out ‘missing.’ (e.g. Program Element Code)

Inclusion of unneeded requirements

(many projects fail due to including too many requirements that will never be used.

(7)

2. Client-developer communication failures

✓ Misunderstanding of instructions in requirements documentation.

✓ Misunderstanding of written changes during development.

✓ Misunderstanding of oral changes during development.

The Nine Causes of Software Errors

(8)

✓ Lack of attention

•to client messages by developers dealing with requirement changes and

•to client responses by clients to developer questions

✓ Very often, these very talented individuals come from different planets, it seems.

• Clients represent the users; developers represent a different mindset entirely some times!

(9)

3. Deliberate deviations from software requirements

Developer reuses previous / similar work to save time.

Often reused code needs modification, as a result it

may contains unneeded / unusable/ unnecessary code.

Developer may add unapproved enhancements.

developer(s) may blatantly omit functionality due to time / budget pressures.

The Nine Causes of Software Errors

(10)

4. Logical design errors

Definitions that represent software requirements by means of incorrect algorithms.

•Wrong formulas; Wrong Decision Logic Tables;

incorrect text; wrong operators / operands…

Process definitions: procedures specified by systems

analyst not accurate reflection of the business process specified.

The Nine Causes of Software Errors

(11)

5.Coding errors

✓ Too many to try to list.

•Syntax errors (grammatical errors)

•Logic errors (program runs; results wrong)

•Run-time errors (crash during execution)

The Nine Causes of Software Errors

(12)

6. Non-compliance with documentation & coding instructions

•Non-compliance with published templates (structure)

•Non-compliance with coding standards (attribute names…)

•Size of program;

•Other programs must be able to run in environment.

The Nine Causes of Software Errors

(13)

7. Shortcomings of the Testing Process

Likely the part of the development process cut short most frequently.

Incomplete test plans

•Parts of application not tested or tested thoroughly

Failure to document, report detected errors and faults

•So many levels of testing.

Failure to quickly correct detected faults due to unclear indications that there ‘was’ a fault.

Failure to fix the errors due to time constraints.

(14)

8. User interface and procedure errors 9. Documentation errors

• Errors in the design documents

• Trouble for subsequent redesign and reuse

• Errors in the documentation within the software for the User Manuals

• Errors in on-line help, if available.

• Listing of non-existing software functions

• Planned early but dropped; remain in documentation.

• Many error messages are totally meaningless.

(15)

The nine causes of software errors are:

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.User interface and procedure errors 9.Documentation errors

(16)

Software quality is:

(1)The degree to which a system, component, or process meets specified requirements.

by Philip Crosby

(2)The degree to which a system, component, or process meets customer or user needs or expectations.

by Joseph M. Juran

(17)

Pressman believes that Software quality is :

Conformance to explicitly stated functional and performance requirements, (meets the specs)

Explicitly documented development standards, and

seems to imply a documented development process

Implicit characteristics that are expected of all professionally developed software.

further seems to imply quality as found in reliability, maintainability, scalability, usability, and more

Roger Pressman’s Definition of Software Quality

(18)

18

Modern view of quality

These are quality factors with a software product :

1. Correctness

2. Reliability

3. Efficiency (includes efficiency of resource utilization)

4. Portability

5. Usability

6. Reusability

7. Maintainability

(19)

2. Reliability: Does the software deliver all features and capability without failure? Is it available when it is needed? Does it deliver functionality that is error free?

1. Correctness: A software product is correct,

if different requirements as specified in the SRS document have been correctly implemented.

Accuracy of results.

(20)

20

4. Portability

A software product is said to be portable,

if it can be easily made to work in different operating systems, in different machines, with other software products, etc.

3. Efficiency

It deals with the hardware resources needed to perform the different functions of the software system. It includes processing capabilities (given in MHz), its storage capacity (given in MB or GB) and the data communication capability (given in MBPS or GBPS).

(21)

21

5. Reusability

A software product has good reusability,

if different modules of the product can easily be reused to develop new products.

6. Usability

A software product has good usability,

if different categories of users (i.e. both expert and novice users) can easily invoke the functions of the product.

(22)

22

7. Maintainability

A software product is maintainable,

if errors can be easily corrected as and when they show up,

new functions can be easily added to the product,

functionalities of the product can be easily modified, etc.

(23)

Software quality assurance is:

A systematic, planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.

Says to plan and implement systematically!

Refers to a software development process

Refers to the specification of technical requirements

(24)

SQA incorporates all software development processes starting from defining requirements to coding until release. Its prime goal is to ensure quality.

SQA Team: testing not only execution software but coding standards; manuals, messages displayed; resources needed;

resources named (file names, program

names,…)

(25)

Quality Dimensions

David Garvin [Gar87]:

1. Performance Quality. Does the software deliver all content, functions, and features that are specified as part of the requirements model in a way that

provides value to the end-user?

2. Feature quality. Does the software provide features that surprise and delight first-time end- users?

25

(26)

26

3. Reliability. Does the software deliver all features and capability without failure? Is it available when it is needed? Does it deliver functionality that is error free?

4. Conformance. Does the software conform to local and external software standards that are relevant to the application? Does it conform to de facto design and coding conventions? For example, does the user interface conform to accepted design rules for menu selection or data input?

(27)

Quality Dimensions

5. Durability. Can the software be maintained (changed) or corrected (debugged) without the inadvertent generation of unintended side effects? Will changes cause the error rate or reliability to degrade with time?

6. Serviceability. Can the software be maintained (changed) or corrected (debugged) in an acceptably short time period.

Can support staff acquire all information they need to make changes or correct defects?

27

(28)

Cost of Quality

Prevention costs include

quality planning

formal technical reviews

test equipment

Training

Internal failure costs include

rework

repair

failure mode analysis

28

(29)

29

•External failure costs are

•complaint resolution

•product return and replacement

•help line support

•warranty work

(30)

Achieving Software Quality

Critical success factors:

Software Engineering Methods

Project Management Techniques

Quality Control

Quality Assurance

30

(31)

31

Role of the SQA Group-I

Prepares an SQA plan for a project.

The plan identifies

evaluations to be performed

audits and reviews to be performed

standards that are applicable to the project

procedures for error reporting and tracking

documents to be produced by the SQA group

amount of feedback provided to the software project team

Participates in the development of the project’s software process description.

The SQA group reviews the process description for compliance with organizational policy, internal software standards, externally imposed standards (e.g., ISO-9001), and other parts of the software project plan.

(32)

Reviews software engineering activities to verify compliance with the defined software process.

identifies, documents, and tracks deviations from the process and verifies that corrections have been made.

Audits designated software work products to verify compliance with those defined as part of the software process.

reviews selected work products; identifies, documents, and tracks deviations; verifies that corrections have been made

periodically reports the results of its work to the project manager.

Ensures that deviations in software work and work products are documented and handled according to a documented procedure.

Records any noncompliance and reports to senior management.

Noncompliance items are tracked until they are resolved.

Role of the SQA Group-I

(33)

33

SQA Goals

Requirements quality. The correctness,

completeness, and consistency of the requirements model will have a strong influence on the quality of all work products that follow.

Design quality. Every element of the design model

should be assessed by the software team to ensure that it exhibits high quality and that the design itself conforms to requirements.

(34)

Code quality. Source code and related work products

(e.g., other descriptive information) must conform to local coding standards and exhibit characteristics that will facilitate maintainability.

Quality control effectiveness. A software team

should apply limited resources in a way that has the highest likelihood of achieving a high quality result.

SQA Goals

(35)

Software Quality Assurance vs. Software Quality Control

different objectives.

Quality Control is designed to evaluate the quality

of a set of activities developed or manufactured product

We have QC inspections during development and before deployment

QC activities are only a part of the total range of QA activities.

(36)

Quality Assurance’s objective is to minimize the cost of guaranteeing quality by a variety of activities performed throughout the development / manufacturing processes / stages.

✓ Activities prevent causes of errors; detect and correct them early in the development process.

✓ QA substantially reduces the rate of products that

do not qualify for shipment and/at the same time, reduce the costs of guaranteeing quality in most cases.

(37)

(1) Assuring an acceptable level of confidence that the software will conform to functional technical requirements.

(2) Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.

(3) Initiation and management of activities for the improvement and greater efficiency of software development and SQA activities.

(38)

(1) Assuring an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements.

(2) Assuring an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements.

(3) Initiate and manage activities to improve and increase the efficiency of software maintenance and SQA activities.

References

Related documents

These gains in crop production are unprecedented which is why 5 million small farmers in India in 2008 elected to plant 7.6 million hectares of Bt cotton which

INDEPENDENT MONITORING BOARD | RECOMMENDED ACTION.. Rationale: Repeatedly, in field surveys, from front-line polio workers, and in meeting after meeting, it has become clear that

The three verification methods we consider are design walkthrough, critical design review, and consistency checkers.... ✓ A design walkthrough is a manual method

A software engineer, or programmer, writes software or changes existing software and compiles software using methods that improve it..3. Definition of

 Task patterns—defines a problem associated with a software engineering action or work task and relevant to successful software.

To break the impasse, the World Bank’s Energy Sector Management Assistance Program (ESMAP), in collaboration with Loughborough University and in consultation with multiple

 Evolutionary model is a combination of Iterative and Incremental model of software development life cycle..  Software evolves over a period

Chapter 6 Dynamic Slicing of Distributed Aspect-Oriented Programs have computed slices using CGCA [82] and our proposed PCDS algorithm.. Then, average slice size and average