Quality_Control_Methods_Using_Quality_Characterist
Quality_Control_Methods_Using_Quality_Characterist
Abstract: Since the Software Quality Model was defined as an international standard, many quality
assurance teams have used this quality model in a waterfall model for software development and
quality control. As more software is delivered as a cloud service, various methodologies have been
created with an awareness of the link between development productivity and operations, enabling
faster development. However, most development methods are development-oriented with awareness
of development progress, and there has been little consideration of methods that achieve quality
orientation for continuous quality improvement and monitoring. Therefore, we developed a method
to visualize the progress of software quality during development by defining quality goals in the
project charter using the quality model defined in international standards, classifying each test
by quality characteristics, and clarifying the quality ensured by each test. This was achieved by
classifying each test by quality characteristics and clarifying the quality ensured by each test. To use
quality characteristics as KPIs, it is necessary to manage test results for each test type and compare
them with past build results. This paper explains how to visualize the quality to be assured and
the benefits of using quality characteristics as KPIs and proposes a method to achieve rapid and
high-quality product development.
Citation: Kato, D.; Ishikawa, H.
Quality Control Methods Using Keywords: DevOps; quality control; quality characteristics; SQuaRE; quality analysis
Quality Characteristics in
Development and Operations. Digital
2024, 4, 232–243. https://doi.org/
10.3390/digital4010012 1. Introduction
Academic Editors: Mirjana Ivanović, In many software development environments, work is often divided between devel-
Richard Chbeir and Yannis opment (Dev) teams, which are responsible for developing features, and operations (Ops)
Manolopoulos teams, which are responsible for running the service. The Dev team’s primary mission is to
add new features to the software, while the Ops team’s mission is to maintain the current
Received: 15 October 2023
environment and keep the service stable and continuous. The Dev and Ops teams have
Revised: 25 January 2024
Accepted: 2 February 2024
very different missions, and this can lead to team disagreements. However, faster software
Published: 1 March 2024
development is required to keep up with the rapidly changing business environment. To
this end, teams should avoid becoming exhausted due to internal conflicts, and DevOps [1]
is attracting attention as a way of thinking that “resolves common conflicts between teams
and promotes smooth development through collaboration”.
Copyright: © 2024 by the authors. DevOps has a seven-step lifecycle: Plan, Code, Build, Test, Deploy, Operate, and
Licensee MDPI, Basel, Switzerland. Monitor.
This article is an open access article
distributed under the terms and
• Plan: Defines the task management and development requirements for the entire project;
conditions of the Creative Commons
• Code: Programmers create code according to development requirements;
Attribution (CC BY) license (https:// • Build: The application that will actually run is built from the source code;
creativecommons.org/licenses/by/ • Test: Test the built application for bugs and other defects;
4.0/). • Deploy: Deploy the application into production;
When considering software quality, the quality model [3] defined in the ISO 25000
series (SQuaRE) [4] can be used to classify the quality required of the software under
development in terms of the quality characteristics provided by this quality model, shown
Table 1. Famous quality metrics for quality control.
The project charter is a short, formal document that summarizes the entire project and
describes the project objectives, how it will be executed, and who will be involved. It is
used throughout the project lifecycle and is an important factor in project planning. These
Digital 2024, 4, FOR PEER REVIEW 4
projects can use quality characteristics for key quality management indicators, as shown in
Table 2.
Figure 2.
Figure 2. Test
Test pyramid.
pyramid.
By
As including all the practices
in the development process related to testing
established in the
for the Agile process
V-model, qualitypipeline
requirementsand thein
review activities necessary to build quality, such as design reviews,
agile projects are classified and normally described in the project plan. An international it is possible to organize
which
standardquality-enhancing activities are
for quality requirements [8]included
has already in each
beenpractice.
established, and functional and
Build, staticrequirements
non-functional analysis, unit cantesting, front-end
be classified usingandquality
back-end integration according
characteristics testing, and to
the
the E2E test pipeline
methodology can be used
described in this to standard.
identify commonThis methodimplementation
makes it possibleerrors and increase
to clarify the
software maturity. It isfor
quality requirements also possible
each actor. to Themeasure individual
initial quality execution
control is carriedtimes
outwithin
through the the
CI
process to immediately detect degradation due to code additions.
various activities of the development process and the rules defined in the project charter. For example, if the execu-
tion
The time of acharter
project test increases compared
is a short, formaltodocument
the previous test,
that it is likely that
summarizes the some
entireperformance
project and
degradation is occurring, and the impact of the added code should
describes the project objectives, how it will be executed, and who will be involved. It is be suspected.
usedDeploying
throughout builds in a continuous
the project lifecycle and delivery (CD) process
is an important allows
factor portability
in project properties
planning. These
to be checked
projects can useduring
quality thecharacteristics
installation process. for key quality management indicators, as shown
Implementing
in Table 2. a general CI/CD process and managing the results will help ensure that
quality is continuously
By including all the improved.
practicesInrelated
addition, by automating
to testing in the Agile and process
integrating moreand
pipeline testing
the
activities, more quality characteristics can be covered in addition to
review activities necessary to build quality, such as design reviews, it is possible to organ- functional conformance.
By
izedefining criteria for testingactivities
which quality-enhancing activities,are each quality in
included attribute can be used as a quality KPI
each practice.
on anBuild,
ongoing basis.
static analysis, unit testing, front-end and back-end integration testing, and the
In many
E2E test pipeline development
can be used projects, GitHub
to identify [9] andimplementation
common Atlassian tools [10] canand
errors be increase
used as
project management tools, task ticket activities can be visualized
software maturity. It is also possible to measure individual execution times within the as kanban boards, andCI
development and bug-fixing activities can be effective for source code control. Project
process to immediately detect degradation due to code additions. For example, if the ex-
management tools are effective for managing project progress, but they cannot manage
ecution time of a test increases compared to the previous test, it is likely that some perfor-
quality progress. Test management tools, on the other hand, can manage test cases and
mance degradation is occurring, and the impact of the added code should be suspected.
test progress and can play a role in quality management, but it is often difficult to use test
Deploying builds in a continuous delivery (CD) process allows portability properties
results in history management.
to be checked during the installation process.
Shimizu et.al [11] proposed a test result management tool to analyze and extend the
Implementing a general CI/CD process and managing the results will help ensure
coverage of automated tests and our team enhanced the test result management tool. The
that quality is continuously improved. In addition, by automating and integrating more
tool is written in C# and stores test results in SQL Server; for unit tests with API calls, we
testing activities, more quality characteristics can be covered in addition to functional con-
decided to implement and integrate a report class that can capture CPU load, memory
formance. By defining criteria for testing activities, each quality attribute can be used as a
consumption, I/O load, and network load along with functional tests and output this
quality KPI on an ongoing basis.
quality data along with the test results. The purpose of the report class is to provide a
In manyefficiency
performance development projects,
assessment. TheGitHub
purpose[9] of and Atlassian
the report classtools [10] canthe
is to extend becoverage
used as
project management tools, task ticket activities
of unit testing by providing a performance efficiency evaluation. can be visualized as kanban boards, and
development and bug-fixing activities can be effective for source
The report class we built called MSTest [12], an extension of NUnit [13], a unit testing code control. Project
managementwith
framework, toolsanare effectivemethod
extension for managingto obtainproject progress,
quality but they cannot
data necessary manage
for evaluating
quality progress. Test management tools, on the other hand,
performance efficiency and to generate test results in XML format along with functional can manage test cases and
test progress and
test results (Figure 3).can play a role in quality management, but it is often difficult to use test
results in history management.
Shimizu et.al [11] proposed a test result management tool to analyze and extend the
coverage of automated tests and our team enhanced the test result management tool. The
tool is written in C# and stores test results in SQL Server; for unit tests with API calls, we
decided to implement and integrate a report class that can capture CPU load, memory
consumption, I/O load, and network load along with functional tests and output this qual-
Digital 2024, 4 236
Figure 3.
Figure 3. Created
Created report
reportclass
class(upper
(upperisisprocess
processand lower
and is operation.
lower Square
is operation. frame
Square is developed
frame is devel-
area ).
oped area).
The generated XML file can be used with the command line generator tool to generate
a test result report in HTML format. The class also reads the .trx file of MSTest results
generated by Visual Studio and generates a list of API methods called in HTML format to
help understand test coverage.
Although it is possible to open a .trx file in Visual Studio and check the test results,
there are problems in analyzing the results as it is difficult to see the cause of the failure.
Digital 2024, 4 237
Figure 3. Created report class (upper is process and lower is operation. Square frame is developed
area ).
Thegenerated
The generatedXML XMLfilefilecan
canbebeused
used with
with the
the command
commandline line generator
generatortool tooltoto generate
generate
aa test
test result
result report
report in inHTML
HTML format.
format. The
The class
class also
also reads
reads the
the .trx
.trx file
file of
of MSTest
MSTest results
results
generated
generatedby byVisual
VisualStudio
Studioand andgenerates
generatesaalist listofofAPI
APImethods
methodscalled
calledin inHTML
HTMLformatformatto to
help
helpunderstand
understandtest testcoverage.
coverage.
Although
Although itit isis possible
possible to to open
open aa .trx
.trx file
file in
in Visual
Visual Studio
Studio andand check
check thethe test
test results,
results,
there are problems in analyzing the results as it is difficult
there are problems in analyzing the results as it is difficult to see the cause to see the cause of the failure.
We
Wedeveloped
developedthis thistime
timeto to
notnot
only generate
only generate the the
results of functional
results of functionaland performance
and performance tests
by outputting
tests reportsreports
by outputting that automatically describedescribe
that automatically the pass/fail list, the logs
the pass/fail list, during
the logsthe tests,
during
and the performance
the tests, measurement
and the performance results butresults
measurement also to but
convert
also this result information
to convert into
this result infor-
HTML
mationfiles
intoto visualize
HTML filesthe test resultthe
to visualize information, Figure 4.
test result information, Figure 4.
Figure4.4. Easy
Figure Easy visualization
visualizationof
oftest
testresults.
results.
Also,
Also,for
forthe
the API
API tests
tests created
created in
in JMeter,
JMeter,we we decided
decided to
to obtain
obtain performance
performancedata
data from
from
the
theAPI
API test
test execution
executionasaswell
well as
as the
the unit
unit tests
tests and
and evaluate
evaluate whether
whether the
the updated
updatedbuild
buildhashas
any
anyperformance
performancedegradation.
degradation.
Both
Both unit and
and integration
integrationtests
testswere
were able
able to produce
to produce thethe following
following benefits
benefits whilewhile
add-
adding performance efficiency assessments.
ing performance efficiency assessments.
•• Increaseddevelopment
Increased development productivity
productivity by
by being
being able
able to
to find
findfeatures
featuresand
andperformance
performance
andload
and loaddegrades
degradesin inthe
thebuild
buildpipeline;
pipeline;
•• Increased
Increasedtesting
testingefficiency
efficiencythrough
throughautomation;
automation;
•• Increased
Increasedcoverage
coverageof ofautomated
automatedtests
teststo
tocapture
capturemore
morequality
qualitydata.
data.
As an
As an example
example ofof this
this project,
project, we
we are
are using
using Ranorex
Ranorex [14]
[14] as
as an
an E2E
E2E testing
testing tool
tool to
to
automate
automate scenario testing. The scenarios include use cases that involve more
testing. The scenarios include use cases that involve more standard standard op-
erating procedures
operating procedurescalled
calledgolden
goldenroutes,
routes,useusecases
cases that
that check screen transitions
transitions when
when
functionsare
functions areinvoked,
invoked,andanduse
usecases
casesthat
thatresult
resultin
in errors
errorsdue
due toto operational
operational errors,
errors, so
so they
they
areconsidered
are consideredto toinclude
includeusability
usabilityevaluations.
evaluations.
In this
In thisway,
way,classifying
classifyingautomated
automatedteststestsusing
usingquality
qualitycharacteristics
characteristicsnot
notonly
onlyallows
allows
the quality improvement situation to take test coverage into account but
the quality improvement situation to take test coverage into account but also increases also increases
development
developmentproductivity.
productivity.
Figure
Figure 5. Architecture
Architecture of test results management
management (The
(The red
red part
partisisthe
theprocess
processflow
flowand
andthe
theblue
bluepart
part
is theistest
the result
test result management
management process).
process).
By running it as a Jenkins job, you can automate the process of importing the results
of each test performed in the build pipeline and generating a test report.
The ability to manage test results and compare them with past versions makes it easier
to ensure maturity and allows for the immediate detection of quality degradation, whether
functional or performance.
The quality guaranteed by the expanded coverage of test automation in the CI process,
the comparison process in the test result management tool, the distribution in the CD
process, and the development rules in the development project are shown in Table 3.
Our projects are able to automate more quality-related tasks, such as static analysis,
known as SAST, and dynamic analysis, known as DAST, than typical DevOps, although it
requires some time and effort to integrate it into both the CI process and the CD process.
Therefore, by preparing multiple test environments, resilience testing is able to perform
security-related testing for automated testing.
Also, the use of test result management tools makes it possible to monitor quality
progress from test results obtained in the CI process.
Table 3. Cont.
In the first team, the project manager chose the method of adding quality attributes
to the task ticket items so that quality attributes were set when each task was raised, and
sub-quality attributes were set for all test cases in the sprint. Second, many rules are defined
in the project charter for using quality characteristics for KPIs.
The project manager in the second team adds the definition for the analyzed functional
requirements and introduces a process for creating quality requirements at the time of the
requirements review, and the following activities are introduced:
• Designing quality requirements created at the time of the business requirements review
and quality requirements for the design and development of the software. Ensure
traceability of each issue so that the quality requirements created in the business
requirements review can be checked for validity in design and evaluation;
• Add quality attribute items to Jira and create a Kanban that quality attributes can
reference;
• Before starting a sprint, we created a sprint backlog by selecting tickets to be worked
on by the sprint from the product backlog containing the business requirements and
mapped the quality characteristics required by the business requirements.
In addition, the following practices are carried out for each sprint;
• Define the quality requirements for each functional requirement and set the criteria by
considering the metrics to be used;
• Evaluate the design and implementation checkpoints of the functional elements for
each quality attribute;
• Establish evaluation criteria for each quality characteristic and map them to the quality
characteristics to be ensured for each test activity;
• Visualize the progress of the established criteria by assessing the conformance of the
quality characteristics at each sprint.
Before starting the first sprint, the project prepared a mapping of activities and quality
characteristics, as shown in Figure 6.
Also, the project begins with the following quality objectives:
• Projected development scale: 2.6 KL;
• Review density: 20 man-hours/KL;
Digital 2024, 4, FOR PEER REVIEW 10
• Density of test items: 150 items/KL;
• Number of bugs: 10/KL.
suitability
Functional
efficiency
Performance
Compatibility
Usability
Reliability
Security
ability
Maintain-
Portability
Quality
characteristics
Activities
Each sprint
Spec analysis ○ ○ ○ ○ ○ ○ ○ ○
Design ○ ○ ○ ○ ○ ○ ○ ○
Coding ○ ○ ○ ○ ○ ○ ○ ○
Static analysis ○ ○
Unit test ○ ○ ○ ○
Integration test ○ ○ ○ ○
Security test ○
Performance test ○
E2E test ○ ○ ○
Only final sprint
Regression test ○ ○
Release test ○ ○ ○ ○ ○ ○ ○ ○
Figure 6. Mapping
Figure 6. Mapping quality
quality characteristics
characteristics to
to activities.
activities.
5. Results of Two Practices
5. Results of Two Practices
The first project did not establish rules for using quality features in the project and left
The first project did not establish rules for using quality features in the project and
it up to the developers, which resulted in many tasks being delayed due to the overhead of
left it up to the developers, which resulted in many tasks being delayed due to the over-
head of using quality features. In addition, most tasks were biased toward functional con-
formance. This result is likely to occur in the waterfall model as well, and without consid-
ering the balance of each quality characteristic, the result will be biased toward functional
conformance, so efforts are being made to reduce quality characteristics to 70% or less. It
was found that simply using quality characteristics would only complicate the work and
Digital 2024, 4 241
using quality features. In addition, most tasks were biased toward functional conformance.
This result is likely to occur in the waterfall model as well, and without considering
the balance of each quality characteristic, the result will be biased toward functional
conformance, so efforts are being made to reduce quality characteristics to 70% or less. It
was found that simply using quality characteristics would only complicate the work and
would not be beneficial.
On the other hand, in the second project, where the use of quality characteristics
was specified in the project charter, and the method of using quality characteristics was
defined, it became possible to break down the quality status and monitor progress. As
a result, smooth project management was realized without disturbing the balance of
QCD, and very good results were achieved. In the case of this project, the use of quality
characteristics increased the testing density by 144% compared to the case where quality
characteristics were not used, resulting in an increase in testing man-hours, but the number
of defects detected decreased to 32% of the predicted value. This was a result of the quality
characteristics of KPI and the implementation of quality-driven development. In addition,
the tasks to be implemented were able to proceed as planned. In other words, using quality
characteristics as KPIs makes it possible to proceed with quality-conscious development
while being aware of the QCD balance.
Although this experiment was conducted on a small scale of 3.7 KL, similar results
can be obtained by determining the quality characteristics to focus on for each sprint and
proceeding with development with an awareness of the quality priority order. It was also
suggested that the same effect could be achieved by being aware of quality prioritization,
such as determining the quality characteristics to focus on in each sprint.
The benefits of using quality characteristics from the experiment are as follows:
• When using quality characteristics in the agile process, it is assumed that if they
are applied to a project for which a project plan has already been drawn up, the
overhead of using quality characteristics is large and is likely to significantly affect the
sprint’s activities;
• If the use of quality features is considered from the project planning stage, the following
actions can be taken to provide evidence of quality assurance to project management;
• Declaring the use of quality features in the project charter;
• Assigning quality characteristics to different activities;
• The overhead of using quality characteristics should be included in the rough estimate
before the project starts.
Finally, an example of a qualitative analysis of a product by quality characteristic in
the project is given in Table 4.
Table 4. Cont.
6. Conclusions
Regardless of whether the development process used in a project is the cascade model
method or the agile method, quality-oriented development can be achieved by using
quality characteristics.
In the case of agile processes, it is possible to confirm that quality is continuously im-
proving by defining the metrics to be achieved in each pipeline in the CI/CD pipeline. From
the test engineer’s perspective, more time can be spent on test design and automated script-
ing, leaving more time for exploratory testing. In addition, the results of automated tests
become the criteria for initiating manual tests, allowing them to efficiently focus on more
complex manual tests. This allows them to efficiently focus on further improving quality.
In an agile process, it is important to design and execute testing activities efficiently in
the CI/CD pipeline and to clarify in the sprint plan the quality characteristics that should be
prioritized in each sprint. By clarifying the quality characteristics that should be prioritized
in each sprint in the sprint plan and by developing a method to use SQuaRE [19] in the
agile process, it can be recommended to build quality more efficiently.
In order to use quality characteristics as a KPI in large-scale agile development, it is
necessary to prepare a KANBAN for this KPI and check the quality status of each team
in a centralized manner. It will be necessary to educate all project members about quality
characteristics, specify the purpose and means of using quality KPIs in the project charter,
and ensure that project members understand and follow this project charter.
References
1. DevOps, 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr. 2009. Available online: https://www.slideshare.net/jallspaw/
10-deploys-per-day-dev-and-ops-cooperation-at-flickr (accessed on 15 January 2022).
2. Jenkins. Available online: https://www.jenkins.io/ (accessed on 1 February 2020).
3. ISO/IEC 25010; Systems and Software Engineering—Systems and Software Quality Requirements and Evaluation (SQuaRE)—
System and software quality models. ISO: Geneva, Switzerland, 2011.
4. ISO/IEC 25000; Systems and Software Engineering—Systems and Software Quality Requirements and Evaluation (SQuaRE)—
Guide to SQuaRE. ISO: Geneva, Switzerland, 2014.
Digital 2024, 4 243
5. Ito, J.; Yamaguchi, S.; Okazaki, K.; Yokosuka, S.; Kimoto, K.; Yamanaka, M.; Nagata, A.; Yamaguchi, T.; Hosoya, S. Quality
Assurance by Quality Stepwise Refinement in Agile Development. Report on the Results of the Subcommittee Meeting of the
Software Quality Control Research Group. 2018, pp. 137–144. Available online: https://www.juse.or.jp/sqip/workshop/report/
at-tachs/2018/4_aqa_ronbun.pdf (accessed on 15 January 2022). (In Japanese).
6. JIS X 25051; Software Engineering-Systems and Software Quality Requirements and Evaluation (SQuaRE)-Requirements for
Quality of Ready to Use Software Product (RUSP) and Instructions for Testing. JISC: Tokyo, Japan, 2016.
7. Cohn, M. The Forgotten Layer of the Test Automation Pyramid. Available online: https://www.mountaingoatsoftware.com/
blog/the-forgotten-layer-of-the-test-automation-pyramid/ (accessed on 1 February 2022).
8. ISO/IEC 25030; Systems and Software Engineering—Systems and Software Quality Requirements and Evaluation (SQuaRE)—
Quality Requirements Framework. ISO: Geneva, Switzerland, 2019.
9. GitHub. Available online: https://github.com/ (accessed on 1 February 2022).
10. Atlassian. Available online: https://www.atlassian.com/ (accessed on 1 February 2020).
11. Kato, D.; Shimizu, A.; Ishikawa, H. Quality classification for testing work in DevOps. In Proceedings of the 14th International
Conference on Management of Digital EcoSystems (ACM MEDES 2022), Venice, Italy, 19–21 October 2022.
12. MSTest. Available online: https://github.com/Microsoft/testfx-docs/ (accessed on 1 February 2021).
13. NUnuit. Available online: https://nunit.org/ (accessed on 1 February 2021).
14. Ranorex. Available online: https://ranorex.com/ (accessed on 1 February 2020).
15. Kato, D.; Ishikawa, H. Develop quality characteristics based quality evaluation process for ready to use software projects.
Com-put. Sci. Inf. Technol. 2016, 6, 9–21. [CrossRef]
16. ISO/IEC 25051; Software Engineering—Systems and Software Quality Requirements and Evaluation (SQuaRE)—Requirements
for Quality of Ready to Use Software Product (RUSP) and Instructions for Testing. ISO: Geneva, Switzerland, 2014.
17. ISO/IEC/IEEE 29119-3; Software and Systems Engineering—Software Testing—Part 3: Test Documentation. ISO: Geneva,
Switzerland, 2021.
18. Kato, D.; Okuyama, A.; Ishikawa, H. Introduction of test management based on quality characteristics. In Proceedings of the
1st Inter-national Workshop on Experience with SQuaRE Series & Their Future Direction IWESQ 2019), Putrajaya, Malaysia, 2
December 2019.
19. Shang, W. Bridging the divide between software developers and operators using logs. In Proceedings of the 34th International
Conference on Software Engineering (ICSE‘12), Zurich, Switzerland, 2–9 June 2012.
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual
author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to
people or property resulting from any ideas, methods, instructions or products referred to in the content.