software quality engineering chapters 1-3 overview, software quality and quality assurance

23
Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Upload: donna-mccarthy

Post on 29-Dec-2015

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Software Quality Engineering

Chapters 1-3

Overview, Software Quality and Quality Assurance

Page 2: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.1: Overview and Basics

General Book Information Quality: View/Measure/Model QA Activities/Alternatives From QA to SQE

Page 3: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.1: Main Problems Addressed

Deliver software system that... does what it is supposed to do. does the things correctly. respectively validate and verify software system to

show/demonstrate/prove it (“does").

Major difficulties for the above: Size: MLOC products common Complexity Environmental stress/constraints Flexibility/adaptability expected no silver bullet", but...SQE (software quality engineering)

helps

Page 4: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.1: SQE as Answer

Major SQE activities: Testing: remove defect & ensure quality Other QA alternatives to testing How do you know: analysis & modeling

Scope and content hierarchy: Fig.1.1

Page 5: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.1: Book Contents

QA alternatives/activities: Testing (Part II) Other alternatives (Part III):

defect prevention (Ch.13) inspection, review, analysis (Ch.14) formal verification (Ch.15) defect containment (Ch.16)

Analysis and improvement (Part IV) Issues in different QA alternative

Applicability and effectiveness Dealing with quality problems/defects:

prevention/removal/tolerance Cost Improvement (Part IV).

Page 6: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.2: General Quality Views

In Kitchenham & Pfleeger (1996): Transcendental view: hard to define, but recognized User view: fitness for purpose or meet user’s needs Manufacturing view: conform to process standards Product view: inherent product characteristics. Value-based view: customers’ willingness to pay.

In Prahalad & Krishnan (1999): Quality defined by Conformance/adaptability/innovation Traditional: conformance only Evolved to include service, manage expectations:

0 defects -> 0 defections in customers Domain specific (for info age?):

specificity, stability, evolvability

Page 7: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

-ilities User quality expectations

Performs right functions (correctness) reliability usability Install-ability inter-operability adaptability cost

Producer quality expectations fulfill contractual obligations Modifiability (flexibility) maintainability portability profitability

Page 8: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.2: Quality Frameworks

Focus in various frameworks/mega-models different McCall: factors, criteria, and metrics Basili: GQM (goal-question-metric) SEI/CMM: process / levels of maturity ISO 9000: series of standards Dromey: component reflects quality-attributes

ISO 9126 top-level quality characteristics (pg. 18): Functionality: what is needed? Reliability: function correctly. Usability: effort to use. Efficiency: resources needed. Maintainability: correct/improve/adapt. Portability: one environment to another.

Alternative frameworks: company-specific, web-based, etc.

Page 9: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.2: Defining Quality

Quality: views and attributes

SQE focus: correctness-related

Page 10: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.2: Defect and Quality

Defect definition – a problem with the software, either with its external behavior or internal characteristics Failure: external behavior

deviation from expected behavior as specified Fault: internal characteristics

cause for failures Error: incorrect/missing human action

conceptual mistakes Bug/debug: avoid problematic terms, use instead defect

detection and removal Causal relations (not necessarily 1-1):

errors => faults => failures: See Fig 2.1 (p.21) Defect handling/resolution: Chapter 4.

Page 11: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: QA: Dealing with Defects

QA: quality assurance Focus on correctness aspect of quality QA as dealing with defects. Many activities: testing & others How QA alternatives deal with defects =>

classification of QA alternatives Classification schemes to deal with defects:

Prevention – error blocking or error source removal Removal (detect them first) Containment

Classification illustrated: Fig 3.1 (p.30)

Page 12: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: Error/Fault/Failure & QA

Preventing fault injection Causal/statistical/etc. analyses based Preventive measures:

education, technology, process, tools

Formal methods: formal verification (faults absent)

Removal of faults Inspection: faults discovered Testing: failures trace back to faults

Tolerance of faults Local fault does not imply global failure Dynamic containment measures to tolerate faults

Page 13: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: Defect Prevention Overview

Error blocking Error: missing/incorrect actions Direct intervention Error blocked => fault injections prevented Rely on technology/tools/etc.

Error source removal Root cause analysis =>identify error sources Removal through education/training/etc.

Details: Chapter 13.

Page 14: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: Defect Prevention: Formal Verification Overview Motivation

Fault present: revealed through testing/inspection/etc.

Fault absent: formally verify. Basic ideas

Behavior formally specified: pre/post conditions, or as mathematical functions.

Verify “correctness": intermediate states/steps, axioms and compositional rules.

Approaches: axiomatic/functional/etc.

Details: Chapter 15.

Page 15: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch3: Other Defect Prevention Techniques Appropriate use of software methodologies

and technologies Use of information hiding principle and

abstraction and modularization Better managed processes Enforcement of standards Use of tools

Page 16: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: Defect Reduction: Inspection Overview Artifacts (code/design/test-cases/etc.) from

requirements/design/coding/testing/etc. phases. Informal reviews:

Self conducted reviews. Independent reviews. Orthogonality of views desirable.

Formal inspections: Fagan inspection and variations. Process and structure. Individual vs. group inspections. What/how to check: techniques .

Details: Chapter 14.

Page 17: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: Defect Reduction: Testing Overview

Product/Process characteristics: Object: product type, language, etc. Scale/order: unit, component, system, … Who: self, independent, 3rd party

What to check: Verification vs validation External specifications (black-box) Internal implementation (white/clear-box)

Criteria: when to stop? Coverage of specs/structures. Reliability => usage-based testing techniques

Much, much more in Part II.

Page 18: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Ch.3: Defect Containment: Fault Tolerance Overview Motivation

Fault present but removal infeasible/impractical Fault tolerance => contain defects

FT techniques: break fault-failure link Recovery: rollback and redo NVP: N-version programming

fault blocked/out-voted

Details: Chapter 16.

Page 19: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Need to know these for future questions and Master’s exam What are 11 major software quality factors?

What are seven software quality assurance activities?

What is the difference between verification and validation?

Page 20: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

11 Major Quality Factors Correctness – meets specs and objectives Reliability – perform intended function

with required precision (includes robustness)

Efficiency - amount of code and resources Integrity – controlled access Usability – effort required to learn/operate

Page 21: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Quality Factors cont. Maintainability – ease locate/fix error Flexibility (modifiability) – ease to modify

operational program Testability – ease to test Portability – works in other environments Interoperability – works with other systems Reusability – ease of reuse

Page 22: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

7 Activities Application of technical methods and tools (to

ensure QA) Formal technical reviews Software testing Enforcement of standards to process Control of change (configuration

management) Measurement (product and process) Record keeping and reporting (information for

reviews, etc.)

Page 23: Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance

Discussion Questions What is essential (but not sufficient) to earn the assessment

that the software is dependable? _____________ Other than that, what should we put greater emphasis on to attain high quality software?________________

Which of the 11 software quality factors concern product revision, which concern product operation and which concern product transition?

revision transition operation

Article – Fill in Figure 1.