Glossary

The TESTIFY Glossary - everything about automated testing

In our TESTIFY Glossary you will find all terms from the world of IT and especially from the area of Website & API Testing - explained in a compact and understandable way.

 

Tip: Even though our terms are sorted alphabetically, you may not find the term you are looking for directly. With the key combination "ctrl+f" you can search for a term directly on this page!

They are used in software engineering. They are used to check whether a software works as planned from the user's point of view and whether the user would accept the software. Acceptance tests complete a project. They are performed under real conditions, usually by the customer or user, before the software is actually used. In this way the end customer knows exactly how the software will work after development. The testing sessions are recorded.

Angular is an open source TypeScript-based framework for developing web and desktop applications. The Angular project was led by Google's Angular team and developed with the help of a community of many individuals and companies.  Angular includes a component-based web framework that can be used to develop scalable web apps. It also has a large number of built-in libraries that cover several important functions, such as routing, client-server communication, form management, etc.

Users of a website, program, or app. In the broadest sense, these are also the internal employees who use the back end. First and foremost, the users of the frontend, i.e. the visitors to the site, users of an application or customers are these users. The user should always be seen as a stand-alone being, to whom nothing more can be explained (except via special FAQ or help texts), i.e. the website or app must be completely self-explanatory and understandable and work logically, which can be guaranteed mainly by testing.

API stands for Application Program Interface and is an interface between different application programs. It allows shared communication between different softwares. 

API tests are software tests that are performed to verify that they fulfill expectations in terms of functionality, reliability, performance, as well as security.

An assertion is a boolean expression at a particular point in a program that is true if there is no error in the program. An assertion can simply be a comment that the programmer uses to reflect on how the code works. This assertion is compiled into code and executed in context to see if the assertion is actually true. When programmers talk about assertions, they usually mean this kind of executed assertion.

At TESTIFY, we understand automated testing as the automation of test processes that are usually performed manually and can therefore be implemented more time and cost efficiently.

TESTIFY is your team for automated website or API testing. You need to have a website tested and don't have time for manual testing? We are more than just an external service provider. We are the team for teams. Whether you are a developer or a project manager: We help you with your project.

As a testing agency, we offer flexible and individually customized software solutions. With the testing frameworks from Codeception and Cypress.IO, we are able to represent even the most complex test scenarios, no matter if it is for your website or your web application.

In a sense, the "back" of the website. This is where editors and staff create and edit content, e.g. via forms. The backend is usually part of the web programming, but can only be accessed via a special call and protected by passwords.
In addition to content, statistics, mail entries, etc. are also managed here.
In contrast, the frontend is reachable by the users, the content created in the backend is published here.

Making your website accessible means that your website is designed to be used by everyone, regardless of their age , abilities, or disabilities. By focusing on the level of accessibility of your website, you improve the user experience for each of your visitors, including those with disabilities or limitations who come to your website. You'll show your visitors, prospects, and customers that you value and care about them as individuals - and in turn, this type of investment will build your brand loyalty and retention.

Agile software development attempts to bring quality management and business analysis closer together.
In BDD, the intended goals and results of the software are described in such a way that it can later be tested automatically.
Therefore, mainly if-then formulations are used, since these can be translated into logic.

The Gherkin language is used for the description.
 

In beta testing, the program is made available to a selection of test users, which then test the functions. In beta testing, it is assumed that the program still contains bugs that have not yet been found by the programmers.
Automated tests may close a large gap, so that hardly any bugs should still be found - but even they can only test what was previously expected as a result. Above all, unexpected lateral effects are more likely to be noticed in beta testing.
Especially atypical user behavior is achieved by uninitiated beta testers, who are not familiar with the programming or expectation of the developers and it leads to typical problems from which later users should be protected.

In black box testing, tests are developed that access the system from the outside without knowledge of the functions inside. This makes it possible only to check the result, but not how it came about. So if the implementation of the requirement is very complicated or in the extreme case it is correct because two errors in the programming cancel each other out, this would not matter for passing the black box test.

One benefit of the black box test is that the developers of the program do not accidentally "program around a problem" - if I as a programmer have a certain expectation, I also only think this way, while the user intuitively goes another way. E.g. the programmer expects the input of comma numbers with point, because he does this automatically in "his world", therefore an input with comma is wrongly evaluated instead of blocked.  This is why the test should generally be created by an external developer and, in this case, gladly by someone who does not know the programming languages.

As a single test, the black box test is not useful, because it cannot assign errors that appear early in the code structure and would not be of any great help to the developer. On the other hand, it is ideal for checking the required functions.

A software error (bug) is a problem that causes a program to crash or produces invalid output. The problem is caused by insufficient or faulty logic. A bug can be an error, mistake, defect, or failure that can cause a failure or deviation from expected results. Most bugs are caused by human error in source code or design. A program is called buggy if it contains a large number of errors that affect program functionality and lead to incorrect results.

The checksum can be used to check whether two files are identical. This is important, for example, in the transfer of files (e.g. when downloading documents or programs). A simplified example would be that from the numerical values of all letters of a book (A=1, B=2, C=3 etc.) a sum is formed.

This sum is displayed during the download and the received document is recounted. Only if the sums are equal, the quantity and type of letters is correct. In IT, of course, the procedure is more complex (in our example, swapped words would get the same result, or intentionally altered text would be tolerated if the forger took the trouble to find the correct sum). But cryptography and various calculation methods provide additional security here.

Chrome is the browser of the web provider Google. It has become widely accepted over the past few years and is the benchmark for web functionality. The technology behind the Chrome browser is also used in the Microsoft Edge browser and other variants.
Due to the close connection to Google's web offers (search engine, YouTube, Google Drive, etc.), the technical optimization is valued by users, but requires an even higher awareness of data protection on the part of the user.

In colloquial language, a client is a customer and this is where the term in information technology is actually from. Because like a client, the client system (for example, your computer connected to the Internet) is also being served. Using the HTTP protocol, the client can order a certain piece of information (for example, 'send me the website of Nevercodealone') and the server subsequently delivers this content. Depending on the context, the program that runs on the computer and receives the data is also called a client.

Code is a very broad term for information that is subject to a certain structure. We are talking about the languages in computer science, i.e. the program code or also the formatting code of web pages, the HTML. In both cases, information is transmitted and executed to produce a certain expected result - and weather expectations and reality match, we determine with our tests.

Codeception is a framework for automated testing. In contrast to Cypress, it is based on the PHP programming language. With Codeception, unit tests, but also acceptance tests can be executed in the end-to-end.

The command line is the backend of every operating system. As in the early years of information technology, cryptic-seeming commands were executed for the amateur and laboriously changed directories with 'cd' and similar instructions (what the everyday user does with a mouse click in his folders).

But while the graphical interfaces (whether Windows, the windows on the Mac, or the interfaces of the Linux operating system) make it possible for most users to deal with data and programs in a comprehensible and joyful way in the first instance, the real actions can still be performed solidly 'on the command line' (as the expert says). And indeed, this rudimentary level is still there even after the graphical programs have gone.

Purists still use the command line even when work in the graphical environment has long been faster and more convenient - the routine handling of a few handy commands is safer for them here.
 

Components or modules are checked after the unit tests. The objects can be tested independently of each other without being combined with other components or modules here. The errors found by component tests are repaired as fast as possible and executed before the integration tests. 

A content management system (CMS) is software for collaborative creation, editing, organization, and presentation of digital content, mostly for use in websites, but also in other media forms. This content can consist of text and multimedia documents. An author with access rights can operate such a system in many cases with little or no knowledge of programming or HTML, because the majority of systems have a graphical user interface. Well-known examples of CMS are Wordpress, Sulu, Shopify, Wix, Drupal or Magento.

Continuous integration of software code rapidly advances the development of applications, especially websites, and can respond quickly to errors and change requests.
In conventional development, the work of several programmers was combined by an integrator and then published as a new version. In contrast, in Continuous Integration, the developers who are involved constantly publish their code to a repository.  After automated testing, the combined changes are played out of the repository into the system.

Automated testing is essential here (even if each developer has to test their changes themselves), as this is the only way to ensure smooth operation of this constantly changing application.

In the Continuous Delivery model, the steps of development, delivery, feedback and quality management are repeated at short intervals. This not only increases the efficiency of development, it also means that the customer receives the product sooner. Often, the product is not ready at this point, but work on it is ongoing. Automated tests play a major role here, as the build should be checked for functionality after each source code change.

Cucumber is a development tool used to develop test cases for software function behavior. It plays a supporting role in automated testing. In other words, "Cucumber is a software tool used by testers to develop test cases for testing the behavior of software." The Cucumber tool plays an important role in developing acceptance tests for automated testing. It is mainly used to write acceptance tests for web applications according to the behavior of their functionalities.

Cascading Style Sheets is a stylesheet language for electronic documents and, together with HTML and JavaScript, one of the core languages of the World Wide Web. It is a so-called "living standard" that is constantly being developed further by the World Wide Web Consortium.

 

Examples of cross effects could be the following scenarios: For example, a call produces another result in addition to the expected result, or only certain inputs produce an error in the system.

Cryptography is the science of encryption. Cryptographic processes, e.g. the encryption of data, are intended to protect them from unauthorized access and to exchange them securely.

Cypress is a framework for programming tests. It already contains all the basic concepts and methods that can be used by the programmer to write specific tests for websites or applications, which can be tested automatically over and over again. The advantage of Cypress is that it is designed for typical web applications and allows inputs such as drag and drop, filling out forms, but also the consideration of waiting times by processing inputs, for example.

The majority of manual inputs and checks can be checked in this way without fatigue from mindless activities and also very quickly.

Also individual classes and sections of programs can be examined in such a way. Cypress is based on the Javascript programming language.

A dashboard is a view or graphical interface that brings together information. Usually, the most important functions of an application can also be accessed from here.
The Cypress dashboard, for example, allows you to call up the tests you have created directly and displays the course of the test in the integrated window in the browser.

Long ago, mechanical machines were the only help for elaborate calculations. To ensure that the gears in the complex movements could rotate, they were well lubricated - but this grease was also very much appreciated by beetles, which then got into the gears during feeding. This meant that sometimes a counter digit was skipped and beetle-related errors crept in. So it became important to remove these bugs - and this very realistic debugging has remained the term for error removal until today. Since today wrong lines of code (often just a wrong relational operator or a wrong variable) lead to similar errors as the chitinous shells of the bugs once did, the removal of such small causes can nevertheless sometimes be tricky.

DevOps is a combined term from Development (here meant as software development) and Operations (here as system administration). What is meant is the closer connection of these two areas in order to improve the development of the software while at the same time increasing speed and quality assurance.

The term often appears in connection with Continuous Integration, since here the access from the development reaches far into the output of the (tested) application software into the live system. Without automated tests, this shortening is hardly possible.

Docker is software that makes it easy to build, deploy, and run applications using containers. Using these containers, developers can package the application with all the necessary parts and publish it as one package. In this way developers can be sure that the application will run on any other computer, regardless of custom settings that may be different from the ones used to write and test the code. In some ways, Docker is similar to a virtual machine. In contrast, however, instead of creating a full virtual operating system, Docker allows applications to run in the same Linux Kernel as the system they are running on, and only requires that applications include things that are not already running on the host to greatly improve performance and reduce the size of the application.

Tests not only establish the function of a website or an application directly when the test is executed, they can also be used to document function (or failure).

For example, end-to-end testing with Cypress provides the ability to capture the individual steps in a screenshot or, if necessary, in a video recording. This allows project managers, for example, to document that inputs defined in the specification sheet produce the desired results. On the other hand, customers can document whether certain requirements are not met.

Downtime is a computer industry term for the time when a computer or IT system is unavailable, offline, or inoperable. Downtime has many causes, including shutdowns for maintenance (called planned downtime), human error, software or hardware malfunctions, and environmental disasters. In IT environments, downtime can be one of the metrics for system availability. Availability is often measured against a standard of 100% uptime or no downtime. A common availability standard is 99.999%, also known as "five-nines availability." Two 9s would be a system that guarantees 99% availability over a one-year period and allows up to 1% downtime or 3.65 days of unavailability. Service Level Agreements (SLAs) often use monthly downtime or availability percentages for billing. 

Electron is an open source framework for cross-platform desktop application in a browser. The Electron browser is used as the standard browser for the automated performance of E2E tests with Cypress.IO and is supplied directly with the installation. The JavaScript package allows the installation for a local setup on the own computer independent of the operating system. This is also valid for Linux operated and all other web servers. So Cypress.IO tests are directly executable everywhere. The only requirement is Node as the basic technology. Most frontends on web application and also modern frontend frameworks like React, Vue or Angular are based on Node. Originally, the Electron framework was developed as the basis for the open source Atom editor from GitHub. Well-known other applications include Visual Studio Code, Skype, Discord, Twitch, Signal, Slack, WhatsApp Desktop and many more. With the help of Electron, desktop applications can be set up very easily compared to other setups.

A test scenario that tests the entire application as a user from start to finish. The frontend of a website, i.e. the actual website as seen, is the result of many technological requirements (server) and the software components executed on it. The great advantage is the fast and technologically independent guarantee of an error-free functional range of the application under test. Websites in the field of e-commerce and Software-as-a-Service - SaaS - projects are well-known application areas.
End to End - E2E - Testing is on average 15 times faster than manual testing and has a significantly higher accuracy. Due to the monotony of manual testing, boreout is a high possibility. Therefore, people need many breaks in this work to ensure reliability of test results and finding bugs. This is one reason why manual testing is strongly disliked by internal resources. E2E testing is becoming increasingly important in a technologically much more complex world of software development. The shorter and shorter periods of time to meet new requirements - features - and to provide updates - for security and performance - makes continuous testing of the entire application ever more essential. Otherwise no assurance can be guaranteed.

The execution time is the duration for the execution of a software process. Time plays a very important role in software development and especially in testing. Other time-critical processes are product imports in the area of e-commerce. In this area, automated processes have long since replaced manual entries. 

A feature is a special function of a software. A feature is usually only described as such if it is a new or special function of a software.

Fileuploads mean the 'uploading' of files, for example in web forms. Often these are images or PDF documents, but all types of files can be transferred to the server.

In contrast to entering text, transferring files is technically more complex and more likely to cause errors.

However, tests can not only check the basic upload function. You can also ensure, for example, that only error-free and format- and size-correct files are uploaded.
 

Firefox is based on the Mozilla open source project and is one of the most popular browsers alongside Chrome. After Microsoft Internet Explorer (as the predecessor of the Edge browser) achieved market dominance over competitor Netscape, Mozilla launched Firefox in 2002 as an alternative that quickly enjoyed great popularity.
To this day, the Firefox browser sets standards in data protection and user security. 

When the content of a website is requested from the server by the client, it usually consists not only of a file, but of additional information: In addition to the HTML that defines the page framework, images, for example, are delivered as individual files, which are later 'built in' - with the help of the CSS files - at the intended locations. Until this whole process is completed, some time may pass. The display of a first 'usable' page (strictly speaking, content in the visible part of the screen, so that content is still loaded further down) is called a 'first contentful paint'.

This refers in particular to the part of a website code that contains the formatting rules of the website content. With simple commands, texts can be formatted directly in HTML and so, for example, italics or bold can be played out. More special designs and formatting can also be done later with CSS. This script language can be used to edit the appearance of HTML elements.

Forms are an essential part of many web applications, as they are the most common form of interaction for users - besides clicks on links. In addition to input fields for text, selection lists and checkboxes, file uploads are also frequently offered. Almost all input forms can be tested with the Cypress test framework, including hidden uploads.

In IT terminology, framework means a framework that provides the basis for further developments. The framework itself is not yet a program, but provides individual modules for specific further uses. A framework for web applications could, for example, already offer e-mail transfer modules, interfaces for exchange with a database, etc.

Usually with software frameworks frequently needed components are made available, not only to make the programming of applications faster - the examples mentioned are so also safety relevant and a fundamental interface to the data base is more solidly developed and updated, than an own solution of the application developer. 

The frontend presents data visually and makes it possible for the user to interact with the website. A major challenge is the usability on different devices. Smartphones in particular are not a focus of web development in Germany as an additional channel. Web design is often developed for desktop views. In the rest of the world, the mobile-first strategy has proven itself. This is mainly due to the missing spread of desktops in non-industrialized nations.

Gherkin is a description language that can be used for formulating results in software development. It mainly uses logical keywords like 'Given', 'If/Then', 'And/Or'. 

GitHub is a web server for software projects that allows developers to share their code through publicly viewable repositories. This allows the community to review and even develop the code. It is also possible, for a fee, to set up an isolated repository for commercial projects.

GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that automates build-, test-, and deployment pipelines. You can create workflows that build and test each pull request for a repository or deploy pull requests to production. GitHub Actions goes beyond DevOps and allows workflows to execute when other events occur in a repository. GitHub Actions works with three layers to organize workflows: Workflows, Jobs and Steps. A workflow consists of one or more jobs. Jobs within a workflow always work in their own runner instances, so they do not share a common file system. They can run in parallel or interdependently. Each job contains several steps, which necessarily build on each other and work with a common file system.

In Continuous Integration, a reliable code release process is indispensable. This should take place largely without human intervention, so the GitLab pipeline is a great help. Bringing the code together on a staging server (where used add-on packages are also installed and executed), automated testing of the complete function and - in the event of success - delivery to the production system are the primary purpose here.

At the same time, in case of failure, developers can immediately see what didn't work and why, as the pipeline issues a green or red message at each step and can send notifications to Slack or other channels.

Headless, in the context of web applications, refers to the separation of data and design. The advantage of 'headless' content management systems like Sulu or WordPress, where everything is mixed together, is mainly the easy output in different applications: So the captured content can be used not only in the website but also in completely different applications or as a bare data base for playing out unformatted text and data.

Mistakenly referred to as web page code, HTML is a "markup language" that uses special formatting instructions such as "<h1>title</h1>" or "<a href="target.html">link</a>" to make the browser display the transmitted data in a certain way. This does not necessarily have to be identical in every browser.

The 'Hypertext Transfer Protocol' is the classic way of transferring Internet content. It is a definition for the 'stateless' exchange of data (not only in the World Wide Web). Stateless here means that data is requested and then transmitted. So there is no constant connection between sender and receiver. We still see the http in the web page address: http://... although today it is mostly replaced by the https.

HTTPS is the hypertext transfer protocol (HTTP) with an additional security layer. By using certificates stored by the sender and encrypting the content, this layer ensures that the connection is tap-proof and that the data is really exchanged between A and B. The data is encrypted. Although this standard has been around since 1994, before the Internet became a mass medium, it has only been in widespread use for a few years now, after the major browser manufacturers started displaying warnings for pure HTTP content. In addition, data protection and other laws demand the secure HTTPS standard here today. Of course, HTTPS is not 100% secure either - the more widely it was used, the more frequently attacks happened here.

Any information or data sent to a computer for processing is called input. Input or user input is sent to a computer via an input device. Computer software can receive data in the form of an input stream, which is a flowing sequence of data that can be directed to specific functions. The directed channel through which the data stream flows is called a pipeline, and changing its direction is called piping.

Integration testing is the term used to describe a coordinated series of individual tests that are used to test various interdependent components of a system in interaction with each other. An application usually consists of several software modules. These modules are coded by different programmers. Integration tests focus on checking the data communication between these modules.

Interface testing is defined as a type of software testing that verifies if communication between two different software systems is correct.

A connection that links two components is called an interface. This interface can be anything in the computer world, such as APIs, web services, etc. Testing these connection services or interfaces is called interface testing. An interface is actually software that consists of a set of commands, messages, and other attributes that allow communication between a device and a user.

After browsers like Mosaic and Netscape became successful at the beginning of the Web era, Microsoft realized that they should take the Internet seriously after all. They adopted the Mosaic browser and further developed it into Internet Explorer, which was then released with Windows 95 as standard and became dominant in the market.
Like Netscape, Microsoft developed its own interpretations of the HTML code. In addition, newer versions of Windows and Internet Explorer were introduced much later than in the rest of the world, especially at large companies and public services, so that the wonderful innovations and great possibilities that newer browsers had long since mastered still led to errors here. Meanwhile the further development of Internet Explorer was given up. It was replaced by Microsoft Edge, which contains Google Chrome technology at its core.

JavaScript (or JS) is a scripting language that web developers can use to create interactive web pages. JavaScript is one of the mostly used programming languages in web development. At first, JavaScript was only for front-end development, but it has gained popularity in back-end development with frameworks such as Node.js. It is used for forms, search functions, automatically updated news feeds, and other interactive features. Almost all interactive features found on websites are created by using JS. JavaScript is supported by all major web browsers and is therefore very popular, especially for frontend developers.

Jira is a software that helps teams to manage their work. Originally, Jira was designed as a bug and issue tracker. But today, Jira has evolved into a powerful work management tool for all types of use cases, from requirements and test case management to agile software development.

JUnit is a framework for testing Java programs, which is especially useful for automated unit tests of individual units. With JUnit, developers or other testers check the correct and implementation of individual modules of the Java code. Any non-trivial function or method could have errors and should be tested with JUnit.

JSON stands for "JavaScript Object Notation" and is a format for exchanging data between computers. JSON is a basic text written in JavaScript Object Notation. It is an alternative to XML that is built into JavaScript, which is why it is so popular and widely used. The most common use for JSON is to retrieve data from web servers on demand.

Karate is the only open source tool that combines API test automation, mocks, performance testing, and even UI automation into a single framework. The BDD syntax, popularized by Cucumber, is language-neutral and simple even for non-programmers. Assertions and HTML reports are integrated, and you can run tests in parallel for speed-up. The ability to reuse functional tests as performance tests via integration with the Gatling tool was introduced in 2018.

Katalon Platform is an automation testing software tool developed by Katalon. The software is based on the Selenium and Appium Open Source automation frameworks and has a dedicated IDE interface for testing web, API, mobile and desktop applications.

Legacy code is code written by other developers and often already old. The term is also often used as a synonym for uncleanly written, poorly documented or technologically old code.

Even if the test frameworks used today run fast and process a lot of content automatically, the waiting time can be long, especially in frontend testing, if a lot of content is being checked.

This is because the execution speed of the test software is not the only decisive factor - in fact the actual and expected waiting times are sometimes several seconds long. Because to make sure that e.g. an order button is displayed (or a form is sent) a realistic time has to be assumed, which may hardly be noticed by the user of the page, but which in total turns into many minutes.

To make the total test time more tolerable and to stay within acceptable repetition times, especially for regular tests, you can run several tests at the same time - in several threads. 

The mobile-first strategy starts the design of the website with the mobile version, which is adapted to larger screens afterwards. As a rule, you start with the desktop website, which is adapted to smaller screens.

With monitoring tools it is possible in the IT to collect observation data from a website or software to analyze it later. By analyzing the data it is then is possible to determine where problems originate and more importantly, eventually find out why the problems occur. Many agencies offer a monthly monitoring service for their clients.

The node appears several times in information technology. It describes individual elements within an HTML structure and organizes the information in this way. In the test environment, these nodes are an important tool for understanding and evaluating content in an automated way. The node of a link can be called up or its label can be compared with an expected value.
 

Open source refers to software whose source code can be viewed, edited and used by third parties at any time. Open source software is usually free of cost. A well-known open source software is WordPress, as well as the Linux operating system.

Parallel testing is a type of software testing in which several versions or subcomponents of an application with the same input are tested simultaneously, on different systems, to reduce the test execution time. The purpose of parallel testing is to find out whether the old and new versions perform in the same way or differently, and if the new version is more efficient or not.

Performance testing measures the stability, speed, scalability, and responsiveness of an application to a specific workload. It is part of the "Non-Functional Testing". Performance testing is often used after functional testing is complete and the code is ready for release.

There are many application goals for performance testing, such as evaluating output, measuring processing speed or data transfer speed, and network bandwidth usage. But also the maximum number of concurrent users, memory usage as well as workflow efficiency and response speed of an application can be tested.

PHP is a computer language that is used to control web servers.  PHP originally stands for Personal Home Page Tools, but is now also understood as "Hypertext Preprocessor". PHP is a scripting language, so programs written with it are converted into machine code by the web server. Because PHP programs are mostly platform-independent and also can be executed on different hardware systems, they are extremely popular for developers.

A pipeline is a series of automated processes that enable developers and DevOps professionals to reliably and efficiently compile, build, and deploy their code to their production computing platforms. There is no fixed rule that dictates what a pipeline should look like and what tools it must use. The most common components of a pipeline are:

  • Build automation/continuous integration
  • Automation of the tests
  • Deployment automation

A pipeline generally consists of a series of tools that are usually divided into the following categories:

  • Build-Tools
  • Container settings
  • Configuration Management
  • Monitoring

The main goal of a software delivery pipeline is to automate without manual steps or changes in or between each step of the pipeline. Human errors can occur when manually performing these boring and repetitive tasks and eventually impact delivery compliance and potentially SLAs by messing up the delivery.
 

The instructions that are created during software development for a particular computer program and that describe its functionality in a particular programming language are called program code.

Python is a computer programming language that is often used to create websites and software, automate tasks, and analyze data. Python can be used to create a wide variety of different programs and is not specialized for any particular problem. Because of this versatility and its beginner-friendliness, Python is one of the most widely used programming languages today. Because it is relatively easy to learn, Python is also used by many non-programmers such as accountants and scientists for a number of everyday tasks such as organizing finances.

A quality gate is a milestone in an IT project that must meet pre-defined criteria before the project can move to the next phase. These gates are designed to define measures for quality standards and are typically used in application or software development projects. Typically quality gates are used before phases that depend on the results of previous phases, especially when potential sources of defects must be addressed and corrected. The concept of quality gates combines aspects of project management, decision modeling, and workflow management to improve measurability and create better conditions. Quality gates can be used at many organizational levels, for example at the system, project, and release levels.

React.js is a JavaScript library for building user interfaces. Each React web application consists of reusable components that form parts of the user interface - we can have a separate component for our navigation bar, one for the footer, another for the main content, and so on. 

At TESTIFY we call a recording a recorded testing session in a testing framework of our choice, e.g. Codeception or Cypress.

Regression tests are software tests that developers use to assess if changes to an application or other related software components have introduced errors. An application change or enhancement can cause side effects called "regressions" that can occur through dependencies even in components or systems that are separate from the changed code. 

In the context of website testing, reporting means a summarized status report on the outcome of the testing process. In this case, reporting also includes video recordings and screenshots of errors that occurred during the process.

The repository (plural: repositories) is a central archive / directory for e.g. data, documents or programs. Its function is the administration of different data but also the management of different file versions.  An application area of such repositories can be found at search engines like Google. There they are used, for example, to manage information such as URLs, which are collected by crawlers and stored in index structures.

A code repository is an archive for code being worked on. In addition to the code itself, you can store things like documentation, notes, web pages, and other things in your repository. A code repository is required for any successful software development project.

In request/response communication, one software module sends a request to a second software module and waits for a response. Since the first software module assumes the role of the client and the second the role of the server, this process is also referred to as client/server interaction.

Scenario testing is a method that uses actual scenarios instead of test cases to test the software application. The purpose of scenario testing is to test end-to-end scenarios for a particular complex problem of the software. Scenarios make it easier to test and evaluate complicated problems.

Our automated website tests keep track of where an error occurs during a test. In addition to the video recording, the automatic creation of a screenshot (screen recording) is useful for this. This way you always get a snapshot at the exact point where the test fails. While a video documentation is created for all tests, no matter if successful or faulty, there are only screenshots in case of failure. 

The server provides data that can be queried by the client in the server-client model. This is usually done on a network, or even on the Internet (which is also just a large network).

It can simply store documents, but also currently created information (e.g. calculations or queries of content from a database).
Like the client, the term server is used for both the device from which the data is provided and for the program used for it.

In IT the word "session" refers to a specific time frame for communication between two devices, two systems, or two parts of a system. For example the time frame for an interaction between two personal computers when chatting or messaging online is called a session. A session can also be created without a human user. One of the most common forms of session is a client/server session between a server and a PC or other device or system that accesses that server.

Slack is a messaging app for businesses that connects people with the information they need. Slack brings people together as a team and changes the way in which organizations communicate. Slack can be compared to services like Webex or Microsoft Teams.

SonarQube ( previously Sonar) is an open source platform developed by SonarSource for continuous code quality checking to perform automated checks with static analysis of code to detect bugs and code smells in 29 programming languages. 

Sulu is CMS based on very modern technology. This includes the PHP framework Symfony and the JavaScript framework React. Since Sulu uses the well-known Symfony development model in many places, it is particularly easy for developers with the appropriate experience to use it. In addition to websites, the system is ideal as a basis for the development of web applications.

The Symfony framework is one of the best-known professional PHP frameworks, which is used as a basis for developing web applications. Symfony can be downloaded free of license costs from the Internet and can be used for both private and commercial projects.

Test coverage measures the ability of your tests to cover things like test requirements, code, different user scenarios and platforms like mobile devices or browsers. This is a useful metric for measuring the effectiveness of your testing efforts. Test coverage is important for finding bugs before they reach users.

Test Driven Development (TDD) is a software development and design paradigm that uses testing of program components to guide the entire software development process. TDD is a design strategy that tests source code before it is created and prioritizes it according to the process. The goal is to significantly improve software quality and reduce post-maintenance. TDD is mainly used in agile methodologies, especially in extreme programming.  Other terms for TDD are test-driven software development, test-driven programming or test-first design.

A test framework is a collection of guidelines or rules used to create and design test cases. It also involves the combination of practices and tools designed to help QA professionals test more efficiently. These guidelines may include coding standards, methods for handling test data, object repositories, procedures for storing test results or information about accessing external resources.

Mike Cohn first introduced the concept of the "testing pyramid" in his book "Succeeding with Agile". It is a great visual metaphor that shows the different levels of testing. It also shows how many tests should be performed at each level of the testing process. Mike Cohn's original testing pyramid consists of three layers (unit tests are the starting level):

  1. Unit-Tests
  2. Service-Tests
  3. User Interface Tests

A test suite is a set of test cases for testing a software program to show that it shows a certain behavior.

A test scenario is any functionality that can be tested. It can also be referred to as a test condition or test possibility. As a tester, you should put yourself in the position of the end user and find out the real scenarios and use cases of the tested application.

A unit test is a procedure for testing a unit - the smallest piece of code that can be logically isolated in a system. In most programming languages, this is a function, subroutine, method, or property. In his book, "Working Effectively with Legacy Code," author Michael Feathers explains that tests are not unit tests if they rely on external systems: "If it communicates with the database, if it communicates over the network, if it touches the file system, if it requires system configuration, or if it can't be run at the same time as another test." Modern versions of unit tests can be found in frameworks such as JUnit or testing tools like TestComplete.

A usability test is conducted to verify the usability of a software or hardware with the potential users.

We define validation as the provision of documented proof that a specific process or system continuously produces a product that meets previously defined specifications and quality characteristics. At TESTIFY, everything is about validating the functionality of your website, application or software.

Our tests are 100% transparent because of video tracking. This means that our customers can see at any time what the test is testing and at what point the test has found a bug, for example. This helps our customers and clarifies the question if the error is caused internally or externally.

Vue (pronounced /vjuː/, like view) is a JavaScript framework for user interface development. It builds on standard HTML, CSS, and JavaScript, and provides a declarative and component-based programming model that helps you efficiently develop simple or complex user interfaces.

Website testing is the process of writing and executing an automated website test for a given test scenario. The test is written using a framework (tool) in our case Codeception or Cypress. In addition to website tests, we also offer API (application) tests.

XML stands for eXtensible Markup Language. XML is a markup language, similar to HTML. It was developed for storing and transporting data. XML is self explanatory and is a W3C recommendation. 

YAML is a language for serializing data, often used for writing configuration files. The abbreviation YAML stands for either Yet Another Markup Language or YAML Ain't Markup Language (a recursive acronym), emphasizing that YAML is for data, not documents. YAML is a popular programming language because it is readable. It can also be used in combination with other programming languages.