To improve the product quality of software

29/11/2017

 

What do you need to improve product quality?

When we talk about software quality, we usually mean product quality . To improve software quality, that is, product quality, there are approaches to improve product quality itself and approaches to improve process quality . In this classification,  we will introduce what should be done to improve the quality of source code quality , execution code quality , design quality , and test quality , which are the basis of product quality .

Product quality and process quality

In guaranteeing and evaluating the quality of software, Father Gutara was always aware of whether it was product quality or process quality . There are various aspects to software quality, so it was difficult to understand unless we organized and thought about it based on some rough concept.

The concept of product quality and process quality is not very widely used, but it is a fairly easy-to-use concept for organizing software quality. Simply put, product quality is the quality of the software itself , and process quality is the quality of the process that develops the software .

Therefore, when we usually refer to software quality, we mean product quality. On the other hand, when judging the quality of a product or trying to develop software with a good product quality, the quality of the process is also involved. In the first place, I would like to introduce what Gutara’s father understands what product quality is, so please refer to it. Process quality For, this article refer to the.

What do you need to improve product quality?

When we talk about software quality, we usually mean product quality . To improve software quality, that is, product quality, there are approaches to improve product quality itself and approaches to improve process quality . In this classification,  we will introduce what should be done to improve the quality of source code quality , execution code quality , design quality , and test quality , which are the basis of product quality .

Product quality and process quality

In guaranteeing and evaluating the quality of software, Father Gutara was always aware of whether it was product quality or process quality . There are various aspects to software quality, so it was difficult to understand unless we organized and thought about it based on some rough concept.

The concept of product quality and process quality is not very widely used, but it is a fairly easy-to-use concept for organizing software quality. Simply put, product quality is the quality of the software itself , and process quality is the quality of the process that develops the software .

Therefore, when we usually refer to software quality, we mean product quality. On the other hand, when judging the quality of a product or trying to develop software with a good product quality, the quality of the process is also involved. In the first place, I would like to introduce what Gutara’s father understands what product quality is, so please refer to it. Process quality For, this article refer to the.

What is product quality?

Product quality is the quality of the software itself, but more specifically, it is the quality of the products of software development . There are various deliverables of software development, but the general ones are as follows.

  1. Design documents (requirement specifications, basic design documents, system design documents, etc.)
  2. Source code ( source code written in computer language)
  3. Execution code (execution image generated by compilation or build)
  4. Test result (record of the result of testing the execution code)

Product quality in a narrower sense can be thought of as the quality of the third execution code, but if the product is considered as a product of software development, intermediate products such as design documents and source code and tests Deliverables such as results are also deliverables created by software development activities. And since these deliverables also have quality as deliverables, I think that they can also be called product quality. Rather, Gutara’s father perceived product quality in that way. However, I think it is difficult to understand what the product quality is from this alone, so let’s look at the product quality a little more concretely using examples of how to measure each product quality.

Execution code quality

The first is the quality of the executable code , which is the easiest to understand . Since it is the quality of the executable code, the quality can be known by measuring something when the executable code is executed as a major premise. So, when it comes to measuring something, the easiest thing to measure is the result of the test . If you find a lot of bugs in the test, you can say that the quality of the executable code is not good.

Of course, there are various tests such as a test to confirm the function, a test to confirm the performance, and a test to confirm the recoverability from an abnormal state. As a result of their implementation of the various types of test, we found the number of bugs is less about the quality of the execution code is good you say. The quality of software that is generally required by the general public is the quality of this executable code, and the quality is often talked about by whether there are many bugs or few bugs.

Of course, usability and comprehensibility are also important for software quality, but you can tell whether these are good or bad if you perform a test to evaluate such items. Including such aspects, you can think that the quality of executable code can be judged by the bugs found as a result of the test.

Source code quality

The quality of the executable code was measured by a bug found in the test. So how do you measure the quality of the source code that is the source of the executable code ? Father Gutara estimated the quality of the source code mainly by looking at the number and content of code reviews . Code reviews identify code issues in terms of both source code execution and maintenance quality .

Execution quality and maintenance quality are the quality of the source code: (1) the execution quality that affects the quality when the code is executed, and (2) the maintenance quality that affects the quality when the source code is maintained or reused in the future. It is divided into two types. This is also the quality that Gutara’s father arbitrarily named, but it is a relatively convenient way of thinking when considering the quality of the source code.

The execution quality of the former can be measured by the test that measures the quality of the execution code, but the maintenance quality of the latter cannot be measured by the test. However, quality characteristics such as whether the source code is easy to read and understand, and whether the source code is portable is equal to or better than the execution quality when considering the value of the software throughout the software life cycle. Important quality. This was called maintenance quality .

And in general, most source code reviews check not only execution quality but also maintenance quality regardless of whether you are aware of it or not. Experienced software engineers are well aware of the importance of maintenance quality, so about half of the reviews are often about maintenance quality. Taking these points into consideration, Father Gutara estimated the quality of the source code based on the number and contents of the indications in the source code review.

Design document quality

If the quality of the source code is judged by the number and contents of the indications in the source code review, the quality of the design document should be judged by the number and contents of the indications in the review of the design document . Software design documents have various names, definitions, and description ranges depending on the project or organization, but in any case, a design review is performed on the design document created by the designer, and the contents are confirmed or mistaken. I will modify and make a design document of the completed version.

In the design review, there are no omissions or omissions in the design contents written in the design document , necessary functions and performance are incorporated, and non-functional requirements such as necessary reliability, robustness, abnormal recovery, and maintainability are required. The design contents will be confirmed from various perspectives, such as whether or not they are designed. The number and content of the points pointed out in the design review provide just the right information to measure the quality of the design.

Of course, there are some problems with the quality of the design document, such as whether the notation is in Japanese, whether the links to related materials are clearly stated, and the quality of the design document display. For example, it will be pointed out in the design review, so if you look at the number and contents of the points pointed out in the design review, you can estimate the product quality of the design document.

Test quality

The last of product quality is test quality, but test quality should be considered in two parts. The first is the quality of the test design and the second is the quality of the test results . First of all, the quality of the test design is the quality in terms of whether the test items are designed so that the quantity of the test and the quality of the test are necessary and sufficient. Whether it is just a normal test item to confirm that the function is working , or an abnormal test item to check the abnormal recovery function, a large-scale test to confirm that it works even with the maximum configuration according to the specifications whether or not there is the item for, etc. the purpose of the test whether the items and the number of test of test along has been designed, because it will be the criteria to judge the good or bad of the test design.

On the other hand, when you actually carry out the test according to the test design, various things happen. The test may proceed according to the test process plan, or the process may be significantly delayed . When you test, you may find a lot of bugs and the test may be delayed, or you may find few bugs and you may be overwhelmed. What is the situation of these test execution results , in other words , the test is effective as a trigger to properly execute the debugging process that finds bugs smoothly in the test and improves the quality of the execution code. Whether or not it is the quality of the test result.

Did you get an overview of product quality?

I have introduced an overview of the product quality that my father Gutara thinks. It may be different from the product quality in the general public, but I hope you can read it with such a way of thinking. 

If I have a little more time, I will add more specific content about the product quality that my father Gutara thinks in another article. Once you have written an article, you will see a list of specific articles below, so please refer to it if you are interested.

Posted by グータラ親父