Sei sulla pagina 1di 22

Software quality assurance( Quality management) is an

umbrella activity that is carried out throughout the software


process. It encompasses:
An SQA process
Specific quality assurance and quality control tasks
Effective software engineering practice
Control of software work products and changes made to them
Procedure to ensure compliance with software development
standards
Measurement and reporting mechanisms
Software quality is important

• SQA encompasses:
(1) a quality management approach,

(2) effective software engineering technology (methods and tools),

(3) formal technical reviews that are applied throughout the


software process,

(4) a multitiered testing strategy,

(5) control of software documentation and the changes made to it,

(6) a procedure to ensure compliance with software development


standards (when applicable), and

(7) measurement and reporting mechanisms.


Elements of SQA
 Standards- ISO ,IEEE etc proposed for software
development. The Job of SQA is to ensure that
standards have been adopted are followed and all work
products conforms to them
 Reviews and Audits: Done to uncover errors
 Testing- to find errors
 Error/defect collection and analysis: Analyses the
error to better understand them and what software
engineering activities are best suited to eliminating
them
 Change management: ensures that change
management practices have been instituted.
 Education: one way to improve organization’s
software engineering practices is through education
of software engineers , their managers and
stakeholders.
 Vendor management:
 Three categories of softwares acquired from
vendors
 Shrink wrapped packages :Shrink wrap contracts are
license agreements or other terms and conditions of a
contractual nature which can be read and accepted by
the consumer only after the consumer opens the
product.
 Tailored shell-provides basic skeletal structure that
is custom tailored to the needs of the purchaser.
 Contracted software –custom designed and
constructed from the specifications provided by
customer organization.
 Safety :SQA should assess the impact of software
failure and for initiating those steps required to reduce
risk.

 Security management: every software organization


should institute policies that protect data at all levels
establish firewall protection and ensure that software has
not been tampered with internally.

 Risk management: The SQA organization ensures that


risk management activities are properly conducted and
risk related contingency plans have been established.
SQA Tasks
• Prepares an SQA plan for a project.
• The plan identifies
• • evaluations to be performed
• • audits and reviews to be performed
• • standards that are applicable to the project
• • procedures for error reporting and tracking
• • documents to be produced by the SQA group
• • amount of feedback provided to the software project
team
• Participates in the development of the projects
software process description.
• The SQA group reviews the process description for
compliancewith organizational policy, internal software
standards, externally imposed standards (e.g., ISO-9001),
and other parts of the software project plan.
• Reviews software engineering activities to verify
• compliance with the defined software process.
• identifies, documents, 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 part of the software
• process.
• reviews selected work products; identifies, documents, and tracks
• deviations; verifies that corrections have been made
• 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.
• Records any noncompliance and reports to senior
• management.
• Noncompliance items are tracked until they are resolved.
SQA Goals
• Requirements quality. The correctness, completeness,and
consistency of the requirements model will have a strong influence
on the quality of all work products that follow.

• Design quality. Every element of the design model should be


assessed by the software team to ensure that it exhibits high quality
and that the design itself conforms to requirements.

• Code quality. Source code and related work products (e.g., other
descriptive information) must conform to local coding standards and
exhibit characteristics that will facilitate maintainability.

• Quality control effectiveness. A software team should


• apply limited resources in a way that has the highest likelihood of
achieving a high quality result.
Statistical SQA
• Information about software errors and defects is
collected and categorized.

• An attempt is made to trace each error and defect to


its underlying cause (e.g., non-conformance to
specifications, design error, violation of standards, poor
communication with the customer).
• Using the Pareto principle (80 percent of the defects
can be traced to 20 percent of all possible causes),
isolate the 20 percent (the vital few).
• It is sometimes called 80-20 rule.
• Which means 80% of the problems are from 20%of
possible sources.In software it means 80% of defects
are caused by 20%of root causes or that 80% of defects
are found in 20%of the code
• Once the vital few causes have been identified, move
to correct the problems that have caused the errors and
• defects.
Six sigma for software engineering
• The term “six sigma” is derived from six standard
deviations—
• 3.4 instances (defects) per million occurrences—
implying an extremely high quality standard.
• The Six Sigma methodology defines three core steps:
• Define customer requirements and deliverables and
project goals via well-defined methods of customer
communication
• Measure the existing process and its output to
determine current quality performance (collect defect
metrics)
• Analyze defect metrics and determine the vital few
causes.
• Improve the process by eliminating the root causes of
defects.
• Control the process to ensure that future work does
not reintroduce the causes of defects.
Six Sigma and Statistics
• The term sigma means standard deviation.
• Standard deviation measures how much variation
exists in a distribution of data.
• Standard deviation is a key factor in determining the
acceptable number of defective units found in a
population.
• Six Sigma projects strive for no more than 3.4 defects
per million opportunities, yet this number is confusing to
many statisticians.

13
Six Sigma Uses a Conversion
Table
• Using a normal curve, if a process is at six sigma,
there would be no more than two defective units per
billion produced.
• Six Sigma uses a scoring system that accounts for
time, an important factor in determining process
variations.
• Yield represents the number of units handled
correctly through the process steps.
• A defect is any instance where the product or service
fails to meet customer requirements.
•14 There can be several opportunities to have a defect.
Figure 8-2. Normal Distribution
and Standard Deviation

15
Table 8-3. Sigma and Defective
Units

16
Software reliability
• Software reliability is defined in statistical terms as the
probability of failure free operation of a computer
program in a specified environment for a specified time.
• Software availability is the probability that the program is
operating according to the requirements at a specified
point of time.
Software reliability
• A simple measure of reliability is mean-timebetween-
• failure (MTBF), where
• MTBF = MTTF + MTTR
• The acronyms MTTF and MTTR are meantime-
• to-failure and mean-time-to-repair,
• respectively.
• Software availability is the probability that a
• program is operating according to requirements
• at a given point in time and is defined as
• Availability = [MTTF/(MTTF + MTTR)] x 100%
Software Safety

• Software safety is a software quality


assurance activity that focuses on the
identification and assessment of potential
hazards that may affect software negatively and
cause an entire system to fail.
• If hazards can be identified early in the
• software process, software design features can
• be specified that will either eliminate or control
• potential hazards.
ISO 9001:2000 Standard

• ISO 9001:2000 is the quality assurance standard that


• applies to software engineering.
• The standard contains 20 requirements that must be
• present for an effective quality assurance system.
• The requirements delineated by ISO 9001:2000
address topics such as
• management responsibility, quality system, contract
review, design control, document and data control,
product identification and traceability, process control,
inspection and testing, corrective and preventive action,
control of quality records, internal quality audits, training,
servicing, and statistical techniques.
SQA Plan
• The SQA plan provides a road map for instituting
software quality assurance. Developed by SQA group
the plan serves as a template for SQA activities that are
instituted for the project.
• The standard recommends a structure that identifies
• 1.the purpose and scope of plan
• 2.A description of all software engineering work
products.
• 3.All applicable standards and practices that are applied
• During the software process
• 4.SQA actions ad tasks and their placement throughout
the software process
• 5.The tools and methods that support SQA actions and
tasks
• 6.software configuration management procedures.
• 7. methods for assembling safeguarding
• And maintaining all SQA related records
• 8.organizational roles and responsibilities relative to
product quality

Potrebbero piacerti anche