Into today's IT projects, software engineering is concerned. The quality of the software is the focus of attention, because there is currently no comprehensive assessment standard. Even some people put forward that the current software development is not "project", because it is too tender, there is no ripe standard to compare; so the software project is extremely easy to fail. A large amount of practice proves that the success or failure of software engineering projects is usually because of management issues (the ability to work together), not technical issues. If you want to do a "perfect" software, the role of quality management is self-evident.
In actual project quality management, quality management always around Quality Assurance processes, two aspects: Quality Control. These two processes interactions can also cross in practical applications. As mentioned, the quality of the software is difficult to define a very clear definition. This paper is mainly discussed for quality management in software engineering.
Performing a software "big meal" process
Software Quality Assurance (SQA below SQA) is to verify that the appropriate process and standards are followed during software development. Software quality assurance process generally contains the following activities:
The first is to establish a SQA group; followed by selecting and determining the SQA activity, that is, select the quality assurance activity to be performed in the SQA group. These SQA activities will be input as the SQA program; then develop and maintain the SQA program, this program clarifies SQA activities and The entire software develops the relationship between the various phases in the life cycle; there is also the execution of the SQA program, training the relevant personnel, select the quality assurance tool that is adapted to the entire software engineering environment; finally the shortage of quality assurance process activities, improvement The quality assurance process of the project.
The independent SQA group is one of the scale of the measurement of the advantages and disadvantages of software development activities. This independence in the SQA group makes it a key right - "Levels". When the SQA group found a crisis in the product quality, it has the right to directly report this crisis directly to the upper institution of the project group. This will undoubtedly play a quite "deterrent" role to the project team, and it can also be regarded as an incentive of the project team to pay attention to software development quality. This form makes many problems to resolve in the group, improve the quality and efficiency of software development. The organizational structure is shown in Figure 1:
Selecting and determining the purpose of the process of SQA activities is to plan the quality assurance activities that need to be made throughout the project development process. Quality assurance activities should be consistent with the development plan and configuration management plan of the entire project. The activity is generally divided into the following five categories:
1) Review software products, tools and facilities
Software products are often referred to as "intangible" products. It's more difficult to review. What should be noted here is that it cannot be reviewed only on the final software code when reviewing, but also reviews software development plans, standards, process, software requirements, software design, database, manual, and test information. The assessment software tool is mainly to ensure that the project team uses appropriate technology and tools. The purpose of assessing project facilities is to ensure that there are sufficient equipment and resources in the project group to develop work. This also provides a basis for planning equipment purchase, resource expansion, resource sharing of software projects in the future.
2) Software development process for SQA activity review
The software development process of SQA activity is mainly: software product review process, project planning and tracking process, software demand analysis process, software design process, software implementation and unit testing process, integration, and system testing process, project delivery process, Contractor control process, configuration management process. It is important to emphasize that in order to ensure software quality, SQA should be given to prevent certain rights that do not meet the project needs and standard products.
3) Participation in technology and management review
The purpose of participating in technology and management review is to ensure that such review meets the requirements of project requirements, it is easy to monitor issues.
4) Do SQA report
An important part of SQA activity is to report the results of the software product or software process assessment and propose improvements. SQA should document its assessment.
5) Do SQA metrics
SQA metrics are recorded in SQA activities, and other data. Through a large amount of data accumulation, analysis, the corporate leaders can have quantitative understanding of the importance of quality management, which is conducive to the further development of quality management activities. It should be noted that it is not the quality assurance process of each item must contain these activities or is limited to these activities, and according to the specific situation of the project.
In the SQA program, it must be clearly defined on how to perform quality assurance activities at all stages of software development. It usually contains the following: Quality objectives; define the beginning and end boundaries of each development phase; detailed planning quality assurance activities; clear quality activities; responsibilities and authority of SQA group; SQA group resource requirements, including personnel , Tools and facilities define an assessment performed by the SQA group; define the review of the SQA group responsible for organizations; the project standards and processes referred to in the SQA group are reviewed and inspected; the documentation required by the SQA group.
Choosing a suitable SQA tool is not trying to ensure the quality of the software product by selecting the SQA tool, but to support SQA activities. When you select a SQA tool, you first need to clear the quality assurance goals. To develop the needs of SQA tools and documentation, including the platform, operating system, and SQA tools and software engineering platform interfaces.
How to make white wall "flawless"
It is not necessarily a perfect "big meal" according to the process, because the fire should be difficult to master. What should I do if I don't know how to do it? Software quality control is mainly to discover and eliminate the defects of software products. For high-quality software, the final product should reach zero defects as much as possible. Software development is a people-oriented activity, so defects are inevitable. Therefore, to deliver a high-quality software, the activities that eliminate defects become important. Defect elimination is achieved by "review" and "test" quality control activities.
Defects may be introduced at any stage of software development. The project quality management process contains many processes that can identify defects and eliminate defects. "Identification Defect" and "Elimination Defect" were originally two different processes, but here in order to simply unify "elimination" to represent them. The larger the potential defect, the higher the cost used to eliminate it. So the mature software development process will conduct quality control activities after each phase of the potential defects may be introduced. These activities to eliminate defects include: requirements review, design review, code walk, unit test, integrated test, system testing, and acceptance testing. The process of defect introduction and elimination is shown in Figure 2:
The quality control task is to plan a feasible quality management activity, and then perform and control these activities correctly to ensure that most of the defects can be discovered during the development process.
As mentioned earlier, defects can be detected when reviewing and testing. The review is a human process, and the test is running software (or some software) to find defects. In a project, review and testing activities are pre-planned (which is determined in the planned book to perform which quality control activities and when to implement these activities). During the execution, these activities are performed according to the defined procedures. The defects are identified by performing these activities and then eliminate these defects. For example, the system testing process generally includes a test plan, and all test cases, review test plans, and finally perform test plans in the test implementation process.