Software quality assurance (ie SQA - Software Quality Assurance) is a critical process area in CMM2, which is a third-party independent review activity throughout the software process, and the public characteristics of inspection and verification in most critical process areas. In the entire software development process, it acts as an important role. From the six critical process domains included in the CMM2, whether it is a demand management, software project planning, software project tracking and monitoring, or software subsidiary management, software configuration management, all exist from us in progress now. During the development of software projects, we are no longer unfamiliar. Only SQA is not exposed to the software process improvement in the key process domain we are ready to improve in the critical process domain we are preparing for CMM2. In many software companies, there is no corresponding person and working method, and the software quality assurance system of the software development process has not yet been established. Therefore, when the software process is improved in the CMM2 key process domain, SQA is often a difficult point and directly involves changes in the organizational structure.
Implementation of SQA
The goal of software quality assurance is to monitor software development tasks from the perspective of third-party perspectives, and provide developers and management quality on whether software projects are in accordance with the formulated plan, standards, and procedures to provide developers and management quality. Information and data, improve project transparency, and simultaneously obtain high quality software products. It mainly includes the following four aspects:
● By monitoring software development processes to ensure product quality;
● Guarantee the development process of software and software development in line with the corresponding standards and procedures;
● Ensure that the software products, the problems existing during the software process are handled, and the problem is reflected to senior administrators if necessary;
● Ensure that the plan, standards and procedures developed by the project group are suitable for project group needs, while meeting the review and auditing needs;
In addition to the above four points, we also hope that SQA can be extended as an extension of the software engineering team (SEPG) in the project group, can collect good implementation methods in the project and discover the implementation of unfavorable reasons, and to modify the overall standard of internal software development. Provide the basis to provide advanced methods and samples for the development process of other project groups.
Quality requirements for SQA personnel
1. SQA staff (sometimes referred to as SQA) must have strong communication skills. As can be seen from the purpose of implementing SQA, SQA is not in the project, it is a third party independent of the software project, but he wants to understand the development process and progress of the project, capture problems that do not meet the requirements in the project, which requires SQA to be able In-depth projects, and the software development manager and developers in the project group maintain good communication, so that real projects can be obtained in time.
2. SQA must be familiar with the software development process. As SQA, since it is necessary to ensure the planning, standards and procedures developed by the project group, it is necessary to meet the requirements of the project team, then SQA first understands the software project development process, as well as the development process specifications within the company.
3. SQA itself has strong planning. On the one hand, the SQA should supervise the software project group prepared plan, and on the other hand, SQA itself must have a plan and can work in accordance with the plan.
4. SQA can cope with complicated work. As the SQA, there are many working products in the project group when tracking the project process, and will participate in a variety of activities in the project group. At the same time, a SQA may face multiple project groups, so the task is relatively complicated, which requires SQA to be patient when processing these things.
5. SQA must be objective, responsible. As a third party supervision, SQA can maintain its own objectivity, can not give the project manager, and cannot be a gendarmerie in the project group, otherwise it will affect the work. For problems that can't be solved multiple coordinated in the project group, the mission of SQA can be completed to the high-level manager of the project.
The above five points are the basic qualities that SQA should have, in addition to this, a good SQA should also participate in one or more links as developers or testers during software development, so they can compare in process supervision. Accurately grasp the focus, while their opinions and proposed solutions will be closer to the project group, which is easy to accept by the project team. SQA staff
SQA staff in software companies can be both full-time staff, or they can be related in the enterprise, and they are part-time part-time for SQA training. The resulting SQA team may be a real physical stand-alone department, or a logically existing platform. But whether it is a real independent department or a logical platform, it requires a head of the Soul Character - SQA Group to organize the daily activities of the SQA team.
When assigning SQAs responsible for monitoring their projects, it is necessary to pay attention to the SQA of the project. The SQA cannot be the developer of the project group, the configuration management or tester, and the SQA's SQA is in addition to monitoring the project. Other substantive tasks in the project group should not be participated in the project groups, otherwise it is difficult to maintain objectivity with the project team.
SQA work content
The work content of SQA mainly includes the following six categories:
1. Work directly related to the SQA program: SQA should develop the corresponding SQA program in the project plan, define the inspection key of each stage, identify the test, audit work product object, and at each stage sqa Output product. The more detailed definition, the stronger the guidance of SQA's future work, and it is also easy to supervise the software project manager and the SQA team leader. After writing the SQA program, you must organize the SQA program and form an evaluation report, send the SQA program to the software project manager, project developers and all relevant personnel.
2. Participating in the Project Stage Review and Audit: In the SQA program, it has often defined according to the project plan, including the corresponding phase inspection, including participation in the project at this stage, and auditing of its stage products. The audit of the stage product is usually checked whether the product is based on the procedure according to the procedure and content, which includes the internal unified procedures in the enterprise also include the procedures in the project group. However, SQA is generally irresponsible for the correctness of the content of the product content, and the correctness of the content is usually delivered to the review in the project. The SQA participation review is from the effectiveness of the guarantee evaluation process. If the person involved in the review has a certain qualification, whether the person specified in the review, each part of the reviewed object is reviewed, and give A clear conclusion, etc.
3. Check the compliance with the procedure of the procedure: The work content of this part is the daily work content of SQA. Since SQA is independent of the project group, if it is just a phase of the program and the audit is difficult to reflect the working process of the project group, SQA also sets a number of small tracking points between the two phases to monitor the situation of the project. In order to meet the problems existing in the project group in time, and track it. If you only check and audit only at the stage point, even if the problem is found, it is inevitable too lag, which does not meet the problem as soon as possible, control the overall goal of the problem within the smallest range.
4. Check and auditing of configuration management work: SQA should supervise if the configuration management work in the project process is supervised in accordance with the programmed management plan initially developed by the project, including whether the management personnel regularly perform this work, whether all people get It is a valid version of the development process product.
The process products here include code and documentation generated during the project.
5. Solution to tracking questions: SQA is to be tracked for problems found in issues found in the review in the review. For issues that can be solved within the project group, add the problems that cannot be solved within the project group or in the project group, or if there is no problem in the project group, it is possible to use the channels of independent reporting. Report to the high-level manager.
6. Collect new methods, provide the basis for process improvement: This type of work is difficult to define in the plan of SQA, but SQA has the opportunity to directly contact many project groups, which can be accurate for the advantages and disadvantages of the project group in the development management process. Get first-hand information. They have the opportunity to understand how to manage well in the project team, using what effective ways, and share with other SQA in activities. These good implementation instances can be propagated into more item groups. For inaccurate or inconvenient places defined in the enterprise process specification, the software project group can also be reflected by the SQA team to the software engineering process team, which is convenient for the next step to modify and improve the procedures. Relationship between SQA and several types of roles
The unit settings in an enterprise may have different, but many character settings are the same, from the SQA of a project, we can represent the relationship between SQA and other related roles as shown below:
The above illustrates only the relationship between SQA and the high-level manager, project group, and other relevant groups, is not a description of all the relationships between the above characters, so even if the project group will report directly to the high-level manager, it is not straight with SQA. The relationship is not shown in the figure.
Several questions in SQA work
1. When I first configure SQA personnel to the project group, the value of SQA is not recognized.
Because it is a new job, it is accustomed to managing projects, and it is inevitable that the project group reported to the senior manager will have to contradict emotions. To solve this problem from two aspects: On the one hand, from the perspective of the organization, it is necessary to clarify the role of SQA and its legitimacy; on the other hand, SQA should also earn project group recognition with its professional work, add value to the project group.
2. A full-time SQA can work with how many projects of SQA
For different project size and organization management methods, this problem will have different answers. According to some experience in the implementation, it is usually taken to take a 20-person project group to take up 30 people. % Or so of workload, with the maturity of SQA, this ratio will be reduced to 15%. For project groups within 10 people, SQA needs to invest 10% of its workload. Of course, the larger the project, the more SQA's investment.
3. The relationship between SQA and the project group is difficult to handle
For the relationship between SQA and the project group, the following two principles should be followed: to become a strict teacher in the project group in the process, there is a fault to correct, but it is not possible to have a full report; to be a friend of the project group, but cannot cover the project group Conjunction.
4. The project group has SQA, but the quality of the demand document and the design document is still not high.
Sorry, this is not a direct working range of SQA. Improve the quality of demand and design, to start with personnel training and strict review, let experience with experience to complete demand and design documents. SQA can only be supervised from the regulations.
In summary, establishing a SQA system in a software company is a must-have, which is a must-have, and software enterprises use a CMM model as a reference, and a software process improvement is an indispensable part. Software companies have truly established SQA specifications, and cultivating professional SQA people will really experience its benefits.