During the research and development of software products, the software quality has been at the top status. Software companies can develop a lot of efforts smoothly, with software quality assurance to occupy a very important location in its development. For a software item, due to most of the presented forms of mental labor results, it is largely dependent on the collective wisdom, coding levels and group contributions of members of the project team. Therefore, there is a lot of dynamic uncertainty factors from the beginning of the software project to the end (release) process, which must greatly increase the difficulty of project quality control, so that the effectiveness of software quality has become a more tricky under the premise of submitting software products on time. The problem.
Different project groups have certainly do not have the same solution to quality assurance issues. Below I will organize some of our project quality management experience, which must have a piece and deficiencies, please also criticize correct.
First point: the scale estimate before the project starts
In order to submit software products on time, there must be a practical project schedule, and it is also possible to take into account the workload of software quality in this plan. The basis of producing this plan is the size estimate of the entire project. In our group's software scale estimation, it is a group member to participate. Everyone makes workload estimates for the upcoming work, then weighing and averaging everyone, forming a common scale estimate of the project group. This helps the team have a common understanding of the workload and work difficulties of the project, and have the corresponding workload of maintaining the quality of the software. A certain extent avoids the impact on software product quality due to the unreasonable project progress plan.
Second point: The project determines the basic requirements of common coding
The quality of the software is the quality of the code. For the overall quality of the code, developers follow the common basic coding specifications are very beneficial and necessary. Our security group has accumulated and refer to the online technical documentation, and proposed "Safety Group Programming Basic Requirements". This requirement is not an face, but it must be actually pushed to improve the quality of coding quality. In order to increase flexibility, "requirements" also distinguish between two levels of "must comply" and "recommended compliance" for group members.
Here is a few programming requirements as follows:
1. When you initialize this variable while defining a variable, the pointer must initialize during definition;
2. Use explicit data type conversion to avoid implicit data type conversion;
3. At the "entrance" of the function, the validity of the parameters must be checked;
4. Initialize to NULL when the pointer is defined; check the pointer is null; check the pointer to NULL before the release of the memory; assign the pointer to null;
5. Use the "Hungary" naming rules to imitate the programming style and annotation style of IBM code;
Third point: strictly follow the company's CMM process management
This is not much more, the process management experience introduced into CMM is a great help provided by the company to provide an effective way for the project team to foresee and evade risks. Through the various milestones of CMM, the participation and supervision of SQA personnel, the SCM personnel's configuration items are unified, and the team weekly weekly conference, etc., the basis for the smooth progress of the project. Moreover, under the strict process control of CMM, through the clear definition of the demand, the corresponding design, the test phase of the demand, the unified controlled management and tracking of the software bug, etc., these are the quality of the project group software products. Provide powerful guarantees.
Quaternary: Pay attention to test activities and introduce tools to improve testing capabilities
Everyone knows that testing activities are the most direct and most effective links of software product quality assurance, and can be subdivided into: unit test, integrated test and system (general) test in accordance with the research and development level in the test. In addition to this integration, it can also be divided into an abnormal test, pressure test, performance test, and the like according to the highlighter points of the test. From such a detailed test division, it can be seen that the test work is incomparable in the software production process. It can be said that the high and low of testing ability directly determines the quality of the final software product product. In terms of improving testing capabilities, our group first is to let tests among the programs and planned controls, including integrated test programs / plans, system testing programs / plans, etc. BUG of the test process also incorporates the CMM's BUG management process, tracking and supervising, ensuring that BUG discovered is effective improvement and management.
Second, we have also introduced special test tools to improve the ability and efficiency of the test link, such as: We use Parasoft's C Test tool to make strict unit tests, automatically check the parameters and pointers, and set The coding style is static; Bounds Checker is used to perform memory leaks; use IRIS to intercept the packets delivered on the network to verify the correctness of the program data transfer, and the like. By using the use of these test tools, we greatly improve our overall testing capabilities, so that the depth and breadth in the test have a quantitative guarantee.
The four points listed above are widely used in the process management process of our security group. Through practices of some small and medium-sized project applications, these experiences are used for software project quality assurance, which is more feasible, and can improve the control of project quality.
Of course, these experiences are only some of our groups in our usual work, and it is not entirely suitable for the actual situation of other foreign project groups. It is intended here, but also hopes to play the role of the brick jade, I hope to form some discussions on the software project quality assurance method in the company to achieve the purpose of improving project management experience and promoting the purpose of the company's healthy development.