Presentation on theme: "Software Quality Assurance. 2 What is Quality? Popular Views about Quality: – quality related to luxury, class and taste – quality is related to quality."— Presentation transcript:
Software Quality Assurance
2 What is Quality? Popular Views about Quality: – quality related to luxury, class and taste – quality is related to quality of life. – I know about quality when I see the product. Professional Views about Quality: – Conformance to requirements. – Fitness for use.
3 Two aspects of Software Quality “q” – Intrinsic product quality, often limited to defect rate and reliability. “Q” – Customer Satisfaction, often includes product quality and process quality.
4 Role of Customer Customers don’t buy products, they buy assurances that their expectations with the products would met. You also, can only sell assurances – in other words, Quality. Customer is in absolute position to judge the quality.
Software Quality Software quality is defined as the quality that ensures customer satisfaction by offering all the customer deliverables on performance, standards and ease of operations.
6 Quality Assurance Quality assurance is a system of activities designed to ensure production that meets pre-established requirements and standards.
Software Quality Assurance What is “quality”? IEEE Glossary: Degree to which a system, component, or process meets (1) specified requirements, and (2) customer or user needs or expectations ISO: the totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs
Quality Control What is quality control -- the series of inspections, reviews, and test used throughout the develop cycle of a software product Quality control includes a feedback loop to the process. Objective ---> minimize the produced defects, increase the product quality Key concept of quality control: --> compare the work products with the specified and measurable standards
Cost of Quality Cost of quality -->Quality is produced at cost. The cost of quality includes all costs incurred in the process of creation, generation, control and maintenance of quality or perform quality related work Quality cost includes: - Prevention cost: - quality planning - formal technical reviews - testing equipment - training to personnel
What is Software Quality Assurance (SQA)? “Set of systematic activities providing evidence of the ability of the software process to produce a software product that is fit to use”
What is SQA? Monitoring the processes – Provides management with objective feedback regarding process compliance to approved plans, procedures, standards, and analysis
What is SQA? Monitoring the products – Focus on the quality of product within each phase of the SDLC e.g., requirements, test plan, architecture, etc. – Objective: identify and remove defects throughout the lifecycle, as early as possible
Quality Standards Organizations Quality assurance systems help organization ensure that their deliverables meet customer requirements. They encompass a wide variety of tasks during a product’s lifecycle, which includes planning,controlling,testing, and developing the quality process. There are various quality assurance standards, which ensure that the product developed is effective and reusable. Some of the significant quality standards are described below:
Standard Definition “Standard is a published specification that establishes a common language, and contains a technical specification or other precise criteria and is designed to be used consistently, as a rule, a guideline, or a definition”.
15 Objectives of Software Quality Assurance Only Quality Control (testing) is not enough: – What would you do if your software does not pass the QC test? – QC is a reactive approach, not proactive one. Quality Assurance includes Proactive as well as Reactive approaches.
16 Measuring Software Quality Usually recognized in the form of bugs or defects. – Defect rate (defect/KLOC or defects/FP) – Reliability (Failure free operation) IBM monitors CUPRIMDSO – Capability (Functionality), Usability, Performance, Reliability, Installability, Maintainability, Documentation, Service, & Overall. HP monitors FURPS – Functionality, Usability, Reliability, Performance & Service.
17 Purpose of SQA Activities Practically, zero defect product is not possible to achieve. The purpose of quality assurance practices are to minimize the number of defects. How much efforts are needed to minimize the number of defects? – are you developing a customized project or product? – how critical your application is?
18 Developer to Tester Ratio There is no standard developer to tester ratio in IT industry. However, industry does have some norms: – For customized projects, ratio must be at least 3:1 – For products, ratio can be as high as 1:3
20 Organizational Positioning of SQA (Recommended) Support Manager Support Manager Admin Manager Admin Manager Project Manager 1 Project Manager 1 Project Manager 2 Project Manager 2
21 Top Management Support to SQA Department Proper staffing and hiring Separate budget for payroll and running expenses Separate capital budget Test facilities and environment Trust and confidence Authority Don’t force to close defects Don’t force to sign acceptance Act as an arbitrator for the conflicts between QA/Dev.
22 SQA Responsibilities for a Project Review of documents developed by development team. Track the compliance with standards. Development of QA Plan (test plan + test cases). Implementation of test cases (Black Box or Glass Box Testing). Management of bug repository. Participating in code and design reviews.
23 SQA Responsibilities for a Project (cont...) Requirements Collection Analysis Architecture & Design Development Testing Deployment Requirement Specs Functional Specs Design Specs Code & Executables Deployment Docs Typical SDLC phases and relevant Artifacts Reviews Implement Test Cases Implement Test Cases Review SQA Responsibilities
24 SQA Artifacts for a Project Requirement Specs Functional Specs Design Specs Code & Executables Deployment Docs Dev. ArtifactsSQA Artifacts RS Reviews FS Reviews DS Reviews Bug Reports DD Reviews Test Plan Test Cases More Test Cases SQA Artifacts (more)
25 Communication Between SQA and Development Development SCM SQA Development SQA
26 Responsibilities of Testing Team Responsibilities of a tester Design test cases Write test scripts Implement test cases Responsibility of SQA manager Give 25% time for reviewing test cases written Lead review meetings Resolve conflicts
27 Other Responsibilities of SQA Participate in product and process audits. Initiate and participate in developing standards. Develop SQA’s own standards, processes and checklists.
28 An Effective Testing Team SQA Team should be composed of: – Members with different background – Members from different domains – Technical gurus and user representatives – Members with more analytical abilities.
29 Characteristics of Good SQA Engineer Experience & Education as a programmer or analyst. A thick skin. Good sense of humor. Tolerance for disorder. Firmness. Evidence oriented. Logical. Honest. Self sufficient.
History of ISO ISO, founded in 1947, is a worldwide federation of national standards bodies from some 100 countries, with one standards body representing each member country. Member organizations collaborate in the development and promotion of international standards.
Overview ISO (International Organization for Standardization) is the world's largest developer and publisher of International Standards. ISO is a network of the national standards institutes of over 160 countries
Scope ISO has more than International Standards and other types of normative documents16500 International Standards ISO's work program ranges from standards for traditional activities, such as agriculture and construction, through mechanical engineering, manufacturing and distribution etc.
Description about member countries of ISO ISO has three membership categories: Member bodies: Be the most representative standards body in each country These are the only members of ISO that have voting rights.
Description about member countries of ISO (Count.) Correspondent members: These countries do not follow ISO standards and they also do not have their own standards organizations e.g. Afghanistan. Subscriber members: Countries having small economies. They pay reduced membership fees, but can follow the development of standards.
History The Institute of Electrical and Electronics Engineers or IEEE (read eye-triple-e) is an international non-profit, professional organization for the advancement of technology related to electricity. It has the most members of any technical professional organization in the world, with more than 370,000 members in around 160 countries.
History Cont. The IEEE formed in 1963 with the merger of AIEE (American Institute of Electrical Engineers, formed in 1884), IRE (Institute of Radio Engineers, formed in 1912). IEEE From its earliest origins, has Advanced the theory and application of electrot echnology and allied sciences Served as a catalyst for technological innovation; and supported the needs of its members through a wide variety of programs and services.
History Cont. AIEE, IRE Merge to form IEEE In 1961, the leadership of both the IRE and the AIEE sought to resolve these difficulties through consolidation. A merger plan was formulated and approved, becoming effective on 1 January 1963.
Microsoft Solution Framework (MSF) MSF is a flexible, interrelated series of models that can guide an organization through assembling the resources, people, and techniques needed to bring technology infrastructure in line with business objectives.
MSF Models MSF consists of two models 1. MSF two Models 2. MSF Process/Governance Models
1. MSF Team Model This describes the role of various team members in a software development project. The team model roles are: Product Management: Mainly deals with customers and define project requirements, also ensures customer expectations are met. Program Management: Maintains project development and delivery to the customer
1. MSF Team Model Architecture: Responsible for solution design, making sure the solution design optimally satisfies all needs and expectations Development: Develops according to the specifications. Test: Tests and assures product quality Release/Operations: Ensures smooth deployment and operations of the software User Experience: Supports issues of the users.
Process Model: Process model defined order of activities related to the project and represent life cycle of project. There are four phases in the process model: 1. Envisioning 2. Planning 3. Developing 4. Stabilizing