Chapter 2 What is software quality?. Outline What is software? Software errors, faults and failures differences Classification of the causes of software.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
PERTEMUAN - 2 SOFTWARE QUALITY. OBJECTIVES After completing this chapter, you will be able to: ■ Define software, software quality and software quality.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 6/e (McGraw-Hill 2005). Slides copyright 2005 by Roger Pressman.1.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
CHAPTER 1 Introduction to SQA.
Overview Lesson 10,11 - Software Quality Assurance
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 What is software? Software errors, faults and failures Classification.
Quality assurance in software production Lari Karppinen
Software Quality Assurance
Galin, SQA from theory to implementation © Pearson Education Limited Chapter 13 CASE Tools and their Effect on Software Quality.
Software Quality Assurance What is software quality?
Software Quality Assurance For Software Engineering && Architecture and Design.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Chapter 2 Please note that author slides have been significantly modified.
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality - continued So let’s move on to ‘exactly’ what we mean.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Introduction to Systems Analysis and Design Trisha Cummings.
CHAPTER 5 Infrastructure Components PART I. 2 ESGD5125 SEM II 2009/2010 Dr. Samy Abu Naser 2 Learning Objectives: To discuss: The need for SQA procedures.
Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software.
Managing Software Quality
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
Software Quality Assurance Activities
Software Project Management Lecture # 8. Outline Earned Value Analysis (Chapter 24) Topics from Chapter 25.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
SE513 Software Quality Control Lecture01: Introduction to Software Quality Assurance Galin, SQA from Theory to Education Limited.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Quality Control Project Management Unit Credit Value : 4 Essential
S Q A.
 Black Box Testing Techniques © Sheridan College SYST30009-Engineering Quality Software 4.
1 Software quality - Definition IEEE 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system,
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Software Requirements Engineering: What, Why, Who, When, and How
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Tutorial 1: Date: 19/09/2012 Instructor: Hanif Ullah
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1 Software quality - Definition IEEE 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system,
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Software Quality Assurance and Testing Fazal Rehman Shamil.
Software Engineering Lecture 8: Quality Assurance.
1 Chapter 1 The Software Quality Challenge. 2 The uniqueness of software quality assurance  DO you think that there is a bug-free software?  Can software.
SEN 460 Software Quality Assurance. Bahria University Karachi Campus Waseem Akhtar Mufti B.E(C.S.E) UIT, M.S(S.E) AAU Denmark Assistant Professor Department.
SEN 460 Software Quality Assurance. Bahria University Karachi Campus Waseem Akhtar Mufti B.E(CSE) UIT, M.S(S.E) AAU Denmark Assistant Professor Department.
Lecture#1 Introduction….Cont Software Quality Engineering Subject : 19(A/B) – {Assignment /Query}
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
CASE Tools and their Effect on Software Quality
What is software quality
Software Configuration Management
Software Quality Control and Quality Assurance: Introduction
Regression Testing with its types
Software Quality Assurance
Software Verification and Validation
SEVERITY & PRIORITY RELATIONSHIP
IEEE Std 1074: Standard for Software Lifecycle
د. حنان الداقيز خريف /28/2016 Software Quality Assurance ضمان جودة البرمجيات ITSE421 5 – The components of the SQA.
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
What is software quality?
Chapter 13 Quality Management
What is software quality?
Chapter # 1 Overview of Software Quality Assurance
Presentation transcript:

Chapter 2 What is software quality?

Outline What is software? Software errors, faults and failures differences Classification of the causes of software errors Software quality – definition Software quality assurance – definition and objectives Software quality assurance and software engineering What is software quality?

Definition of software is really not simple. Simply code? According to the IEEE: Software is: Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. ISO definition (from ISO ) lists four components necessary to assure the quality of the software development process and years of maintenance: computer programs (code) procedures documentation data necessary for operating the software system. Software - IEEE definition

Simplex HR Software Users Views “We’ve used the Simplex HR software in our Human Resources Department for about three years and we have never had a software failure.” “I started to use Simplex HR two months ago; we had so many failures that we are considering replacing the software package.” “We have been using the same software package for almost four years. We were very satisfied throughout the period until the last few months, when we suddenly faced several severe failures. The Support Center of the software house from which we bought the package claims that they have never encountered failures of the type we experienced even though they serve about 700 customers who utilize Simplex HR.”

Basic Definitions Software Error – made by programmer Syntax (grammatical) error Logic error (multiply vice add 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….)

Basic Definitions (Cont.) Software Failures – Here’s the interest. 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. Example: standard software running in different client shops.

Software development process software fault software failure software error Software errors, software faults and software failures

“Pharm-Plus”, a software package developed for the operations required of a pharmacy chain, included several software faults, such as the following: The chain introduced a software requirement to avoid the current sale of goods to customers whose total debts will exceed $200 upon completion of the current sale. Unfortunately, the programmer erroneously put the limit at $500, a clear software fault. However, a software failure never occurred as the chain’s pharmacies do not offer credit to their customers, that is, sales are cash sales or credit card sales. Example: The “Pharm-Plus” software package

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 have gone amuck for including far too many requirements that will never be used. Impacts budgets, complexity, development time, … The Nine Causes of Software Errors

2.Client-developer communication failures Misunderstanding of instructions in requirements documentation Misunderstanding of written changes during development. Misunderstanding of oral changes during development. 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 mind-set entirely some times! The Nine Causes of Software Errors

3.Deliberate deviations from software requirements Developer reuses previous / similar work to save time. Often reused code needs modification which it may not get or contains unneeded / unusable extraneous (دخيلة) code. Book suggests developer(s) may overtly omit functionality due to time / budget pressures. Developer inserting unapproved ‘enhancements’ (perfective coding; a slick new sort / search….); may also ignore some seemingly minor features, which sometimes are quite major. Have seen this and it too causes problems and embarrassment during reviews. The Nine Causes of Software Errors

4. Logical design errors Definitions that represent software requirements by means of erroneous algorithms. Yep! 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. Note: all errors are not necessarily software errors. This seems like a procedural error, and likely not a part of the software system… Erroneous Definition of Boundary Condition – a common source of errors The “absolutes” like ‘no more than’ “fewer than,” “n times or more;” “the first time,” etc. The Nine Causes of Software Errors

Example The software requirements for a firm’s debt-collection system define the debt-collection process as follows: Once a client does not pay his debts, even after receiving three successive notification letters, the details are to be reported to the sales department manager who will decide whether to proceed to the next stage, referral of the client to the legal department. The systems analyst defined the process incorrectly by stating that after sending three successive letters followed by no receipt of payment, the firm would include the name of the client on a list of clients to be handled by the legal department.

4. Logical design errors (continued) Omission of required software system states If rank is >= O1 and RPI is numeric, then….easy to miss action based on the software system state. Omission of definitions concerning reactions to illegal operation of the software system. Including code to detect an illegal operation but failure to design the computer software reaction to this: Gracefully terminate, sound alarm, etc. The Nine Causes of Software Errors

Example A real-time computerized apparatus is required to react according to a combination of temperatures and pressures. The analyst did not define the needed reaction when the temperature is over 120°C and the pressure is between 6 and 8 atmospheres.

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

6. Non-compliance (عدم الامتثال) with documentation & coding instructions Non-compliance with published templates (structure) Non-compliance with coding standards (attribute names…) (Standards and Integration Branch) Size of program; Other programs must be able to run in environment! Data Elements and Codes: AFM 300-4; Required documentation manuals and operating instructions; AFDSDCM 300-8, etc… SQA Team: testing not only execution software but coding standards; manuals, messages displayed; resources needed; resources named (file names, program names,…) The Nine Causes of Software Errors

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….we will cover. Failure to quickly correct detected faults due to unclear indications that there ‘was’ a fault Failure to fix the errors due to time constraints Many philosophies here depending on severity of the error. The Nine Causes of Software Errors

8.User interface and procedure errors Procedures direct the user with respect to the activities required at each step of the process. 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 The Nine Causes of Software Errors

Example “Eiffel”, a chain of construction materials stores, has decided to grant a 5% discount to customers, who are billed once a month. The discount is offered to customers whose total purchases in the last 12 months exceed $1 million. Nevertheless, Eiffel’s management has decided to withdraw this discount from customers who returned goods valued in excess of 10% of their purchases during the last three months. The chain’s billing system is decentralized, so that every store processes the monthly invoices independently (See Table 2.1).

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 The Nine Causes of Software Errors

So let’s move on to ‘exactly’ what we mean by ‘Software Quality.’

Software quality is: (IEEE) 1.The degree to which a system, component, or process meets specified requirements. Software quality is: (Joseph Juran) 2.The degree to which a system, component, or process meets customer or user needs or expectations. Software Quality Definitions

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

1.A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. 2.A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with: quality control. More closely: Software Quality Assurance – Various Definitions

Plan and implement systematically! shows progress and instills confidence software is coming along Refers to a software development process a methodology; a way of doing things; Refers to the specification of technical requirements must have these. Characteristic of the Definition

Note that SQA must include not only process for development but for (hopefully) years of maintenance. So, we need to consider quality issues affecting not only development but also maintenance into overall SQA concept. SQA activities must also include scheduling and budgeting. SQA must address issues that arise when time constraints are encountered – are features eliminated? Budget constraints may force compromise when/if inadequate resources are allocated to development and/or maintenance. Characteristic of the Definition (Con.)

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. SQA - Expanded Definition

Comparison with ISO and SEI- CMM Systematic, planned actions are required Deals with the process of software development Deals with software maintenance Deals with functional technical requirements Deals with scheduling requirements Deals with budgetary controls

SQC is a set of activities for ensuring quality in software products. The activities focus on identifying defects in the actual products produced. SQA is a set of activities for ensuring quality in software engineering processes (that ultimately result in quality in software products). The activities establish and evaluate the processes that produce products. Software Quality Assurance vs. Software Quality Control

SQASQC What it is?Ensure quality in software development process Ensure quality in software products AimImprove development and test processIdentify failures / defects SystemFailure prevention systemFailure detection system ResponsibilityProject teamTesting team OrientationProcess OrientedProduct Oriented ScopeOrganization wideProduct/Project specific ToolManagerial toolCorrective tool LifetimeBefore software development processPost software development Activities Process Definition and Implementation Audits Training Reviews Testing

The objectives of SQA activities in Software Development (Process-Oriented) 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.

The objectives of SQA activities in Software Maintenance (Product-Oriented) 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.

Slide 34 of 15 Q & A