Source: FRANCISCO> Enterprise Software Channel> Industry Perspective
Domestic software industry for over 20 years of time, has been entered into by the heroic era of individual, small team era. I believe in the near future, China will certainly be carrier-class software companies, when we will usher in the era of Army operations. Different times showed that the size of the different software, and also indicates the complexity of software quality management sharply, while the quality of software protection methods put forward higher requirements.
This article does not elaborate system of quality assurance system software companies, but would like to share with you from the other side of the software companies in the software development process an important role in the collaboration between the two relationships to efficient interaction between the two roles to illustrate the development process, how to effectively protect the quality of software products.
1 software company's quality assurance system
We know that the construction quality assurance system is a systematic project, the quality of protection is not certain people or certain departments, but the entire corporate culture, the concept of implementation. If an enterprise quality assurance system during the construction and promotion process, but stressed the approach that emphasizes the specification, rather than the sense of quality, corporate culture, which runs through the quality assurance system that is able to continue to play a role, and the formation of the enterprise core competence is called into question.
General business planning software when the quality assurance system will choose a model, the more popular models are: ISO9000: 2000, CMMI, RUP, XP, etc., the specific choice of the kind of model, need to look at the actual situation and can fully Coordination: people, technology, the relationship between the process, so that it can fully play a role in the development of productivity.
Software companies in the process of building quality assurance system in general, need to complete the following independent processes:
Project management processes, software development process, software testing processes, quality assurance processes, configuration management processes
These processes need to be complementary, each has a corresponding interface between, through the project management process throughout all the activities together, work together to ensure the quality of software products.
The entire software quality assurance system, all the processes around software development process started, the only goal is to ensure the quality of software development, so many processes, the software development process for the quality assurance system in the primary process, other process- auxiliary processes. The reason why we need to build a large number of auxiliary process is transparent to the software development process, controlled by the interaction between multi-role, to effectively reduce the risk of software development process, continuing to improve software product quality.
2.QA, QC responsibilities
As we begin to discuss QA, QC responsibilities, we first assume a precondition, namely: internal quality assurance system has been the construction is completed, that these five processes have been completed, and passed the test run, now step by step implementation.
QA of English as: Quality Assurance We translated as "quality assurance."
English as a QC: Quality Control We translated as "quality control."
We look between the two roles responsibilities, to facilitate our subsequent discussion
QA: monitoring the company's quality assurance system operating conditions, the actual implementation of audit standards and the differences between the company and issue recommendations for improvement and statistical analysis, the company's quality assurance system responsible for the quality.
QC: for each phase or critical point of the output objects (artifacts) to detect, assess whether the expected output quality of material requirements, material responsible for the quality of output.
By the above division of responsibilities, we found that if we likened to a software production and processing production line, then QA is responsible only for their own production line quality assurance, regardless of the production line in the actual quality of individual products. QA through production line quality assurance to ensure the quality of software products indirectly.
The QC regardless of the production line itself, quality, and only concerned with the production line products at every stage of the quality meets the expected requirements, if we produce a cup that QC only concerned with: the production of materials, whether it is expected that each The diameter of the cup meets the requirements of the bottle, cup handle meets the design requirements, and so specific, quantifiable point.
For software companies in terms of software development process:
QA can be further defined as SQA, namely: software quality assurance, software development process is only responsible for the quality of the enterprise corresponding roles are: software quality assurance personnel, some companies just call it SQA.
QC can be further defined as SQC, namely: software quality control, is only responsible for all phases of software development process, the quality of the output of the workpiece, the workpiece may be related to output the documentation or code, etc., corresponding to the role of the enterprise as: software testers.
As the development process used by various companies and testing process is not the same in all stages of SQC counterparts may not have as testers, as in the requirements phase, the resulting piece as "requirements specifications", the document's main means of quality control To review, this time as SQC functions at this stage is the assessment panel members.
3.QA, QC benign collaboration
Through the above analysis, SQA and SQC Although the main work is to ensure software quality, but the focus is different.
SQA by controlling the process to ensure software product quality, and SQC is by controlling each stage of the "results" to ensure the quality of software products.
If the process of software development or SQA SQC as long as we can to ensure that the quality of software products? The answer must not, through the following analysis because in the end what we see.
Software companies, only the role of SQA
If the enterprise and not only the role of SQA SQC, we assume that the business of a large input of SQA, so business has been a good process (production line), but this time the software product is no question of that? If our source of production has not been effectively controlled, the production line of the material is defective product, that regardless of the flow control of multi-well, then the final product quality are not high.
May have a friend who would say, if I had a very good process control, control of raw materials into the course, among our processes and raw materials is not a problem, and that this thing will not happen.
If the manufacturing sector, this matter may exist, but in the software industry, this thing almost never happens. Because the software product development process, almost all of their raw materials are produced, such as requirements specifications, outline design, detailed design, process control alone can not be defect-free "material." Because of the inherent characteristics of software development, we at each step of the production process, will introduce new defects, regardless of how we process the perfect plan. Therefore, at each stage is completed, all need to work on a stage product testing, evaluation at this stage of the work product meets predetermined quality requirements, the only way to ensure that the final software product quality.
SQC software companies, only the role of
Only if the company did not SQC and SQA role, we also assume that investment in business-to-SQC very hard at every stage of SQC is to find the corresponding defect, corporate quality assurance at this time whether there would be no question of that?
If the pure from the quality assurance point of view, in the ideal case, the quality of the software business really is no problem, because at every stage, through a large number of professional SQC (test) work to identify the software products "All" defects, such as product quality, of course no problem.
But from another angle we look at this question: first software flaw in the theory can not be all to find out, because software testing is not ergodic. Second, if we maintain one of the above software testing team, the cost is very high, currently no international commercial companies that can maintain from (Microsoft's product will have a large number of defects), which means that in practice process is almost no company would agree to the above approach. In addition, if we in the software production process, only a single emphasis on the results of the test part, to the neglect of process control, will result in continuous rework, greatly delay the date of delivery of products, eventually leading to the failure of software development. Such an approach just as we wish to weight loss, not to go on a diet, regular exercise, but to constantly weighed to achieve weight loss goals, as ridiculous. So, we want to improve software quality, testing is not continuous, but to change the way software development, change our processes, in the process to ensure software product quality.
Through the above analysis, if you want to effectively guarantee the quality of software products, SQA and SQC are indispensable, two roles must work together in the "process" and "results" are correct, based on in order to improve the quality of software products .
4 continuous quality improvement
Software quality improvement, process improvement is a gradual process, not overnight. For software companies, the deployment of limited resources, the short board for quality assurance to quality improvement, targeted to make a business plan is the urgent need to address the problem.
First, companies must ensure the quality of the software and put forward practical goal, the goal of quality assurance is absolutely not to over-class, get certified, these are just an incidental consequence. Corporate quality assurance goal should be to increase the competitiveness of products, reshaping corporate culture.
Second, the technical aspects of quality assurance, SQA and SQC staff interaction, quality assurance for enterprises to choose a short board to offer constructive comments.
SQC (test) in their work process will produce a large amount of process data, SQA staff through statistical analysis of these data, find business problem, and then back to the process improvement activities, and through the SQC staff to collect large amounts of data to verify the effectiveness of process improvement, and ultimately to achieve continuous quality improvement.
Quality is fundamental, regardless of our current sales situation, competition among enterprises will sooner or later transition to the quality of competition up, so only our own Lianhaoneigong can we hope to create our own century-old.