Lecture 1 Introduction
Lecture 1 Introduction
Lecture 1
Text Book
Software Quality Engineering by Jeff Tian
Quality Expectations
Cancelled
31%
Successful
16%
Challenged
53%
Software Failures: Cost Overruns
Average cost for “failed” projects is 189% of the original estimate, i.e.
almost double.
Software Failures: Time Overruns
Overrun Amount % cases
Under 20% 13.9%
21 - 50% 18.3%
51 - 100% 20.0%
101 - 200% 35.5%
201 - 400% 11.2%
Over 400% 1.1%
Quality Assurance
Testing
What is Quality
• Quality defines to any measurable characteristics such as correctness,
maintainability, portability, testability, usability, reliability, efficiency,
integrity, reusability, and interoperability.
What is Quality
SQA Encompasses
• A quality management approach
• Effective Software engineering technology (methods and tools)
• Formal technical reviews that are tested throughout the software process
• A multitier testing strategy
• Control of software documentation and the changes made to it.
• A procedure to ensure compliances with software development standards
• Measuring and reporting mechanisms.
Software Quality Assurance
Following activities are performed by an independent SQA group: 1
• Prepares an SQA plan for a project: The program is developed during project
planning and is reviewed by all stakeholders. The plan governs quality
assurance activities performed by the software engineering team and the
SQA group. The plan identifies calculation to be performed, audits and
reviews to be performed, standards that apply to the project, techniques for
error reporting and tracking, documents to be produced by the SQA team,
and amount of feedback provided to the software project team.
• Participates in the development of the project's software process
description: The software team selects a process for the work to be
performed. The SQA group reviews the process description for compliance
with organizational policy, internal software standards, externally imposed
standards (e.g. ISO-9001), and other parts of the software project plan.
Software Quality Assurance
Following activities are performed by an independent SQA group: 2
• Reviews software engineering activities to verify compliance with the defined
software process: The SQA group identifies, reports, and tracks deviations from
the process and verifies that corrections have been made.
• Audits designated software work products to verify compliance with those
defined as a part of the software process: The SQA group reviews selected work
products, identifies, documents and tracks deviations, verify that corrections have
been made, and periodically reports the results of its work to the project manager.
• Ensures that deviations in software work and work products are documented
and handled according to a documented procedure: Deviations may be
encountered in the project method, process description, applicable standards, or
technical work products.
• Records any noncompliance and reports to senior management: Non-
compliance items are tracked until they are resolved.
Software Quality Control
QA is an activity that establishes and calculates the QC is an activity that demonstrates whether or not the
processes that produce the product. If there is no process, product produced met standards.
there is no role for QA.
QA sets up a measurement program to evaluate processes QC verified whether particular attributes exist, or do not
exist, in a explicit product or service.
QA identifies weakness in processes and improves them QC identifies defects for the primary goals of correcting
errors.
Quality Assurance is a managerial tool. Quality Control is a corrective tool.