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

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

Transcript of Week 2 Quality Assurance Quality Assurance in Context Software Qualit Engineering.

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..