Software tester

Description

Software testers perform software tests. They may also plan and design them. They may also debug and repair software although this mainly corresponds to designers and developers. They ensure that applications function properly before delivering them to internal and external clients.

Excludes people performing managerial activities.

Other titles

The following job titles also refer to software tester:

tester
application software tester
software testers
application tester
soft tester
software testing specialist
module tester
software application tester
unit tester

Minimum qualifications

Bachelor’s degree is generally required to work as software tester. However, this requirement may differ in some countries.

ISCO skill level

ISCO skill level is defined as a function of the complexity and range of tasks and duties to be performed in an occupation. It is measured on a scale from 1 to 4, with 1 the lowest level and 4 the highest, by considering:

  • the nature of the work performed in an occupation in relation to the characteristic tasks and duties
  • the level of formal education required for competent performance of the tasks and duties involved and
  • the amount of informal on-the-job training and/or previous experience in a related occupation required for competent performance of these tasks and duties.

Software tester is a Skill level 4 occupation.

Software tester career path

Similar occupations

These occupations, although different, require a lot of knowledge and skills similar to software tester.

digital games tester
ICT integration tester
ICT test analyst
ICT system tester
ICT usability tester

Long term prospects

These occupations require some skills and knowledge of software tester. They also require other skills and knowledge, but at a higher ISCO skill level, meaning these occupations are accessible from a position of software tester with a significant experience and/or extensive training.

Essential knowledge and skills

Essential knowledge

This knowledge should be acquired through learning to fulfill the role of software tester.

Software architecture models: The set of structures and models needed to understand or describe the software system, including the software elements, the relations between them and the properties of both elements and relations.
Software anomalies: The deviations of what is standard and exceptional events during software system performance, identification of incidents that can alter the flow and the process of system execution.
Levels of software testing: The levels of testing in the software development process, such as unit testing, integration testing, system testing and acceptance testing.
Software metrics: The metrics that measure a characteristic of the software system in order to determine the development of the software and evaluate it.

Essential skills and competences

These skills are necessary for the role of software tester.

Report test findings: Report test results with a focus on findings and recommendations, differentiating results by levels of severity. Include relevant information from the test plan and outline the test methodologies, using metrics, tables, and visual methods to clarify where needed.
Provide software testing documentation: Describe software testing procedures to the technical team and the analysis of test outcomes to users and clients in order to inform them about the state and efficiency of software.
Perform software unit testing: Test single units of source code to determine whether or not they are suitable for use by creating short code fragments.
Execute software tests: Perform tests to ensure that a software product will perform flawlessly under the specified customer requirements, using specialised software tools. Apply software testing techniques and tools in order to identify software defects (bugs) and malfunctions.
Address problems critically: Identify the strengths and weaknesses of various abstract, rational concepts, such as issues, opinions, and approaches related to a specific problematic situation in order to formulate solutions and alternative methods of tackling the situation.
Replicate customer software issues: Use specialised tools to replicate and analyse the conditions that caused the set of software states or outputs reported by the customer in order to provide adequate solutions.

Optional knowledge and skills

Optional knowledge

This knowledge is sometimes, but not always, required for the role of software tester. However, mastering this knowledge allows you to have more opportunities for career development.

Haskell: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Haskell.
Erlang: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Erlang.
Sas language: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAS language.
Agile project management: The agile project management approach is a methodology for planning, managing and overseeing of ICT resources in order to meet specific goals and using project management ICT tools.
Ruby (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Ruby.
Common lisp: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Common Lisp.
Lisp: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Lisp.
Visual studio .net: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Visual Basic.
Java (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Java.
Mdx: The computer language MDX is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the software company Microsoft.
Computer programming: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) and of programming languages.
Prolog (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Prolog.
Openedge advanced business language: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in OpenEdge Advanced Business Language.
Javascript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in JavaScript.
Xquery: The computer language XQuery is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the international standards organisation World Wide Web Consortium.
Perl: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Perl.
Smalltalk (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Smalltalk.
Php: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in PHP.
Assembly (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Assembly.
Software components libraries: The software packages, modules, web services and resources that cover a set of related functions and the databases where these reusable components can be found.
Hardware components: The essential components that make up a hardware system, such as liquid-crystal displays (LCD), camera sensors, microprocessors, memories, modems, batteries and their interconnections.
C#: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C#.
R: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in R.
Groovy: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Groovy.
Asp.net: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ASP.NET.
Apl: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in APL.
Sparql: The computer language SPARQL is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the international standards organisation World Wide Web Consortium.
Ict debugging tools: The ICT tools used to test and debug programs and software code, such as GNU Debugger (GDB), Intel Debugger (IDB), Microsoft Visual Studio Debugger, Valgrind and WinDbg.
Audit techniques: The techniques and methods that support a systematic and independent examination of data, policies, operations and performances using computer-assisted audit tools and techniques (CAATs) such as spreadsheets, databases, statistical analysis and business intelligence software.
Tools for ict test automation: The specialised software to execute or control tests and compare predicted testing outputs with actual testing results such as Selenium, QTP and LoadRunner
Microsoft visual c++: The computer program Visual C++ is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is developed by the software company Microsoft.
Typescript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in TypeScript.
Resource description framework query language: The query languages such as SPARQL which are used to retrieve and manipulate data stored in Resource Description Framework format (RDF).
Coffeescript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in CoffeeScript.
Objective-c: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Objective-C.
Query languages: The field of standardised computer languages for retrieval of information from a database and of documents containing the needed information.
Ml (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ML.
Ldap: The computer language LDAP is a query language for retrieval of information from a database and of documents containing the needed information.
Ajax: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in AJAX.
C++: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C++.
Sap r3: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAP R3.
Swift (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Swift.
Ict project management methodologies: The methodologies or models for planning, managing and overseeing of ICT resources in order to meet specific goals, such methodologies are Waterfall, Incremental, V-Model, Scrum or Agile and using project management ICT tools.
Matlab: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in MATLAB.
Application usability: The process through which the learnability, efficiency, usefulness and ease of use of a software application can be defined and measured.
Unstructured data: The information that is not arranged in a pre-defined manner or does not have a pre-defined data model and is difficult to understand and find patterns in without using techniques such as data mining.
Linq: The computer language LINQ is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the software company Microsoft.
Python (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Python.
Scratch (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scratch.
Process-based management: The process-based management approach is a methodology for planning, managing and overseeing of ICT resources in order to meet specific goals and using project management ICT tools.
Lean project management: The lean project management approach is a methodology for planning, managing and overseeing of ICT resources in order to meet specific goals and using project management ICT tools.
Vbscript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in VBScript.
Cobol: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in COBOL.
Pascal (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Pascal.
Abap: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ABAP.
Ict performance analysis methods: The methods used to analyse software, ICT system and network performance which provide guidance to root causes of issues within information systems. The methods can analyse resource bottlenecks, application times, wait latencies and benchmarking results.
N1ql: The computer language N1QL is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the software company Couchbase.
Scala: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scala.

Optional skills and competences

These skills and competences are sometimes, but not always, required for the role of software tester. However, mastering these skills and competences allows you to have more opportunities for career development.

Manage schedule of tasks: Maintain an overview of all the incoming tasks in order to prioritise the tasks, plan their execution, and integrate new tasks as they present themselves.
Debug software: Repair computer code by analysing testing results, locating the defects causing the software to output an incorrect or unexpected result and removing these faults.
Plan software testing: Create and supervise tests plans. Decide on allocation of resources, tools and techniques. Set testing criteria for balancing incurred risks in case of remaining defects, adapt budgets and plan additional costs.
Use scripting programming: Utilise specialised ICT tools to create computer code that is interpreted by the corresponding run-time environments in order to extend applications and automate common computer operations. Use programming languages which support this method such as Unix Shell scripts, JavaScript, Python and Ruby.
Develop automated software tests: Create software test sets in an automated manner, ​using specialised languages or tools, that can be performed by testing tools in order to save resources, gain efficiency and effectiveness in test execution.
Develop ict test suite: Create a series of test cases to check software behaviour versus specifications. These test cases are then to be used during subsequent testing.
Conduct ict code review: Examine and review systematically computer source code to identify errors in any stage of development and to improve the overall software quality.
Measure software usability: Check the convenience of the software product for the end user. Identify user problems and make adjustments to improve usability practice. Collect input data on how users evaluate software products.
Execute integration testing: Perform testing of system or software components grouped in multiple ways to evaluate their ability to interconnect, their interface and their ability to provide global functionality.
Perform software recovery testing: Execute testing using specialised software tools to force failure of software in a variety of ways and checking how fast and better the software can recover against any type of crash or failure.

ISCO group and title

2519 – Software and applications developers and analysts not elsewhere classified

 

 


 

 

References
  1. Software tester – ESCO
Last updated on August 8, 2022