0% found this document useful (0 votes)
89 views14 pages

Software Quality Assurance Overview

This document discusses software quality assurance. It defines software quality as meeting specifications, though specifications can be incomplete. Quality attributes include safety, security, reliability and others. Quality assurance involves establishing organization-wide policies and project-specific plans. It aims to control quality through following appropriate procedures. Advantages include fewer defects, higher reliability, and reduced costs, though it requires resources and cultural change. Quality reviews validate quality during each phase through identifying improvements. The roles of an SQA engineer include documenting test cases, performing risk analysis, and identifying and tracking bugs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views14 pages

Software Quality Assurance Overview

This document discusses software quality assurance. It defines software quality as meeting specifications, though specifications can be incomplete. Quality attributes include safety, security, reliability and others. Quality assurance involves establishing organization-wide policies and project-specific plans. It aims to control quality through following appropriate procedures. Advantages include fewer defects, higher reliability, and reduced costs, though it requires resources and cultural change. Quality reviews validate quality during each phase through identifying improvements. The roles of an SQA engineer include documenting test cases, performing risk analysis, and identifying and tracking bugs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Course Notes Set 5:

Software Quality Assurance

Computer Science and Software Engineering


Auburn University
What is Software Quality?
• Simplistically, quality is an attribute of software
that implies the software meets its specification
• This definition is too simple for ensuring quality in
software systems
• Software specifications are often incomplete or
ambiguous
• Some quality attributes are difficult to specify
• Tension exists between some quality attributes, e.g.
efficiency vs. reliability
Software Quality Attributes
• Safety • Modularity
• Security • Complexity
• Reliability • Portability
• Resilience • Usability
• Robustness • Reusability
• Understandability • Efficiency
• Testability • Learnability
• Adaptability
Software Quality
• Conformance to explicitly stated functional and performance
requirements, explicitly documented development standards, and
implicit characteristics that are expected of all professionally developed
software
• Software requirements are the foundation from which quality is measured.
• Lack of conformance to requirements is lack of quality.
• Specified standards define a set of development criteria that guide the
manner in which software is engineered.
• If the criteria are not met, lack of quality will almost surely result.
• There is a set of implicit requirements that often goes unmentioned.
• If software conforms to its explicit requirements but fails to meet its implicit
requirements, software quality is suspect.

[Adapted from Pressman 4th Ed]


Software Quality Assurance
• To ensure quality in a software product, an organization must have a three-
prong approach to quality management:
• Organization-wide policies, procedures and standards must be established.
• Project-specific policies, procedures and standards must be tailored from the
organization-wide templates.
• Quality must be controlled; that is, the organization must ensure that the
appropriate procedures are followed for each project
• Standards exist to help an organization draft an appropriate software quality
assurance plan.
• ISO 9000-3
• ANSI/IEEE standards
• External entities can be contracted to verify that an organization is standard-
compliant.
A Software Quality Plan
ISO
ISO9000
9000
model
model

Organization
Organization
quality
qualityplan
plan

Project
ProjectAA Project
ProjectBB Project
ProjectCC
quality
qualityplan
plan quality
qualityplan
plan quality
qualityplan
plan

[Adapted from Sommerville 5th Ed]


SQA Activities
• Applying technical methods
• To help the analyst achieve a high quality specification and a high quality design
• Conducting formal technical reviews
• A stylized meeting conducted by technical staff with the sole purpose of uncovering quality problems
• Testing Software
• A series of test case design methods that help ensure effective error detection
• Enforcing standards
• Controlling change
• Applied during software development and maintenance
• Measurement
• Track software quality and asses the ability of methodological and procedural changes to improve
software quality
• Record keeping and reporting
• Provide procedures for the collection and dissemination of SQA information
Advantages of SQA
• Software will have fewer latent defects, resulting in
reduced effort and time spent during testing and
maintenance
• Higher reliability will result in greater customer
satisfaction
• Maintenance costs can be reduced
• Overall life cycle cost of software is reduced
Disadvantages of SQA
• It is difficult to institute in small organizations,
where available resources to perform necessary
activities are not available
• It represents cultural change - and change is never
easy
• It requires the expenditure of dollars that would
not otherwise be explicitly budgeted to software
engineering or QA
Quality Reviews
• The fundamental method of validating the quality of a product or a
process.
• Applied during and/or at the end of each life cycle phase
• Point out needed improvements in the product of a single person or team
• Confirm those parts of a product in which improvement is either not
desired or not needed
• Achieve technical work of more uniform, or at least more predictable,
quality than what can be achieved without reviews, in order to make
technical work more manageable
• Quality reviews can have different intents:
• review for defect removal
• review for progress assessment
• review for consistency and conformance
Quality Reviews
Requirements
Requirements
Analysis
Analysis Specification
Review
1x
Design Design
Design Review

3-6x
Code Code
Code Review

10x Test
Testing Review
Testing

15-70x Customer
Maintenance Feedback
Maintenance

40-1000x
[Adapted from Pressman 4th Ed]
SQA
• A software quality assurance (QA) emphasises and
monitors every phase of the development process
to ensure that the design and software adhere to
company standards. Software delays are costly for
a company, so it's vital for releases to meet target
dates and stay within budget. A software quality
assurance engineer helps meet deadlines by
breaking up the development process into
attainable testing goals and relaying any issues
back to the development and product teams or
leaders.
Roles of SQA
A QA engineer's duties can be diverse and
comprehensive. They generally perform the
following tasks with some regularity:
•Document test cases
•Perform and document risk analysis
•Record test progress and results
•Code automated tests
•Create test plans
•Develop standards and procedures to determine product
quality and release readiness
•Discover bugs within software
•Drive innovation and streamline overall testing processes
•Identify, isolate, and track bugs throughout testing
•Identify any potential problems that users might
encounter
•Perform manual and automated testing
•Research and analyze product features being tested
•Research new tools, technologies, and testing processes

You might also like