Software Outsourcing test management and practice
Management refers to completing a task and achieving a certain goal through planning, organization, leadership, control, and other means. Similarly, software outsourcing test management refers to the use of the above methods to meet the needs of software outsourcing test tasks.
This article focuses on this topic and discusses the management methods and practical experience of software outsourcing testing projects from the perspective of software outsourcing testing service providers. In order to facilitate readers to read and understand, the author will discuss four chapters: planning, organization, leadership, and control.
1. Plan of software outsourcing Test Management
1.1 flexible selection of outsourcing Test Service methods and contract types
To implement software outsourcing testing, you must first determine the form to take. At present, outsourcing testing service providers (hereinafter referred to as "outsourcing companies") provide services mainly including "on-site testing" and "external testing ". "On-site testing" means that outsourcing companies send testers to the employer's on-site to carry out testing. "External testing" refers to the outsourcing company to take the contractor's list (related products to be tested) back to the company, and organize testing personnel to carry out the testing business. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
Although the two seem to be only site differences, they have a deep idea about how to choose. For example, "On-site testing" is generally applicable to scenarios where the software testing environment is very complex, with extremely high confidentiality requirements, and needs to work closely with the development team. "External testing" is generally applicable to scenarios where developers trust the management capabilities of outsourcing service providers, the software functions are relatively stable, and development and testing can be performed independently.
In addition to choosing a proper form of cooperation, selecting an appropriate contract type is also a top priority. There are two contract types applicable to outsourcing test projects, namely, material labor contract and fixed price contract. The material working hours contract applies to outsourcing testing projects with uncertain scope and unclear progress. The fixed price contract applies to outsourcing testing projects with clear scope, progress and technical requirements. Readers can select an outsourcing project based on its characteristics. In addition, for outsourcing enterprises with immature project management capabilities, I suggest selecting material labor contracts as much as possible to avoid possible risks.
All in all, outsourcing companies need to analyze the functional characteristics, testing requirements, maturity of outsourcing testing, and service capabilities of the tested software, and negotiate with the contractor to select the most effective outsourcing testing service method, reduces testing risks and improves testing quality.
1.2 Develop a practical outsourcing test plan
Large software developers have mature software outsourcing test management capabilities, and they usually develop outsourcing test plans. Some software companies that have just begun Outsourcing Software Testing often want outsourcing companies to provide them with all of their testing services, including outsourcing testing plans, designing test cases, executing tests, and reporting test results. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
In the first case, the developer has developed a test plan. The outsourcing company needs to fully understand the content of the test plan. Based on the outsourcing test experience and the characteristics of the tested project, propose improvement suggestions for the test plan. This includes testing scope, Division of testing stages, testing resources, and testing process quality tracking.
In the second case, the outsourcing company needs the developer to provide the software requirement documents, software design specifications, testing requirements and other documents, according to the developer's project progress, outsourcing costs, quality requirements, develop practical outsourcing testing plans based on the company's service capabilities (software, hardware, team and testing experience. Update and modify the test plan based on the customer's evaluation and feedback, and obtain formal approval from both parties.
2. Organization of software outsourcing Test Management
2.1 build a test team with "Combat Capability"
Outsourcing testing is an intellectual-intensive task. The ability of the testing team determines the quality of testing. There are two considerations for the construction of the test team: the first is the organizational structure, including the number of test managers, test leaders, and test engineers required. Second, skills required for each position, such as testing technical experience and project management experience.
As software outsourcing testing is restricted by project costs and resources, the "fantastic team" composed of test experts is impractical. A team with "Combat Capability" is a realistic goal. A team with test management experience serves as the test Manager, and a person with test technology and familiarity with the tested software serves as the test team lead, senior test engineers, test engineers and test newcomers perform tests.
The team's "Combat Capability" refers to the overall testing capability. A team with "Combat Capability" can ensure the test quality, control the test cost, and train new people. The "combat effectiveness" of the test team depends on the effective communication between the test Manager and test team lead, the effective inheritance of test knowledge, and the active learning and summarization. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
2.2 organize outsourcing testing processes reasonably
Any software outsourcing test project requires a series of closely related processes, including test plan, test strategy, test design, test execution, process tracking, test acceptance, and project summary. Software outsourcing companies need to help developers identify the content, tasks, objectives, and methods of each process. Determine the tasks, evaluation methods, and submission methods of each link.
Test process management is the "top priority" of software outsourcing test management. It can be divided: document management, configuration management, defect management, progress management, quality management, resource management, cost management, change management, etc. Outsourcing testing process management requires developers and outsourcing companies to jointly develop and abide by the testing process, clarify the process change conditions and methods, eliminate testing randomness and out-of-control, and ensure the testing progress and quality objectives. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
2.3 combine regular and random tests
The "general test" in this article refers to the tests executed according to the test cases, and the "random test" refers to the tests executed according to the testing experience of the testers and the testing requirements of the software. Due to the complexity of software testing, defects are discovered simply by executing test cases, which is often insufficient to ensure coverage of testing. Therefore, it is an effective supplement to the regular test to strengthen the random test method and discover the defects that are difficult to be found in the conventional test.
Random tests are executed at what stage and how long they will take, which will affect the testing progress and cost. Outsourcing companies need to discuss with developers in the testing plan stage to reach consensus. Generally, appropriate random tests can be performed after the test cases are executed. In addition, random testing is also required in the final test phase before software release. The person performing random tests is usually a senior technician with rich testing experience and familiarity with the tested software. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
3. Leadership of software outsourcing Test Management
3.1 adhere to "single point of contact" Information Exchange
Large software outsourcing testing projects are often completed by the test teams distributed in different countries and regions. For some projects with long testing cycles, the Progress Management of the test project can be completed only through effective communication and communication.
The "Single Point of Contact" approach helps the relevant project management personnel to better fulfill the mission of "leading the project forward in an orderly manner.
The so-called "Single Point of Contact" means that the developer and the outsourcing company respectively specify the only project management personnel as the input and output interfaces of the project information of both parties, transfers important information (requirements, progress, and problems) of the entire project. In this way, no matter how many developers and outsourcing companies participate in the project, there is only one channel for information exchange between the two parties to avoid confusion between multi-headed communication and redundant or lost project information.
3.2 improve management leadership
The so-called leadership capabilities include "personality charm", "Professional Competence", and "Reasonable Authorization ".
"Personality charm" refers to the fact that managers and group leaders in charge of outsourcing testing projects must be honest, honest, and bright, and respect team members. The decision-making process is democratic and transparent. In addition, it is worth noting that leaders should not filter out important information. For some "leaders", the information will be intercepted when they arrive, regardless of whether the information is important to the team members. Over time, such leaders who have no trust in others will surely be left alone.
"Professional Competence" refers to the person in the leadership position who must have sufficient understanding and grasp of the professional technologies and skills involved in the project. In the software industry, people are very disgusted with being unskillful, deceiving others, and "outside the professional guidance ". Good leaders should be technical leaders. If not, they should try their best to win. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
"Rational authorization" refers to the process of authorizing team leaders to be cautious and select persons with both ability and political integrity. Once an appointment is made, he/she should be put aside and never ask questions, so that others can be the real ones.
4. Control of software outsourcing Test Management
4.1 strengthen test case execution Result Analysis
Many of the defects found in software testing come from the execution results of test cases. Enhancing the execution efficiency of test cases and analyzing the execution results of test cases are factors that determine the effectiveness of software testing and one of the indicators that track the Test Progress.
To effectively evaluate the execution results of test cases, the execution results of test cases are generally divided into four types: Pass, fail, and skip) and block ). The "pass" test case indicates that the test case can be executed and no Software defects are found. The "fail" test case indicates that the test case can be executed and Software defects are discovered; skip (skip) test cases indicate that this test case is not applicable to this round of test but not executed; blocked test cases indicate that this test case cannot be executed normally.
During the outsourcing test execution stage, we need to pay attention to the execution status of test cases, analyze the correspondence between "failed" test cases and discovered Software defects, and analyze the causes of "blocked" test cases, in order to timely update, so as to ensure the adequacy of the test and provide a statistical basis for improving the effectiveness of test cases in the future. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
4.2 strengthen defect lifecycle management
Each software defect is reported, validated, corrected, verified, and closed, which forms the lifecycle of the software defect. To effectively manage software defects, the contractor and outsourcing company should use the same software defect management system to report and handle defects. Both parties need to clarify the use rules of the defect management system during the test plan phase to determine the use permissions and tasks of both parties. Generally, outsourcing companies are responsible for reporting, verifying and closing defects, and developers are responsible for confirming and correcting defects.
In order to accurately report defects, outsourcing companies need experienced testers to confirm and report defects, avoid repeated reporting of defects, eliminate reported defects, and handle feedback of defects in a timely manner. For example, for defects requested by the sender to add more information, the details of the defects should be supplemented as soon as possible. Testers of outsourcing companies verify the Defects Corrected by developers in the new software version. If the new version does not recur, the defects are closed; otherwise, the defects are assigned to the developers for further correction.
4.3 keep track of the progress of daily/weekly reports
For "internal testing" outsourcing testing projects, in order to effectively track the progress of software outsourcing projects, in the test implementation stage, open vendors need outsourcing testing companies to provide project implementation progress, ensure that the test proceeds according to the pre-defined goals of the test plan.
The "Daily Report" or "Weekly Report" of the test item is a commonly used form of progress tracking. The "Daily Report" is the "single point of contact" Person of the outsourcing company who sends the "single point of contact" person to the Contractor every day before the end of work to report the implementation of the test on the day by email or other means, "Weekly Report" refers to the weekly test execution reported by outsourcing companies every weekend.
If you select "Daily Report" or "Weekly Report", you need to consider the time span of the test project and the strict requirements on the Test Progress and quality, for outsourcing testing projects across different countries, different time differences and holidays must be taken into account. For projects with long test cycles, if both parties trust each other, they can adopt the form of "Weekly Report. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]
4.4 complete project summary and Customer Satisfaction Survey
After the implementation stage of the software outsourcing project is completed, the project summary stage is entered. The goal of this stage is to summarize the overall implementation of the project, affirm the achievements, identify deficiencies, and propose improvement objectives and actions, to facilitate closer cooperation between the two parties in the future. Generally, the sender sends the project summary document, the outsourcing company fills in the content, the sender supplements the content, and summarizes the content through the project summary meeting form.
The Customer Satisfaction Survey is a survey sent by outsourcing testing companies to customers (contractors) after outsourcing projects are completed in order to solicit suggestions from contractors, discover outsourcing service problems and improve outsourcing capabilities. The content of these surveys is carefully designed, and the employer fills in the questionnaire based on the service capabilities of the outsourcing company, and then sends it to the outsourcing company. The customer rating of the customer satisfaction survey is also a convincing basis for outsourcing companies to demonstrate service capabilities.
In short, effective outsourcing test management is an important part of ensuring the smooth execution of software test projects according to the schedule, quality and budget. This process requires the cooperation of software developers and software outsourcing companies, use Planning, organization, leadership, control, and other means to form an efficient team, develop a complete testing process, design the test well, effectively execute the test, and strengthen process tracking, so as to successfully complete the outsourcing test task. [Source: Vince Testing Technology Research Center: http://blog.csdn.net/vincetest]