# QF-Test

QF-Test from Quality First Software is a cross-platform software tool for automated testing of programs via the graphical user interface (GUI test automation). The program is specialized on (Java/Swing, SWT, Eclipse plug-ins and RCP applications, ULC and JavaFX) cross-browser test automation of static and dynamic web-based applications (HTML and web frameworks like Angular, ExtJS, Fluent UI React, GWT, jQuery UI, jQueryEasyUI RAP, Qooxdoo, RichFaces, Vaadin, React, Smart GWT, Vue.js, ICEfaces and ZK). Version 4.1 added support for MacOS and the Apple Safari and Microsoft Edge browsers via the Selenium WebDriver. RESTful web service testing. From version 5.0, Windows applications can also be tested (classic Win32 applications, .Net Framework applications (often developed in C#) based on Windows Presentation Foundation (WPF) or Windows Forms, Windows Apps / Universal Windows Platform (UWP) applications using XAML controls) and modern C++ applications (such as Qt applications). Version 5.3 added support for the Chrome DevTools protocol, which allows browsers to be controlled using CDP drivers.

## Overview

QF-Test (the successor of qftestJUI, available since 2001) enables regression and load testing and runs on Windows, Unix and MacOS. It is primarily used commercially by testers, developers or business analysts (modelling, low code approaches) with or without programming knowledge as part of software Quality Assurance. Since December 2008, a webtest add-on is available which allows for test automation of browser-based GUIs (such as Internet Explorer, Mozilla Firefox browser Chrome, Safari and Microsoft Edge) in addition to the existing Java GUI test functionality, which was extended to include JavaFX in July 2014. From 2018, QF-Test version 4.2 will be able to test PDF documents, from 2020 native desktop applications (QF-Test version 5) and in 2022 mobile application testing will be added. The basis for efficient use in test automation is stable component recognition (IDs, logical screen elements, labels, CustomWebResolver, SmartID...) with low maintenance effort.

## Features

General: QF-Test's capture/replay function enables recording of tests for beginners, while modularization allows for creating large test suites in a concise arrangement. For the advanced user who requires even more control over his application, the tool offers access to internal program structures through the standard scripting languages Jython, the Java implementation of the popular Python language, JavaScript and Groovy.
The tool also offers a batch mode, allowing to run tests unattended and then generate XML, HTML and JUnit reports. Thus the tool can be integrated into existing build/test frameworks like Jenkins, Ant or Maven. Another mode is the so-called Daemon mode for distributed test execution.
A specific integration with many test management tools exists. There is a test debugger (enabling arbitrary stepping and editing variables at run time) and a fully automated dependency management that takes care of pre- and postconditions and helps isolating test cases. Data-driven testing without the need for scripting is possible.
* Web testing: cross-browser on Internet Explorer, Chrome, Firefox, Edge (including Chromium-based), Opera and Safari for static and dynamic websites (HTML5, AJAX, DOM). A headless browser can also be used for testing. QF-Test fully supports frameworks like Angular, React and Vue.js, but also many specific UI toolkits like Smart (GWT), GXT/ExtGWT, ExtJS, ICEfaces, jQuery UI, Kendo UI, PrimeFaces, Qooxdoo, RAP, RichFaces, Vaadin and ZK. Easy integration with Selenium makes it easy to balance development and functional testing. Electron applications can also be tested. Other (e.g. SAP UI5, Siebel Open UI, Salesforce) and future web toolkits can be integrated with little effort. Short-term and individual customisations (CustomWebResolver) are possible via an optimised interfac
* JavaFX, Java Swing, SWT, Eclipse plug-ins and RCP applications and ULC. Support for testing when migrating from JavaSwing or JavaFX to web applications (e.g. via Webswing).
* Hybrid applications based on multiple technologies are also supported, e.g. applications that integrate HTML content into Java applications using JxBrowser.
* Windows-based applications (Win32, .NET, Windows Forms, WPF, Windows Apps, Qt).
* Android applications can be tested on real devices and with the Android Studio emulator.
* iOS applications can also be tested on real devices and with the Xcode Simulator.
* Testing of PDF documents (document comparisons, checking content, texts, images/graphic objects, layouts, "invisible" or partially hidden objects).
* QF-Test 9 introduces web accessibility testing to automatically check compliance with WCAG and other standards.