Open Source Functional Testing Tools

Tool 1: Abbot Java GUI Test Framework

Description: The Abbot framework provides automated event generation and validation of Java GUI components, improving upon the very rudimentary functions provided by the java.awt.Robot class (A Better ‘Bot). The framework may be invoked directly from Java code or accessed without programming through the use of scripts. It is suitable for use both by developers for unit tests and QA for functional testing.


Tool 2: Anteater

Description: Anteater is a testing framework designed around Ant, from the Apache Jakarta Project. It provides an easy way to write tests for checking the functionality of a Web application or of an XML Web service.

Requirement:  OS Independent


Tool 3: Arbiter

Description: Document based acceptance tester. Similar to FIT in goal. Manages requirements documents in Word or RTF format that are created jointly by customer and developer. Requirements are parsed to extract a glossary and test suite.


Tool 4Canoo WebTest

Description: Used for functional testing of web pages, WebTest is an open source testing framework built on top of HttpUnit. It allows tests to be defined in XML as Ant targets.

Requirement:  JDK 1.2 and ANT v1.3


Tool 5DejaGnu

Description: DejaGnu is a framework for testing applications such as Tcl, C, C++, Java and network applications and cross testing of embedded systems. Its purpose is to provide a single front end for all tests. Think of it as a custom library of Tcl procedures crafted to support writing a test harness.

Requirement:  MacOS, Windows, POSIX


Tool 6Doit: Simple Web Application Testing

Description: Doit is a scripting tool and language for testing web applications that use forms. Doit can generate random or sequenced form fill-in information, report results (into a database, file, or stdout), filter HTML results, and compare results to previous results, without having to manually use a web browser. It uses a console-based web client tool (like Curl or Wget) to send and receive HTTP requests and responses respectively.

Requirement:  You must have Perl 5 or greater and the appropriate Perl modules (detailed in Doit manual) installed on your system before you can use SPL.


Tool 7: Enterprise Web Test

Description: Enterprise Web Test allows Java programmers to write re-usable tests for web applications that, unlike HttpUnit, “drive” the actual web browser on the actual platform they intend to support. Tests can be leveraged for functional, stress, reliability.

Requirement: Microsoft, OS Independent, Linux


Tool 8Harness

Description: An open source Java API for creating Java test software


Tool 9ITP 

Description: Lightweight, yet powerful web application test harness. Test scripts written in XML. No programming required and no changes required to your web application. Supports sessions/cookies, POST form data. Command line based for integration into other tools. Also useful for regression and smoke testing


Tool 10ivalidator

Description: Regression testing framework written in java but by no means restricted to java testing. Test suites are declared in XML. Especially designed for complex testing scenarios and integration testing.

Requirement:  JDK 1.3


Tool 11Jameleon 

Description: Jameleon is a plug-in driven automated testing tool that separates applications into features and allows those features to be tied together independently, creating test cases. Test cases can be data-driven and executed against different environments and test case docs are generated from the test cases. The goal is to create an automated testing tool that can be used for the enterprise. A UI that ties a series of features to a test case, generating both the test script and the test case documentation is in the works.

Requirement:  OS Independent, JDK 1.4 or higher.


Tool 12Jemmy

Description: Jemmy is a tool allowing you to create automated tests for Java GUI applications. Tests are written on Java, using Jemmy as a regular Java library. No recording (yet), no GUI, no XML, no bells and whistles – all the work being done in Jemmy is dedicated to test stability, so it could be used for big, complicated and “dynamic” Java GUI applications.

Requirement: Java 1.2 or above


Tool 13JFunc: JUnit Functional Testing Extension

Description: JFunc is an extension to the JUnit testing framework to make it easier for use with functional tests. Functional testing (also called integration testing) significantly differs from unit testing in a number of respects. Part of this project is dedicated towards putting together code to address these differences; the other part of this project is putting together methodologies for functional testing.

Requirement:  JUnit


Tool 14jWebUnit

Description: jWebUnit is a Java framework that facilitates creation of acceptance tests for web applications. jWebUnit provides a high-level API for navigating a web application combined with a set of assertions to verify the application’s correctness. This includes navigation via links, form entry and submission, validation of table contents, and other typical business web application features. This code utilizes HttpUnit behind the scenes. The simple navigation methods and ready-to-use assertions allow for more rapid test creation than using only JUnit and HttpUnit.


Tool 15Latka

Description: Latka is a functional (end-to-end) testing tool. It is implemented in Java, and uses an XML syntax to define a series of HTTP (or HTTPS) requests and a set of validations used to verify that the request was processed correctly.

Requirement: JDK 1.3 or better


Tool 16: Linux Test Project

Description: The Linux Test Project is a collection of tools for testing the Linux kernel and related features. Our goal is to improve the Linux kernel by bringing test automation to the kernel testing effort.

Requirement: Linux


Tool 17LogiTest  

Description: LogiTest is the core application in the LogiTest suite. The LogiTest application provides a simple graphical user interface for creating and playing back tests for testing Internet-based applications.

Requirement: JDK 1.2 or higher 


Tool 18Marathon

Description: Marathon is a general purpose tool for both running and authoring acceptance tests geared at the Java Platform Version 1.3 or later. Included with marathon is a rich suite of components to help you interact with your application at the User Interface Level (GUI). To aid with the regression testing of existing applications, Marathon comes bundled with a recorder to capture events as you use and interact with your application and these events are then converted into a valid Marathon test which can subsequently be played back.

Requirement: Java 1.3 or later


Tool 19MaxQ 

Description: MaxQ is a free web functional testing tool. It includes an HTTP proxy that records your test script, and a command line utility that can be used to playback tests. The paradigm of MaxQ is similar to commercial web testing tools like Astra QuickTest or Empirix e-Test. These products are quite expensive. MaxQ hopes to provide the essential features: HTTP test recording, scripting, and playback without the huge cost.

Requirement: Java 1.2 or later


Tool 20: Pounder 

Description: Pounder is a utility for testing Java GUIs. It allows developers to dynamically load components, record scripts, and then use those scripts in JUnit. It supports custom components, drag and drop, and the examination of test runs in source.


Tool 21QAT (Quality Assurance Tests)

Description: QAT was developed to ease the issues encountered by having to perform Quality Assurance tests across a variety of hardware and software combinations. The QAT tool can be divided into two main sections, the Agent, responsible for actually running each test or group of tests, and the Harness, which is responsible for test selection, management, result and agent co-ordination.

Requirement: Java 2


Tool 22QMTest

Description: CodeSourcery’s QMTest provides a cost-effective general purpose testing solution that allows an organization to implement a robust, easy-to-use testing program tailored to its needs. QMTest’s extensible architecture allows it to handle a wide range of application domains: everything from compilers to graphical user interfaces to web-based applications.

Requirement: QMTest works with most varieties of UNIX, including GNU/Linux, and with Microsoft Windows.


Tool 23: Scalable Test Platform

Description: STP is a system for automating the QA testing process for the Linux Kernel, as well as automating benchmarking and regression testing on diverse hardware systems.

Requirement: Linux


Tool 24: Selenium

Description: Testing tool for browser-based testing of web applications. It can be used both for functional, compatability (it has extensive cross-browser support) and regression testing.

Requirement: Windows, Linux or Mac


Tool 25Solex 

Description: This project is a set of Eclipse plugins providing non regression and stress tests of Web application servers. Test scripts are recorded from internet browser thanks to a built in web proxy.

Requirement: Eclipse 2.1 or above 


Tool 26Tclwebtest

Description: Tclwebtest is a tool for writing automated tests on web applications in tcl. It implements some basic html parsing functionality to provide comfortable commands for operations on the html elements (most importantly forms) of the result pages.


Tool 27TestCaseMaker / Runner

Description: Test Case Document driven functional test tool for web applications. Maker creates a test case documents, and Runner executes the test case document itself.

Requirement: J2SDK 1.4.x


Tool 28Toster – The Object-oriented Software Testing Environment

Description: Toster is a system for sharing a set of tools that allow you to implement methods for object-oriented testing. Any method based on UML diagrams and on the software source code can easily be implemented as a TOSTER module. The environment itself makes a number of mechanisms available, such as information transfer from UML diagrams, mapping this information to source code, introducing modifications to the source code, launching the tested application, or presenting the results.


Tool 29: Watir – Web Application Testing in Ruby

Description: Watir (Web Application Testing in Ruby) is a functional testing tool for web applications. It supports tests executed at the web browser layer by driving a web browser and interacting with objects on a web page. It uses the Ruby scripting language.


Tool 30Web Form Flooder

Description: Web Form Flooder is a Java console utility that will analyze a Web page, complete any forms present on the page with reasonable data, and submit the data. The utility will also crawl links within the site in order to identify and flood additional forms that may be present.


Tool 31: WebInject 

Description: WebInject is a free tool for automated testing of web applications and services. It can be used to test any individual system component with an HTTP interface, and as a test harness to create a suite of automated functional and regression tests.

Requirement: Windows, OS Independent, Linux


Tool 32: WebTst

Description: WebTst is a Web development test infrastructure. It aims to simplify testing by implementing a capture engine: a Web proxy which records a tester’s actions using a real browser, and then replays them during testing. It comes with support for digital certificates, and a number of simple tests, such as cookie setting, pattern matching, response status, and many others. It features an extensible plug-in system.

Requirement: POSIX, Linux


Tool 33: X11::GUITest

Description: X11::GUITest is a Perl package intended to facilitate the testing of GUI applications by means of user emulation. It can be used to test and interact with GUI applications which have been built (Xlib, GTK, etc.) upon the X toolkit.

Requirement: Linux, FreeBSD


Tool 34: XML Test Suite

Description: XmlTestSuite provides a powerful way to test web applications. Writing tests requires only knowledge of HTML and XML. We want XmlTestSuite to be adopted by testers, business analysts, and web developers who don’t have a java background.

Requirement: Windows 95/98/2000, Windows NT/2000, Linux, SunOS/Solaris


Tool 35QAliber

Description: Test automation framework, for building fast, re-usable and reliable system tests under windows OS. It includes a tool for developing automation in .NET, and a GUI tool to compose automation with no coding skills.