Integrate the relationship between test and quality, building an efficient test team
(Shen Xuefang, Xie Min, Dai Jinlong)
This article is copyright belong to the computer world, and the copyright is owned by the author. Any reprint and substantial reference, please be sure to consent.
1 Integration of testing and quality relationship
Under the current software industry, one mentioned software quality, there is definitely many of the first reactions in the industry, and the standards such as ISO, CMM, 6σ, and the vocabulary that reacts is SQA [Software Quality Assurance. )]. Under such an atmosphere, many software companies and institutions have built their own SQA sectors and pin all the hopes of the quality in SQA. This is of course a good thing, at least the general awakens of quality awareness; but the high-level manager is clear to recognize that "quality work is done by the company's respects" the company's respects "This seems to be very difficult.
Such a large environment has caused many software quality assurance departments and software testing department of institutions. It is to let the test department belong to the quality assurance department, or should there be a single column test department to make it independent, neutral posture? In addition, how to grasp the power and responsibilities of the test department and the quality assurance department, who is more right to show a "red card", "yellow card", who should complain about the user when it is necessary. Product technical issues negatively unbailful responsibility? This surface seems to be a power dispute, essentially reflecting that people have misunderstandings for quality awareness. To this end, the author intends to follow these relationships from the source.
Quality and product inner quality; for software products, quality should also include the quality of the software process. So, how do you determine if a software product is high? Currently widely recognized standards are "software products can better meet all kinds of needs related to users." However, users often need to include the needs of software: such as functional requirements, performance requirements, constraint demand, potential demand, and even demand for mutual conflicts, etc., which leads to software products to produce Verify that "product satisfaction user needs" is easy to become a trouble of triggering the dispute between the supply and demand disputes, and for software companies, this quality work is too high, the risk is too large, and there is no remedial measures. In view of this, it is necessary to further refine, avatars this work, and integrate this work into specific engineering practice as early as possible. At present, the core strategy to solve this problem is to control the quality of software engineering and software products (including intermediate products) itself. The former mainly involves what kind of quality system chooses during the engineering process and how to monitor standards, the latter mainly involve verifying how the product is specific quality, there is no deviation from user needs, etc. Or more professional, the former is called SQA, and the latter is called SQC. (About SQA and SQC clearer, specification definitions can refer to the corresponding standardized documents. This article takes into account the gender temporary.) From this, we can see that both SQA, SQC is the category of quality work, even A certain sense is closer to the quality of quality work. So, what kind of location should the software test should be in software quality? The author believes that the software test should be the core content and important components of SQC. It lacks software testing, the rest of SQC will become the body of the soul, the so-called "skin of the skin, the hair will be attached". From this point of view, it is currently boiling, shining the standard and system of CMM, 6σ, etc. Instead, software testing is the core of SQC, it is more close to the quality of quality, and it should be more concerned.
If all the extension of the software quality work is defined as software quality management (SQM), then it has two basic elements, namely software quality assurance (SQA) and software quality control (SQC). SQA and SQC have their own position, complement each other, unified in software quality management (SQM). Take a car to make a metaphor, quality control (QC) is all instruments that tell you the current motion status of the car; Quality Assurance (QA), including all kinds of standards, is a user manual that tells you all the principles of all parts; Quality Management (QM) is the goal you have to pursue, such as you want to drive your car safely, high speed. It can be seen that in order to achieve the goal of quality management (QM), quality assurance (QA) and quality control (QC) are indispensable parts. 2 Building an efficient test team
Since the test work is so important, how can we do this? As the saying goes, "Workers must have a good fault, and must first make a tool." We first need to establish and maintain an efficient test team before specific in-depth implementation test technology. In one business or organization, if there is no stable test team, it is difficult to test the activity is not in the form. However, even such a shallow truth is not widely accepted by management. For many small software companies, the test as a small "episode" is facing the release of the product, often temporarily draws several programmers to deliver the product's functional rough test, and even cut off this block when the progress and cost is insufficient. ). This hastily completed product usually has a lot of quality problems, and the credibility of the company is naturally difficult. They carry this kind of "strange circle" cycle: a small project is made in a year, and the "Software Test" is made in the week. Enterprise benefits have no steadily growth, even in a severe market competition. In order to avoid this situation, we should first abandon the usual thinking model of small enterprises, not considering the interests of a time, based on the long-term, and set up an efficient test team.
2.1 Recruitment Tester
People are the most valuable resources in testing. There is no qualified, active test team, and testing cannot be achieved. However, there is a very common habit in the software development industry, which is to let those who have the least experience of experience, no efficiency developers or people who are not suitable for doing other jobs to do test work. This is definitely a short-light behavior. The skills needed for a system effective test is definitely less than the software development needs, in fact, the tester will have a wide range of experience from the career, they will encounter a lot Developers are impossible to encounter problems. In particular, the person in charge of the test team should try to absorb other teams in the test team. Generally, such members have negative feedback to the entire team. Of course, some people who have not made achievements in other teams have made great results in the test team, but such people are always alone, and they are not very common.
So what kind of member is the test team needs to recruit? Here, the author summarizes the following:
First, the tester can have some of the following qualities: communication skills, empathy, self-confidence, diplomatic ability, migration capabilities, and doubts.
Communication ability: An ideal tester must communicate with everyone involved in the test, with the ability to communicate with technology (developers) and non-technical personnel (customers, managers).
Employment ability: All people related to system development are in a state of concern and worried. User worry that the future uses a system that does not meet your requirements, developers are worried that he has to revisit the entire system due to incorrect system requirements, and the management department worried that the system suddenly crashed and made it a reputation. The tester must deal with each of the people, so members of the test team need to have enough understanding and sympathy for each of them, and reduce the conflicts between testers and related personnel and conflicts to the lowest level. Self-confidence: Developers accuse the tester test result is wrong or even the anti-lips are often there, the tester must have enough self-confidence to their labor results. If you are too deliberate to the developer, you can't do anything more.
Diplomatic ability: The diplomatic manager of witness is helpful to maintain the relationship between the internal people's people and people, and the tester also needs a certain diplomatic wrist. If the method taken is too tough or too weak, it will damage the test work.
Migration capability: An ideal tester should have the ability to dig out similar errors that have been previously encountered from memory, and migrate to current testing activities. This ability is impossible to measure the value during the test. Because many new problems are different from the problems we have found.
Doubt: Test it in person in any place where you may have an error. Do not listen to the development of the developer's meaningless guarantee. Stick to the work style of the facts.
It is not necessary to not have the test personnel to have all the quality listed above. The author believes that it is very good to have two to three items. If a person has not finished, the key is to use it to avoid it short. The test team should create such an atmosphere, and members of the test team should learn from each other, communicate with each other, and the daily month is tired to improve each other.
Second, members of the test team should have good technical capabilities or technical learning skills. Due to the differences in the skills needed by the test groups, the test techniques you have to master will be trivalent. For example, test managers need to use the contents of the test management work and the use of the related auxiliary tools; the automated testers need to pure the related automation test tools; test scripting staff needs to have the understanding of the scripting language; manual testers to deal with relevant The most prone to problems in the test, such as several people; and the person in charge of the test team must be familiar with the conceptual model of the measured software system, the design model must master the relevant development tools involved in the development process, in addition to this, the test manager also It is necessary to deeply master the cutting process of the test process, the test plan, the organization and development of test activities, and the evaluation of the test effect.
Of course, the new recruiting testers cannot be as good as above. The key is whether they love to test this work, whether they are interested in related work and how their learning ability is. As the saying goes: "The first voice of the genius and the idiot." How to do a good Bole, find a thousand miles of the lying trough, is a very deep learning and art.
2.2 Test Team System Construction
The second step of creating a test team is to build a system of test teams. A well-operated department requires a complete system support. As the saying goes, "there is no rule, not a square round." The construction of the system can standardize the work of the test team to form a common work goal. A good saplio, if there is no external interference, constraint, guidance, let him develop, may grow to the back of the trunk. If a test team has no good institutional constraints, it is likely to lead to a bad spirit, and the economic and negativeness is negative. The formulation of the test team system requires the joint discussion of team members, rather than testing team leaderself. Test team's system, you can consider the following aspects:
N Reporting System Team Members report this week's work and next week's work plan, the problems encountered, and the help of the need to provide the report and plan habits of team members.
N Work Summary System Members Each phase reports on the training experience and lessons in the previous phase, communicating, sharing experience and lessons at sectors, and avoids the same problem repeated. The N reward and punishment system rewards the contributing the prominent members, and criticizes the poor performance, and the effectiveness of the test team will work enthusiasm.
N Test Parts Audit System reviews the test parts, went to coarse storage, encourages usage and proposing improvements to ensure the quality of the test parts of customers and the company's leadership.
N The meeting system regularly convene departmental discussions, discussions, and solve problems in work, and provides a learning platform within the department.
The development of the system should reflect the spirit of fair objectivity, while trying to be humanized, practical effect, and is mainly encouraged, and the system should be executable. When there is a problem during the implementation of the system, the team's person in charge should take the initiative to review, analyze the problem, and take the initiative to take responsibility. This can condense the hearts, so that the person in charge of the test team has leadership, appeal and prevailing.
About the assessment of members' performance, currently, many software companies have implemented the level of the test personnel. The opportunity to improve the raise salary on excellent members shall not improve the membership of the unspeakable, and to the long-term ability to degrade or eliminate the team system. This is undoubtedly a good practice, but the specific assessment method of members, it is recommended to try to be fair and objective. Don't reasonable level promotion without reasonable or evil.
2.3 Division of Test Teams
The third step of creating a test team is to conduct the division of labor and clarify the job responsibilities. Excellent employees are like a geese, an efficient test team is like a geese group.
Yans is composed of a wild geese with a common goal. In the team, they have clear division of labor. When the team stops break, they have a geese responsible for forage, take care of young or old age, and is responsible for geese safety The geese of the warning, some geese is quiet, and adjust the physical strength. During the flight, they screamed to encourage each other, so that through the common fan to form a gas stream, so that the team quickly fly quickly. In the geese group, there is any big geese injured or sick, and the geese is automatically flying. There are two geese leaves to guard the shot or sick geese until it recovers or die, then they join the new Team, continue to Nanfei until the destination, this is the spirit of our true team.
Therefore, responsibilities should be designed according to the principles of facilitating implementation and operations, and division of labor should be arranged according to the characteristics of positions and personnel, and the members of different capabilities are divided into workers to ensure maximum extent of members. Otherwise, the basic premise of teamwork will become very weak, and it will will take too much communication and coordinated energy, and it is half a time.
In addition, the clear responsibilities can avoid other team members abuse test team members. Sometimes others can't be kind to testers, or let testers do other things that seriously beyond their responsibilities. If the test team is discovered that the tester encountered such difficulties or treated such a treatment, it should provide mental support for employees, telling employees how to deal with such problems and solve various unfair treatment.
N The following example of the responsibilities of the test team is as follows:
The U system test organization includes the establishment, test task assignment of the project test group.
u conduct test plan / design / development / implementation
u Establish a test system, improve test methodology, including the construction of test system, research and testing method, test theory, and precipitation and promotion of research results.
u Research and implementation testing tools include the use of test tools, track the industry's popular test tools, and try to use test tools to improve test efficiency.
u project team test work guidance, record improvement
u Software Development Quality Sampling and Evaluation Includes that the product quality of each milestone is squeezed through various means, and the sample results are analyzed and evaluated. N test team division and corresponding responsibilities are as follows:
Role Responsibilities Test Administrator N is responsible for testing the management of the test project; the processing and feedback of the test process problem; N test organization / plan; (containing performance test) N test process status report. Test Designer N describes test requirements, design test cases; N performance test scheme design; N test environmental construction; N test script audits. The test executive N develops test scripts as needed; n Follow the test case, test the script execution test; n Create and maintain the test tool environment; N project test work guidance. Test Supervision and Surveyor N Test Measurement; N Test Process Problem Summary and Feedback; N Developed Product Quality Sampling and Evaluation.
2.4 Process construction of test work
The fourth step of creating a test team is to carry out the construction of the test team workflow. Test team workflow, including: testing process, daily workflow, team training process, burst task processing process, etc. The departments of the department, the division of labor of team members, they focus on local, and test team workflows, focusing on the team global. Every link between the team's workflow must be easy to perform. Because the daily workflow, the team training process, the burst task process process is relatively simple, so it will not be described.
In general, the testing process can include the following aspects:
Plan test -> design test -> Execute test -> analysis test
Note: In the Plan Testing link, a description of the test needs is included.
Plan test
Design test
Execute test
analysis test
Note: In the Plan Testing link, a description of the test demand is included.
We can establish a test process by the following steps.
1. According to the company's existing test status, and personal testing experience, drafting test procedures and related templates;
2. Through the practice of one to two projects, the problems and deficiencies in the draft test process are recorded;
3. According to the implementation experience, improve the test test process, get the test process, and drafted the relevant implementation guidelines;
4. According to the practice of a project, record the problems during this practice;
5. Perfect the test process and related templates, guides, forms, etc. according to the second practice record
6. Publish the first version of the test process (including test procedures, templates, forms, guidelines).
Through the above method, the test process can be initially established in the company, and continuously improve and improve in practice. For companies that have a relatively perfect test work, you can introduce the mechanism of test outsourcing. The test outsourcing, refers to the test team to operate independently of the project group, and the project team outsource the test task to the test team. The purpose of this can give full play to the skills, business advantages of test members, and multiplexing test members. Because in the general company, there are many tasks of the test team members, the work pressure is large, and if each project is invested in 2 test members, a 6-person test team can only carry out three test items at the same time. If you test outsourcing, then you can make reasonable allocation of the personnel according to the project test workload, progress requirements, test content requirements, and maximize the testers for multiplexing.
2.5 The ability to improve the team member
The fifth step of creating a test team is to improve employee's ability. With clear and reasonable division of labor, these divisions need to be conscious guidelines for team members and enhance the skills of team members. The person in charge of the test team needs to have a responsibility to improve employee skills. Only a learning team that knows how to constantly enrich your self, improve your ability, can create more "miracles" in the development of society. Therefore, an efficient test team must constantly learn, improve team members themselves, and improve the overall ability of test team. Test team membership capacity improvement, including three aspects:
1 Accumulate the expertise of testers to improve business capabilities
With the external factors of the testers, how can users use (or will use) similar products, what kind of problem is very important to them, how to solve these problems, this industry, what is the business of this industry Waiting for more, the effectiveness of their work will be significantly improved.
You can accumulate the real professional domain knowledge in the following ways to improve their business capabilities:
u Read the magazine and books in the industry
u Communicate with business analysts in the industry, try to see the system from the perspective of business
u Work on the customer. For example, you can participate in the customer's acceptance test and participate in training for customers.
u Using hours a week to answer the problem of company customers. Through this approach, testers will ultimately skillfully answer questions and get a lot of information, such as customer usage habits.
2 Accumulate test staff related technical expertise, improve professional capabilities
Due to the continuous change in technology, the popularity of various system frameworks, more interactions between platforms. The surface technology involved is more and more. System software and products become more complex, in order to adapt to this change, testers need to improve their technical skills to keep up with the technical update.
3 comprehensive capacity improvement
Testers not only need to improve their test skills, master test tools, development tools, test methods, etc., testers also need to improve their own capabilities. For example, for individual management capabilities, self-control capacity, communication skills, coordination capabilities, speech capabilities, oral expression, and textual expressions. In these capabilities, writing skills are particularly important. Test staff's work to a large extent to write reports, etc. to persuade them to do things. The better the report is written, the greater the role of the report. The greater the effects of testing.
2.6 Test Team Cultural Construction
The sixth step of the creation of the test team is to build a culture of the test team. As the saying goes: The attitude determines the success of life, and team culture is like a personal "attitude", which determines whether team efficacy is 1 1> 2. If the test team does not have a good team culture, the inside of the test team will inevitably produce internal consumption, and the team becomes a disc.
The world's greatest football coach Wens Lundadi said when talking about the character of the success team: From the basic teaching, each team member is clear, the ball is superb; know how to cooperate with others, from the whole, playing, never Personally, violate discipline; the whole team is screwed into a rope, interested in each other, love each other, and This is the successful team culture. It has the following characteristics: the goal is clear, the responsibilities are clear, unity and cooperation, close cooperation, mutual concern, and common values.
Test team culture construction can draw on Lombardi's experience and first clarify common goals. For example, within two years, the test team can output test services to the company, becoming a business unit of the company; or to ensure that the product quality of this unit can increase customer satisfaction to a grade; or more specifically, put product errors, defect control At a level. Second, the team should also establish a good communication channel and feedback mechanism. It turns now, smooth and equal communication can promptly avoid friction inside the team, collect better test advice and programs. Again, there should be no bureaucratic style in the team, do not engage in small circles. During the internal criticism, try to do things is not right; when the team has major mistakes or errors, the team leader should take the initiative to take responsibility, do self-review, and do not take responsibility. Finally, the test team should develop a certain degree of friendship relationship. Some collective activities were carried out: it can be a short afternoon tea every day, or a test team's outdoor hiking or entertainment or so on. We discussed the cultural construction of the test team. Culture is a long-term habitual accumulation. The person in charge of the test team needs to be sober to recognize which good habits needed to test teams, and physical strength, perseverance, and subtle gentle manner will introduce the spirit of the test team culture to members of each test team, making the team gradually condensed a strong spiritual force.
3 conclusions and summary
The above is the relationship between test and quality, how to build an efficient test team has made some preliminary discussions, clarify some of the embarrassment of software testing in the industry. However, creating and maintaining an efficient test team is a long-term, hard work. This work is not obvious for enterprise organizations, although short-term benefits are not obvious, but it is definitely meaningful for improving product quality, enhancing the credibility of the unit, and promoting the development of the company. It is also a very meaningful thing. It is also the current software company's direction. The necessary way to operate. In many medium and long-term investments, building and cultivating an efficient team will become one of the best investments in the company.