Professional Documents
Culture Documents
Informatics
Evangelos C. Papakitsos
Software Quality Assurance is the overall activity of software evaluation, ensuring that an application
meets or exceeds predetermined standards of quality. This activity is conducted in all stages of
software development with the usage of inspections and testing methodologies, models and
techniques. Particular and important features of software, like the number of errors and efficiency
or complexity, are measured by applying related quality metrics. The preventive evaluation has a
high cost of performing, although much less than having to correct errors afterwards. This paper
briefly presents the relevant context and introduces the modified versions of an error monitoring
model and a complexity measurement, both being well-known and most verifiable. The scope of
modifications had been to considerably facilitate the evaluation process, adequately and with lower
cost, as tested by the author’s research teams in 20 software projects since 1992. © 2022 Bull. Georg.
Natl. Acad. Sci.
Software quality assurance, software quality metrics, software evaluation, software testing, complexity
Software Quality Assurance (SQA) consists of and submits its reports directly to the company’s
these processes, techniques and tools applied by administration. SQA is linked to the Software
professionals to ensure that software products meet Evaluation process, which is the technical part of
or exceed predetermined standards during the the software quality control, while SQA is the
Software Life Cycle (i.e., feasibility stage, analysis, administrative part.
design, implementation, delivery/installation, The activity of SQA includes the definition of
operation/maintenance and withdrawal). Without the criteria (factors), according to which the
the above standards, SQA does not guarantee that quality testing is performed, the approaches
any particular software product conforms to or followed for the definition and usage of these
exceeds a minimum industrially or commercially criteria and finally the quality metrics or Software
acceptable quality level. In other words, this is a Quality Metrics, where quantitative recording of
very wide activity, carried out by an independent various important features of the software is
working group of programmers (different than attempted. That is, it includes methodology,
those who have developed the examined software standards and metrics.
product), which is not involved in specific projects
includes the examination of the design and its • To detect customer requirements.
implementation by a quality-control team, in order • The tests should be planned long before they are
to find possible errors (inconsistencies, anomalies). performed, as soon as the client’s requirements
The conclusions of the review are recorded and are determined.
delivered to the chief engineer of the project, so that Evaluation has a high cost, because the design
their repair can follow. The reviews are carried out of inspections is carried out in every component of
under specific conditions, according to principles software development, with certain specifications.
and practices, while they are divided into three However, a satisfied software user spreads his/her
categories: Production Management Reviews, opinion to eight other potential customers of the
Design Reviews and Formal Technical Reviews. specific software, while a dissatisfied user spreads
These are conducted by creating a checklist for his/her dissatisfaction to 22 other potential
each case [1], i.e., they are applied in all stages of customers [3]. Therefore, the quality of software
software production, following the established products is an important goal of software
methodology of Software Evaluation (see next producers, despite the fact that product quality
section). control has high costs.
An indication of the inspection cost for 100 If we consider as unit the cost of repairing an
lines of code (LOC) is two work-hours, i.e., one for error that is discovered during the software design
preparation and one for inspection. Inspections phase, then the cost of repairing the same error:
must be short (two hours) to be effective, which • before the evaluation tests is 6.5 times larger,
means that they must be performed frequently • during the tests is 15 times larger,
during the software development process. The • after the release of the product on the market is
inspection rates are given as follows: 67 times larger.
• 400 LOC per hour from the quality-control Thus, the relationship between costs with and
team; without preventive quality control is shaped
• 100 LOC per hour from each member, during accordingly [1]. It is observed that the total relative
the preparation or the review. cost of repairing errors without preventive quality
• The errors discovered are classified into three control rises to 1577 units, in relation to the 682
categories: cost units of preventive quality control.
• Non-critical ones, for which the cost of There are international standards for the
correction is not justified in relation to their preparation of evaluation documents developed by
severity, so no further action is taken. the Institute of Electrical and Electronic
• Repairable ones, which are presented to the Engineering (IEEE), such as ANSI/IEEE std.830-
developer for repair. 1984 (drafting of specifications), ANSI/IEEE
• Critical ones, which require redesigning the std.1016-1987 (drafting of design) and ANSI/IEEE
initial options. std.829-1983 (drafting of review documentation).
identify the customer's needs. Next, during Diag- principles and the completeness, clarity and
nostic Evaluation, an output profile of the system is accuracy of the Design Document are the initial
generated in relation to some possible input-field requirements of this process. At the discretion of
classification; it is commonly used by the project the software engineer, at this stage, it is advisable
team and requires the creation of a large and to create a simple prototype of the final product
representative set of test data; it also includes (“prototyping”), which will be presented to the
regression testing, where a comparison is made user, and the basic functions of the system’s
between successive versions of the same system. interface will be evaluated. The application
Finally, Performance Evaluation is the measure- algorithms are designed in this stage. A critical part
ment of the performance of the system in its of Evaluation is checking the suitability of the
specific functions; criteria, metrics and evaluation algorithms that perform the individual functions of
methods are formulated for each function: the application. This test is based on the properties
• Criterion: What exactly is being evaluated (e.g., of the algorithms, for which there are both
accuracy, speed, error rate). evaluation criteria and metrics. After creating the
• Metrics: What property of the system is product’s Specifications, the inspection evaluates
measured (e.g., speed, error rate etc.) and how. whether the design implements these Specifications
• Method: How is the appropriate value determi- [1]. The evaluation of design has the following
ned for a given measurement of a tested system. advantages:
Evaluation is performed both on the individual • Errors are detected in time, before the implemen-
elements of a system (intrinsic) and on the whole tation stage; this makes them cheaper to repair.
(extrinsic). • It lasts and costs less than the evaluation of a
complete program.
Evaluation processes. Software Validation is the • There are cases (such as the use of symbolic
first out of three evaluation processes, by which the programming languages) that is practically the
developers answer the question: “Do we create the only possible way of Evaluation.
right product”? In less complex systems, Validation The Evaluation of the design and imple-
is performed at the analysis stage to ensure that the mentation stages, which is performed through
product created is what the user requires (i.e., “the Verification, is static and mathematical. The former
right one”!), by checking the Specification Docu- is applied during software development, while the
ment for its completeness, clarity and accuracy. latter is divided into formal (strict) and informal
Thus, a detailed list is compiled of all system (“Cleanroom”):
factors that are checked against the previous • Formal: The commands between an input point
criteria. Also, correlation tables of the factors are and an output point undoubtedly lead to the
drawn up, where it is noted whether their expected output.
relationships were checked [1]. • Informal: Software defects should be avoided
Software Verification is the second evaluation instead of detected and repaired; Informal
process, by which the developers answer the Mathematical Verification is an extremely
question: “Do we create the product correctly”? successful method, as it presents an error of
Verification is performed at the design stage to 0.27% compared to 5% of the rest of the testing
ensure that the product created is exactly what is methodology.
described in the Specification Document (i.e., The third and last Evaluation process includes a
“correct”!). The selection of the most appropriate series of tests and inspections, until the final
design method, the careful application of the design product is delivered to the user.
Cyclomatic Number V(G) gives a measure of quality of software, carried out through tests and
the amount of the required test data, whose purpose inspections during the production stages. Software
is to check every path of the flowgraph, namely, a Evaluation has a high cost, nevertheless, the total
piece of data for each path. The flowgraph of Fig. 2 relative cost of repairing errors without preventive
directly depicts 11 edges from node {m} quality testing rises to 1577 units, in relation to the
(initial/start) to node {w} (final/end). Yet, these 11 682 units of preventive quality testing. Therefore,
edges initially correspond to 18 different paths of the quality of software products is an important
the algorithm that have to be tested, while the actual goal of producers, despite the high cost of Software
paths of the particular processing problem are no Evaluation. The Evaluation process includes a
more than 26, excluding edge {(p, e)} that may series of quality inspections through measurements
repeat the previous process. The total combination and metrics.
of paths can be huge (around 457,000), mainly due The quality inspections are based on models
to edges {(e, e), (p, p), (p, e)} that correspond to that describe the creation and correction of errors.
loops. Indicatively, an algorithm of just 100 LOC, Such a model is the defect amplification model that
depicted by a flowgraph of 11 nodes and 15 edges classifies the incoming errors from a previous stage
that contains a single loop of 20 iterations, has of software development to the current one in those
approximately 100 trillion possible paths [1]. Such amplified (according to a factor) and those that are
magnitudes are impossible to be tested. not. Then, at the current stage additional errors are
Nevertheless, each loop has to be tested for five created, thus forming a total number of them. The
values, namely: inspection reveals a number of errors from the total
• a value below the lower limit of iteration, that are proportional to a detection factor, which are
• the value of the lower limit of iteration, corrected, therefore reducing accordingly the errors
• a value above the upper limit of iteration, that go to the next stage. The amplification and
• the value of the upper limit of iteration, detection factors are determined empirically. To
• an intermediate value between the lower and avoid the additional effort and cost required for
upper limits of iteration. distinguishing the incoming errors in two classes,
Therefore, it is suggested herein that each loop the simplified defect amplification model has been
should correspond to five regions or edges, devised that proposes a single class of incoming
formulating the Extended Cyclomatic Number errors, modifying the amplification factor
EV(G). In this case, the flowgraph of Fig. 2, having accordingly.
three loops, contains 18 enclosed regions or 23 Another crucial aspect of quality inspections is
edges with EV(G) = 19, which is a value much the measurement of Software Efficiency, which
closer than V(G) = 7 to either the 18 initial or the depends on the application’s code, especially
26 actual paths that have to be tested, thus allowing regarding the feature of software complexity. This
more accurately the selection of test data. measurement is conducted through quality metrics
that are quantitative indicators describing the
Conclusion evaluated feature (i.e., complexity). One of the best
known and most verifiable complexity metrics is
SQA includes processes, techniques and criteria
the Cyclomatic Number V(G) of McCabe, which is
that are applied by software engineers for
calculated through the flowgraph of the algorithm
performing the quality testing, which ensures that
inspected, giving a measure of the amount of
software products conform to a minimum
required test data. V(G) is extremely important for
acceptable quality level or exceed it. Software
being the only metric that can be used proactively,
Evaluation is the main process for ensuring the
since it can be calculated at the design stage of Both modified techniques of evaluation
software. Yet, the calculated V(G) is not close presented herein (i.e., the simplified defect
enough to the algorithmic paths that have to be amplification model and the Extended Cyclomatic
tested. Therefore, the Extended Cyclomatic Number) have been tested by the author and his
Number EV(G) has been introduced herein, research partners during the implementation of 20
additionally considering the standard practices for small to medium-size software projects conducted
testing loops. The value of EV(G) is much closer to from 1992 to 2019. Their usage may facilitate the
the actual number of algorithmic paths to be tested. inspection process adequately.
ინფორმატიკა
ე. პაპაკიტსოსი
REFERENCES