1-GLO543 Cours master 2 qualité logiciel.pptx

UrbainNgatoua 21 views 90 slides Jul 12, 2024
Slide 1
Slide 1 of 90
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90

About This Presentation

Cours du Génie logiciel Master 2. Université de Maroua


Slide Content

GLO543 Qualité du logiciel et métriques Année académique : 2023/2024

GLO543 Qualité du logiciel et métriques Année Académique : 2023/2024 Etablissement : FS Niveau : Master, deuxième Année Enseignants : Dr HAYATOU OUMAROU [email protected] Avec l’aide de Nicolas Anquetil

3 Informations générales Types de cours : Cours magistral Travaux dirigés Travail Personnel Encadré Organisation des évaluations : Contrôle continu TPE Examen Session de rattrapage Durée : 30h

© Hayatou Oumarou INL53 — Introduction INL53 1. 4 Bibliographie recommandée Software Engineering . Ian Sommerville . Addison-Wesley Pub Co; ISBN: 020139815X, 7th edition, 2004 Software Engineering: A Practioner's Approach . Roger S. Pressman. McGraw Hill Text; ISBN: 0072496681; 5th edition, 2001 Software Quality Engineering, 6 th Edition by Jeff Tian

© Hayatou Oumarou INL53 — Introduction INL53 1. 5 Littérature The CRC Card Book . David Bellin and Susan Suchman Simone. Addison-Wesley Pub Co; ISBN: 0201895358; 1st edition (June 4, 1997) The Mythical Man-Month: Essays on Software Engineering . Frederick P. Brooks. Addison-Wesley Pub Co; ISBN: 0201835959; 2nd edition (August 2, 1995) Succeeding with Objects: Decision Frameworks for Project Management . Adele Goldberg and Kenneth S. Rubin. Addison-Wesley Pub Co; ISBN: 0201628783; 1st edition (May 1995) A Discipline for Software Engineering . Watts S. Humphrey. Addison-Wesley Pub Co; ISBN: 0201546108; 1st edition (December 31, 1994)

How this course will be run The course is divided in following parts: Part - 1 : Overview and Basics. Part - 2 : Software Testing: models & techniques, management, automation, and integration, Part - 3 : Other Quality Assurance Techniques: defect prevention, process improvement, inspection, formal verification, fault tolerance, accident prevention, and safety assurance. Part – 4 : Quality measurements : measurements and models, and software metrics.

Partie I : Software Quality Engineering

Outlines What is a software What is Quality What is Engineering

Objectives To describe the basics of a Software Quality Engineering To understand and distinguish between Software Engineering and Software Quality Engineering.

The Software Engineering “ Software is instructions (computer programs) that when executed provide desired function and performance. Or Data structures that enable the programs to adequately manipulate information ” (Roger S. Pressman)

The Software Engineering Characteristics of a software: 1. Software is developed or engineered, it is not manufactured in the classical sense. Software doesn't "wear out.“ Hardware failure Software failure Although the industry is moving toward component-based assembly, most software continues to be custom built.

Difference b/w Engineering and Manufacturing Engineering refers to planning or designing whereas manufacturing refers to using of machines and raw materials to physically make the thing. Manufacturing does not refer to making of civil architectures. Its called construction. For example Company A makes the blueprint of a building. Its in engineering business. Company B makes cement and bricks to make the building. Its in manufacturing. Company C takes raw material from B and blue print from A and makes the building, Its in construction.

What is Quality In general, people’s quality expectations for software systems they use and rely upon are two-fold: 1. The software systems must do what they are supposed to do. In other words, they must do the right things. 2. They must perform these specific tasks correctly or satisfactorily. In other words, they must do the things right. Now you can define Software Quality Engineering.

Outlines Meeting People’s Quality Expectations General Expectations Quality Expectations Meeting Quality Expectations Software Quality Engineering (SQE) activities

Objectives To describe the basics of what is expected as quality To understand and distinguish between people expectations and software quality expectations.

Meeting People’s Quality Expectations As we previously discussed, if people’s expectations are met in any product, then the product is supposed to have quality in it. Must perform expected behavior.

General Expectations General expectation: “good” software quality • Objects of our study: software software products, systems, and services stand-alone to embedded software-intensive systems wide variety, but focus on software • Quality (and how “good”) formally

Quality Expectations People: Consumers vs producers . quality expectations by consumers to be satisfied by producers through software quality engineering (SQE) Deliver software system that... . does what it is supposed to do – needs to be “validated” . does the things correctly – needs to be “verified” . show/demonstrate/prove it (“does”) – modeling/analysis needed

Meeting Quality Expectations Difficulties in achieving good quality: size: MLOC products common Complexity environmental stress/constraints flexibility/adaptability expected Other difficulties/factors: product type cost and market conditions

Major SQE Activities Major SQE Activities: Testing: MLOC products common Other quality assurance alternatives to testing How do you know: analysis & modeling Scope and content hierarchy: Software Quality Engineering Quality Assurance Testing

Perspectives and Expectations

Quality Perspective

Quality Expectations

Quality Expectations ( conti ..)

ISO-9126 Quality Framework

Outlines ISO-9126 Quality Framework Other Quality Frameworks Correctness, Defects and Quality Quality, as a Historical Perspective How to prevent defect

Objectives To describe the standards for quality engineering To understand and distinguish between correctness defect and quality and detection, prevention and removal

ISO-9126 Quality Framework

Other Quality Frameworks

Correctness, Defect and Quality

Correctness, Defect and Quality

Defining Quality in SQE

Quality: Historical Perspective

Quality: Historical Perspective ( conti ..)

Quality Assurance Quality Assurance mainly deals in Dealing with Defect Defect Prevention Defect Detection and Removal QA 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) but may not be feasible how ⇒ classification below

Outlines QA Classification Overview Defect prevention Testing Fault Safety

Objectives To describe how to prevent and stop defects To briefly overview some concepts related to SQE

Quality Assurance Quality Assurance mainly deals in Dealing with Defect Defect Prevention Defect Detection and Removal QA 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) but may not be feasible how ⇒ classification below

How to deal with defects Quality Assurance mainly deals in Prevention Removal (but detect them first) Containment (control)

QA Classification Dealing with errors, faults, or failures Removing or blocking defect sources Preventing undesirable consequences

Error/Fault/Failure & QA Preventing fault injection error blocking (errors 6⇒ faults) error source removal Removal of faults (pre: detection) inspection: faults discovered/removed testing: failures trace back to faults Failure prevention and containment: local failure 6⇒ global failure – via dynamic measures to tolerate faults failure impact↓ ⇒ safety assurance

Overview of some topics related to SQE We will briefly overview the following Detect Prevention Overview Testing Overview Fault Tolerance Overview Safety Assurance Overview Formal Method Overview Inspection Overview

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. Systematic defect prevention via process improvement.

Formal Method Overview 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.

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

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

Safety Assurance Overview Extending FT idea for safety: – fault tolerance to failure “tolerance” Safety related concepts: . safety: accident free . accident: failure w/ severe consequences hazard: precondition to accident Safety assurance:. hazard analysis hazard elimination/reduction/control damage control

Outlines QA Context Quality in software processes V & V View DC View (defect-centered) QA: Defect View vs V&V View

Objectives To understand and distinguish between V&V-view and DC-view of SQE

Quality Assurance in Context QA and the overall development context defect handling/resolution activities in process alternative perspectives: verification/validation (V&V) view Defect handling/resolution status and tracking causal (root-cause) analysis resolution: defect removal/etc. improvement: break causal chain

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/quality models as follow-up to defect handling data and historical baselines goal: assessment/prediction/improvement causal/risk/reliability/etc. analyses

QA in Software Processes Mega-process: initiation, development, maintenance, termination. Development process components: requirement, specification, design, coding, testing, release.

QA in software Process Process variations: waterfall development process iterative development process spiral development process lightweight/agile development processes and XP (extreme programming) maintenance process too mixed/synthesized/customized processes QA important in all processes

QA in Waterfall 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 XP: test-driven development 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

V & V Core QA activities grouped into V&V Validation: w.r.t. requirement (what?) appropriate/fit-for-use/“right thing”? scenario and usage inspection/testing; system/integration/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 V-model

V&V in Software Process V-model as bent-over waterfall . left-arm: implementation (& V&V) right-arm: testing (& V&V) user@top vs. developer@bottom V&V vs DC View Two views of QA: V&V view DC (defect-centered) Interconnected: mapping possible?

V&V vs DC View 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 developer (near bottom)?

DC-V&V Mapping

Outlines SQE: Software Quality Engineering Key SQE Activities SQE in Software Process

Objectives To understand SQE in software process To understand and distinguish between SQE activities

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 Quality Engineering Process

SQE Process SQE process to link major SQE activities: Pre-QA planning; QA: covered previously; Post-QA analysis and feedback (maybe parallel instead of “post-”) Quality Engineering Process

SQE and QIP QIP (quality improvement paradigm): Step 1: understand baseline Step 2: change then assess impact Step 3: package for improvement

SQE and QIP QIP support: overall support: experience factory measurement/analysis: GQM (goal-question-metric paradigm) SQE as expanding QA to include QIP ideas

Pre-QA Planning Pre-QA planning: Quality goal Overall QA strategy: QA activities to perform? measurement/feedback planning Setting quality goal(s): 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 economic models: COCOMO etc

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 & follow-up mechanisms, etc.

Measurement 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 follow-up: 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

Quality engineering in the waterfall process

Quality engineering in the waterfall process

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 Quality engineering effort profile: The share of different activities as part of the total effort

SQE Effort in Waterfall Process Effort profile planning/QA/analysis of total effort general shape/pattern only (actually data would not be as smooth) in other processes: – similar but more evenly distributed

Outlines More on: Quality concepts Quality control Cost of Quality Statistical Quality Assurance The SQA Plan

Objectives To further understand the concept of quality in the life cycle of a software To be able to distinguish between quality control, quality concept and cost of quality.

Quality Concepts Software quality assurance is an umbrella activity that is applied throughout the software process. SQA encompasses: (1) a quality management approach (2) effective software engineering technology (3) formal technical reviews (4) a multi-tiered testing strategy (5) document change control (6) software development standard and its control procedure (7) measurement and reporting mechanism)

Quality Concepts Quality --> refers to measurable characteristics of a software. These items can be compared based on a given standard Two types of quality control: Quality design -> the characteristics that designers specify for an item. --> includes: requirements, specifications, and the design of the system. Quality of conformance -> the degree to which the design specification are followed. It focuses on implementation based on the design.

Quality Control What is quality control -- the series of inspections, reviews, and test used throughout the develop cycle of a software product Quality control includes a feedback loop to the process. Objective ---> minimize the produced defects, increase the product quality. Implementation approaches: - Fully automated - Entirely manual - Combination of automated tools and human interactions

Quality Control Key concept of quality control: --> compare the work products with the specified and measurable standards Quality assurance consists of: the auditing and reporting function of management Goal --> provide management with the necessary data about product quality. --> gain the insight and confidence of product quality

Cost of Quality Cost of quality --> includes all costs incurred in the pursuit of quality or perform quality related work Quality cost includes: Prevention cost: Appraisal cost Failure Cost

Cost of Quality - prevention cost: - quality planning - formal technical reviews - testing equipment - training - appraisal cost: - in-process and inter-process inspection - equipment calibration and maintenance - testing - failure cost: internal failure cost: Repair, and failure mode analysis, external failure cost: complaint resolution, product return and replacement, help line support , warranty work

Software Quality Assurance Three import points for quality measurement: - Use requirements as the foundation - Use specified standards as the criteria - Considering implicit requirements

Software Quality Assurance Group Who is involved in quality assurance activities? Software engineers, project managers, customers, sale people, SQA group Engineers involved the quality assurance work do following: - apply technical methods and measures - conduct formal technical review - perform well-planned software testing

Causes of Errors Causes of errors: - incomplete or erroneous specification (IES) - misinterpretation of customer communication (MCC) - intentional deviation from specification (IDS) - violation of programming standards (VPS) - error in data representation (EDR) - inconsistent module interface (IMI) - error in design logic (EDL) - incomplete or erroneous testing (IET) - inaccurate or incomplete documentation (IID) - error in programming language translation of design (PLT) - ambiguous or inconsistent human-computer interface (HCI) - miscellaneous (MIS)

The SQA Plan The SQA plan provides a road map for instituting software quality assurance. Basic items: - purpose of plan and its scope - management : organization structure, SQA tasks, their placement in the process - roles and responsibilities related to product quality - documentation: Project documents, model, technical documents, user document - standards, practices, and conventions - reviews and audits; test - test plan and procedure - problem reporting, and correction actions - tools; code control; media control; supplier control - records collection, maintenance, and retention - training; risk management