Technische Universität München. Software Quality. Management. Dr. Stefan Wagner Technische Universität München. Garching 18 June 2010

Similar documents
Chapter 12. Contents Evaluating Process! Postmortem Analysis. Chapter 12 Objectives

9. Verification, Validation, Testing

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Monday, July 26, 2010, Minutes Same room: Please be about 10 minutes early!

Software Quality Management

Software Quality Management

Introduction to Software Metrics

Software Quality Assurance

Overview of Session. Process Standards and Introduction to SEI Models. Software Quality. Software Quality. Quality Management

Lecture 1: Software Measurement. Marlon Dumas

Software Metrics. Kristian Sandahl

Software Quality Consulting Putting Software Quality into Effect. Dr. Markus Pizka

Project Management CTC-ITC 310 Spring 2018 Howard Rosenthal

Introduction to Software Metrics

ROEVER ENGINEERING COLLEGE Elambalur,Perambalur DEPARTMENT OF CSE SOFTWARE QUALITY MANAGEMENT

Software Quality Engineering Courses Offered by The Westfall Team

Software Quality Engineering Courses Offered by The Westfall Team

Measuring and Assessing Software Quality

Lecture 28: Software metrics

Metrics based field problem prediction. Paul Luo Li ISRI SE - CMU

Chapter 4 Document Driven Approach for Agile Methodology

Take away. Field problems happen. Lesson objectives. Metrics based field problem prediction. Benefits of field problem predictions

Quality Management of Software and Systems: Software Measurement

R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

Software Engineering Inspection Models Continued

A Software Measurement Case Study Using GQM

Quality 24 Process Improvement 26 Real processes. Product Quality. Quality Management. Quality Management. Quality Plan

So#ware Architecture

Workshop 1: Software Measurement. Marlon Dumas

Software Metrics Software Engineering 2007

Software Engineering. Lecture 2: The Personal Software Process


BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. October 2012 EXAMINERS REPORT. Software Engineering 2

Baselining Software Processes as a Starting Point for Research and Improvement

BUSS1020 Quantitative Business Analysis

Scrum Testing: A Beginner s Guide

Identifying Relevant Product Quality Characteristics in the Context of Very Small Organizations

Software Measurement. Software Economics 2010

Requirements Validation and Negotiation

BUSS1020. Quantitative Business Analysis. Lecture Notes

Software Measurement Pitfalls & @jstvssr

THE FUTURE CONTENTS. Software Testing

Testing maturity in an agile/cdt environment

Chapter 6. Software Quality Management & Estimation

Software Project Management Sixth Edition. Chapter Software process quality

Software Process Evaluation

CTFL - Version: 3. ISTQB Certified Tester Foundation Level

Capability Maturity Model for Software (SW-CMM )

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Quality Management System Guidance. ISO 9001:2015 Clause-by-clause Interpretation

Guidelines for Testing Maturity

A Measurement Approach Integrating ISO 15939, CMMI and the ISBSG

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

THE CORRELATION BETWEEN DEVELOPER-ORIENTED AND USER-ORIENTED SOFTWARE QUALITY MEASUREMENTS (A CASE STUDY)

Software Engineering

Software Quality S O F T W A R E T E S T I N G. By: MSMZ

Software Reliability and Testing: Know When To Say When. SSTC June 2007 Dale Brenneman McCabe Software

Software Measurement. Software Economics 2009

Published by: PIONEER RESEARCH & DEVELOPMENT GROUP(

The Quality Paradigm. Quality Paradigm Elements

Practical Process Improvement: the Journey and Benefits

ISO 9001:2000 Drives Process Changes at Siemens

Seven Basic Quality Tools. SE 450 Software Processes & Product Metrics 1

Drive Predictability with Visual Studio Team System 2008

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

TDDC88 Lab 5 Software Metrics and Quality Factors

PROJECT QUALITY MANAGEMENT. 1 Powered by POeT Solvers LImited

Requirements Gathering using Object- Oriented Models

Software metrics. Jaak Tepandi

Project Quality Management. For the PMP Exam using PMBOK

ISEB ISTQB Sample Paper

QUANTIFIED THE IMPACT OF AGILE. Double your productivity. Improve Quality by 250% Balance your team performance. Cut Time to Market in half

Reliability Engineering. RIT Software Engineering

MTAT Software Engineering Management

Comparing Automated and Human Maintainability Assessment Approaches

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

How mature is my test organization: STDM, an assessment tool

To get the most out of this tutorial, it is good to have a basic understanding of the Software Development Life Cycle (SDLC).

For the PMP Exam using PMBOK. PMI, PMP, PMBOK Guide are registered trade marks of Project Management Institute, Inc.

Software Metrics. Practical Approach. A Rigorous and. Norman Fenton. James Bieman THIRD EDITION. CRC Press CHAPMAN & HALIVCRC INNOVATIONS IN

Testing Calculation Engines using Input Space Partitioning & Automation Thesis for the MS in Software Engineering Jeff Offutt and Chandra Alluri

Exam questions- examples

This chapter illustrates the evolutionary differences between

Service Strategy Quick Reference Guide

Online Student Guide Types of Control Charts

Chapter 1. Contents. 1.1 What is Software Engineering! Solving Problems. Objectives. What is Software Engineering

Software Quality Management

Real life experience using CMMI L2 processes and XP practices

NOT YOUR FATHER S STANDARD. Wali Alam Quality Institute of America ASQ-Houston Section 1405-May

T Software Testing and Quality Assurance Test Planning

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK UNIT I

It s time to be more Optimistic about Negative Testing 12 th Annual International Software Testing Conference Saroj Patnaik 20-October-2012

Linguistic Quality Assurance (LQA) as One of the Key Parts of the Localization Process

Software Data Analytics. Nevena Lazarević

Software Testing(TYIT) Software Testing. Who does Testing?

Personal Software Process SM for Engineers: Part I

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Software Reliability

Exam 2012, Lecture Project Management

Transcription:

Technische Universität München Software Quality Management Dr. Stefan Wagner Technische Universität München Garching 18 June 2010 1

Last QOT: Why is software reliability a random process? Software reliability is mostly considered a random process, because the inputs chosen by end users in practice are randomly distributed. 2 New QOT: "Do CMMI level 5 companies produce software with higher quality than CMMI level 1 companies?"

Reliability models Quality measures Review of last week's lecture. 3

Metrics and Basics Product Quality Measurement Process Quality Quality Management Certification We are in the part "Metrics and Measurement". 4

Reliability models Quality measures Visualisation This lecture finishes quality measures and covers visualisation of quality measures. 5

Halstead's software science Program = Operations + Operands Base measures: n # different operators m # different operands N # operators M # operands Derived measures: Length L = N + M Volume V = L x log 2 (n + m) Complexity C = (n / 2) x (M / m) Test effort E = V x C Halstead proposed these measures with the aim to measure the complexity for maintenance and comprehensionof source code. He has never empirically validated the measures. There are some reports of useful usage of these measures, but this could be random success. 6

McCabe's cyclomatic complexity v V: statements e E: control flow dependency V(g) = E - V + 2p p: connected components V(g) = 1-2+2 = 1 V(g) = 4-4+2 = 2 V(g) = 3-3+2 = 2 This is probably the most known complexity measure for source code. The aim again was to measure the complexity of the code for comprehending and changing it. It operates on the control flow graph and hence analyses the structure of the code. The program is the graph G = (E, V) 7

More McCabe V(g) = 13-8+2 = 7 V(g) = 13-8+2 = 7 This example and various empirical investigations show that it is easy to forge McCabe's complexity measure. 8 Nevertheless, it measures the number of linearly independent paths in the code. It is questionable to what extent this influences comprehension and modification, but it is a useful measure for testability. The more paths, the more difficult is it to the test the function.

GQM Goal Question Question Question Metric Metric Metric Metric 9 We have seen a variety of quality measures in this lecture. Many of them can be collected automatically. This may lead to unsystematic collections of quality data, especially of measures that are easy to measure. What is interesting is usually hard to measure, what is easy to measure is usually not interesting!

Reliability models Quality measures Visualisation 10

Visualisation 11 Even if we employ a structured, goal-driven measurement program, the results can be huge. For large systems, it is easy to get lost in the amount of data. Humans are visual beings and visualisation helps to get an overview and to find problems

Traffic lights Comment ratio 18 27 55 A visualisation that often can be a crude representation of the data, but which is useful for a very quick overview are traffic lights. Formally speaking, it is usally a rescaling aggregation. Some complicated data in interval or ratio is aggregated into an ordinal scale of red, yellow, and green. Green usually represents the values that are "good", i.e., on an accepted level, yellow are problematic values, and red are "bad" values. The example shows the percentage of classes in a software system with comment ratios on the red, yellow, and green level. Red can be defined as a comment ratio between 0 and 0.1, yellow as 0.1 to 0.2, and red above 0.2. Another use of traffic lights with only red and green is to show the percentage of unit tests that passed and failed. 12

Bar chart 17 34 14 Corrective Perfective Preventive 13 A bar chart is a useful visualisation for comparing different values. The example compares the number of change requests for each type of change request. This shows us whether we mostly fix bugs (corrective) or if we are able to build new features (perfective) and restructure and improve the internals of the system (preventive).

Trend chart 30 29 28 28 27 25 01/10 02/10 03/10 04/10 05/10 06/10 Trend charts are visualisations that help to track measures over time. In many cases, I am not only interested in the current state of my system, but also in the change over time. This is especially useful for measures that indicate problems, such as clone coverage or warnings from bug pattern tools. Often it is not possible and also not adivsable to make immediate huge changes to the system to remove all these problems. Nevertheless, it makes sense to observe these measures over time and to make sure that at least they do not increase or even better that they decrease. The example shown is the percentage of clone coverage of a system over six month. 14

Tree map 15 Tree maps are mostly used for finding hot spots in the system. The intensity of the colour indicates the intensity of the measure. The example here is again clone coverage. As this is a probability, it is in the range 0 to 1. The visualisation is than white for 0 and completely red for 1. Any shades between show different levels of clone coverage. The tree map has the additional dimension of the squares it shows. These squares can show another measure, usually the size of classes or components.

Reliability models Quality measures Visualisation 16

Metrics and Basics Product Quality Measurement Process Quality Quality Management Certification We now move into the part "Process Quality". 17

Product vs. Quality Process Quality What is the difference? What is more important? We have already discussed the difference between product and process quality. 18 Process quality is one important prerequisite for product quality.

What is a process? Roles Activities Tasks Work products Artefacts GOAL End A process consists in its core of activities (or tasks) that produce work products (or artefacts). This production of work products by activities is done by people that are categorised in roles. The whole process always has to have the aim to reach a certain goal; the end for which the process is the means. 19

e c o r P h c t e ss sk Design template Inspection criteria Requirements Tested modules Design Define, design Test plan Code, unit test Integrate Requirements Programmer Tester engineer Inspector Architect Software 20 This process sketch is based on Pfleeger, Atlee (2010). It shows a simplified example how a software development process can look like.

Post mortem analysis ISO 9000 CMMI/SPICE These are the three topics in process quality that we will cover today. 21

Those who cannot remember the past are condemned to repeat it. George Santayana This is not only true in politics, but also in software engineering. In essence: Learn from the mistakes you have made in the past to avoid them in the future. 22

Project survey Post mortem analysis Objective information Debriefing meeting Project history day Publishing the results Such an analysis is not only useful after the project is completely finished, but also after larger iterations. We learn a lot from our successes, but even more from our failures. 23 Postmortem process from Collier, DeMarco, and Fearey (1996): 1. Design and promulage a project survey to collect data without compromising confidentiality. 2. Collect objective project information, such as resource costs, boundary conditions, schedule predictability, and fault counts. 3. Conduct a debriefing meeting to collect information the survey missed. 4. Conduct a project history day with a subset of project participants, to review project events and data and to discover key insights. 5. Publish the results by focusing on lessons learnt.

Pair work Develop a questionnaire for the post mortem survey of the last project(s) that you took part in! Discuss with your neighbour. Write on each post-it one question. 10 minutes When you finish, put your question on the whiteboard. Arrange them so that similar question are close. Proposed categories from Collier, DeMarco, and Fearey (1996): Support and goals Expectations and communications Issues resolution Information access Product specifications Engineering practices The big picture Demographics 24

The best information is usually gathered by asking about personal experiences. For example: - Did you learn something in the project? - Did you enjoy working in the project? 25 If you want quantitative information, which is also easier to analyse, you need to give a scale for the answers. The most common scale for that is the Likert scale that expresses agreement. For example: I planned enough time for testing Totally agree - partially agree - neither agree nor disagree - partially disagree - totally disagree

Post mortem analysis ISO 9000 CMMI/SPICE 26

ISO 9001 Management responsibility Satisfaction Customers Resource management Measurement, analysis, and improvement Requirements Product realisation Product Customers This International Standard specifies requirements for a quality management system where an organization a) needs to demonstrate its ability to consistently provide product that meets customer and applicable regulatory requirements, and b) aims to enhance customer satisfaction through the effective application of the system, including processes for continual improvement of the system and the assurance of conformity to customer and applicable regulatory requirements. 27

Quality management system Identification and application of necessary processes Sequence and interactions of processes Criteria and methods to make processes effective Resources and information to monitor processes Montoring, measurment, analysis Continual improvement Quality manual Control of documents and records 28 ISO 9001 is document-intensive. Certifications check whether you produce all necessary documents.

Management responsibility Management commitment Customer focus Quality policy Planning (quality objectives, QMS) Responsibility, authority, and communication Management review QMS stands for quality management system. 29

Ressource management Provision of resources Human resources Infrastructure Work environment 30

Product realisation Planning of product realisation Customer-related processes Design and development Purchasing Production and service provision Control of monitoring and measuring devices 31

Measurement, analysis, improvement Monitoring and measurement Control of nonconforming product Analysis of data Improvement Monitoring of customer satisfaction, processes, and products. 32

Post mortem analysis ISO 9000 CMMI/SPICE 33

Process improvement Old process Assessment Strength and weaknesses Assessment result Improvement measures New process Improvement Liggesmeyer (1995) 34 Process improvement always has the aim to move from an old process to a new process. This is achieved by assessing the old process, which also shows strength and weaknesses of the process. The weaknesses are the basis for deriving improvement measures. These improvement measures are implemented, the process improves, and becomes the new process.

CMMI maturity levels L4 Quantitatively managed L5 Optimizing L3 Defined L2 Managed L1 Initial The maturity levels in CMMI describe the level of maturity of the current process. 35 The initial level is ad-hoc and can be chaotic. On the managed level, the actions are monitored and reacted upon the results. On the defined level, there is a company-wide process definition. The quantitatively managed level adds quantitative analysis to the monitoring, i.e., the managers measure and decide based on these measures. On the optimising level, the definition of the process becomes variable again. The process is changed according to the influences of the environment so that it is optimal.

CMMI structure Maturity Levels defined by Process Areas defined by Common Features structure Key Practices describe pursuit address describe Process Capabilites Goals Implementation Infrastructure Activities The maturity models describe process capabilities, i.e., competences in the process. These capabilities are part of process areas. The complete process is divided into these process areas. Each process area has its own goals. Process areas can be implemented differently in different companies, but they should share common features that are structured by key practices. The key practices describe activities and infrastructure that should be part of the process. 36

SPICE Unit testing Performed Managed Established Predictable Optimising Design Resource planning Coding 37 SPICE is the European-led ISO standard that is similar to the American CMMI. It introduced the notion that there are not only maturity levels. To reach a higher maturity level all key practices have to be implemented. The capabilities in SPICE can be achieved at different degrees: Fully achieved Largely achieved Partially achieved Not achieved There are different maturity levels as well that need different achievements in different key practices. SPICE, however, also allows to show each capability on its own to manage process improvement in more detail. CMMI allows this by now also in its continuous representation.

A defined process Design template Inspection criteria Requirements Tested modules Design Define, design Test plan Code, unit test Integrate Requirements Programmer Tester engineer Inspector Architect Software 38 Here is the process sketch again. It is a defined process as it clearly defines the steps that have to be done.

A managed process Manage Inspection criteria Redesign directive Tested modules Design Define, design Test plan Code, unit test Requirements Integrate Problem reports Software 39 The defined process can be improved to a managed process by explicitly adding a "manage" activity that receives the problem reports from each step and feeds in change directives. This is also adapted from Pfleeger, Atlee (2010).

Defects per function point CMM level Minimum Average Maximum 1 0.150 0.750 4.500 2 0.120 0.624 0.3600 3 0.075 0.473 2.250 4 0.023 0.228 1.200 5 0.002 0.105 0.500 Jones (2003) 40 Does CMMI actually improve processes? This has not been analysed empirical enough so that we can make conclusive statements. Jones published an interesting analysis that shows that the defect density decreases on average if CMMI levels increase. The best CMMI level 1 companies, however, have a lower defect density than the worst CMMI level 5 companies.

Post mortem analysis ISO 9000 CMMI/SPICE 41