The role of the QA Manager
Much has changed the software development process from the cascade methodology, in which the tests were mostly done at the end of this process. Today, most developments follow an agile software methodology.
Under these methodologies, those involved in the QA process are trained to focus on quality and are offered the necessary tools to detect errors as early as possible. After all, as it is widely known, the studies that link the delay in finding an error with the cost - the larger the later - of fixing it, right?
Relative cost to fix bugs, based on time of detection:
What is QA and what is the role of a Quality Assurance Manager?
Here is where QA Manager come in. Mainly, they act as subject matter experts who establish guidelines, standards, methodologies, procedures and metrics. They are the reference and the final authority on all quality issues, projects and software products of an area or a company.
Let's see what are the roles and responsibilities of a quality manager in agile organizations.
- Select the QA Team
- Definition of quality standards
- Connection with other roles
Select the QA team
Here, the job of the QA Manager is to understand the different natures present in the organization's applications. The objective is to compose a team of specialists in QA in the different technologies necessary to be able to cover the quality in the different components of the applications, determined by their nature and by their design architecture.
It is not the same a specialist in explorative tests as in automation of web user interfaces, than mobile and, if these are different from each other, the difference is even greater with a specialist in backend tests with Web APIs, or a specialist in test of performance.
Therefore, this is the first critical task that requires a careful analysis to determine the needs of the composition of the team and its dimensions to, later, try to select these profiles in the labor market.
Subsequently, it will be necessary to determine tasks, responsibilities, areas of collaboration and synchronization, as well as the development and use of tools for the comprehensive management of the QA process in the company.
Definition of quality standards
This task, which should be relatively simple according to the theory, that is, the verification that the functionalities are adequate to what is specified in the requirements, in practice it is not so simple. Since in most cases (especially in agile), these requirements are not specified formally, but are based on tacit assumptions, verbal communications, that everyone believes they share, when defining and implementing the functionality.
Functional analysis as a starting point
On many occasions, the QA process starts from the need to carry out and translate this functional analysis for the definition of the test cases and the possibility of knowing the coverage. This process must be planned and supervised. For this reason, the use of a test case management tool with the ability to integrate with other tools in the QA process and for the generation of reports, history ... is necessary for the purposes of registration, traceability and visibility of the evolution.
According to the effort / benefit connection, it is important to consider a structure similar to the one proposed in the testing pyramid to optimize the effort dedicated to guaranteeing quality.
Indicators of quality
Regarding the metrics that select to act as indicators of quality, the options are wide, some of the most common are:
- Coverage by application (can be broken down by type of test), shows us how the coverage of unit tests, services or functionalities in our application evolves. Of course, if we are lack of coverage, we will always work on business-critical features first.
- Resources per test, time, people, money, hardware used in the development of each type of test, it is always good to know them to have a reference and know how to optimize.
- Execution times and waiting times, how long does it take to run each type of test in total? And individually? How long does the person who needs the results have to wait to obtain them? Can he execute them himself? Does it depend on other people / procedures / automatisms?
- Test scores. Not only that tests were passed or failed, were there tests that could not be executed? Why? Were there false positives / negatives? Are our tests robust? How much time do we spend reviewing the executions? And to keep the tests?
- Life cycle of defects, when was each one detected? How long did it take to fix? Is it recurrent? In which functional area of the application do most of the errors arise? What is the distribution of the criticality of the defects found?
Connection with other roles
The tests are only one part of the QA process, among its most important attributions is the supervision of the methodology and the processes. For this reason, fluid communication with the different business and technology roles within the company is important to ensure that everyone is in unison regarding the construction of a quality software product.
QA and development processes integration
Especially important is the integration of the QA process with the development process, working hand in hand from the earliest stages. These include the 'Definition of Ready', exemplifying a request for a new functionality, to be considered ready for implementation it should meet quality criteria, such as a clear, formal and unambiguous specification of its business and functional requirements, and criteria of defined test. This is part of the work methodology and it is the job of the QA roles to know how to transmit and demonstrate in practice the benefits of this way of working in close cooperation and synchrony.
Collaboration with architecture
Collaboration with architecture roles is also important, since their recommendations for technologies, tools and design guide and determine the optimal testing strategy. Thus, it is usually advisable to agree on this type of roles, which also provide vision, knowledge and depth.
Measurable evidence of the QA process
Business roles present different concerns depending on their proximity to the developed product, the closer they are, the more they tend to be concerned with the details of the work methodology and the day-to-day process of delivering new versions. The further away they are, the more they are concerned about having a view based on reliable information on quality control and application processes. In any case, what is required of the person in charge of QA is that control of the methodology, the procedures, and be able to make patent through measurable evidence that the QA process has under strict control the quality of the development and delivery of the products.