Software Development: Tools and Processes Lecture - 14: Software - - PowerPoint PPT Presentation
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
How we define quality?
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
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
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
Quality Assurance
Differentiate between Quality control (QA) & Quality Assurance (QC)
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
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
Formal Technical Reviews are important tools for quality improvement
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
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%
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
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)
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%
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
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
If an organization wants to start the software process improvement initiative, what action may be taken?
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
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