Quality Control Methods Using Quality Characteristics in Development and Operations

: 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.


Introduction
In many software development environments, work is often divided between development (Dev) teams, which are responsible for developing features, and operations (Ops) 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 environment and keep the service stable and continuous.The Dev and Ops teams have very different missions, and this can lead to team disagreements.However, faster software 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".
DevOps has a seven-step lifecycle: Plan, Code, Build, Test, Deploy, Operate, and Monitor.

•
Plan: Defines the task management and development requirements for the entire project; Monitor: Review information obtained from operations, user assessments, requests, etc.
These steps are performed sequentially and continuously to practice DevOps.The main benefits of implementing DevOps are achieving smooth development, increasing productivity, and speeding up releases.
The essence of DevOps, as mentioned above, is to resolve conflicts between Dev and Ops teams.By eliminating the internal drag-and-tug that has been common in the past, the goal is to achieve smooth development and operations.
To implement DevOps, it is necessary to implement a variety of supporting tools at each step of the lifecycle.Typical tools include version control systems that track file changes under project management and CI/CD tools such as Jenkins [2] that automate tasks previously performed manually.Effective use of these tools leads to increased productivity.This increased productivity means that more human resources can be allocated to improving quality and developing new services, which in turn increases the value of the service.
Automating testing and delivery with tools brings benefits in the form of increased productivity and faster work.Acceleration is simply the speed at which the DevOps lifecycle can be executed.In other words, you can increase the number of DevOps lifecycle cycles in a given period of time.More lifecycle cycles mean faster adoption of market requirements and feedback, which in turn means greater responsiveness to changing market needs.
For example, a developer runs unit tests against locally implemented code, and if the unit tests pass, the developer periodically commits changes to the code to a central repository as part of the CI process.The process is then delegated to Jenkins, the CI enabler, to run build, unit test, and build verification tests (BVT).If the BVT passes, the build is automatically deployed.Automated tests such as functional, performance, security, and regression tests are then run to ensure that the added code does not degrade the quality of existing functionality.
In addition to testing for quality, quality control is performed using various metrics and cascading models such as the V-model.Typically, the pass rate, defect rate, and test coverage of each test type (Table 1) are used to monitor project quality.However, these quality indicators are often difficult to use to assess the quality of software under development.Even if the coding rules and test design and implementation rules are clearly defined, it is difficult to objectively judge whether the quality is good or bad unless it is a derivative development project.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 Digital 2024, 4 234 in Figure 1, and to judge from test results whether each characteristic has been assured.SQuaRE also defines the metrics for each quality attribute, which can be used to determine whether quality has been assured.
Ito et al. [5] proposed a framework that allows the creation of a strategic test plan to achieve incremental quality building in agile development projects.The framework provides a state in which quality can be explained by releasing the product in a ratable manner and comprehensive quality assurance by incrementally building product quality.
To use quality characteristics effectively, we recommend that project managers classify the quality of software goals by quality characteristics and, if possible, also define the quality to be achieved at each milestone by quality characteristics.Therefore, we have studied how to effectively use quality characteristics and existing quality data in development projects using the V-model.We have studied the international standard, which is also used in countries such as Germany and South Korea.In the JIS (Japanese Industry Standard) standard certification for software [6], we have studied the development process with an awareness of compliance with this standard and have applied it to several projects.With the expansion of the recurring business, several projects are adapting the agile process, so we decided to further expand the development process for the use of quality features and improve it so that it can also be used in projects that use the agile process.

Considerations for Using Quality Model in Agile Development Processes
The combination of continuous integration (CI) and continuous deployment (CD) processes as a software engineering practice for rapidly developing and deploying software applications into production is called the CI/CD pipeline.The pipeline is a collection of tools developers, test engineers, and IT operations staff use throughout the continuous software development, delivery, and deployment lifecycle.
The test pyramid, as shown in Figure 2, is a useful technique that allows us to conceptualize how to prioritize the tests in a CI/CD pipeline in terms of their relative number and order of execution.This technique was defined by Mike Cohn [7], with unit tests at the bottom, service tests in the middle, and UI tests at the top.By prioritizing with a test pyramid, you can build a strong foundation of automated unit tests that are quick and easy to execute, then move on to more complex tests that are more complex to write and take longer to execute, and finally, the least complex tests that are fewer in number.The pipeline provides more prioritized feedback.Therefore, we have studied how to effectively use quality characteristics and existing quality data in development projects using the V-model.We have studied the international standard, which is also used in countries such as Germany and South Korea.In the JIS (Japanese Industry Standard) standard certification for software [6], we have studied the development process with an awareness of compliance with this standard and have applied it to several projects.With the expansion of the recurring business, several projects are adapting the agile process, so we decided to further expand the development process for the use of quality features and improve it so that it can also be used in projects that use the agile process.

Considerations for Using Quality Model in Agile Development Processes
The combination of continuous integration (CI) and continuous deployment (CD) processes as a software engineering practice for rapidly developing and deploying software applications into production is called the CI/CD pipeline.The pipeline is a collection of tools developers, test engineers, and IT operations staff use throughout the continuous software development, delivery, and deployment lifecycle.
The test pyramid, as shown in Figure 2, is a useful technique that allows us to conceptualize how to prioritize the tests in a CI/CD pipeline in terms of their relative number and order of execution.This technique was defined by Mike Cohn [7], with unit tests at the bottom, service tests in the middle, and UI tests at the top.By prioritizing with a test pyramid, you can build a strong foundation of automated unit tests that are quick and easy to execute, then move on to more complex tests that are more complex to write and take longer to execute, and finally, the least complex tests that are fewer in number.The pipeline provides more prioritized feedback.
As in the development process established for the V-model, quality requirements in agile projects are classified and normally described in the project plan.An international standard for quality requirements [8] has already been established, and functional and non-functional requirements can be classified using quality characteristics according to the methodology described in this standard.This method makes it possible to clarify the quality requirements for each actor.The initial quality control is carried out through the various activities of the development process and the rules defined in the project charter.
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 projects can use quality characteristics for key quality management indicators, as shown in Table 2.As in the development process established for the V-model, quality requirements in agile projects are classified and normally described in the project plan.An international standard for quality requirements [8] has already been established, and functional and non-functional requirements can be classified using quality characteristics according to the methodology described in this standard.This method makes it possible to clarify the quality requirements for each actor.The initial quality control is carried out through the various activities of the development process and the rules defined in the project charter.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 projects can use quality characteristics for key quality management indicators, as shown in Table 2.
By including all the practices related to testing in the Agile process pipeline and the review activities necessary to build quality, such as design reviews, it is possible to organize which quality-enhancing activities are included in each practice.
Build, static analysis, unit testing, front-end and back-end integration testing, and the E2E test pipeline can be used to identify common implementation errors and increase software maturity.It is also possible to measure individual execution times within the CI process to immediately detect degradation due to code additions.For example, if the execution time of a test increases compared to the previous test, it is likely that some performance degradation is occurring, and the impact of the added code should be suspected.
Deploying builds in a continuous delivery (CD) process allows portability properties to be checked during the installation process.
Implementing a general CI/CD process and managing the results will help ensure that quality is continuously improved.In addition, by automating and integrating more testing activities, more quality characteristics can be covered in addition to functional conformance.By defining criteria for testing activities, each quality attribute can be used as a quality KPI on an ongoing basis.
In many development projects, GitHub [9] and Atlassian tools [10] can be used as project management tools, task ticket activities can be visualized as kanban boards, and development and bug-fixing activities can be effective for source code control.Project management tools are effective for managing project progress, but they cannot manage quality progress.Test management tools, on the other hand, can manage test cases and test progress and 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- By including all the practices related to testing in the Agile process pipeline and the review activities necessary to build quality, such as design reviews, it is possible to organize which quality-enhancing activities are included in each practice.
Build, static analysis, unit testing, front-end and back-end integration testing, and the E2E test pipeline can be used to identify common implementation errors and increase software maturity.It is also possible to measure individual execution times within the CI process to immediately detect degradation due to code additions.For example, if the execution time of a test increases compared to the previous test, it is likely that some performance degradation is occurring, and the impact of the added code should be suspected.
Deploying builds in a continuous delivery (CD) process allows portability properties to be checked during the installation process.
Implementing a general CI/CD process and managing the results will help ensure that quality is continuously improved.In addition, by automating and integrating more testing activities, more quality characteristics can be covered in addition to functional conformance.By defining criteria for testing activities, each quality attribute can be used as a quality KPI on an ongoing basis.
In many development projects, GitHub [9] and Atlassian tools [10] can be used as project management tools, task ticket activities can be visualized as kanban boards, and development and bug-fixing activities can be effective for source code control.Project management tools are effective for managing project progress, but they cannot manage quality progress.Test management tools, on the other hand, can manage test cases and test progress and 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 quality data along with the test results.The purpose of the report class is to provide a performance efficiency assessment.The purpose of the report class is to extend the coverage of unit testing by providing a performance efficiency evaluation.
The report class we built called MSTest [12], an extension of NUnit [13], a unit testing framework, with an extension method to obtain quality data necessary for evaluating performance efficiency and to generate test results in XML format along with functional test results (Figure 3).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 .trxfile 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 .trxfile 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.We developed this time to not only generate the results of functional and performance tests by outputting reports that automatically describe the pass/fail list, the logs during the tests, and the performance measurement results but also to convert this result information into HTML files to visualize the test result information, Figure 4.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 .trxfile 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 .trxfile 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.We developed this time to not only generate the results of functional and performance tests by outputting reports that automatically describe the pass/fail list, the logs during the tests, and the performance measurement results but also to convert this result information into HTML files to visualize the test result information, Figure 4. Also, for the API tests created in JMeter, we decided to obtain performance data from the API test execution as well as the unit tests and evaluate whether the updated build has any performance degradation.
Both unit and integration tests were able to produce the following benefits while adding performance efficiency assessments.

•
Increased development productivity by being able to find features and performance and load degrades in the build pipeline; • Increased testing efficiency through automation; • Increased coverage of automated tests to capture more quality data.
As an example of this project, we are using Ranorex [14] as an E2E testing tool to automate scenario testing.The scenarios include use cases that involve more standard operating procedures called golden routes, use cases that check screen transitions when functions are invoked, and use cases that result in errors due to operational errors, so they are considered to include usability evaluations.
In this way, classifying automated tests using quality characteristics not only allows the quality improvement situation to take test coverage into account but also increases development productivity.Also, for the API tests created in JMeter, we decided to obtain performance data from the API test execution as well as the unit tests and evaluate whether the updated build has any performance degradation.
Both unit and integration tests were able to produce the following benefits while adding performance efficiency assessments.

•
Increased development productivity by being able to find features and performance and load degrades in the build pipeline; • Increased testing efficiency through automation;

•
Increased coverage of automated tests to capture more quality data.
As an example of this project, we are using Ranorex [14] as an E2E testing tool to automate scenario testing.The scenarios include use cases that involve more standard operating procedures called golden routes, use cases that check screen transitions when functions are invoked, and use cases that result in errors due to operational errors, so they are considered to include usability evaluations.
In this way, classifying automated tests using quality characteristics not only allows the quality improvement situation to take test coverage into account but also increases development productivity.

Enhance of Management of Test Results for Agile Projects
In software package development and service development, DevOps makes it possible to increase development productivity and increase the frequency of product releases.To ensure stable product releases, it is important to maintain the quality of the product and the test results within the project must be well managed.Since the DevOps project has achieved test automation with CI tools, we will also consider using a pipeline for test result management.
Engineers can quickly detect quality degradation if the test management tool can save the test results of unit tests, integration tests, and E2E tests as Jenkins jobs to be developed and easily report comparisons with multiple past versions.The comparison with the previous build is done in the build pipeline, and the comparison with past versions is easily performed in the tool.
Digital 2024, 4 238 When importing the test results, it compares the test results with the specified multiple past versions, compares the pass rate of the functional tests and the performance data, and generates a simple report with the judgment of whether or not the performance is within the registered threshold range.The URL of the generated result will be notified to you via Teams or e-mail.If you want to check the results of past versions in detail, you can use the comparison function of the tool to generate a detailed report.
The image of the job to process the import of test results from Jenkins is shown in Figure 5.
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.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.

Using Quality Characteristics for KPI under Agile Development Projects
We have always used quality characteristics as KPIs for project quality in waterfall software development and have made quality progress visible [15].In addition, this quality management approach is aware of the international standards [16] used in software certification and the international standards for software testing [17].Therefore, the use of quality characteristics as KPIs to understand the quality build has also been considered for agile software development projects [18].In the waterfall model, acceptance testing is planned as a condition for starting testing as the entry criteria for each test level, and acceptance testing is performed by extracting test cases from the test types to be performed at that test level using a stratified method.Since it is impossible to perform acceptance testing in every sprint of the agile process due to time constraints, we decided to investigate the need for acceptance testing and the relationship between the tasks performed in each sprint and quality characteristics through experiments.
We conducted two types of experiments on the impact on quality by conducting software development in an agile process with the following measures to make more effective use of quality characteristics in the agile process.
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:

Results of Two Practices
The first project did not establish rules for using quality features in the project and left it up to the developers, which resulted in many tasks being delayed due to the overhead of 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 Mapping quality characteristics to activities.

Results of Two Practices
The first project did not establish rules for using quality features in the project and left it up to the developers, which resulted in many tasks being delayed due to the overhead of 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.

Function suitability
Functional suitability is ensured because the functional requirements that satisfy the functional requirements are considered in the design document, implemented, and confirmed to work properly through various tests.

Performance efficiency
Compared to the operation before the enhancement, the performance of the functions implemented in the previous version has not deteriorated, and the import of new reports, a new function, is comparable to the import speed of the report functions implemented in the previous version, thus meeting the performance requirements.As load and capacity requirements have not been verified for this project, it can be concluded that ensuring only performance efficiency is not a problem.

Compatibility
There are no problems with interfacing with other systems, such as EXCEL output and ZIP compression, and compatibility is ensured because there are no problems with co-existence with other systems in the same environment and no code-level implementation that would affect others.

Usability
The enhancement does not create new screens but enhances existing screens and identifies no new usability issues, ensuring usability.

Figure 1 .
Figure 1.ISO/IEC 25010 quality model for system/software product quality.

Figure 1 .
Figure 1.ISO/IEC 25010 quality model for system/software product quality.

Figure 3 .
Figure 3. Created report class (upper is process and lower is operation.Square frame is developed 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 .trxfile 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 .trxfile 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.

Figure 3 .
Figure 3. Created report class (upper is process and lower is operation.Square frame is developed area).

Figure 3 .
Figure 3. Created report class (upper is process and lower is operation.Square frame is developed area ).

Figure 4 .
Figure 4. Easy visualization of test results.

Figure 4 .
Figure 4. Easy visualization of test results.

Figure 5 .
Figure 5. Architecture of test results management (The red part is the process flow and the blue part is the test result management process).

Figure 5 .
Figure 5. Architecture of test results management (The red part is the process flow and the blue part is the test result management process).

Figure 6 .
Figure 6.Mapping quality characteristics to activities.

Table 1 .
Famous quality metrics for quality control.

Table 1 .
Famous quality metrics for quality control.

Table 2 .
Famous quality metrics for quality control.

Table 3 .
Quality covered by CI/CD pipeline process.

Table 4 .
Example of quality analysis classified by quality characteristics.