38
Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Embed Size (px)

Citation preview

Page 1: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Week 2

Quality Assurance

Quality Assurance in Context

Software Qualit Engineering

Page 2: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

What is SQA• SQA is a well defined, repeatable process

that is integrated with project management and the software development lifecycles to review internal control mechanisms and assure adherence to software standards and procedures. The objective of the process is to assure conformance to requirements, reduce risk, assess internal controls and improve quality while conforming to the stated schedule and budget constraints. (Owens and Khazanchi)

Page 3: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

More definitions (Owens and Khazanchi)

Page 4: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

What is QA?• QA as Dealing with Defect

– Defect Prevention• Error blocking• Error source removal

– Defect Detection and Removal• Inspection• Testing etc.

– Defect Containment• Failure prevention • Failure containment.

Page 5: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA: quality assurance

• Focus on correctness aspect of Q

• QA as dealing with defects– post-release: impact on consumers– pre-release: what producer can do

• what: testing & many others

• when: earlier ones desirable (lower cost)

• how =>classification as follows

Page 6: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Error/Fault/Failure & QA

• Removal of faults (pre: detection)– inspection: faults discovered/removed– testing: failures trace back to faults

• Failure prevention and containment:– local failure !=> global failure

• via dynamic measures to tolerate faults

– failure impact =>safety assurance

Page 7: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA Classification

Page 8: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Defect Prevention Overview• Error blocking

– error: missing/incorrect actions– direct intervention to block errors

• fault injections prevented

– rely on technology/tools/etc.

• Error source removal– root cause analysis

• identify error sources

– removal through education/training/etc.• Focus on Product and domain specific knowledge, SW dev

knowledge and expertise, developmental methodologies, development process knowledge

• Systematic defect prevention via process improvement.

Page 9: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Formal Methods• Motivation

– fault present:• revealed through testing/inspection/etc.

– fault absent: formally verify.

• (formal methods =>fault absent)• 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.

Page 10: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Defect Reduction:Inspection Overview

• Artifacts (code/design/test-cases/etc.) from (req./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 .

Page 11: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Testing Overview• Product/Process characteristics:

– scale/order:

• unit, component, system, : : :– who: self, independent, 3rd party

• What to check:– external specifications (black-box)– internal implementation (white/clear-box)

• Criteria: when to stop?– coverage of specs/structures.– Reliability: usage-based testing

Page 12: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Defect Containment: Fault Tolerance Overview

• Idea originated from hardware systems.

• Focus is on reliability, availability and dependability.

• Motivation– fault present but removal infeasible/impractical– (fault tolerance ) contain defects.

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

• fault blocked/out-voted

Page 13: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Safety Assurance Overview

• Extending FT idea for safety:• fault tolerance to failure “tolerance"

• Safety related concepts:– safety: accident free– accident: failure with severe consequences– hazard: precondition to accident

• Safety assurance:– hazard analysis– hazard elimination/reduction/control– damage control

Page 14: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA in Context• QA and the overall development context

– defect handling/resolution

– activities in process

– alternative perspectives

• verification/validation (V&V) view

Page 15: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Defect handling/resolution

• status and tracking– Logging– Monitoring

• causal (root-cause) analysis

• resolution: defect removal/etc.– Many stakeholders: testers, developer, managers,

client (except unit testing)– Part of project management activity

• improvement: break causal chain

Page 16: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Defect Measurement and Analysis• Defect measurement:

– parallel to defect handling– where injected/found?– type/severity/impact?– more detailed classification possible?– consistent interpretation– timely defect reporting

• Defect analyses– as follow up to defect handling.– data and historical baselines– goal: assessment/prediction/improvement– causal/risk/reliability/etc. analyses

Page 17: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Defect Handling in Different QA Activities.

• Among 3 classes of QA activities:– defect detection and removal activities are more

closely associated with defect handling.– Various defect prevention activities do not directly

deal with defect or discovered faults.– On defect containment the focus is not on fault

finding or removal.

• So defect handling is not closely associated with prevention and containment activities

Page 18: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA in Software Processes• Development process components:

– requirement, specification, design, coding, testing, release.

• Process variations:– waterfall development process– iterative development process– spiral development process– lightweight/agile development processes such

as XP (extreme programming)– maintenance process too– mixed/synthesized/customized processes

• QA important in all processes

Page 19: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA in Waterfall Process

Page 20: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA in Waterfall Process: QA throughout process

• defect prevention in early phases

• focused defect removal in testing phase

• defect containment in late phases

• phase transitions: inspection/review/etc.

Page 21: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA in Software Processes• Process variations (: waterfall) and QA:

– iterative: QA in iterations/increments– spiral: QA and risk management– How we can do it in agile processes?? – mixed/synthesized: case specific– more evenly distributed QA activities

• QA in maintenance processes:– focus on defect handling;– some defect containment activities for critical or highly-

dependable systems;– data for future QA activities

• QA scattered throughout all processes

Page 22: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

V&V• Core QA activities grouped into V&V.• Validation: w.r.t. requirement (what?)

– appropriate-for-use “ doing right thing"?– scenario and usage inspection/testing;– system/acceptance testing;– beta testing and operational support.

• Verification: w.r.t. specification/design (how?)– Correct “doing things right"– design as specification for components;– structural and functional testing;– inspections and formal verification.

Page 23: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

V&V in Software Process

Page 24: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

V&V vs DC View

• Two views of QA:– V&V view– DC (defect-centered) view – Interconnected: mapping possible?

• Mapping between V&V and DC view:– V&V after commitment

(defect injected already)• defect removal & containment focus

– Verification: more internal focus– Validation: more external focus– In V-model: closer to user (near top) or

Page 25: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

DC-V&V Mapping

Page 26: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Time for a break

Page 27: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Software Quality Engineering

• SQE: Software Quality Engineering

• Key SQE Activities

• SQE in Software Process

Page 28: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

QA to SQE• QA activities need additional support:

– Planning and goal setting– Management:

• when to stop?• adjustment and improvement, etc.• all based on assessments/predictions

• Assessment of quality/reliability/etc.:– Data collection needed– Analysis and modeling– Providing feedback for management

• QA + above => software quality engineering (SQE)

Page 29: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

SQE Process

Page 30: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

SQE and QIP• QIP (quality improvement paradigm):

– Step 1: understand baseline– Step 2: change then assess impact– Step 3: package for improvement

• SQE as expanding QA to include QIP ideas.

Page 31: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Pre-QA Planning• Pre-QA planning:

– Quality goal– Overall QA strategy:

• QA activities to perform?• measurement/feedback planning

• Setting quality goals:– Identify quality views/attributes– Select direct quality measurements– Assess quality expectations vs. cost

Page 32: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Setting Quality Goals

• Identify quality views/attributes– customer/user expectations,– market condition,– product type, etc.

• Select direct quality measurements– direct: reliability– defect-based measurement– other measurements

• Assess quality expectations vs. cost– cost-of-quality/defect studies

Page 33: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Forming QA Strategy

• QA activity planning– evaluate individual QA alternatives

• strength/weakness/cost/applicability/etc.

– match against goals– integration/cost considerations

• Measurement/feedback planning:– define measurements (defect & others)– planning to collect data– preliminary choices of models/analyses– feedback & followup mechanisms, etc.

Page 34: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Analysis and Feedback• Measurement:

– defect measurement as part of defect

• handling process– other data and historical baselines

• Analyses: quality/other models– input: above data– output/goal: feedback and follow up– focus on defect/risk/reliability analyses

• Feedback and followup:– frequent feedback: assessments/predictions– possible improvement areas– project management and improvement

Page 35: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

SQE in Software Processes• SQE activities development activities:

– quality planning product planning– QA activities development activities– analysis/feedback project management

• Fitting SQE in software processes:– different start/end time– different sets of activities, sub-activities,

• and focuses– in waterfall process: more staged

• (planning, execution, analysis/feedback)– in other processes:

• more iterative or other variations

Page 36: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

SQE Effort Profile• QE activity/effort distribution/dynamics:

– different focus in different phases– different levels (qualitatively)– different build-up/wind-down patterns– impact of product release deadline (deadline-

driven activities)

• planning: front heavy• QA: activity mix (early vs. late; peak

variability? deadline?)• analysis/feedback: tail heavy (often

deadline-driven or decision-driven)

Page 37: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

SQE Effort in Waterfall Process

Page 38: Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering

Enough for this week

• Reading Tian – Chapter 3, 4 and 5.

• And lets discuss your past papers..