Software Development: Tools and Processes Lecture - 14: Software - - PowerPoint PPT Presentation

software development tools and processes
SMART_READER_LITE
LIVE PREVIEW

Software Development: Tools and Processes Lecture - 14: Software - - PowerPoint PPT Presentation

Software Development: Tools and Processes Lecture - 14: Software Quality Assurance How we define quality? Definition of Quality Quality is Variation Control: Any quality product has two samples are identical (applicable to tangible


slide-1
SLIDE 1

Software Development: Tools and Processes

Lecture - 14: Software Quality Assurance

slide-2
SLIDE 2

How we define quality?

slide-3
SLIDE 3

Definition of Quality

  • Quality is Variation Control: Any quality product has two

samples are identical (applicable to tangible products)

  • Quality means satisfying the customer needs
  • Quality means absence of defects
  • Performance Quality & Conformance Quality
  • Japanese quality framework - TQM
slide-4
SLIDE 4

Total Quality Management: TQM

  • Achieve total customer satisfaction
  • Reduce Processes variation
  • Create company wide quality culture
  • Develop goal oriented measurement system
  • Grow new applications from existing systems

TQM - Kaizen Customer Focus Human side

  • f Quality

Process Improvement Metrics, Models, Measurements, and Analysis

slide-5
SLIDE 5

Software Quality

  • The de-factor industry standard for software quality is

absence of defects

  • The unit of measurement is delivered defect density
  • What is Software Defect?
  • Something that makes the software behave in a way that

is inconsistent with the requirements of the customer

  • How can we reduce Software Defects?

Defects can be reduced through Quality Assurance

slide-6
SLIDE 6

Quality Assurance

Differentiate between Quality control (QA) & Quality Assurance (QC)

slide-7
SLIDE 7

Cost of Quality

The quality improvement process

  • Identify the current cost of quality and improve the processes to

reduce that cost.

  • There should be a balance between amount spent on quality and

quality of final products. Elements of Cost of Quality

  • cost of appraisal – time spent to find defects
  • cost of failure – time spent to fix defects

– Internal failure – External failure

  • cost of prevention – process improvement and training

Cost of Quality = cost of prevention + cost of appraisal + cost of failure Produce a balance between Appraisal and Failure Cost

slide-8
SLIDE 8

Approaches to quality management

Procedural Approach to Quality Management

  • Defects can be detected by Review and Testing
  • Review: Structured & human oriented
  • Testing: Executing software to identify defects
  • In procedural approach procedures and guidelines are

established.

  • We don’t know about percentage of defects removed

Quantitative Approach to Quality Management

  • Defect data is evaluated
  • Judgment about quality of produced software
  • Decision is made for more testing
  • In this approach, we set a quantitative quality goal and try to

meet.

  • Defects found by QC activity

Defect Removal Efficiency = ------------------------------------------ Total Errors in product before QC

slide-9
SLIDE 9

Formal Technical Reviews are important tools for quality improvement

slide-10
SLIDE 10

Formal Reviews (FTSs) Guidelines

  • Three to five people review the software work product
  • Advance intimation and preparation
  • Duration should be less than two hours
  • NOMINATE a review leader for conduction reviews
  • The designer conducts a walkthrough
  • Outcome: accept or reject the work product or suggest

changes

  • Review the product not producer (tone, intent)
  • Set and agenda and avoid drifts
  • Limit debate
  • Highlight problem areas but don’t try to solve
  • Take written notes
  • Develop a check list for each work product – structures

FTR

  • Allocate resources
slide-11
SLIDE 11

Software Reliability and Availability

  • Reliability: For how long the software can operate

without breakdown

  • Measure of reliability
  • MTBF = MTTF + MTTR
  • (end-user is not concerned with defects BUT with

failures)

  • Availability: Probability that program is operating

according to requirements

  • Measure of Availability
  • Availability = MTTF/ (MTTF + MTTR) x 100%
slide-12
SLIDE 12

Statistical Quality Assurance

Measuring the quality quantitatively

  • Information about the software defects collected and categorized
  • Causes of the defects (actual problems) are identified
  • Targets are set using Pareto Principle
  • Corrective actions are taken for identified problems

To Manage the software quality statistically we do the following:

  • The defects are categorized (incomplete specs, inconsistent GUI)
  • Criteria for serious, moderate, and minor errors is established
  • Data is gathered according to defined classification
  • Error index is calculated – this gives indication of software quality
  • We can focus on the types of errors which have the highest

percentage

slide-13
SLIDE 13

Statistical SQA: Calculation of Error Index

First calculate the phase index – for every phase

  • f SE process

PIi = ws(Si/Ei) + wm(Mi/Ei) + wt(Ti/Ei) (use weights as 10, 3, 1)

(Si, Mi, and Ti are total number of errors in categories, while Ei is Total Errors)

Then calculate the error index EI = ∑ (i×PIi)/PS

(PS is the size of product)

slide-14
SLIDE 14

Business Excellence Model by European Foundation for Quality Management

Leadership 10 % People Management 9% Policy and Strategy 8% Resources 9% Processes 14% People Satisfaction 9% Customer Satisfaction 20% Impact on Society 6% Business Results 15% Enablers 50% Results 50%

slide-15
SLIDE 15

Go al o f Quality Assuranc e Prac tic e s

Pro duc e a Quality So ftware in e stimate d time and e stimate d c o st

slide-16
SLIDE 16

Process Improvement Initiative Process Improvement Initiative

  • What are the important elements in any

What are the important elements in any process improvement initiative process improvement initiative

  • What is THE most important element in any

What is THE most important element in any process improvement initiative process improvement initiative

slide-17
SLIDE 17

If an organization wants to start the software process improvement initiative, what action may be taken?

slide-18
SLIDE 18

Process improvement actions

Establish quality assurance department Enforce coding standards in the organization Establish structured QA practices - Code reviews by QA participation of QA from phase-1 of SDLC Peer reviews supervised by QA Technical documentation by Developers Manage Employee turn over Provide incentives ? enforce coding standards establish peer reviews swap the work between peers? Define a SDLC for the organization Not just the phases – methodology for phases

slide-19
SLIDE 19

Process improvement actions

Measure the performance of SDLC phases Log the development activities with respect to phases Measure the time spent on different phases Increase the time before coding – focus on design – calculate the % time before coding Focus on the training of people Systematic grooming of people – software artifacts non-software training - communication Establish configuration management system Establish quality management system – bug tracking Knowledge management system Repository as simple as managing folders Knowledge sharing amongst peers

Caution! Avoid complexity and make things VERY simple