Building a testing group
It was mentioned that organizing, staffing, and directing were major activities required to manage a project and a process.These apply to managing the testing process as well. Staffing activities include filling positions, assimilating new personnel, education and training, and staff evaluation. Directing includes providing leadership, building teams, facilitating communication, motivating personnel, resolving conflicts, and delegating authority. Organizing includes selecting organizational structures, creating positions, defining responsibilities, and delegating authority. Hiring staff for the testing group, organizing the testing staff members into teams, motivating the team members, and integrating the team into the overall organizational structure are organizing, staffing, and directing activities your organization will need to perform to build a managed testing process.
Establishing a specialized testing group is a major decision for an organization. The steps in the process are summarized in Figure 8.2. To initiate the process, upper management must support the decision to establish a test group and commit resources to the group. Decisions must be made on how the testing group will be organized, what career paths are available, and how the group fits into the organizational structure (see Section 8.3). When hiring staff to fill test specialist positions, management should have a clear idea of the educational and skill levels required for each testing position and develop formal job descriptions to fill the test group slots. When the job description has been approved and distributed, the interviewing process takes place. Interviews should be structured and of a problem-solving nature. The interviewer should prepare an extensive list of questions to determine the interviewee‘s technical background as well as his or her personal skills and motivation. Zawacki has developed a general guide for selecting technical staff members that can be used by test managers . Dustin describes the kinds of questions that an interviewer should ask when selecting a test specialist . When the team has been selected and is up and working on projects, the team manager is responsible for keeping the test team positions filled (there are always attrition problems). He must continually evaluate team member performance. Bartol and Martin have written a paper that contains guidelines for evaluation of employees that can be applied to any type of team and organization .They describe four categories for employees based on their performance: (i) retain, (ii) likely to retain, (iii) likely to release, (iv) and release. For each category, appropriate actions need to be taken by the manager to help employee and employer.
Structure of test group
It is important for a software organization to have an independent testing group. The group should have a formalized position in the organizational hierarchy. A reporting structure should be established and resources allocated to the group. will eventually need to upgrade their testing function to the best case scenario which is a permanent centralized group of dedicated testers with the skills described earlier in this chapter. This group is solely responsible for testing work. The group members are assigned to projects throughout the organization where they do their testing work. When the project is completed they return to the test organization for reassignment. They report to a test manager or test director, not a project manager. In such an organization testers are viewed as assets. They have defined career paths to follow which contributes to long-term job satisfaction. Since they can be assigned to a project at its initiation, they can give testing support throughout the software life cycle. Because of the permanent nature of the test organization there is a test infrastructure that endures. There is a test knowledge base of test processes, test procedures, test tools, and test histories (lessons learned). Dedicated staff is responsible for maintaining a test case and test harness library.
A test organization is expensive, it is a strategic commitment. Given the complex nature of the software being built, and its impact on society, organizations must realize that a test organization is necessary and that it has many benefits. By investing in a test organization a company has access to a group of specialists who have the responsibilities and motivation to:
• maintain testing policy statements;
• plan the testing efforts;
• monitor and track testing efforts so that they are on time and within budget;
• measure process and product attributes;
• provide management with independent product and process quality information;
• design and execute tests with no duplication of effort;
• automate testing;
• participate in reviews to insure quality; are meet.
The duties of the team members may vary in individual organizations. The following gives a brief description of the duties for each tester that are common to most organizations.
The Test Manager
In most organizations with a testing function, the test manager (or test director) is the central person concerned with all aspects of testing and quality issues. The test manager is usually responsible for test policy making, customer interaction, test planning, test documentation, controlling and monitoring of tests, training, test tool acquisition, participation in inspections and walkthroughs, reviewing test work, the test repository, and staffing issues such as hiring, firing, and evaluation of the test team members. He or she is also the liaison with upper management, project management, and the quality assurance and marketing staffs.
The Test Lead
The test lead assists the test manager and works with a team of test engineers on individual projects. He or she may be responsible for duties such as test planning, staff supervision, and status reporting. The test lead also participates in test design, test execution and reporting, technical reviews, customer interaction, and tool training.
The Test Engineer
The test engineers design, develop, and execute tests, develop test harnesses, and set up test laboratories and environments. They also give input to test planning and support maintenance of the test and defect repositories.
The Junior Test Engineer
The junior test engineers are usually new hires. They gain experience by participating in test design, test execution, and test harness development. They may also be asked to review user manuals and user help facilities defect and maintain the test and defect repositories.