Chapter 2 Please note that author slides have been significantly modified.

Slides:



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

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.
CHAPTER 1 Introduction to SQA.
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
OHT 22.1 Galin, SQA from theory to implementation © Pearson Education Limited Objectives of cost of software quality metrics 2.The classic model.
OHT 14.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software quality infrastructure components The need for procedures and.
Components of software quality assurance system overview
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
OHT 13.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 What is a CASE tool? The contribution of CASE tools to software product.
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 9.3 Software Testing Strategies.
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?
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
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 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
OHT 22.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
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.
Introduction to Software Quality Assurance (SQA)
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.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
Software Quality Assurance Activities
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.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
OHT 7.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 7.1.
S Q A.
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,
This chapter is extracted from Sommerville’s slides. Text book chapter
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 3 Software Quality Factors.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Introduction to Quality Imran Hussain. Project Development Costs Around 63% of software projects exceed their cost estimates. The top four reasons for.
Tutorial 1: Date: 19/09/2012 Instructor: Hanif Ullah
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,
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
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(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
Chapter 2 What is software quality?. Outline What is software? Software errors, faults and failures differences Classification of the causes of software.
 System Requirement Specification and System Planning.
What is software quality
Software Configuration Management
Software Quality Control and Quality Assurance: Introduction
Software Verification and Validation
SEVERITY & PRIORITY RELATIONSHIP
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Definitions.
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
What is software quality?
Baisc Of Software Testing
Welcome to Corporate Training -1
What is software quality?
Chapter # 1 Overview of Software Quality Assurance
Presentation transcript:

Chapter 2 Please note that author slides have been significantly modified

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

OHT 2.3 Galin, SQA from theory to implementation © Pearson Education Limited 2004 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.  A ‘similar definition comes from ISO: 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.

OHT 2.4 Galin, SQA from theory to implementation © Pearson Education Limited 2004  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….)  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.

OHT 2.5 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software development process software fault software failure software error

OHT 2.6 Galin, SQA from theory to implementation © Pearson Education Limited 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, …

OHT 2.7 Galin, SQA from theory to implementation © Pearson Education Limited 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 mindset entirely some times!

OHT 2.8 Galin, SQA from theory to implementation © Pearson Education Limited 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. Another BAD choice; System testing will uncover these problems to everyone’s dismay! I have never seen this done intentionally! 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.

OHT 2.9 Galin, SQA from theory to implementation © Pearson Education Limited 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.

OHT 2.10 Galin, SQA from theory to implementation © Pearson Education Limited 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.

OHT 2.11 Galin, SQA from theory to implementation © Pearson Education Limited Coding errors Too many to try to list. Syntax errors (grammatical errors) Logic errors (program runs; results wrong) Run-time errors (crash during execution)

OHT 2.12 Galin, SQA from theory to implementation © Pearson Education Limited Non-compliance w/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,…)

OHT 2.13 Galin, SQA from theory to implementation © Pearson Education Limited 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.

OHT 2.14 Galin, SQA from theory to implementation © Pearson Education Limited 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

OHT 2.15 Galin, SQA from theory to implementation © Pearson Education Limited 2004 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 You should be conversant with these

OHT 2.16 Galin, SQA from theory to implementation © Pearson Education Limited 2004 So let’s move on to ‘exactly’ what we mean by ‘Software Quality.’ As you will see, there is no commonly- agreed to definition.

OHT 2.17 Galin, SQA from theory to implementation © Pearson Education Limited 2004 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 Now, more closely…

OHT 2.18 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software quality is: (1)The degree to which a system, component, or process meets specified requirements. Seems to emphasize the specification, assuming the customer has articulated all that is needed in the specs AND that if the specs are met, the customer will be satisfied. I have found that this is not necessarily the case, that, if fact, often ‘austere’ systems are first deployed (errors discovered in specs sometimes very serious); customers acquiesce to the deployment with understanding of a follow-on deployment.

OHT 2.19 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software quality is: (Joseph Juran) (2)The degree to which a system, component, or process meets customer or user needs or expectations. Here, emphasis is on a satisfied customer whatever it takes. Implies specs may need corrections But this seems to free the customer from ‘professional responsibility’ for the accuracy and completeness of the specs! Assumption is that real needs can be articulated during development. This may occur, but in fact major problems can be discovered quite late. Not a happy customer!

OHT 2.20 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Pressman believes that Software quality is : Conformance to explicitly stated functional and performance requirements, (meets the specs) Discuss: ‘functional’ and ‘performance’ 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

OHT 2.21 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality Assurance is: 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: 2.5 Software Quality Assurance – Various Definitions

OHT 2.22 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Says to 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. 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.

OHT 2.23 Galin, SQA from theory to implementation © Pearson Education Limited 2004 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.

OHT 2.24 Galin, SQA from theory to implementation © Pearson Education Limited 2004 This SQA definition supports the concept of the ISE 9000 standards regarding SQA, and corresponds to main outlines of the Capability Maturity Model (CMM) for software. Our book adapts the Expanded Definition of SQA. See Table 2.2. We will be looking at these a lot later…

OHT 2.25 Galin, SQA from theory to implementation © Pearson Education Limited 2004  Table 2 compares the elements of the expanded SQA definition with the relevant sections of both the ISO and the software CMM.  We will discuss these in depth coming up.

OHT 2.26 Galin, SQA from theory to implementation © Pearson Education Limited 2004  Quality Control is defined as a 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.  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.

OHT 2.27 Galin, SQA from theory to implementation © Pearson Education Limited 2004 (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.

OHT 2.28 Galin, SQA from theory to implementation © Pearson Education Limited 2004 (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.

OHT 2.29 Galin, SQA from theory to implementation © Pearson Education Limited 2004 You are to answer the following questions in essay format and send to me via Blackboard Assignment Chapter 2: Question 2.2 Question 2.6

OHT 2.30 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Team 2 will fully discuss the following questions in our next class: Questions: On page 34.