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 itself is extremely important.
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 perform a mixture of manual and automated testing. Manual testing includes performing tests that have been scripted as well as 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
- writing 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
- Creating daily reports – the team lead should be kept informed about testing activities daily
- contributing 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 will also 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, prioritising more important activities that require a human. 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 testing frameworks to reduce testing efforts and costs, and making code 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 specified roles and responsibilities. Testing is planned by them, separately from developers. They have some interaction but mainly stay in their lane.
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 and all can share ideas. Developers are involved in testing as well as 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 developmental processes. The impact they provide results in higher levels of software product quality.
What skills do you look for in a good Test Engineer?
To be a successful Test Engineer, you will need the following:
- technical awareness
- an enquiring mind
- reporting and communication skills
- an understanding of Agile methodologies
- the 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 it’s 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 DVLA as a Test Analyst back in 2018, and from the moment I started , I 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 that developing your own skills will in turn develop quality services for 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 these challenges, which is the reason why I enjoy working as a Test Engineer at 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.”