What is Test Engineering?
Test Engineering (or Quality Engineering) is an activity aimed at improving processes and delivering quality products to customers. Testing is one of the key activities within the Software Development Lifecycle, so the role in itself is extremely important.
Title: What does a good Test Engineering team look like?
A good testing team is a mix of specialists whose hard and soft skills are sufficient for a swift and successful testing of software that is under development. There are specifications connected to expertise which can be defined from the early grades to the highest.
What knowledge might a Tester have?
A typical tester has relevant domain knowledge, knowledge of test designing concepts, and an understanding of execution methodologies, tools, and techniques. They should also be capable of efficiently communicating with the software development team. Typical responsibilities include:
- Reviewing requirements
- Creating test cases and documentation
- Running tests according to the standard
- Analysing and reporting testing results.
- Advising their team on areas of focus for testing
What does a Test Engineer do?
Test Engineers will do a mixture of manual and automated testing. Manual testing includes performing tests that have been scripted and exploratory testing. Exploratory testing relies on business knowledge, human observation skills, inquisitiveness, and experience to find bugs in a system which are sometimes hard to identify by scripted tests alone. A test plan regulates the workflow of testing engineers. Some of their responsibilities include:
- Understanding the requirements received from the customer
- Test effort approximation – they can analyse how much effort and time is required to complete testing
- Defect reports – one of the main responsibilities is to document all instances found where requirements have not been met.
- Documenting test cases – creating test cases that should be logically divided into separate blocks called test suits
- Noting ways for improvement – it is beneficial for everyone involved in development if testers can notice, not only the bugs but also ways to improve an application
- Daily reports – the team lead should be kept informed about testing activities daily
- Contribute to test planning, strategy, and approximation – highly experienced senior test engineers will do this.
Tell me more about test automation
An automated test is a script that allows a test engineer to run tests automatically. Another test role, the Software Development Engineer in Test, focusses almost exclusively on automating tests. Some Test Engineers also will create automated tests, others work solely on manual and exploratory testing. Automated testing aims to free valuable time spent on routine testing activities and regression in order that more valuable activities that require a human can be done instead. Test automation activities include:
- Writing, executing, and analysing automated tests – including effective test scripts that help identify problematic issues
- Documenting automated processes – usually, this documentation comprises test plans, test cases and procedures
- Working with frameworks – there are testing frameworks which provide instruments to generate test cases more efficiently. Using such frameworks, a test engineer reduces testing efforts and costs and makes the code itself reusable. Skilled senior automated test engineers can build an automation framework by themselves.
Tell us more about the Test Engineer’s roles and responsibilities within the Software Development Lifecycle…
The relationship between the testing team and other teams in a software development department has evolved from Waterfall to Agile. The Waterfall methodology separates the software developers and locks them in their domain with specifies roles and responsibilities. Testing is planned by them separately from developers. They have some interaction but are ‘staying mainly in their lane.’
However, in DVLA, proactivity is expected from the test engineers since they share the development team’s aim to guarantee the quality of the software product. This is part of the overall Agile approach to software development. The Agile environment, where final product quality is a collective responsibility, is much more collaborative than Waterfall. Every team is almost equally involved, all can share ideas, developers are involved in testing, and all communication with the business analyst, client, product owner, and others.
These days, the role of a test engineer is gaining more power both within a software development project team and within an organisation. They are becoming full-stack software quality assurance engineers combining domain knowledge, testing experience, and technical skills with direct involvement in several development processes. The impact they provide results in higher levels of a software product quality.
What skills do you look for in a good Test Engineer?
- Technical awareness
- An enquiring mind
- Reporting and Communication
- Understanding of Agile Methodologies
- Ability to constantly Learn
DDat Skills Snapshot
The table below shows the skills required at each level:
|DDaT Skill||Test Analyst||Test Engineer||Senior Test Engineer||Lead Test Engineer|
What do Test Engineers do at DVLA?
Ashley Crompton, Head of Quality Engineering
“Test engineers at DVLA come from many different backgrounds and we value the different experiences they bring to the testing community. Whether its deep business knowledge of the systems we are testing, a track record in the testing industry or just all-round technical aptitude and the willingness to learn, all play a key part in ensuring our systems can be developed quickly and to a consistently high standard.”
Ben Dixon, Test Engineer
“I originally joined the DVLA as a test analyst back in 2018, and from the moment I started the DVLA have been eager to improve my skills every step of the way. I have since progressed to become a test engineer and even now the learning never stops. There is a hive mindset of; developing your own skills will in turn develop quality services for the DVLA, so don’t hold back. We are ‘one team’ and we succeed together!
Being a test engineer heavily relies on your inquisitive nature, you often need to ask the hard questions and even dive deep into the unknown. This is much easier when the people around you relish in these challenges, which is the reason why I enjoy working as a test engineer at the DVLA.
As a test engineer working within the Agile framework, it is my job to ensure the services are adhering to the business requirements. I achieve this with both automation and manual testing. For automation testing I use a combination of gherkin, cucumber, and Ruby languages. I use these languages to help build and maintain high quality automation regression test packs for our services using BDD, TDD and ATDD techniques. For manual testing I use techniques such as exploratory testing as it allows me to interrogate specific features of our services that may not be feasible via automation, resulting in the discovery of defects.”