53
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Errata! “Estimation of Software” has a bug! “The multiplier for high complexity and external output type is higher than the multiplier for high complexity and external input type.” Instead, you should look up the values from the table for external inquiry type, as with other user types The reason: Some descriptions of Albrecht function point method have instructed to do as described in the material, but this suggestion has been changed later.

5 Quality

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Errata!   “Estimation of Software” has a bug!

  “The multiplier for high complexity and external output type is higher than the multiplier for high complexity and external input type.”

  Instead, you should look up the values from the table for external inquiry type, as with other user types

  The reason:  Some descriptions of Albrecht function point method have

instructed to do as described in the material, but this suggestion has been changed later.

Page 2: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Lecture on February 16th   Student presentations!   Prepare a presentation of 15-20 minutes on topic of your interest

(related to software project management), and get 5 lecture summary points

  And/or   Attend the session, participate in discussions and share your own

experiences, and earn max 5 lecture summary points by writing a summary of the presentations & discussion

  If you want to give a presentation, please send email to [email protected]

Page 3: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

T-76.5612 Software Project Management

5: Quality in Software Project Management

Tuomas Niinimäki (many slides by Juha Itkonen & Mika Mäntylä)

Helsinki University of Technology

Page 4: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 4

A Plan

Page 5: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 5

The Reality

Page 6: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 6

What quality practices can do for my project?   Provide headlights (Information on quality)

  Where are we?   … and what lies ahead?

  Enable changing our plan   We can get there, but later than planned   We can get almost there and stick to our

schedule   But if we run full steam ahead according

to our plan we will definitely crash

Page 7: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 7

Contents   Setting quality goals   From goals to quality practices   Quality information in project planning and tracking

Page 8: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 8

Quality Goals

Page 9: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Strive for good quality

Bad quality leads to rework, higher costs, delays, and

problems in operation

9

Page 10: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What is quality (in software)?

Page 11: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 11

ISO 9126 Quality attributes   Functionality

  Suitability   Accurateness   Interoperability   Security

  Reliability   Maturity   Fault tolerance   Recoverability

  Usability   Understandability   Learnability   Operability   Attractiveness

  Efficiency   Time behavior   Resource behavior

  Maintainability   Analyzability   Changeability   Stability   Testability

  Portability   Adaptability   Installability   Conformance   Replaceability

+ suggested metrics for each quality attribute

Page 12: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

PRODUCT PEOPLE PROCESS

QUALITY

Page 13: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

PRODUCT PEOPLE PROCESS

  Product is error-free

  Product meets the specifications

  Product has certain measurable attribute   e.g. durability,

weight, SMS support

  The expectations of the customer or user have been met

  Someone gets value from the result   What is value?

Differs depending on who you ask: developer, user, tech. support

  Sustainability

  Conformity / commitment

  Control and management

  Expectations, estimates, forecasts

  Reproducibility

  Improvement   Learning from

mistakes and successes

QUALITY

Page 14: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Quality goals

Page 15: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 15

Setting the target - Quality goals   Generic quality characteristics are not enough

  Customer’s requirements and needs   Product characteristics   Application domain   Development technologies and environment   Project characteristics

  Specific quality goals are needed   Specific goals for this project   Unambiguous   Connected to a concrete project, product, and problems

we need to define precisely what qualities we require of a system

Page 16: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 16

From a general to a specific quality goal: An Example

  Adaptability   Attributes of software that bear on the opportunity for its

adaptation to different specified environments without applying other actions or means than those provided for this purpose for the software considered.

  Adaptability   The MobWebClient software must work with all advertised

compatible browser and e-mail environments, with or without java, without specific configuration.

Page 17: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 17

Quality goals   Quality goals point out the important quality characteristics for

  the project,   the product, and   the whole organization

  Quality goals   show where to focus effort and resources   help selecting suitable practices and methods   steer every activity of the project into the right direction

  Quality goals can reflect different qualities for different parts of the system

Page 18: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 18

Focusing the QA efforts – Quality Risks   Risk – a potential threat to projects objectives

  With uncertain probability   Quality goals tell us what are the important qualities to achieve

in this project   Quality risk analysis focuses our QA efforts to the most

important things   E.g. if functional correctness is one of our quality goals:

What are the most important functions that we should test thoroughly vs. all the functions we could test?

Page 19: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What we should test vs. what we could test?

Reduced value due to defects

Cost of finding defects

Page 20: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Example – Risk analysis matrix Characteristic Impact Probability Exposure

Usability 3 4 12

Functional correctness

2 2 4

Conformance to standard X

1 3 3

Page 21: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 21

Example – Statistical Risk Analysis Matrix

Interest Calculation

Close Account

Create Account

Dev Cust. Avg New Func.

Design Qual. Size

Com- plexity

Weigh. Sum

Risk Exposure

5 5 1 3

3 3 3

1 3 2

2 1 1,5

2 3 3 3 37

2 2 2 3 31

3 3 2 3 41

111

62

61,5

Impact * Probability = Re

Modified slide, originally from Ståle Amland

Weight

The numbers and calculations are not important – Idea is to get the features into priority order

Page 22: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 22

Prioritising risks (I x P = E)   I = Impact, P = Probability, E = Exposure

  What does the exposure number mean?   Scale of a risk   Used to rank risks

  high I x low P = low I x high P   Risks with very severe impacts can have average exposure   Usually impact is easier to estimate than probability   Can lead to low exposures for high impact risks

Page 23: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Prioritising risks   Goal is to prioritize

  Which risks deserve most attention

  The discussion about the severities and probabilities is probably more valuable than the exact ranking

  In QA, prioritization means distribution of efforts, not order of actions   Less risky application areas cannot be ignored   Requirement priority is not test priority

Page 24: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 24

Quality Practices

Page 25: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 25

Quality practices   Many practices strive for better quality

  Testing   Reviews, inspections   Conventions, guidelines   Documenting   Design and development methods & techniques   Project management practices

Page 26: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Quality practices   Plan which practices are used to achieve and measure each of

the quality goals   Applying existing practices already in use   Learning best practices from other projects and organizations   Improving and combining existing practices   Inventing new practices

  Quality goals give guidance for performing the practices

Page 27: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 27

Mapping the goals and practices

Practices Quality goals Quality threat

Functional correctness

Conformance to standard X

Usability Performance

DB changes break existing client sw

One developer has no experience in J2EE

Functional testing 3 1 GUI prototyping 2 Code reviews 3

3 = good practice 2 = helps 1 = might help

Page 28: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 28

Mapping the goals and practices

Practices Quality goals Quality threat

Functional correctness

Conformance to standard X

Usability Performance

DB changes break existing client sw

One developer has no experience in J2EE

Functional testing 3 1 GUI prototyping 2 Code reviews 3 1 2 Regression testing client sw

1 3

  Documents how quality goals are to be achieved   Focuses activities into right issues   Reveals and communicates

  explicitly identified threats   quality goals with weak practices

Page 29: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 29

How to measure the quality goals   Some quality characteristics can be measured

quantitatively = Hard metrics

 e.g. features passing tests, performance

  Some can be assessed subjectively = Subjective evaluation

 e.g. usability, conformance to a standard

  Some cannot be measured at all (in a practical situation) = Indirect metrics

 e.g. maintainability, reusability

Page 30: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 30

Evaluating and tracking quality - Hard metrics

  Hard metrics are concrete and clear   If the goal can be quantified, do so

  What measures are used?   Who, how and when?   How the measures are used?

  Numbers are easy to present and understand   Easy to track and observe changes and trends   Easy to misinterpret

  E.g. what can we infer based on the number of found defects alone?  Historical data helps in detecting trends  Characteristics of defects (severity, technical type)

Page 31: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 31

Evaluating and tracking quality - Subjective evaluation

  Subjective evaluation as a measure   Define how the goal is assessed

  What are the metrics   Who, how and when   How the results are used

  Reviews and assessments   Subjective opinion

  Qualitative data  E.g., subjective assessment of quality of a video stream

  Tracking not as straightforward -> must quantify  E.g., compare to reference video streams of different

quality

Page 32: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 32

Evaluating and tracking quality - Indirect metrics   Define how to achieve, evaluate and track these goals too!   Indirect assumptions

  Maintainability  E.g., following a coding standard leads to better code

quality, understandability and source code documentation   Reusability

 E.g., writing and executing unit tests for all code leads to better design, robust code, and better maintainability

 E.g., product line architecture leads to re-usable software   Hard metrics for following these practices

  Maintainability  E.g., coding standards violations found in code reviews

  Reusability  E.g., number / amount of unit tests, unit test peer

reviews  E.g., amount of project specific glue code

Page 33: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 33

Goal – Question – Metric (GQM)   Goals define the purpose and objective for measurement

  Purpose   Quality issue   Object   Viewpoint

  Questions characterize and refine the measurement goals   The goal can be achieved when answers to the questions are

available   Metrics are identified for each question

  Metrics provide the answers to the questions

Page 34: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 34

Project Planning

Page 35: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 35

Planning the project with quality goals and practices

  Describe quality goals and major threats   Make sure that each quality goal is meaningful and described in

the context of this project   Make sure that all required quality practices are planned

  Effort estimates   Schedule   Resourcing

  Plan how to track quality practices and measure achieved quality  What measures are used?  Who, how and when?  How the measures are collected and used?

  Remember: Quality assurance takes effort and calendar time

Page 36: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 36

Testing and project planning   Test releases

  Make clear what and when is released for testing   Plan what is the required quality level of test releases – and how to

ensure / measure it   Building and delivering the test release takes time

  Do not forget that fixing takes time and effort   You don’t know how many bugs will be found   You must plan how many bugs will be found   Allocate time and resources to test, fix and re-test (verify the fixes)

  More bugs means more fixing and slower testing   Test schedules are relative

  Development will be late   Code will be buggy   Plan how to handle slipping dates and underestimated workload

Page 37: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 37

Iterative Testing and Deployment

  Testing, stabilizing, and deployment takes time   Testing requires many iterations

  Found defects has to be fixed   Fixes has to be re-tested   Fixing causes more defects…

  If you do more during development the risk is smaller during testing and deployment   If all testing is left at the end, the testing phase is hard to

estimate and plan   Waterfall process

t

Release

Iteration Heartbeat Testing and deployment iterations

Release to customer

Release to testing

Page 38: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 38

Project Tracking and Reporting

Page 39: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 39

Making quality visible in project tracking

  Keep quality goals visible in project meetings   Track the planned metrics   Publish the metrics   React to deviations

  Connect quality metrics in progress tracking   What does it mean to get a task done?   Reviews, unit tests, functional tests, regression tests, demo, …

Page 40: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 40

Making quality visible in project tracking

  Find out the reasons behind the metrics   small number of found bugs due to ignored testing tasks   large number of found bugs due to changed specifications -> broken

test cases

Number of defects

High QA quality Low QA quality

A B

C D

Page 41: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 41

Test reporting in project management   As a project manager you need test reports

  Not as bug descriptions, not as plain numbers of test cases and bugs

  Test reports describe what has been tested and assess the current level of achieved quality based on that testing

  Test reports should provide information to assess how well the stated goals have been achieved

  Important content in test reports   Assessment of the achieved quality

 What was tested, how thoroughly, what was coverage  What was found, bugs by severity, issues, metrics

  Progress according to the plan

Page 42: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 42

Reporting with weak metrics: Testing Dashboard

  If you cannot have direct quality measures, use indirect   Use of certain quality assurance practices gives indirectly hints of

the likely quality of the final system   Qualitative assessment and the reasoning behind is much better

than plain numbers

Modified from: Kaner et al. 2002. Lessons Learned in Software testing.

Page 43: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Test reporting for steering group   It depends! (Usually higher level of abstraction, focus on specific

issues)

0 5

10 15 20 25 30 35

1 3 5 7 9 11 13 15 17 19 21 23

Designed

Implemented

Tested

Needs rework

Finished

0 5

10 15 20 25 30 35

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Remaining

Planned

Page 44: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Quality information • Review results

• Test results, bug counts

• Development progress

• Metrics of different qualities (performance, load, …)

Managing project • To re-scope an iteration

• To focus resources into right areas

• To make sure achieving good enough quality

• To find out we are making the right product

we need to forecast the likely quality of the final system when it is under development

Page 45: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 45

Quality Assurance Through Time Horizons

  Heartbeat time horizon   Quality practices are part of each

development task

  Iteration time horizon   Tasks to assure the quality of an

increment

  Release time horizon   Tasks to assure the quality of the

whole release

t

Release

Iteration Heartbeat

Blue = QA practices

Page 46: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 46

Quality information and time horizons Release time horizon

  Not connected to any iterations or milestones – hard to track and manage

  Typical approach to manage   Informal reviews   System testing   Acceptance testing   Testing non-functional quality characteristics

  Performance   Usability   Load and stress testing   …

i i i i i i i Release project

Time

Page 47: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 47

Quality information and time horizons Iteration time horizon

  Quality assurance goals for each iteration   Activities that provide information by the end of (each) iteration

  Not necessary connected to individual development tasks

  Information available at the end of each iteration, at latest   Review results   Unit test and integration test results   Function test and system test results   Quality metrics (e.g. performance, bug counts, test reports)

i i i i

i

i i i i i i i i i

Release project

Iteration

Time

Page 48: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 48

Quality information and time horizons Heartbeat time horizon

  Quality assurance activities as part of each development task   Information created early and continuously

  Development progress, bug counts, performed tests, …   Code review results   Unit tests and results   Automatic builds and smoke tests   Function test and integration test results

i i i i i i

i

i i i i i i i i i i i i

Release project

Iteration

Heartbeat

Time

Page 49: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 49

Quality information and time horizons

i i i i i i

i i i i

i i i i i i i

i i i i i i i i i

i i i i i i i i i i i i

Release project

Iteration

Heartbeat

Time

Heartbeat quality practices •  Information for steering the iteration •  Tracking progress

Iteration quality practices •  Information for steering the current and forthcoming iterations •  Evaluating achieved quality

Release quality practices •  Independent activities •  Tracking and planning iterations

Page 50: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 50

Gather information on short time horizons   Progress against iteration (quality) goals must be tracked in

heartbeat rhythm   Plan how you get the quality information before it’s too late

  Find actively ways of digging quality information out as early and often as possible   Talk to testers and developers

  The best way is to get something completed and tested in short iterations   The risk of poor quality is not delayed to the end of the project

  Shorter feedback loop -> easier and faster to fix the problems   Pay attention to heartbeat practices   Assure good enough quality in each iteration

  Do not push risks like a growing snowball in front of you

Page 51: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 51

Who is responsible for quality?   Make sure that quality is everybody’s responsibility

  and it shows in the project plan   It is good to have a project “QA manager” role

  Responsibility to actively track quality in the heartbeat rhythm and help project manager to make QA activities to happen

  Reports project’s progress from the quality point of view in the project meetings   Tracking quality goals in iteration time horizon

  Tries to be less eager to sacrifice quality for new fancy features   Keep separate testers tightly in the project

  In the heartbeat rhythm  Project meetings  Reviews  Collaborating with developers

Page 52: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 52

Summary   Define concrete and meaningful quality goals   Identify practices and activities that are applied to achieve the

goals and track progress   Plan activities and tracking

  quality assurance activities in the schedule and effort estimations   how to react to deviations

  Remember the different time horizons   When is the information needed in order to be useful?   Plan activities to provide the information promptly

  Identify also the major quality threats   and plan how the threats are handled in the project and when   Do not leave big threats to be revealed at the end of the project

Page 53: 5 Quality

SoberIT Software Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Thank you.

Questions?

Tuomas Niinimäki

[email protected]