Week 2 Quality Assurance Quality Assurance in Context

Slides:



Advertisements
Similar presentations
Software Process Models
Advertisements

Chapter 4 Quality Assurance in Context
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Overview Lesson 10,11 - Software Quality Assurance
Object-oriented Analysis and Design
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
SOFTWARE PROJECT MANAGEMENT Project Quality Management Dr. Ahmet TÜMAY, PMP.
Software Quality Assurance For Software Engineering && Architecture and Design.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Verification and Validation
Chapter 13: Defect Prevention & Process Improvement
Chapter 20: Defect Classification and Analysis  General Types of Defect Analyses.  ODC: Orthogonal Defect Classification.  Analysis of ODC Data.
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
Extreme Programming Software Development Written by Sanjay Kumar.
Ch.4: QA in Context  QA and the overall development context Defect handling/resolution How alternative QA activities fit in process Alternative perspectives:
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
COURSE TITLE: 1 Software Quality Assurance. Course Aims Introduction to software quality assurance. Software testing terminology. Role and responsibility.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
CLEANROOM SOFTWARE ENGINEERING.
Testing – A Methodology of Science and Art. Agenda To show, A global Test Process which work Like a solution Black Box for an Software Implementation.
Software Quality Assurance Activities
Chapter 14: Inspection  Basic Concept and Generic Process  Fagan Inspection  Other Inspection and Related Activities.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Chapter 6: Testing Overview Basic idea of testing - execute software and observe its behavior or outcome. If failure is observed, analyze execution record.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
IT Requirements Management Balancing Needs and Expectations.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 Introduction to Software Engineering Lecture 1.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Quality Assurance.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Verification and Validation Assuring that a software system meets a user's needs.
Defect resolution  Defect logging  Defect tracking  Consistent defect interpretation and tracking  Timely defect reporting.
Ensure that the right functions are performed Ensure that the these functions are performed right and are reliable.
Software Testing and Quality Assurance Software Quality Assurance 1.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Software Engineering Lecture 8: Quality Assurance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Announcements/Assignments
Software Engineering (CSI 321)
Software Quality Engineering
School of Business Administration
Chapter 10 Software Quality Assurance& Test Plan Software Testing
Software Quality Engineering
The Systems Engineering Context
IEEE Std 1074: Standard for Software Lifecycle
CSE 403 Software Engineering
Verification & Validation
Software Quality Engineering
Chapter 14: Inspection Basic Concept and Generic Process
Software Quality Assurance
Software Quality Assurance
Engineering Processes
Presentation transcript:

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)

More definitions (Owens and Khazanchi)

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. Tian defines QA in 3 contexts.. i.e the process to deal with defects, prevent, eliminate, reduce or contain various specific problems associated with different aspects of defects.

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 Defect prevention and reduction activities directly deal with the competing processes of defect injection and removal. After release the failure observed and problems reported by customers and users also need to be fixed, which in turn could lead to reduced defect and improved product quality. However, one shouldn’t rely on these post release activities and give up pre release activities. Coz error correction after release can be many time more expensive. Can also leads to damage to the reputation of SW development organisation. Pre release activities may be complimented with ‘Controlled field testing’ commonly referred to as ‘beta testing’, and similar techniques. Defect containment activities aim at minimizing the –ve impact of these remaining faults during operational use after product release. Defect containment activities involve a lot of duplication and redundancy and requires more effort to design and implement related features. Therefore, they are limited to situation where in field failures are associated with substantial damage. .

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

QA Classification

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. Education and training to remove human misconceptions. For error source elimination one can focus on

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

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 .

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

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 RECOVERY blocks: like databases. N-version programming: Many parallel programs implementing same functionality but using different logic, algorithm..

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 Hazard elimination through substitution, simplification, decoupling etc. Hazard reduction through design for controllability.. For example pressure release valve.. Hazard control through reducing exposure, isolation and containment Damage control: through escape routes, safe abandonment of product and materials, and devices for limiting physical damage to equipments

QA in Context QA and the overall development context defect handling/resolution activities in process alternative perspectives verification/validation (V&V) view Now defects are found through various activities outlined earlier. Now the question is what we need do to handle these defect. Handling defect is called defect resolution

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

Defect Measurement and Analysis 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

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

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

QA in Waterfall Process

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.

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 test-driven development, pair programming, pair inspection, involvement of customer.

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.

V&V in Software Process

V&V vs DC View Two views of QA: Mapping between V&V and DC view: 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

DC-V&V Mapping

Time for a break

Software Quality Engineering SQE: Software Quality Engineering Key SQE Activities SQE in Software Process Since there are diferent expectations by customer and developer, we need to move beyond just focusing on QA activities to SQE by managing these quality expectation as engineering problem. Goal is to meet or exceed these quality expectations through the selection and execution of selected appropriate QA activities while minimizing the cost and risk under the project constraints.

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)

SQE Process

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.

Pre-QA Planning Pre-QA planning: Setting quality goals: 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

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

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.

Analysis and Feedback Measurement: handling process 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

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

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)

SQE Effort in Waterfall Process

Enough for this week Reading Tian And lets discuss your past papers.. Chapter 3, 4 and 5. And lets discuss your past papers..