Quality Assurance & Test Engineer

Information Technology London, United Kingdom


  • Job Category:

    Information Technology

  • Location:

    London, United Kingdom

  • Job Type:

    Permanent

  • Number of Openings:

    1

Description

Position at Tokio Marine HCC

Why Tokio Marine HCC?

Standing still is not an option in the current world of Insurance. TMHCC are one of the world’s leading Speciality Insurers. With deep expertise in our chosen lines of business, our unparalleled track record and a solid balance sheet, TMHCC evaluates and manages risk like no one else in the industry. Looking beyond profit, empowering our people and delivering on our commitments are at the core of our customer values, and so is a desire to grow and provide creative and innovative solutions to our clients. We have doubled our gross written premiums in the past 3 year and our plan is to do so again in the next 3 years. To support this desire, we need to be forward-thinking and innovative in every respect. That means continually improving our customer-focused business, it means providing systems, solutions and technology to enable seamless growth and business innovation, and it means having the best people capability to apply to these challenges.

Part of our evolution involves growing our team, and bringing in a range of views, perspectives and backgrounds that will allow us to deliver this forward-looking culture, that relies upon open and trusting relationships, and a shared vision for that continual improvement. We aspire to build an environment where new perspectives are encouraged, where resilience, fresh ideas and different opinions are valued.

About the QA and Test Engineer Opportunity

TMHCC is in the midst of an IT transformation and is shifting towards a Product-centric operating model. You will be managed by the QA/Test Engineering Practice Lead and will work within one or more ‘Product Teams’. As a QA/Test Engineer with experience of Agile and DevOps, you will provide testing and quality assurance expertise in all ways to your team. You are the key person responsible for making sure that whatever is built actually works, and meets the criteria defined for it, to work in accordance with user requirements. Your role spans all testing disciplines, as you seek mastery in each of them.

Core Responsibilities

  • Always seek opportunities to automate tests – particularly against key operational uses cases within your product team
  • Seek to help your practice’s testing coverage expand and reduce the residual risks of having untested aspects across products and component services
  • Drive greater testing involvement at user story and acceptance criteria forming stages, including use of Cucumber/Gherkin syntax to articulate Behaviour Driven development (BDD) and the building of priority-driven tests
  • Drive through greater levels of unit testing to be performed at development stages (‘shift-left’), to catch defects much earlier than in later environments, but also to implement Test-Driven Development (TDD) practices amongst your development colleagues
  • Set up Continuous Integration automated and repeatable tests within the CI/CD pipeline
  • Perform low-level testing like unit testing and module testing
  • Build test plans and write test cases (scripts describing an input action and an expected response), which may include working with IT partners who take-on the development and execution work of test cases
  • Participate in the defect detection, re-production, logging, and re-testing cycle within an Azure DevOps defect management system
  • Identify pertinent testing gaps from risk-based testing approaches used within your product team
  • Analyse requirements to help perform testing effectively and develop (complex) test data sets, build different test scenarios and acceptance tests in complex scenarios
  • Use statistical data that illustrates the number of repeated tests on the same features or functions of your product as a metric for determining test automation and prioritisation
  • Conduct exploratory and bounds testing (tests to try to break a system or test its integrity)
  • Check product consistency across devices, browsers, and operating systems
  • Provide inputs on high-level test scenarios, challenges, risks, resources, and test estimates
  • Write, design, and execute automated tests by creating scripts that run testing functions automatically, whilst maximising test coverage for the most critical features of the system
  • Determine the priority and sequencing for test scenarios and create execution plans to implement these
  • Develop test infrastructure tools for the team on multiple platforms (web, mobile, and desktop)
  • Work with deployment teams to resolve any issues in the product upon feature releases
  • Assist the QA/Test practice lead in working with the IT Business Information Security Officer (BISO) function on setting an agreed test strategy and responsibilities with their remit on security testing – especially where your product is affected, both in terms of:
    • The QA/Test function contribution towards the security testing remit of the BISO
    • Setting and agreeing practices and guard-rails on the timing and environments, feeding in and reporting, of security testing into the SDLC
  • Recognise that (automated) test scripts themselves are subject to change and their own change control processes around feature/fix changes to a product, that in turn impact one or more automated tests
  • Participate in and contribute to Agile meetings throughout each development cycle
  • Create and maintain technical documentation for reference and reporting (via Azure DevOps)

Day-to-day Interactions and Activities:

With your Product Team colleagues:

A)     Product Delivery Manager:

  • Your work will be under the direction set by the Product Delivery Manager
  • Always be ready to present your ideas, challenges, and constraints to them, but be flexible enough to give your wholehearted commitment to the eventual direction or prioritisation set.
  • Treat them as one of the customers of your work.
  • Provide reporting of your progress between sprint cadences, and provide estimation of proposed changes on effort required, using a suitable technique (e.g., story points, # sprints)
  • Assist with change submissions to governance bodies (e.g., Technical Design Authority) as needed
  • Help set up and present at show-and-tell sessions with your customers. This may include sessions to present the test approach applied, review of test outcomes and seeking UAT sign off.

 

B)     Business Analysts:

  • Provide them with questions and feedback on requirements documentation (e.g., user stories and BPM workflows) to ensure that you have a complete and accurate understanding of QA/Test requirements
  • Help in refining user stories and acceptance criteria, and present QA/Test BDD considerations as appropriate to increase quality and ultimately business value

 

C)     Architects:

  • Understand the architecture strategy and direction (blueprint) which will guide what and how you develop QA/Test solutions
  • Identify architectural opportunities-to-improve and constraints-that-inhibit, the testing of your product

 

D)    Development Engineers:

  • Help educate and implement Unit testing and Test-Driven Development (TDD) practices with them
  • Set unit test and continuous integration ways of working up, and build expectations of development testing standards and assurance to be met before deploying changes into a test environment
  • Work together during test sessions to review test outcomes and determine development changes
  • Regularly participate with them in the testing, fault-finding, defect fixing, and re-test sequence

 

E)     DevOps Engineers:

  • Work to ensure that Test environments (SIT, UAT, NFT, OAT, Staging) are maintained to the same standards and versioning that exists in the production environment
  • Notify of any consistency differences you find across test environments on changes pushed
  • Diagnose any multi-environment post-deployment problems found and assist with proving and rollback testing as may be required
  • Review and update support obligations between ITSM platform teams, DevOps engineers and yourself for changes that require support provisioning.

With the QA/Test Engineering Practice Leader:

  • Assist with establishing the QA/Test engineering practice
  • Ensure your personal performance objectives and actions are agreed, and reviewed on a regular basis
  • Brief them on QA/Test practice impacts and issues, and seek their guidance on how to address these in such circumstances
  • Help refine the test strategy, applying industry-accepted practices and setting metrics to measure the quality of delivery
  • Assist with planning and controlling the testing process: define the task lists for members, schedule testing activities, calculate the testing budget, estimate test efforts
  • Assist with the design and specification of test environments and best practices on how to use these
  • Help represent the QA/Test practice at cross-department meetings
  • Help to develop and grow the scope of the Non-Functional Testing (NFT) strategy used
  • Provide timely feedback on lessons learned, and how this contributes to the test strategy and practices

With your QA/Test Engineering Practice colleagues:

  • Actively participate in QA/Test practice discussions on the QA/Test best practices
  • Define strategic direction for testing by providing guidance, feedback, and suggestions to improve quality practices
  • Assist with production of documentation on agreed standards and methods as needed
  • Provide technical mentoring and training to lesser experienced QA/Test Engineer colleagues
  • Have them peer-review and quality assure and improve your work
  • Assist with the management of third-party QA/Test engineer resources within your team as needed
  • Advocate approved test frameworks (test automation, code libraries, etc.) for QA/Test engineers spanning product teams, to use across products
  • Leverage how to manage test data (e.g., to find problematic or heavily tested areas) starting from best practices, but using learnings gained from product knowledge to inform proposed improvements
  • Monitor the effectiveness of the testing practice and bring about improvements through insights gained via analysis at all stages of the SDLC

Ways of Working and behaviours:

  • You must be a self-starter, and be prepared to go the extra mile for product and practice, as you strive to bring testing and QA excellence in what you do
  • The QA/Test practice applies full regression testing particularly where automation can be applied, otherwise it adopts a risk-based testing approach with lowered test coverage – your challenge will be to help shift this and lower the overall test risk exposure for your product
  • You should seek to continuously improve the role of testing throughout the Agile delivery lifecycle, through operating tests at both high and low levels within the team, using show & tell and feedback sessions to iterate and improve test frameworks, and challenge practices
  • In designing, building, and supporting QA/Test solutions you are driven by user needs and wants and improving overall customer experience
  • Willing and able to quickly learn new technologies, platforms and languages
  • Proactive and resourceful, you have an aptitude to solve problems and not just identify them
  • You efficiently build quality solutions that meet requirements with a minimum of bugs/defects
  • Able to effectively prioritise your work to ensure your team delivers the most value in each ‘sprint’

Requirements:

Essential:

  • Must be a qualified as a Certified Agile Tester (with ISTQB Advanced Technical Test Analyst or ISTQB Advanced Test Analyst highly desirable additional qualifications)
  • Deep understanding of software testing, its main concepts, and processes: the whole bug life cycle; different testing levels, methods, and types; test estimation techniques
  • Critical thinking and analytical skills to examine bug reports and prioritize necessary tests, what information to include in the daily status reports, prioritize and estimate task execution
  • 5+ years experience of Selenium open-source test framework (including Selenium Integrated Development Environment (IDE), Selenium Remote Control (RC), WebDriver, Selenium Grid)
  • Highly experienced in use of Azure DevOps tooling for the setup and execution of test frameworks used across the SDLC
  • A detailed understanding of the use and benefits of BDD and TDD approaches and how they fit into the CI/CD pipeline for testing
  • Deep knowledge of defect management and test automation processes
  • Experience of working within ITIL incident and problem management in the detection and resolution process of defects
  • Strong coding and design skills using some common computer languages required for different automation testing technologies (e.g., TestNG, Python, Java, Ruby, С++, Perl, PHP, C#)
  • Background experience and expertise in London Markets Insurance and its lines of business, that will be in the product or platform you represent
  • Very proficient in having developed automated test systems, and ability to define which cases will benefit from this approach and where it’s better to test without spending time on automating
  • Strong SQL and database skills, with experience of common data structures, algorithms, and distributed data systems
  • Knowledge of back-end components, microservices (architecture that components are often built upon with its moving parts, dependencies, and interactions) and integrations
  • An understanding of the cloud infrastructure environment
  • An in-depth knowledge of the current industry-wide testing techniques, tools, and methodologies
  • A strong understanding of the differences between functional and non-functional testing
  • Ability to interpret requirements and specifications documentation (e.g., user stories)
  • Strong understanding of software engineering best practices, methods and tools
  • Knowledge and experience of Agile product delivery methodologies within a DevOps environment (e.g., Scrum, Lean, Kanban, XP)
  • Strong written and verbal communication skills with the ability to listen, present and communicate solutions clearly and concisely with technical and non-technical audiences
  • Strong appreciation of the importance of comprehensive testing

Desirable:

  • An appreciation of the varying types of non-functional testing (NFT), especially baseline, browser/platform comparison, UX, compliance, stress/load, performance, security and accessibility
  • An understanding and appreciation of the latest market trends around Test automation and related tools for testing, code deployment or monitoring (e.g., Mabl, Leapwork, Eggplant)
  • Experience of software analysis and design, from the perspective of improving testing of well-structured software
  • Project management skills including effective communication between the team and client – close collaboration with other roles and stakeholders
  • Experience in BDD frameworks namely SpecFlow
  • Relevant qualifications and experience – such as a BSc in Computer Science or Engineering, Software Development certifications, etc.
  • Understanding of API/integration Testing. Appreciation of BizTalk and/or MuleSoft. 
  • Experience in cloud platforms including AWS and Microsoft Azure