info@brightest.be
+32 3 450 88 42

World Emoji Day

Testing roles compared to Emoji’s

Posted by: Eva
Category: Business

First of all, a little disclaimer: be prepared for an abundance of emoji’s in this article. 😎😏

In honour of World Emoji Day, we thought it would be funny/cute to compare testing roles to Emoji’s. Great! 👍 But which ones? Because, depending on context, team structure, and the organization’s specific needs, the role of e.g. a ‘software tester’ is viewed and utilized differently. Many different role descriptions can be found all over, with sometimes a very different emphasis on what one thinks is important. So, for the purpose of this article, and because we don’t have to make things overly complex in life 🙄, let’s break it down into the 3 (or maybe 4) most generic testing roles:

Test Engineer: business-domain-driven testing expert

Test Engineers must be quick, flexible and agile, like leopards 🐆. Sometimes, e.g. in case of hotfixes 🛠 or late changes, they have to quick scan a system and give their opinion on its quality within a very limited time frame.

  • Participate in the technical review process contributing a behavioural viewpoint.
  • Provide inputs on challenges, risks, resources, test estimates, … during test planning meetings 📅.
  • Analyse requirements and if they are incomplete, ask meaningful questions ❓ that will yield more information and help perform testing effectively.
  • Identify and prioritize test conditions addressing product risks and features to be tested, in order to define and write specific tests cases and documentation covering that area.
  • Identify necessary test data to support test conditions and test cases.
  • Schedule 📅 test executions in the best and most efficient order.
  • Develop test documentation: test plans, test cases, and status reports 📉📊 for (test) management.
  • Execute or delegate exploratory, automated, and regression tests to find functional, UI and usability, … issues.
  • Check consistency across devices 📱, browsers, and operating systems.
  • Analyse actual results against the expected ones.
  • Must have deep understanding of software testing, its main concepts, and processes:
    • defect management process
    • test design techniques
    • different testing levels, methods, and types
    • test estimation techniques
    • experience in a variety of testing efforts
    • understanding of common software failures and faults
    • understanding of the test automation process
  • Own these soft skills:
    • Ability to work in an Agile environment.
    • 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.
    • Good communication 🗣 and teamwork skills to interact with project team members, clients, and stakeholders as well as work closely with the dev team – from reproducing the reported issue and emphasizing the fix for critical bugs 🦟 to understanding how the bug has been fixed.
  • Best have a few programming skills, which are always a plus, including coding, basic SQL knowledge to extract data for tests, XML, general web development skills, and web services.

Test Automation Engineer: tester with coding skills

Besides having all skills of a Test Engineer (see above) they are also coding wizards 🧙‍♂️🧙‍♀️; testers with an automation-oriented mind.

  • Determine the priority for test scenarios and create execution plans to implement scenarios.
  • Write, design, and execute automated tests by developing scripts that run tests automatically; using different automation tools or a test automation framework to create and design test cases more efficiently.
  • Maximize test coverage for the most critical features of the system, with a minimum set of code. And thus, optimize testing efforts that otherwise would consume a large percentage of test resources.
  • Write documentation for automated processes including test plans, test procedures, and test cases.
  • Log and document bugs in the bug tracking or test management system 🦟.
  • Build test automation frameworks, because an organized framework reduces maintenance costs and testing efforts while making test automation code reusable, maintainable, and stable.
  • Create automation environments for repeated tests.
  • Set up Continuous Integration ♾.
  • Design, test, and deploy effective test automation solutions.
  • Develop tools to support testing or other functions.
  • Execute exploratory testing when they need to understand how the system works.
  • Know how to use automation testing for load testing 📈, helping to verify a system’s performance under load conditions.
  • Know common computer languages required for different automation testing technologies: Python 🐍, Java, Ruby, С++, Perl, PHP, C#, …
  • Have platform specific knowledge (web application or mobile app)

Full-stack Test (Automation) Engineer: tester of the Future

With current development models – Agile and DevOps (♾) – the discipline of testing expands by taking charge of all aspects of product quality, such as functionality, usability, performance 📈, security 🔐, etc., and combining different strategies and technologies to test; testers can surely be called full-stack test engineers or true centipedes 🐛.

They have a rich combination of domain knowledge, technical skills, and testing expertise, that allows them to match modern demands of fast delivery. Therefore, every tester should pursue the path of a full-stack test engineer, who is involved in the project development lifecycle right from the start and, consequently, has a greater impact on the product, which results in a higher level of quality than ever before

Test Manager: a test project manager

Test Managers must be aware of everything what’s going on and be able to tackle or mitigate all QA issues, therefore they have to spread and cover their tentacles everywhere, like octopuses 🐙, and keep a helicopter view 🚁 of the organisation.

  • Prepare the test strategy, applying industry-accepted practices.
  • Set metrics 📉📊 to measure the quality of delivery.
  • Plan, monitor and control the testing process and team members:
    • define task lists for testers
    • schedule testing activities 📅
    • calculate testing budgets 💰
    • estimate test efforts
    • keep track of the quality of testing: what kind of defects are uncovered and detect if there’s a tendency to miss out on bugs 🦟
  • Pick and hire candidates 👨‍💻👩‍💻 for QA positions and coach and supervise them afterward.
  • Represent the QA team at cross-department meetings and update the customer on the progress of testing activities.
  • They take any action needed to meet the quality goals, in addition to day-to-day duties.
  • Have profound understanding of software testing, its concepts, and processes:
    • testing approaches and how to integrate them in different kind of organisations
    • defect management process
    • different testing levels, methods, and types
    • test estimation techniques
    • test automation process; to define which cases will benefit from this approach and where and when it’s better to test without spending time on automating
    • tool selection and able to structure them in different kind of organisations
  • Have profound understanding of different kind of organisations and businesses, project requirements and risks to determine a test strategy, test goals, and objectives.
  • Own these soft skills:
    • Good project planning and people coordination skills.
    • Good communication 🗣, coaching and teamwork skills to interact with testing team members, project and organisational stakeholders, as well as work closely with the development team (analysts and developers).

Written by Joke Gijsbrechts (joke.gijsbrechts@brightest.be)