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 products) • Quality means satisfying the customer needs • Quality means absence of defects • Performance Quality & Conformance Quality • Japanese quality framework - TQM
Total Quality Management: TQM TQM - Kaizen Customer Process Human side Focus Improvement of Quality Metrics, Models, Measurements, and Analysis • Achieve total customer satisfaction • Reduce Processes variation • Create company wide quality culture • Develop goal oriented measurement system • Grow new applications from existing systems
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 of 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 People Satisfaction People 9% Management 9% Processes Business Results Leadership 10 14% 15% % Customer Policy and Strategy Satisfaction 8% 20% Impact on Society 6% Resources 9% 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 Caution! Avoid complexity and make things VERY simple
Recommend
More recommend