530 likes | 813 Views
Software Quality Assurance . “What is quality software and how to achieve it?”. Lecture Objectives. To discuss what is meant by quality in software To understand the importance of quality in software engineering To describe the features of quality software
E N D
Software Quality Assurance “What is quality software and how to achieve it?” TCS2411 Software Engineering
Lecture Objectives • To discuss what is meant by quality in software • To understand the importance of quality in software engineering • To describe the features of quality software • To describe the measures used in assessing software quality • To understand the international standards that are applied to assess software quality TCS2411 Software Engineering
What Is Quality Software? • Is it software that works? • Is it software that is error-free? • Is it software that is very well-documented and has help facility for all its functions? • Is it software that does not ‘hang’ the machine? • Is it software that does not ‘bomb’? TCS2411 Software Engineering
Group Project • How do you ensure the quality of the software you are developing? • Have you defined the standards and tasks to ensure the quality of the software? • Will the customer say that your software is a quality product? • Are you fulfilling the customer’s expectations? TCS2411 Software Engineering
Software Quality Definition Conformance to • Explicitly stated functional and performance requirements • Explicitly documented development standards, and • Implicit characteristics that are expected of all professionally developed software (Pressman) TCS2411 Software Engineering
Software Quality Factors • Low defects level when deployed • Zero defect most preferably • High reliability • Capability of running without crashes • Majority of the user satisfy with software when conducted the survey • Effective customer support • Rapid defect repair TCS2411 Software Engineering
Correctness Reliability Robustness Performance User friendliness Verifiability Maintainability Reparability Safety Software Qualities • Evolvability • Reusability • Portability • Understandability • Productivity • Size • Timeliness • Visibility Select the critical attributes and plan how to achieve them TCS2411 Software Engineering
Benefits Of Software Quality • Reduced maintenance cost • Stable and useful product • Satisfy customer needs • Better chances for continuing releases • Build corporate culture and identity • Better chances for software and design reuse TCS2411 Software Engineering
Software Quality Assurance • Quality assurance – a set of establish framework (procedures & standard) used by an organization to achieve high quality software • Essential activity for any business that produce product to used by others • It need to be planned and systematic • It does not just happen • Assure each of the software qualities is met • Goal set in requirements specification • Goal realized in the implementation • SQA is applied at every stage of the software process • Quality standard is selected to apply to the software process TCS2411 Software Engineering
cost to find and fix a defect 100 80-130 log scale 13.00 10 SQA pays off here because defects are cheap to fix 4.00 2.00 1.30 1.00 1 Reqmts Design Code Test System test Field use Why SQA Payoff ? TCS2411 Software Engineering
Principle Of SQA • Set the standard and quality attributes that a software product must meet • The goal to achieve • Measure the quality of software product • There is a way to determine how well the product conforms to the standards and quality attributes • Track the values of the quality attributes • It is possible to assess how well we are doing • Use the information of software quality to improve the quality of future software product • There is a feedback into the software development process TCS2411 Software Engineering
SQA Activities • Application of Technical Methods • Conduct of Formal Technical Reviews • Software Testing • Enforcement of Standards • Control of Change • Measurement • Record keeping and Reporting TCS2411 Software Engineering
Application of Technical Methods • Select appropriate tools and methods to capture system requirements, analyze system, design, implementation and testing Why use methods and tools • To ensure high quality is achieve • Analyst achieve high quality specifications • Designer develop high quality designs • Ability to measure quality in specifications and designs TCS2411 Software Engineering
Conduct of Formal Technical Reviews • FTR is an activity to assess quality • A stylised meeting conducted by technical staff with the sole purpose of uncovering quality problems • Found to be effective in uncovering defects in software • All major software items should be subjected to technical review TCS2411 Software Engineering
Software Testing • Testing is a process of executing a program with the intent of finding errors, locate errors and to proof system correctness • Testing is conducted based on the developed test cases • Capture actual output • Compare actual output with expected output • Actual == Expected : Test case succeed • Actual != Expected : Test case failed • All test cases result must be recorded TCS2411 Software Engineering
Software Testing(Cont) • To identify errors in software developed • Test case design methods produces tests to be used on the software • Development of test strategy for a set of tests that uncovers all possible errors • Thorough testing is not as effective as expected in most cases TCS2411 Software Engineering
Enforcement of Standards • Formal standards and procedures varies from company to company • Could be dictated by customer, regulations, or self-imposed • If formal (written) standards exist, they must be followed to ensure quality • Assessment of compliance is done through FTR or audit TCS2411 Software Engineering
Need to be identified and described • Need to be uniquely itemized • Need to be organized Control of Change • An activity executed throughout the system life cycle to control change of products and life cycle artifacts • Items that needs control changes • Plans • Specification • Procedures • Audit • Report • Support • A software library need to be construct that store, manages and track these items TCS2411 Software Engineering
Control of Change (Cont) • Every change has potential for introducing errors or creating side effects that propagate errors • Change control process ensures quality • Formalizing requests for change, evaluating nature of change, and controlling the impact of change TCS2411 Software Engineering
Measurement • Measurement : Numeric derivation for some attribute of a software product / process • Compare the value with standard apply • Often expressed in $$$ and days • Integral part to any engineering discipline • Software metrics must be collected to track quality • Also to assess the impact of methodological and procedural changes on improved software quality TCS2411 Software Engineering
Record keeping and Reporting • Historical record for project - results of reviews, audits, change control, testing, other SQA activities • Provide procedures for collection and dissemination of SQA information • Dissemination to development staff based on need-to-know basis TCS2411 Software Engineering
McCall Software Quality Model Product Revision Product Transition Product Operations TCS2411 Software Engineering
McCall’s Software Quality Factors • Product Operations • Operational characteristics • Product Revision • Ability to undergo changes • Product Transition • Adaptability to new environments TCS2411 Software Engineering
McCall’s Software Quality Factors (Cont) TCS2411 Software Engineering
Reliability Simplicity S1 S2 S3 FCM By McCall Approach Factors – user concern oriented Criteria – software concern oriented Metrics – quantitative measures TCS2411 Software Engineering
Measuring the Factors • The factors are difficult to measure directly • McCall defined metrics that are assessed subjectively, on a scale of 0 to 10 • Includes auditability, accuracy, completeness, consistency,modularity, etc. • Factors calculated as follows Fq = c1 x m1 + c2 x m2 + … + cn x mn where cn = Weighting coefficient (or importance factor) mn = Criteria measured TCS2411 Software Engineering
Alternative Measurements • Hewlett-Packard developed a set of quality factors - FURPS • Functionality - features, capabilities, overall • Usability - human factors, consistency, doc. • Reliability - failure, accuracy, MTBF, recovery • Performance -speed,response time, efficiency • Supportability - maintainability, testability • Quality metrics for each step in SE process TCS2411 Software Engineering
Measuring Quality Factors In SE Process Investigations/ Specifications Design Implementation Testing Support # ..... % ... F U R P S TCS2411 Software Engineering
Software Quality Assurance • Quality assurance - essential activity for any business that produces products to be used by others • SQA - a planned and systematic pattern of actions to ensure quality in software • “Quality is Job #1” TCS2411 Software Engineering
Software Review • like a “filter” for SE process • must be applied at various points during development • all technical work need reviewing • also checks one’s mistakes • helps to discover defects early • design can introduce 50 - 65% of errors • review can uncover 75% of them • cost of subsequent steps reduced TCS2411 Software Engineering
ISO 9000 • Set of standards that can be applied to a range of organisations from manufacturing through to service industries • ISO 9001 - general standards, applies to design, development, maintaining products • ISO 9000-3 - supporting document for software development • Various countries also have own standards TCS2411 Software Engineering
ISO Certification • Some countries have bodies which certify that the quality process in an organisation conforms to ISO requirements • In Malaysia, SIRIM performs this function • Customer looks for certification in an organisation to indicate the quality of products or services TCS2411 Software Engineering
Areas covered by ISO 9001/9000-3 STANDARD (1/3) A. A. Quality System framework 1. Management responsibility • quality policy defined, documented, understood, implemented and maintained • responsibilities and authorities for all personnel defined • in-house verification resources defined, trained and funded • a designated manager ensures that the quality program is implemented and maintained 2. Quality system • requires a documented quality system be established • should be an integral process throughout the entire life cycle 3. Internal quality system audits • requires audits be planned and performed • results communicated to management • deficiencies corrected 4. Corrective action • requires causes of non-conforming product be identified • potential causes of non-conformance eliminated • procedures changed as a result TCS2411 Software Engineering
B. Quality Life Cycle Activities 1. Contract review • contracts are reviewed to determine whether the requirements are adequately defined, agree with the bid, and can be implemented 2. Purchaser’s requirements specification • procedures to identify and collect purchaser’s requirements 3. Development planning • production processes are defined and planned 4. Quality record • quality assurance process is planned 5. Design and implementation • procedures to control and verify the design • includes planning design activities, identifying inputs and outputs, verifying the design and controlling design changes 6. Testing and validation • requires systems/products to be tested and validated before use • records of testing are kept 7. Acceptance • procedures for acceptance should be established 8. Replication, delivery and installation • procedures for the above should be established and maintained 9. Maintenance • requires that maintenance activities be performed as specified Areas covered by ISO 9001/9000-3 STANDARD (2/3) TCS2411 Software Engineering
Areas covered by ISO 9001/9000-3 STANDARD (3/3) C. Quality System Supporting Activities 1. Configuration management • process of development and maintenance should be documented and controlled 2. Document control • distribution and modification of documents should be controlled 3. Quality records • quality records should be collected, maintained and dispositioned 4. Measurement • where appropriate, adequate statistical techniques should be identified and used to verify the acceptability of process capability and product characteristics 5. Rules, practices and conventions • are in place and followed 6. Tools and Techniques • are applied appropriately to support the development process 7. Purchasing • purchased products conform to their specified requirements 8. Included software product • should be verified and maintained 9. Training • training needs should be identified and training provided since related tasks may require qualified personnel • training records should be maintained TCS2411 Software Engineering
Quality Management System ISO 9000 Quality Models instantiated as Organisational Quality Manual Organisational Quality Process documents is used to develop instantiated as Project Quality Management Project 1 Quality Plan Project 2 Quality Plan Project 3 Quality Plan TCS2411 Software Engineering
An organisation that have SQA tasks in place and a quality management process would have most of ISO elements Ideally quality management should be separate from project management This is to ensure quality considerations are not compromised by concerns of budget and schedule ISO & SQA TCS2411 Software Engineering
Understanding existing processes and changing these processes to improve product quality and/or to reduce costs and development time Assume that key factor to product quality is the quality of development process kaizen - process of continuous process improvement Process Improvement TCS2411 Software Engineering
Developed by Software Engineering Institute (SEI) of Carnegie-Mellon U SEI was established to improve the capabilities of US software industry Focus on improving the process of software engineering Similar to ISO, organisations are assessed and certified to be on Level 1 to Level 5 Capability Maturity Model TCS2411 Software Engineering
Level 5 Optimizing Level 4 Managed Level 3 Defined Level 2 Repeatable Level 1 Initial Process Maturity Model TCS2411 Software Engineering
No effective management procedures or project plans No organisational mechanisms to ensure consistent use of formal procedures Successful software depends more on individual skill rather than organisation Level 1 Initial TCS2411 Software Engineering
Formal management, quality assurance and configuration control procedures Organisation can successfully repeat projects of the same type Lack of formal process model Level 2 Repeatable TCS2411 Software Engineering
Organisation has defined its process and has a basis for qualitative process improvement Formal procedures are in place to ensure that the defined process is followed in all software projects Level 3 Defined TCS2411 Software Engineering
Organisation has a defined process and a formal programme of quantitative data collection Process and product metrics are collected and fed into the process improvement activity Level 4 Managed TCS2411 Software Engineering
Organisation is committed to continuous process improvement Process improvement is budgeted and planned and is an integral part of the organisation’s process Level 5 Optimising TCS2411 Software Engineering
Optimizing Process change management Technology change management Defect prevention Managed Software quality management Quantitative process management Defined Peer reviews Intergroup coordination Software product engineering Integrated software management Training program Organization process definition Organization process focus Repeatable Software Configuration Management Software Quality Assurance Software Subcontract management Software project tracking and oversight Software project planning Requirements management Initial Key Process Area TCS2411 Software Engineering
Level 1 Initial none Level 2 Repeatable Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning Requirements management Key Process Areas TCS2411 Software Engineering
Level 3 Defined Peer reviews Intergroup coordination Software product engineering Integrated software management Training programme Organisation process definition Organisation process focus Key Process Areas (Continued) TCS2411 Software Engineering
Level 4 Managed Software quality management Quantitative process management Level 5 Optimising Process change management Technology change management Defect prevention Key Process Areas (Continued) TCS2411 Software Engineering
References • “Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 • “Software Engineering” by Ian Sommerville, Addison-Wesley, 2001 TCS2411 Software Engineering