The quality of embedded software is guaranteed by release judgment, development audit and testing

11/09/2008

 

ページの概要

What does it take to guarantee the quality of embedded software?

In order to guarantee the quality of embedded software, first of all, " release judgment “, " development audit " and " test " are important, then " bug management “, " process quality " and " other company’s software quality " are important. Will be. Of course, in addition to that, various classification ideas and work such as product quality , development organization, and development technology are also required.

In this blog, Gutara father who has spent nearly 40 years in the world of embedded software, guarantee the quality of the built-in software in order to, or improve the quality in order to, up to now it has been actually carried out some of the grounds I will introduce it by classifying it into the fields of. There is an overview page for each category, so please see that page first. More specific content than the overview page can be found in the individual articles linked from the overview page, so if you are interested, please see that as well. We hope that it will be of some help to everyone who is struggling to guarantee and improve the quality of embedded software every day.

Since embedded software plans, designs, and produces one item each time , it may be difficult to understand because the same method as the quality assurance of products mass-produced at the factory cannot be used. However, although there is a difference from mass production at the factory, if you do what you need for the quality of embedded software one by one, you can improve the quality and guarantee the quality. Even if you do each one, it is easy to get the effect from the important ones, so I will introduce the important parts in order in this blog as well.

Release judgment, software development audit and test are the basic 3-piece set of software quality assurance

There are various tasks to guarantee the quality of embedded software, but the top three important among them are " release judgment “, “software development audit " and " test “. First, let’s introduce this 3-piece set. If you follow the individual contents from the title of each explanation or from the menu at the top of the page, you will jump to the page that explains the outline, so please see that for the actual contents.

Release judgment

“Release judgment" is the same as product shipping judgment and is the last bastion of software quality assurance . The most important thing in quality assurance is not to release software with poor quality. However, it is difficult to judge whether the quality of the software to be released is good or bad . The quality of software is any indicator using, what criteria in judging the good or bad do I? In the release judgment classification, I will introduce the four criteria and four mechanisms that Gutara’s father used when making a release judgment.

The four criteria are process quality , product quality , test quality , and residual bugs . The four mechanisms are the type of release, the person responsible for determining the release, the method of determining the release , and the release determination worksheet . There are some items that are slightly different from the meaning of the words standard and mechanism, but I think that it is a story of my father Gutara, and I would appreciate it if you could listen to it.

Software development audit 

“Software Development Audit" was created by fusing the ideas of ISO9001 and CMMI in order to judge the quality of software development ability of software development organization from the two aspects of development process and development technology . The way. The development organization has commissioned the development organizations and software development business in-house subcontractors There are both, Gutara father will mainly improve the bad judgment and ability to develop good software development ability of subcontractors for We have conducted software development audits as a means of guidance.

With the current software development, which is becoming larger in scale, it is impossible to develop everything by ourselves. It often happens that all or some of the software is outsourced to domestic or overseas software houses . By the way, does the outsourced company have proper software development management and technical management , and do they have sufficient software development capabilities? 

It would be nice if the quality of embedded software development ability could be easily measured, but in software development where most of the work proceeds in the mind of the designer, it is quite difficult to measure the quality of the development ability of the organization. is. Gutara’s father has created and used a method called " software development audit " that judges the quality of the software development ability of the contractor from the four viewpoints of development process, required specifications, testing, design and implementation . , I will introduce the contents.

Test (this classification is currently being added to a detailed article)

“Testing" is the only way to guarantee quality, not just software . And guaranteed, the product is that you have the functionality and performance to certainly , it means that the results in the test is OK you will be guaranteed if at that point in time. In the case of embedded software, in addition to the items described in the specifications such as functions and performance, non-functional requirements such as stability and robustness that are not specifically described in the specifications are also important for the product. increase. Father Gutara has checked the quality and quantity of tests , paying attention to how much he tests and guarantees non-functional requirements that are often not explicitly stated in the specifications . This non-functional requirement may differ from the common sense that is the basis of quality in different countries, so care must be taken especially when outsourcing development work overseas . In this blog, I will introduce what Father Gutara has been careful about when judging the quality of the test.

Bug tracking, process quality, and third-party software quality are the second three-piece set

There is no “silver bullet" that can improve the quality of the software . The reality is that there is no choice but to steadily build up what you can do. For quality assurance of embedded software, release audit, development audit and test are not enough. The next important thing is " bug management “, " process quality " and " competitor software quality “. .. This classification has only an overview page, but I plan to write specific articles little by little.

Bug tracking (this classification is still just an overview page)

" Bug management " and " Bug management " are important management to improve the quality of embedded software. They have similar contents but need to be managed separately. Bug tracking is the management of the work of finding potential bugs in software and fixing them, while bug management is the management of the work of providing workarounds and fundamental countermeasures for defects that occur in the market . In addition to problems caused by bugs, defects include specification problems, performance shortages, and operational problems. In addition, even if there is a bug in the software, it may not become a problem because the bug does not become apparent in the operation in the market. Therefore, it is necessary to manage bugs and defects separately.

The purpose of bug tracking is to make debugging work more efficient. Debugging is the only way to improve the quality of your existing software . Software quality can only be improved by removing bugs in the source code . Design reviews reduce the number of bugs that may be built into the source code, but potential bugs that have already entered the source code will not disappear unless they are removed by debugging. In order to proceed with this debugging work, it is bug tracking to manage until the bug found in the test is removed .

The purpose of defect management is to efficiently deal with defects that occur while the product is being used in the market. Products equipped with embedded software provide various services to end users, but if there is a problem there, the service provision will be affected. In this case, it is important to prepare a fundamental countermeasure while continuing to provide the service for the time being by providing a workaround for the problem as soon as possible . Defect management is to manage from the provision of workarounds to the provision of fundamental countermeasures for defects that occur in the market. This category introduces what Father Gutara has been careful about in bug tracking and bug tracking.

Process quality (this classification is still only the overview page)

If “process quality" is good, you will be able to develop software with the planned cost, quality, and delivery date . The quality is different from the " product quality " that refers to the quality of the software itself, but the process quality is an important quality when developing software as a business. By the way, what is a process? What points in the process should be noted to improve process quality? Process is the closest word to the procedure of translating it into Japanese, but I think many people find it difficult to grasp.

ISO9001 and CMMI are methods for assessing and improving an organization’s quality assurance capabilities with a focus on process improvement. The part where the organization is not evaluated from the viewpoint of whether the necessary development process is concretely decided, the development process is properly implemented, and the situation where the development process is being implemented is properly managed. We will improve the organization by supplementing. In the process of software development, especially planning planning, kick-off and closing , risks and pending management, review the process, such as it is important. In this classification, we will introduce the Gutara father’s way of thinking about various aspects of the software development process when considering the process quality of software.

Other companies’ software quality (This classification is still only on the overview page)

In software development, along with development consignment, there are more and more situations where software made by other companies is used. There are various types of software made by other companies, such as purchased software purchased for a fee , open source software ( OSS ), and free software provided by chip vendors along with chips . There are various software made by other companies, but when they are finally incorporated into their products, it is necessary to guarantee their quality . If you install software made by another company with poor quality, the quality of the released software will deteriorate. 

So what should we be careful about to ensure the quality of software made by other companies? Unlike in-house software designed and produced in-house, it is difficult to see the inside of other companies’ software, so it is difficult to judge whether the quality is good or bad. It’s difficult, but I have to do something about it, so I will introduce what points you need to be careful about when using software made by other companies, focusing on the points that Father Gutara was careful about.

There are many other things you need to do to improve quality.

Other stories (This category has more articles on an irregular basis)

This blog has articles about software quality according to a rough classification, but while writing an article, you may want to add some sideways that do not fall into the classification . Sometimes it’s related to software, sometimes it’s not related at all, but I’ve collected the articles I wrote as I came up with. Please have a look even for a change of mood .

Bug Nest (This classification is adding articles little by little)

Bug … I hate it, I don’t want to get involved if possible, but unfortunately, as long as I’m in the world of software development, it’s impossible to get rid of this bug. This bug lurks in unexpected places, causing development delays and market glitches . And there is a place called a bug nest that this bug likes to hide. After years of software development and quality, you’ll discover some of the potential locations for such bug nests. In this category, we will introduce the bug nests that Father Gutara was particularly careful about.

Product quality (This classification is still only on the overview page)

Software quality is equal product quality . By the way, what is a software product? Produce is easy speaking software development process of the product , so, of a program to be executed on the CPU executes code or, become its original source code and becomes even more its original design document is the software of the product. So, from what perspective and what can we see the good and bad of the quality of these software products? In this classification, we will introduce the Gutara father’s way of thinking about the product quality of software and how to judge whether it is good or bad.

Development technology (This classification is still only the overview page)

What kind of knowledge and skills do you need to develop software ? There is a lot of knowledge that you need to know, such as knowledge about the business and services in which software is used, knowledge about the hardware on which software runs, and so on. And, in order to develop software based on that knowledge, there are some technologies unique to software development . These are software requirements design technology , software design technology , software implementation technology , software testing technology , software development management technology, etc. There are various ideas about these technologies, and I often wonder what to do. This classification introduces the Gutara father’s way of thinking about these technologies.

Development organization (this classification is still only the overview page)

Software can be developed by one person, but now that software has become large-scale , many people cooperate and share various roles to proceed with development . Since many people cooperate, an organization is inevitably formed, and the development of one software progresses while the organizations are related to each other. And whether or not the necessary organization exists and functions properly affects the quality of the finished software. This is not the correct answer for an organization that develops software, but in this classification, I will explain a little about what kind of organization is necessary as an organization that develops software and what precautions to take, based on the experience of Father Gutara. increase.

Development consignment (this classification is still only the overview page)

With the current large-scale software, it is difficult to develop everything in-house, and it often happens that some software development is outsourced to an external software house . When outsourcing development, we do not develop it in-house, so until the software is actually completed, we cannot know what kind of quality the software is, and it is quite annoying. To reduce worries as much as possible, clarify the scope and specifications of the outsourced work , monitor the development status of the outsourcee , manage the process and quality, and make sufficient confirmation when inspecting the finished product. Becomes important. In this classification, we will introduce various points to note when outsourcing development based on the experience of Father Gutara.

My profile (this category will probably have more articles on an irregular basis)

Father Goo Tara, who writes this blog, would like to introduce himself a little about where he was born and what kind of work he has done in the software world . By the way, I’ll try to add things that I’m interested in little by little, but I don’t know what time it will be. Please wait without much expectation.

There is a saying that it is older than the instep of a turtle, but it’s a guttara. .. ..

This blog was created with the intention of introducing what Gutara’s father, who has spent nearly 40 years in the software world, has done to improve the quality of embedded software as a “Yomoyama story". started. 

I roughly categorized it and started writing it considering the overall structure so that I could publish it when each page was written to some extent, but the fact that my father Gutara was not good at writing articles. I noticed it now. 

I don’t know what time it will be if I wait until the pages are piled up, so I decided to publish it little by little from the place where the articles were organized to some extent. For each category, write the overall explanation on the first page, and write more specific content in individual articles that can be traced from the first page. You don’t have to worry about the order of reading, so please choose the place you are interested in. (Unfortunately, there are still few classifications for which individual articles have been completed, but we plan to gradually increase them.)

Posted by グータラ親父