In order to perform the testing process efficiently and professionally, a project requires staff with knowledge and experience in all aspects of the multi-facetted testing oeuvre. The following roles need to be filled, ideally with appropriately qualified personnel.
Test manager
The test manager takes responsibility for all test activities in one or more development projects, and designs and leads these. The shape of the role and its integration in the organization varies from company to company and from project to project.
A test manager is often a kind of sub-project manager assigned to the task by the overall project manager, and smaller teams are often led by a “lead tester” or “test coach”. In larger companies (or projects) multiple test teams often answer to a single test leader, test coordinator, or head of testing.1
People who work in test management need experience in software testing, quality management, project management, and human resource management, and also require professional test management training. A test manager’s typical tasks include:
- Contributing to the drafting and formulation of the test policy and company test strategy.
- Developing and sponsoring testers, the test team, and the overall image of testing work within the company.
- Supporting the function and organization within the testing team, and encouraging team members to develop their skills through training courses, performance reviews, coaching, and so on.
- Creation of the test plan and coordination with the project manager, the product owner, and other stakeholders.
- Preparing and setting up tests as defined in the test plan, especially planning and securing the required resources (budget, staff, tools, test environment, and so on).
- Creation and coordination of a test schedule and regular updates based on test progress and results.
- Implementation, monitoring, and control of planned test activities according to the specified objectives, exit criteria, risks, and the overall project context.
- Initiation and control of test case analysis, design, implementation, automation, and execution.
- Introducing the testing viewpoint into other project activities (for example, integration planning) and representing testing- and quality-related interests to management and other stakeholders.
- Supporting the choice and implementation of test tools including estimating and planning the budget, implementation (e.g., a pilot project), and operation/support.
- Introduction and optimization of supporting processes (including defect and configuration management) to ensure traceability of changes and reproducibility for individual tests.
- Introduction, application, and evaluation of the metrics defined in the test plan.
- Creation and communication of test progress and summary reports from the information collected during the testing process.
Testers
The term “tester” is used both as a generic term for people who are responsible for certain testing activities in an organization or in a project, and also to refer to “all-rounders” who perform (or are capable of performing) all testing activities.
The shape of this role and the required background and experience varies according to the test level concerned. In component and integration testing developers often assume this role whereas for functional acceptance testing, business analysts, application domain experts and employees from the affected business departments are delegated as “testers”. For operational acceptance tests (which deal with the IT aspects of the system), the role is usually performed by employees from the IT department/IT operations or system administration.
Anyone who works as a tester (whether on a temporary or full-time basis) needs basic IT skills, as well as an understanding of and experience in operating the test object. They also need to have experience using the testing tools selected by test management. A Certified Tester certification is of course extremely useful. A tester’s typical tasks include:
- Reviewing test plans, testing schedules and test cases with appropriate business domain and application expertise.
- Obtaining and preparing the required test data.
- Using the designated testing tools.
- Executing manual tests (according to the test specifications) and any necessary exploratory tests, plus the initiation and monitoring of existing automated tests.
- Execution of manual tests according to predefined test specifications and additional exploratory tests.
- Starting and monitoring of automated tests.
- Logging of tests and test results, and subsequent test result evaluation.
- Creation and maintenance of defect reports.
Side Note: Other roles and job profiles
Organizations that have an established testing culture often distinguish more precisely between individual testing roles. For example, between test analyst, test automation specialist, or test administrator. Where there is no precise differentiation between the roles, it is generally assumed that all respective tasks are included in the general role of „tester“.
Test analyst
A test analyst or test designer is an expert in testing techniques and specifications and will have software engineering experience. The Certified Tester Test Analyst certification [URL: ISTQB] is recommended for anyone filling this role. A test analyst’s typical tasks include:
- Analyzing, checking and judging the testability of requirements (such as user stories and acceptance criteria), specifications, and system models (the test basis)
- Identifying and documenting test conditions and the traceability between test cases, test conditions and test basis
- Drafting test specifications
- Identification and preparation of test data
Test automation specialist
The test automation specialist is responsible for creating and maintaining automated tests and test automation solutions. This role requires basic testing skills, coding experience, and excellent knowledge of the test automation tools and scripting languages used in the project at hand. An automation expert’s typical tasks include:
- Design or adaptation of test automation solutions in line with the current project’s specific requirements
- Programming and maintenance of automated test cases within the project’s existing tool environment
Test administrator
A test administrator is responsible for installing, maintaining, and operating the project test environment(s). This role requires system administrator know-how and excellent knowledge of the project hardware, software, and tool landscape. A test administrator’s typical tasks include:2
- Design, set up, verify, deploy, and supervise operation of the test environment(s)
- Install and configure new versions of the test object
- Automate and optimize related processes—for example, using a “continuous integration toolchain”.
Test specialist
In addition to specialization in certain business-domain related topics (for example, specific industry, department, or application-level knowledge) the specialization in certain types of testing and, in particular, testing of non-functional properties is also important.
Such specialists generally work as consultants or trouble-shooters for many (or all) of a company’s projects. It is assumed that they are able to quickly familiarize themselves with complex IT environments and issues, and that they can make the solutions they find usable and available for future projects. Testing specialists need to be mobile too, as they often have to work at multiple company or customer sites.
Certified Tester
How does the ISTQB® Certified Tester certification help in this context? The Foundation Level certification takes participants to “tester” level (without teaching the related IT skills). In other words, a Certified Tester knows why structure and discipline are necessary in a testing environment, and can perform and document manual tests under the leadership of a qualified test manager. The certification also teaches knowledge of basic test specification and management skills. Every software developer needs basic testing skills in order to perform the tests described in models 1 and 2. However, to fill the role of a test designer or test manager, you first need to gain plenty of testing experience. The Certified Tester – Advanced Level certification provides training up to this level (see [URL: ISTQB], [Spillner 07]), while the Certified Tester – Expert Level certification expands on the Advanced syllabus to help you formalize your increased specialization and expertise. Developers and testers who work in an agile environment can take the ISTQB® Agile Tester Foundation and Advanced Level courses. There is also an ISTQB® Automotive Software Tester course available. For more details on all of the ISTQB® training courses, visit [URL: ISTQB].
Soft skills are important too
As well as technical and test-related skills, soft skills are also essential if testers want to succeed. These include:
- The ability to work in a team
- Political and diplomatic skill
- Assertiveness and confidence
- Precision and creativity
- Willingness to question apparently objective facts
- The ability to quickly come to grips with complex situations and applications
Multidisciplinary teams
It is often necessary to bring additional full- or part-time IT specialists into the team. These can be database specialists, database designers, or network experts. You will also often need sector specialists who work in the customer’s industry. Managing such multidisciplinary teams isn’t easy, even for experienced test managers.
Specialized software testing service providers
If the required resources are not (or only partially) available in-house, you can always hire an external testing service provider, much as you would an external developer. These specialists have the experience to deliver ready-to-use solutions and are able to quickly set up and run highly optimized testing environments for customer projects. They can also provide experts with the specific skills required to fill any gaps in the job profiles listed above.
Leave a Reply