Vous êtes sur la page 1sur 4

What is Software Quality Assurance?

Dr. Linda H. Rosenberg


NASA
Software directly impacts not only mission success but also mission safety. Software
Quality Assurance (SQA) is critical to the success of every mission at NASA, but the
roles and responsibilities are often misunderstood. SQA covers all phases of the software
Thursday, 2 May 2002 development process, including safety, reliability, independent verification and validation,
Track 7: 9:00 - 9:40 and metrics. The purpose of this article is to help the reader understand software quality
Room 251 A - C assurance.

W ithin the complex systems devel- will touch briefly on the role it plays in with the ability of the product or service
oped throughout the aerospace quality assurance. Finally, it discusses the to fulfill its function. This is achieved
industry, software is playing an increasing- ways in which software safety and relia- through the features and characteristics
ly important role in mission success. bility are assessed from a quality perspec- of the product.
Methods for developing and assuring tive. These two areas are often neglected While this definition seems to be
software are often not well understood despite their critical role in mission suc- clear and unambiguous, the concept of
by program managers and, thus, are cess. quality really is not. Kitchenham states
often simply ignored. In such a case, quality is “hard to define, impossible to
ignorance is far from bliss; it is danger- Definitions measure, easy to recognize [3].” Gillies
ous. During the past few years, NASA has Software quality assurance is a combina- states that “Quality is generally transpar-
emphasized the faster, better, and cheap- tion of three concepts: quality, software ent when present, but easily recognized
er approach to developing missions, quality, and software quality assurance. in its absence [4].”
thereby making it more important than Therefore, while we can define quali-
ever to ensure the quality of its software ty in theory, in practice, and in use, an
products. It is this imperative that makes “In the real work of absolute definition is elusive.
the role of Software Quality Assurance software development,
(SQA) critical in the short term, but also Software Quality Defined
Software quality is defined in the
linked to mission success in the long criteria for quality Handbook of Software Quality Assurance in
term.
multiple ways but concludes with this
Assuring software quality requires are identified and definition: “Software quality is the fitness
that engineering knowledge and disci-
pline be applied at all phases of the devel- applied to differing for use of the software product [5].” This
opment life cycle. And just as with hard- definition implies the evaluation of soft-
extents as a result of ware quality related to the specification
ware, the final step in developing quality
and application of software quality.
products culminates in rigorous testing There are, however, criteria that help in
before release. Quality assurance engi- trade-off decisions.” the evaluation of software quality. For
neers are also required to possess suffi- each project, the appropriate criteria
cient domain knowledge to evaluate the While the terms are often used inter- need to be identified for the environ-
completeness and correctness of system changeably, we need to understand the ment.
requirements, and they must have the basics of quality before we can under- Two of the most often-cited models
ability to determine whether the design stand the components and problems of applying the criteria are the GE model
has incorporated all requirements accu- software quality assurance. proposed by McCall, which was later
rately. Ultimately, these specialists are adapted by Watts, and the Boehm model
responsible for advising management Quality Defined [4]. Below is a combined list of defini-
when or whether a product is reliable and Before defining software quality, we need tions of quality criteria for software.
meets quality standards. to define what is meant by quality. The • Correctness: extent to which a pro-
This article starts by discussing what Institute of Electrical and Electronics gram fulfills its specifications.
is meant by SQA. It then discusses the Engineers’ (IEEE) Standard Glossary of • Efficiency: use of resources execu-
aspects of how software quality assur- Software Engineering Terminology defines tion and storage.
ance is applied to both the products and quality as “the degree to which a system, • Flexibility: ease of making changes
the process. The article continues with component, or process meets (1) speci- required by changes in the operating
some of the major components of soft- fied requirements, and (2) customer or environment.
ware assurance. Software metrics are used user needs or expectations [1].” The • Integrity: protection of the program
to help numerically determine the quality International Standards Organization from unauthorized access.
of the products, noting they are underuti- (ISO) defines quality as “the totality of • Interoperability: effort required to
lized and often poorly understood. features and characteristics of a product couple the system to another system.
Another area of quality assurance not or service that bear on its ability to satis- • Maintainability: effort required to
well understood is independent verifica- fy specified or implied needs [2].” IEEE locate and fix a fault in the program
tion and validation (IV&V); this article and ISO definitions associate quality within its operating environment.

22 CROSSTALK The Journal of Defense Software Engineering May 2002


What is Software Quality Assurance?

• Portability: effort required to transfer approved plans, procedures, standards, Product Assurance
a program from one environment to and analyses. Product assurance activities At NASA’s Goddard Space Flight Center
another. focus on the changing level of product (GSFC), software quality assurance is
• Reliability: ability not to fail. quality within each phase of the life carried out by an independent group of
• Reusability: ease of re-using software cycle, such as the requirements, design, people whose sole function is to monitor
in a different context. code, and test plan. The objective is to quality implementation. The Assurance
• Testability: ease of testing the pro- identify and eliminate defects throughout Management Office recently created a
gram to ensure that it is error-free the life cycle as early as possible, thus list of tasks that SQA should perform
and meets its specification. reducing test and maintenance costs. during each phase of the software devel-
• Usability: ease of use of the software. opment life cycle. This list is comprehen-
In a perfect world all of these criteria Process Assurance sive and starts in the concept phase of a
would be met, but software is not devel- It has been proven that the use of stan- proposed project and concludes with the
oped or run in such a world, and trade- dards and process models has a positive operations and maintenance phase. For
offs are a part of all development proj- impact on the quality of the final soft- example, in the concept phase, SQA
ects. Often the most efficient software is ware. The purpose of standardization of should generate and/or assist in the
not portable, as portability would require SQA ensures that there is discipline and development/review of various pro-
additional code, decreasing the efficiency. control in the software development gram/project plans, including but not
Usability is subjective and varies depend- process via independent evaluation [5]. limited to project management plans,
ing on the system users. When using the ISO 9000 provided a way to gain external subcontract management, etc. In the
above criteria to define the assurance accreditation for a quality management requirements phase, SQA should obvi-
objectives of a software system, the pur- system. Many companies have used the ously generate and/or assist in the gener-
pose and use of the system must be application of ISO to software, but the ation of requirements, but it should also
taken into account. In the real work of complaint is that it tends to fossilize pro- do activities such as observing, witness-
software development, criteria for quality cedures rather than encourage process ing and/or participating in prototyping
are identified and applied to differing improvement [4]. activities.
extents as a result of trade-off decisions. One of the most common software To accomplish all of these tasks
development models is the Software would be an ideal set of SQA activities
Software Quality Assurance Defined on a project, but projects rarely have suf-
Again referencing IEEE, quality assur-
ance is defined as “a planned and system-
“It has been proven ficient funds or need to perform them
all. For most projects, the amount of
atic pattern of all actions necessary to that the use of SQA to be applied is negotiated based on
provide adequate confidence that an item the purpose, degree of mission risk, and
or product conforms to established tech- standards and process the funding level of the project. This
nical requirements [1].” This definition negotiation is critical to the success of
needs to be adapted to software taking models has a SQA. In the following sections, I will dis-
into account that, unlike hardware sys- cuss four activities in which SQA must
tems, software is not subject to wear or
positive impact on the participate during all phases: metrics,
physical breakage; consequently, its use- IV&V, safety, and reliability.
fulness over time remains unchanged
quality of the
Metrics
from its condition at delivery. Software final software.” Software metrics are often ignored dur-
quality assurance must be a systematic
ing the early software development life-
effort to improve the delivery condition. Engineering Institute’s Capability cycle phases and are not an activity gen-
In the Handbook of Software Quality Maturity Model® (CMM®), which has erally associated with SQA – but should
Assurance, the following definition is recently developed into the CMM be. For SQA practitioners, with their
given: “Software quality assurance is the IntegrationSM (CMMISM). The basic prem- responsibility for assuring both the
set of systematic activities providing evi- ise underlying both CMM and CMMI is processes and products of the software
dence of the ability of the software that the quality of the software product development, measurement is critical.
process to produce a software product is largely determined by the quality of Throughout each of the life-cycle phases,
that is fit to use [5].” These activities are the software development and mainte- metrics can be used to help in the evalu-
evaluated in part against the above criteria nance processes used to build it [6]. ation.
and measured as described in a later sec- Many commercial standards are also The Software Assurance Technology
tion of this article. found in common practice for software Center (SATC) at GSFC has identified
development. Many organizations such relevant metrics that can help projects
Software Quality Assurance as The Department of Defense and better evaluate the quality of their prod-
Applied NASA have, in the past, developed their ucts at fixed points within their develop-
The focus, therefore, of SQA is to mon- own standards for software develop- ment. For example, SATC developed a
itor continuously throughout the soft- ment, but recently have embraced the tool that derives metric information by
ware development life cycle to ensure the use of commercial standards instead. It analyzing requirement specification doc-
quality of the delivered product. This is now NASA’s policy to use commercial uments. Known as Automated Require-
requires monitoring both the processes standards whenever possible, thus ments Measurement,1 this tool provides
and the products. In process assurance, encouraging more standardization not indicators of the quality of the require-
SQA provides management with objec- only across NASA but within industry ments set. The tool’s objective is to iden-
tive feedback regarding compliance to also. tify terms within the text that may cause

May 2002 www.stsc.hill.af.mil 23


Software Engineering Technology

requirements to be ambiguous and hence ical software is defined by the NASA multiple years; the reliability of their soft-
difficult to test and to identify any Software Safety Standard as “Software ware must support the expected lifetime.
requirements that are incomplete [7]. that directly, or indirectly, contributes to The conditions of that software’s use will
It is up to the SQA organization to be the occurrence of a hazardous system be specified by the satellite’s mission.
cognizant of available and relevant met- state, controls or monitors safety critical IEEE continues to define software
rics that help evaluate and assure prod- functions, runs on the same system as reliability management as “The process of
ucts. When projects consistently use soft- safety critical software or impacts systems optimizing the reliability of software
ware metrics as part of their develop- that run safety critical software, or handles through a program that emphasizes soft-
ment, the SQA team needs only to vali- safety critical data [8].” The goal is for the ware error prevention, fault protection
date the metrics and ensure the correct QA activity to ensure that software con- and removal, and the use of measure-
data interpretation. If a project is not tributes to the safety and functionality of ments to maximize reliability in light of
employing metrics, however, then it is the the whole system. project constraints such as resources,
responsibility of SQA to encourage, and When a device or system could possi- schedule, and performance [9].” This def-
perhaps facilitate, their use or to develop bly lead to injury, death, or the loss of inition puts the burden of reliability not
an independent metrics program for suf- vital (and expensive) equipment, system just on the testing phase, but on the entire
ficient insight into the development. safety is always involved. Often hardware life cycle to ensure errors are prevented
devices are used to mitigate the hazard starting in the requirements phase deter-
Independent Verification and Validation potential or to provide a fail-safe mecha- mining the quality of such attributes as
IV&V is defined by three components; it nism should the worst happen. As soft- phrasing, completeness, and clarity.
must be independent technically, manage- ware becomes a larger part of electro- Throughout the life cycle, errors should
rially, and financially. IV&V must priori- mechanical systems, hardware hazard be detected and removed using such tech-
tize its own efforts, identifying where to niques as code walkthroughs and inspec-
focus its activities. It must have a clear tions. Relevant measurements should be
reporting route to the program manage-
ment, and the budget for these efforts
“When projects used at all phases to ensure the effective-
ness of all assurance activities. In the test-
must be allocated and controlled by the consistently use software ing phase, reliability can be evaluated
program. Control must occur at a level using one of the many reliability models.
that is independent of the development metrics as part of their These models, however, must be applied
organization such that the effectiveness with very strict rigor to ensure accuracy.
of the IV&V activity is not compromised. development, the Soft- It is the responsibility of the SQA
Verification is defined as the process organization to ensure that reliability is
of determining whether or not the prod- ware Quality Assurance continuously promoted and evaluated
ucts of a given phase of the software throughout the life cycle as specified
development cycle fulfill the requirements team needs only to above. Quality cannot be tested in at the
established during the previous phase, i.e., end of a project; it must be built in as the
whether or not it is internally complete,
validate the metrics and software is being developed. Reliability
consistent, and correct enough to support ensure the correct also impacts safety – a system cannot be
the next phase. Validation is the process deemed safe if it is not reliable.
of evaluating software throughout its data interpretation.”
development process to ensure compli- Conclusion
ance with software requirements. SQA is faced with many challenges start-
Verification often asks the question, “Are controls are being replaced or backed up ing with the method of defining quality
we building the product right?” Validation by software controls. Software has the for software. There needs to be a common
asks, “Are we building the right product?” ability not only to detect certain types of understanding as to what is high-quality
NASA has a facility in West Virginia error conditions more quickly than hard- software, but the software usage environ-
whose primary purpose is the accom- ware but also to respond more intelli- ment usually influences the final defini-
plishment of IV&V. Without SQA, IV&V gently, thereby avoiding a potentially haz- tion. There are many aspects of SQA,
is expensive and often less effective. ardous state. The increased reliance on from those within the phases of the soft-
Where SQA is a broad blanket across the software means that the safety and relia- ware development life cycle to those that
project, overseeing all process and prod- bility of the software become vital com- span multiple phases, i.e., safety, reliability,
uct activities, including software, IV&V ponents in a safe system [8]. and IV&V. SQA is a very complex area
focuses on only those processes and that is critical to the ultimate success of a
products determined to have the highest Reliability project; it is also one that requires a rather
risk and does an in-depth evaluation of IEEE defines software reliability as “The diverse set of skills. New knowledge areas
them. probability that software will not cause such as software safety and reliability are
the failure of a system for a specified time now being added to the core set of
Safety under specified conditions. The probabil- required skills. Finally, SQA must be inde-
Safety is a team effort and is everyone’s ity is a function of the inputs to and use pendent from development organizations
responsibility. Software is a vital part of of the system, as well as a function of the to be successful.◆
the system. Project managers, systems existence of faults in the software [9].”
engineers, software leads and engineers, Using this definition, expectations of reli- References
software assurance or quality assurance ability must be based on how the system 1. IEEE Std 610.12-1990. Glossary of
(QA), and system safety personnel all play is to be used and for what length of time. Software Engineering Terminology.
a part in creating a safe system. Safety-crit- At NASA, many of our satellites fly for Institute of Electrical and Electronics

24 CROSSTALK The Journal of Defense Software Engineering May 2002


What is Software Quality Assurance?

Engineers, Inc., 1990. ware. Institute of Electrical and


2. ISO 9003-3-1991. Quality Manage- Electronics Engineers, Inc., 1988.
ment and Quality Assurance Stan-
dards, Part 3: Guidelines for the Note
Application of ISO 9001 to the 1. Available on the SATC Web site at Get Your Free Subscription
Development, Supply and Mainten- no cost, see <http://satc.gsfc.nasa.
ance of Software. International gov>. Fill out and send us this form.
Standards Organization, 1991.
3. Kitchenham, Barbara, and Shari About the Author OO-ALC/TISE
Lawrence Pfleeger. “Software Quality: 7278 Fourth Street
Linda H. Rosenberg,
The Elusive Target.” IEEE Software Hill AFB, UT 84056-5205
13, 1, Jan. 1996: 12-21. Ph.D., serves as the
4. Gillies, Alan C. Software Quality, chief scientist for Soft- Fax: (801) 777-8069 DSN: 777-8069

Theory and Management. Inter- ware Assurance for Phone: (801) 775-5555 DSN: 775-5555
national Thomson Computer Press, Goddard Space Flight
1997. Center, NASA. She is a Or request online at www.stsc.hill.af.mil
5. Schulmeyer, G. Gordon, and James I. recognized international expert in the
McManus. Handbook of Software areas of software assurance, software NAME:________________________________________________________________________
Quality Assurance, 3rd ed. Prentice metrics, requirements, and reliability.
Hall PRT, 1998. Dr. Rosenberg has a doctorate degree
6. Software Engineering Institute. Capa- RANK/GRADE:_____________________________________________________
in computer science, a master’s of engi-
bility Maturity Model. Carnegie Mellon neering science degree in computer sci-
University, 1991. ence, and a bachelor’s of science POSITION/TITLE:__________________________________________________
7. Wilson, W., L. Rosenberg, and L. degree in mathematics.
Hyatt. “Automated Quality Analysis of ORGANIZATION:_____________________________________________________
Natural Language Requirement Speci- Office of Systems Safety and
fications.” Proceedings of the 14th Mission Assurance
Annual Pacific Northwest Software ADDRESS:________________________________________________________________
Goddard Space Flight Center,NASA
Quality Conference, Portland, Ore.,
Building 6 Code 300
1996. ________________________________________________________________
Greenbelt, MD 20771
8. NASA-STD-8719.13A. NASA Soft-
ware Safety Standard. NASA, 2001. Phone: (301) 286-0087
BASE/CITY:____________________________________________________________
9. IEEE Std 982.2-1988. Guide for the Fax: (301) 286-1667
Use of Standard Dictionary of E-mail: linda.h.rosenberg@
Measures to Produce Reliable Soft- gsfc.nasa.gov STATE:___________________________ZIP:___________________________________

PHONE:(_____)_______________________________________________________

JOVIAL GOT FAX:(_____)_____________________________________________________________

YOU PUZZLED? E-MAIL:_________________________________________@_________________________


STSC JOVIAL Services Can Help You
Put the Pieces Together With: CHECK BOX(ES) TO REQUEST BACK ISSUES:

• SPARC Hosted-MIPS R4000 Targeted JOVIAL Compiler MAY2000 " THE F-22
• SPARC Hosted-PowerPC Targeted JOVIAL Compiler
• Windows 95/98/ME/NT (WinX) Compiler JUN2000 " PSP & TSP
• Use of Licensed Software for Qualified Users
• 1750A JOVIAL ITS Products APR2001 " WEB-BASED APPS
• Computer Based Training
• On-Line Support J UL 2001 " TESTING & CM
Our services are free to members of the Department
of the Defense and all supporting contractors. Just give AUG2001 " SW AROUND THE WORLD
us a call.
S EP 2001 " AVIONICS MODERNIZATION
If you have any questions, or require more information,
please contact the Software Technology Support Center. DEC2001 " SW LEGACY SYSTEMS

JAN2002 " TOP 5 PROJECTS


JOVIAL Program Office
Kasey Thompson, Program Manager • 801 775 5732 • DSN 775 5732 MAR2002 " SOFTWARE BY NUMBERS
Dave Berg, Deputy Program Manager • 801 777 4396 • DSN 777 4396
Fax • 801 777 8069 • DSN 777 8069 • Web Site • www.jovial.hill.af.mil
APR2002 " RISKY REQUIREMENTS

May 2002 www.stsc.hill.af.mil 25

Vous aimerez peut-être aussi