Software Quality Assurance in Software Engineering

 
Chapter 7
Software Quality
Assurance
 
Software engineering
 
By: Lecturer Raoof Talal
 
7.1 Software Quality Assurance
 
Even the most jaded software developers will agree
that high-quality software is an important goal. But how
do we define 
quality
? A wag once said, "Every program
does something right, it just may not be the thing that we
want it to do."
 
 
Many definitions of software quality have been
proposed in the literature. For our purposes, software
quality is defined as
 Conformance to explicitly stated functional and
performance requirements, explicitly documented
development standards, and implicit characteristics
that are expected of all professionally developed
software.
 
There is little question that this definition could be
modified or extended. In fact, a definitive definition of
software quality could be debated (
discuss
) endlessly.
For the purposes of this book, the definition serves to
emphasize three important points:
1.
Software requirements 
are the foundation from
which quality is measured. Lack of conformance to
requirements is lack of quality.
 
2.     
Specified standards 
define a set of development
criteria that guide the manner in which software is
engineered. If the criteria are not followed, lack of
quality will almost surely result.
3.   A set of 
implicit requirements 
often goes
unmentioned (e.g., the desire for ease of use and good
maintainability). If software conforms to its explicit
requirements but fails to meet implicit requirements,
software quality is suspect.
 
7.1.1 Background Issues
 
Quality assurance is an essential activity for any
business that produces products to be used by others.
Prior to the twentieth century, quality assurance was the
sole responsibility of the craftsperson who built a
product. The 
first formal quality 
assurance and control
function was introduced at 
Bell Labs in 1916 
and spread
rapidly throughout the manufacturing world. During the
1940s, more formal approaches to quality control were
suggested.
 
These relied on 
measurement
 and 
continuous
 
process
improvement
 as key elements of quality management.
Today, every company has mechanisms to ensure quality in
its products.
The history of quality assurance in software
development parallels the history of quality in hardware
manufacturing. During the early days of computing (1950s
and 1960s), quality was the sole responsibility of the
programmer
. Standards for quality assurance for software
were introduced in military contract software development
during the 
1970s
 and have spread rapidly into software
development in the commercial world.
 
The 
SQA group 
serves as the customer's in-house
representative. That is, the people who perform SQA must
look at the software from the 
customer's point of view
.
Does the software adequately meet the quality factors?
 Has software development been conducted according to
pre-established standards?
Have technical disciplines properly performed their roles
as part of the SQA activity?
 The SQA group attempts to answer these and other
questions to ensure that software quality is maintained.
 
7.1.2 SQA Activities
 
The charter of the SQA group is to assist the software team
in achieving a high quality end product. The Software
Engineering Institute recommends a set of 
SQA activities 
that
address quality assurance. These activities are performed by an
independent SQA group 
that:
1.
Prepares an SQA plan for a project.
2.
Participates in the development of the project’s software
process description.
 
3.
Reviews software engineering activities to verify
compliance with the defined software process.
4.
Audits designated software work products to verify
compliance with those defined as part of the software process.
5.
Ensures that deviations in software work and work products
are documented and handled according to a documented
procedure.
6.
Records any noncompliance and reports to senior
management.
 
7.2 Formal Technical Reviews
A formal technical review is a software quality assurance
activity performed by software engineers (and others). The
objectives of the 
FTR
 
are:
1.
To uncover errors in 
function
, 
logic
, or 
implementation
 for
any representation of the software.
2.
To verify that the software under review meets its
requirements.
3.
To ensure that the software has been represented
according to predefined standards.
 
4.
To achieve software that is developed in a uniform
manner.
5.
To make projects more manageable.
 
Each 
FTR
 is conducted as a meeting and will be
successful only if it is properly planned, controlled, and
attended. In the sections that follow, guidelines are presented
as a representative formal technical review.
 
7.2.1 The Review Meeting
Regardless of the FTR format that is chosen, every
review meeting should abide by the following constraints:
Between 
three and five 
people (typically) should be
involved in the review.
Advance preparation should occur but should require no
more than 
two hours 
of work for each person.
The duration of the review meeting should be less than
two hours
.
 
Given these constraints, it should be obvious (
clear
)
that an FTR focuses on a 
specific
 (and 
small
) part of the
overall software.
For example
, rather than attempting to review an entire
design, walkthroughs are conducted for each component or
small group of components. By narrowing focus, the FTR
has a higher likelihood of uncovering errors.
 
The review meeting is attended by the 
review leader
, all
reviewers
, and the 
producer
. One of the reviewers takes on the
role of the 
recorder
; that is, the individual who records (in
writing) all important issues raised during the review.
The FTR begins with an 
introduction
 of the agenda and a
brief introduction 
by the producer. The producer then proceeds
to "
walk through
" the work product, explaining the material,
while reviewers raise issues based on their advance
preparation. When valid problems or errors are discovered, the
recorder notes each.
 
At the end of the review, all attendees of the FTR must
decide whether to
(1) accept the product without further modification,
(2) reject the product due to severe errors (once corrected,
another review must be performed), or
(3) accept the product provisionally (minor errors have
been encountered and must be corrected, but no additional
review will be required).
The decision made, all FTR attendees complete a 
sign-off
,
indicating their participation in the review and their
concurrence with the review team's findings.
Slide Note
Embed
Share

Quality assurance in software engineering is vital for ensuring that software meets explicit requirements, development standards, and implicit characteristics. The definition of software quality is explored, emphasizing the importance of adhering to requirements and standards, as well as meeting implicit user expectations. The background of quality assurance is discussed, highlighting its evolution and significance in product development.

  • Software Quality Assurance
  • Software Engineering
  • Development Standards
  • Requirement Conformance
  • Quality Management

Uploaded on Sep 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Software engineering Software engineering Chapter 7 Software Quality Assurance By By: Lecturer : Lecturer Raoof Raoof Talal Talal

  2. 7.1 Software Quality Assurance Even the most jaded software developers will agree that high-quality software is an important goal. But how do we define quality? A wag once said, "Every program does something right, it just may not be the thing that we want it to do."

  3. Many definitions of software quality have been proposed in the literature. For our purposes, software quality is defined as Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software.

  4. There is little question that this definition could be modified or extended. In fact, a definitive definition of software quality could be debated (discuss) endlessly. For the purposes of this book, the definition serves to emphasize three important points: 1. Software requirements are the foundation from which quality is measured. Lack of conformance to requirements is lack of quality.

  5. 2. Specified standards define a set of development criteria that guide the manner in which software is engineered. If the criteria are not followed, lack of quality will almost surely result. 3. A set of implicit requirements often goes unmentioned (e.g., the desire for ease of use and good maintainability). If software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect.

  6. 7.1.1 Background Issues Quality assurance is an essential activity for any business that produces products to be used by others. Prior to the twentieth century, quality assurance was the sole responsibility of the craftsperson who built a product. The first formal quality assurance and control function was introduced at Bell Labs in 1916 and spread rapidly throughout the manufacturing world. During the 1940s, more formal approaches to quality control were suggested.

  7. These relied on measurement and continuous process improvement as key elements of quality management. Today, every company has mechanisms to ensure quality in its products. The history of quality assurance in software development parallels the history of quality in hardware manufacturing. During the early days of computing (1950s and 1960s), quality was the sole responsibility of the programmer. Standards for quality assurance for software were introduced in military contract software development during the 1970s and have spread rapidly into software development in the commercial world.

  8. The SQA group serves as the customer's in-house representative. That is, the people who perform SQA must look at the software from the customer's point of view. Does the software adequately meet the quality factors? Has software development been conducted according to pre-established standards? Have technical disciplines properly performed their roles as part of the SQA activity? The SQA group attempts to answer these and other questions to ensure that software quality is maintained.

  9. 7.1.2 SQA Activities The charter of the SQA group is to assist the software team in achieving a high quality end product. The Software Engineering Institute recommends a set of SQA activities that address quality assurance. These activities are performed by an independent SQA group that: 1. Prepares an SQA plan for a project. 2. Participates in the development of the project s software process description.

  10. 3. Reviews software engineering activities to verify compliance with the defined software process. 4. Audits designated software work products to verify compliance with those defined as part of the software process. 5. Ensures that deviations in software work and work products are documented and handled according to a documented procedure. 6. Records any noncompliance and reports to senior management.

  11. 7.2 Formal Technical Reviews A formal technical review is a software quality assurance activity performed by software engineers (and others). The objectives of the FTR are: 1. To uncover errors in function, logic, or implementation for any representation of the software. 2. To verify that the software under review meets its requirements. 3. To ensure that the software has been represented according to predefined standards.

  12. 4. To achieve software that is developed in a uniform manner. 5. To make projects more manageable. Each FTR is conducted as a meeting and will be successful only if it is properly planned, controlled, and attended. In the sections that follow, guidelines are presented as a representative formal technical review.

  13. 7.2.1 The Review Meeting Regardless of the FTR format that is chosen, every review meeting should abide by the following constraints: Between three and five people (typically) should be involved in the review. Advance preparation should occur but should require no more than two hours of work for each person. The duration of the review meeting should be less than two hours.

  14. Given these constraints, it should be obvious (clear) that an FTR focuses on a specific (and small) part of the overall software. For example, rather than attempting to review an entire design, walkthroughs are conducted for each component or small group of components. By narrowing focus, the FTR has a higher likelihood of uncovering errors.

  15. The review meeting is attended by the review leader, all reviewers, and the producer. One of the reviewers takes on the role of the recorder; that is, the individual who records (in writing) all important issues raised during the review. The FTR begins with an introduction of the agenda and a brief introduction by the producer. The producer then proceeds to "walk through" the work product, explaining the material, while reviewers raise issues based on their advance preparation. When valid problems or errors are discovered, the recorder notes each.

  16. At the end of the review, all attendees of the FTR must decide whether to (1) accept the product without further modification, (2) reject the product due to severe errors (once corrected, another review must be performed), or (3) accept the product provisionally (minor errors have been encountered and must be corrected, but no additional review will be required). The decision made, all FTR attendees complete a sign-off, indicating their participation in the review and their concurrence with the review team's findings.

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#