The R&D team has undergone major changes in recent years. Flexibility, agility and speed are crucial for software delivery. These changes impact on the individual test lab member. The test or QA engineer position has become more influential and dominant within the R&D team.
Traditionally, the tester had the test plan and basically maintained a checklist of features that needed to be tested and confirmed. In the modern enterprise software test lab, the tester must know the overall product features, and needs to have a deep a technical understanding of the software architecture. The majority of tests have moved from being quantitatively measured to being qualitative. The continuous test feedback needs to be delivered fast, in line with the overall product delivery. Hence almost all tests need to be automated. In addition, the tester needs to be capable of performing qualitative tests on the product.
If you missed part 1 or 2 -
Team Member Skills
The individual tester needs to have problem-solving skills and be creative and open minded, for example, to integrate tools and be able to use the right open source at the right time.
According to WIkipedia, Exploratory Testing is defined as:
“… the personal freedom and responsibility of the individual tester to continually optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.” -Wikipedia
The modern test team members need to be:
- Dynamic and flexible – The demand for speed and the fact that R&D needs to deliver fast has the potential for placing the tester at a bottleneck. The tester needs to be able to accept changes even on an hourly basis.
- Strict and critical – The tester needs to look at the details and take responsibility for overall product stability, with a critical eye, making sure to investigate every aspect of the product.
- Technically oriented – In contrast to the traditional environment, the lab tester needs to have the capabilities of a developer, including a broad set of skills (LAMP, Java, C++, Ruby, Python, Oracle, Scaling/Capacity, High Availability, and so on).
Of course, the tester clearly needs to be able to work in a team and at the same time be capable of working independently in a time-sensitive environment.
Test Engineer: Job Description Example
Education: B.Sc. in Computer Science or Computer Engineering.
- At least 2 years of development experience with C#/Java
- Experienced with test automation development
- Experience with TFS/JSystem /Test Complete/QTP – advantage
- Experience with Agile methodology – advantage
- Team player with “can do” attitude
- Very good interpersonal skills
- Design, development and maintenance of the test automation infrastructure.
- Develop and execute the automated test scenarios.
- Work in close collaboration with interfaces: Platform R&D, product and architecture teams
- Implement Development and QA methodologies.
The Modern Lab Team
Testing is another aspect of the application and the test engineers are the owners of the testing feature. As discussed in part 2 of this series, the team needs to comprise test experts that have knowledge and experience using the tools already mentioned. The team members’ responsibilities include:
- Fixing failures and writing tests: Due to product updates and additional features including UI and APIs, there is a consistent need to fix and adjust the tests to fit these changes.
- Building the frameworks: Building and maintaining the testing infrastructure frameworks. A good test automation infrastructure facilitates and speeds up test development and debugging.
- Stress and Performance tests: The members need to know the product usage and need to collaborate with the product managers to make sure that the service is scalable as needed.
The Team Leader
In the traditional test lab, the team leader did tests and management was only part of the job. The modern test team leader is a full-time manager. Due to the dynamic and short process there is a need for continuous guidance. The team leader coordinates the tasks and roles within the team, and in addition liaises with the external parties such as the product manager and operations. The team leader needs to have deep technical skills and be familiar with development test methods and tools. In order to track and control the tasks, the team should use tools such as Trac, Jira, or Mantis. The modern team should also leverage collaboration and project management tools such as Trello.
It is worth noting that when a traditional QA team changes, part of the team will be more oriented towards exploratory testing and might morph into a customer support oriented team. The other part of the team will need to be educated and gain software development skills.
In modern web organizations, the tester might actually one of the developers. For example, the Google SET (Software Engineering in Test) member is an integral part of the software development team. Phasing out of the traditional test lab to the modern test lab is part of a strategic move for the whole IT/R&D organization.
If you have not yet read part 1 and part 2, check them out now:
About Ravello Systems
Ravello is the industry’s leading nested virtualization and software-defined networking SaaS. It enables enterprises to create cloud-based development, test, UAT, integration and staging environments by automatically cloning their VMware-based applications in AWS. Ravello is built by the same team that developed the KVM hypervisor in Linux.