Software QA FYI - SQAFYI

Open Source Tools for Software Testing and QA

By:

Free Source Code Testing Tools

Tool/Product Name Operating system Language Comments
CppUnit Windows, Unix, Linux, BeOS C ++ CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML or text format for automatic testing and GUI based for supervised tests.
HttpUnit OS Independent Java Java library for the automatic stimulation and testing tool for web applications testing.
JUnit OS Independent Java JUnit is a simple framework for writing and running automated tests. As a political gesture, it celebrates programmers testing their own software.
NUnit Windows, Linux C#, C++, Visual Basic .NET NUnit brings xUnit-style unit testing to all .Net languages. Initially ported from JUnit, the current version has been re-written to take advantage of .NET language features.
DUnit Windows, Unix, Linux, BeOS Delphi/Kylix, Object Pascal, Pascal DUnit automates unit testing of Delphi code. The target audience for DUnit is developers who are both writing the code to be tested and the unit tests for that code, an approach advocated by Extreme Programming. Dunit is based on the product JUnit.
DrJava OS Independent Java DrJava is a lightweight-programming environment for Java designed to foster test-driven software development. It includes an intelligent program editor, an interactions pane for evaluating program text, a source level debugger, and a unit-testing tool.
PyUnit Windows, Linux Python A unit-testing framework for Python based on JUnit and XUnit, the de-facto standard frameworks for Java and SmallTalk respectively. Provides a standard, proven, simple and elegant way to write unit tests for Python software. GUI also provided.
Delphi Fundamentals Windows Assembly, Delphi/Kylix, Object Pascal Comprehensive collection of Delphi code units. Includes libraries for Unicode, Strings, Data Structures, Socket components and Mathematics.
HTML JUnit OS Independent HTML A unit-testing framework written in Java intended for use when testing html based web sites.
utPLSQL OS Independent PL/SQL A unit-testing framework for PL/SQL developers modeled on the Junit and Xunit frameworks. Based on the Extreme Programming methodology, utPLSQL makes it easy for developers to set up and execute unit tests of packages.
XMLUnit OS Independent C#, Java XMLUnit extends JUnit and NUnit to enable unit testing of XML. It compares a control XML document to a test document or the result of a transformation, validates documents, and compares the results of XPath expressions.
PhpUnit OS Independent PHP PhpUnit provides a testing framework for PHP, similar to JUnit for Java.
JsUnit Win, Unix, Linux, MAC JavaScript JsUnit is a unit-testing framework for client-side JavaScript in the tradition of the XUnit frameworks.
CUnit OS Independent C CUnit is an a utomated testing framework for 'C' language.
jWebUnit OS Independent Java based web applications jWebUnit is a Java-based framework for testing web applications. It provides a set of test assertions and application navigation methods. jWebUnit utilizes JUnit and HttpUnit. See the project Home Page for an overview and documentation.
TestGuru Windows, Linux, Solaris TCL / TK TestGuru is an Open Source educational, testing , or training software written in TCL/TK. This software allows one to create custom quizzes or sample exams to test one's own knowledge and abilities. Sample exams can be created or downloaded from test sites

 

Other Source Code Testing Tools

Tool/Product Name Operating system Language Comments
BoundsChecker Windows C/C++, .NET, ASP, ASP.NET BoundsChecker is the premier run-time error detection and debugging tool for C++ developers. It speeds development and shortens time to market by automating the debugging process right inside Visual Studio
Bullseye Coverage Windows, Linux, Unix C++ BullseyeCoverage is the leading C++ code coverage analyzer in usability, reliability, and platform support.
Code Analyzer Windows, Linux, Solaris, Mac Java, JSP AppPerfect Code Analyzer is designed to perform two key software development functions: Review Java code and enforce good coding practices
Code Coverage Windows, Linux, Unix C/C++ Dynamic Code Coverage allows your team to identify untested portions of your code. This measurement leads to more effective testing. Effective testing a cornerstone of software quality. By using, Dynamic Code Coverage your team will improve your software quality immediately.
CMT++ OS Independent C/C++ CMT++, Complexity Measures Tool for C/C++, is an easy-to-use code metrics tool for C and C++ languages
CodeCheck Windows, Linux, Unix, MAC C / C++ CodeCheck is a programmable tool for managing all C and C++ source code. It m easures maintainability, portability, complexity, and standards compliance of C and C++ source code
Parasoft C++Test Windows, Linux, Unix, Solaris C / C++ Parasoft C++Test is an automated C/C++ unit testing and coding standards analysis product that improves C/C++ code reliability, functionality, security, performance, portability, and maintainability
CTA++ Windows C / C++ CTA++ is a tool for unit testing C++ classes, libraries and subsystems. CTA++ is simple to use and provides very powerful features helping the tester to build the testing environments and running the tests on C++ code.
devAdvantage Windows .NET C# DevAdvantage is an automated code review tool that analyzes .NET C# code looking for bugs and issues with the unique ability to fix the problems found.
Diversity Analyzer Windows C, C++, C#, Java, .NET The Diversity Analyzer allows software quality-assurance professionals and software developers to automatically measure and improve the quality of their testing by measuring code coverage.
GlowCode Windows C++, C#, .NET Complete diagnostic and performance runtime analysis toolset for C++ and Windows programmers and QA. Memory and resource leak detection, code profiler, function call trace, and report tools for Win32 programs.
Insure++ Windows, Linux, Unix, Solaris C / C++ An automated run-time C/C++ application testing product that detects elusive errors such as memory corruption, memory leaks, memory allocation errors, variable initialization errors, variable definition conflicts, pointer errors, library errors, logic errors, and algorithmic errors
LDRA Testbed Windows, Linux C/C++, C#, Ada , Java, Visual Basic, Cobol, Coral, Fortran, Pascal LDRA Testbed is a unique quality control tool that provides powerful source code testing and analysis facilities for the validation and verification of software applications. Static analysis features include code visualization, programming standards enforcement and complexity metrics.
OSPC Windows, Linux C, C++ and Java OSPC can be used to solve your portability, maintainability, complexity, quality assurance, style analysis, code review, software metric, standards adherence, and company compliance problems
PolySpace Suite Windows, Linux C, C++, Ada PolySpace detects run-time errors and non-deterministic constructs in applications at compilation time.
Prevent Windows, Linux C / C++ Coverity automates the detection of software defects and security vulnerabilities for complex software as developers write code. With Coverity, development teams identify critical software problems that could have a catastrophic impact.
QA-C/C++ OS independent C/ C++ Coding standards enforcements, static bug detection and metrics analysis for C and C++.
CMTJava Windows Java Complexity Measures Tool for Java, is an easy-to-use code metrics tool for the Java language. It is intended for mature software development organizations striving for productive development process resulting in high quality products
TestWorks Windows, Unix C, C++, Java, Ada TestWorks automate and streamline your software development and testing process for Regression Testing, Test Suite and Management.

 

Free Performance Testing Tools

Tool/Product Name Operating system Language used Comments
Apache JMeter Solaris, Linux, Windows Java It is 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more).
Database Opensource Test Suite Linux, POSIX C, Unix Shell The Linux Test Project is a group aimed at testing and improving Linux. The goal of the LTP is to deliver a suite of automated testing tools for Linux as well as publishing the results of tests we run.
Deluge OS independent Perl Web site load tester. Simulates multiple user types and counts. Includes proxy server for recording playback scripts, and log evaluator for generating result statistics.
Grinder OS independent Java It is a Java load-testing framework making it easy to orchestrate the activities of a test script in many processes across many machines, using a graphical console application.
JCrawler OS Independent Java, XML JCrawler is an open-source Stress-Testing Tool for web-applications. It comes with the crawling/exploratory feature. We can give JCrawler a set of starting URLs and it will begin crawling from that point onwards, going through any URLs it can find on its way and generating load on the web application.
OpenLoad Linux, DOS, Unix C++ OpenLoad is a tool for load testing web applications. It aims to be easy to use and providing near real-time performance measurements of the application under test.
Sipp Linux, Unix   It is a performance-testing tool for the SIP protocol. Its main features are basic SIPStone scenarios, TCP/UDP transport, customizable (xml based) scenarios, dynamic adjustment of call-rate and a comprehensive set of real-time statistics
SLAMD OS Independent Java It is a Java-based application designed for stress testing and performance analysis of network-based applications. SLAMD Distributed Load Generation Engine is a Java-based application designed for stress testing and performance analysis of network-based applications.

 

Stress and Performance Testing Tools

Tool/Product Name Operating system Application server Comments
LOADEATEST Windows Microsoft .NET framework Stress tests aim at testing the functionalities of a system when this system is heavily loaded for a given period of time or at peak time. The main goal of the test is to determine if the system is able to meet target availability
LoadTester Windows, Linux, Solaris, Mac WebLogic, WebSphere, Apache AppPerfect Load Tester is highly scalable load simulation software that helps you test your application's behavior under conditions of heavy usage. It is used primarily for load testing and capacity planning
TestWEB OS independent IBM iSeries TestWEB is a powerful record-and-playback testing solution effective on any platform. It enables testing of entire iSeries-based e-business applications - from the web-based elements right through back office systems processes
TestLOAD, TestBench OS independent IBM iSeries TestLOAD is the only iSeries-specific automated load testing solution. It simulates actual system performance as well as placing artificial load on the network, monitoring and capturing Batch activity, server jobs and green-screen activity.
NeoLoad Windows, Linux and Unix J2EE, .NET, PHP, ASP, CGI NeoLoad simulates hundreds of virtual users on your web site, getting performance statistics and revealing errors under stress.
Embarcadero Extreme Test Windows, Linux and Solaris HTTP, JDBC, MS SQL, Sybase Capabilities include capture/playback/scripting and test probes/agents that work with a wide variety of applications. Load can be generated against HTTP and JDBC, allowing testing of Web sites, Web-based applications, and relational database systems.
Siege Unix, Linux, Solaris All platforms that support perl Siege is an http regression testing and benchmarking utility. It was designed to let web developers measure the performance of their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols.
Web Performance Trainer Windows, Linux and Solaris J2EE, ASP, .NET, PHP, ColdFusion, Java Web Performance Trainer is web load testing and web stress testing software and tools targeted at web sites that use standard technologies such as web forms, J2EE, ASP, .NET, PHP, ColdFusion, Java, etc.
Microsoft Web Application Stress Tool Windows Windows server, IIS The Microsoft WAS web stress tool is designed to realistically simulate multiple browsers requesting pages from a web site. You can use this tool to gather performance and stability information about your web application
Mercury LoadRunner Windows, Unix, Linux Web Services, J2EE, and .NET Mercury LoadRunner is the industry-standard performance and load testing product for predicting system behavior and performance. Using limited hardware resources, LoadRunner emulates hundreds or thousands of concurrent users to put the application through the rigors of real-life user loads.
Http-Load Unix HTTP and HTTPS Free load test application from ACME Labs to generate web server loads, from ACME Software
PureLoad Platform independent FTP, SMTP, IMAP, JDBC, LDAP, Telnet and DNS PureLoad is a load testing tool that simulates hundreds of users executing requests against server based applications. Use PureLoad to verify that your application will meet the expected performance criteria. PureLoad reports quality and performance problems as well as detailed statistics gathered during a load test.

 

Free HTML Testing Tools

Tool/Product Name Operating system Language support Comments
HTML Tidy Windows, MAC, Linux, UnIx HTML, XHTML Fixes HTML mistakes automatically and tidies up sloppy editing into nicely layed out markup
HtmlTestCase OS Independent Python HTML Unit Testing tool is a set of classes to make it easy (or at least easier) to automate functional testing. It allows users to specify their tests using a high-level API. This tool should be usable by any QA person with some programming skills.
HtmlUnit OS Independent Java HtmlUnit is a java unit testing framework for testing web based applications. It is similar in concept to httpunit but is very different in implementation. Which one is better for you depends on how you like to write your tests.
Doctor HTML Linux, Mac Solaris, Windows   It is a Web page analysis tool which retrieves an HTML page and reports on any problems that it finds. The primary focus of this tool is to provide a clear, easy-to-use report of information that is relevant for improving your Web page
W3C HTML Validator OS Independent   This is the W3C Markup Validation Service, a free service that checks Web documents in formats like HTML and XHTML for conformance to W3C Recommendations and other standards.

 

HTML Validators and Link Checkers Tools

Tool/Product Name Operating system Browser support Comments
W3C CSS Validation Service OS Independent FireFox Mozilla, IE, Netscape CSS validation site run by the WWW Consortium (the folks who set web standards); handles one URI at a time; or upload file or validate by direct input.
W3C Link Checker OS Independent FireFox Mozilla, IE, Netscape Link checking service run by the WWW Consortium; configurable. Handles one URL at a time.
WDG HTML Validator OS Independent FireFox Mozilla, IE, Netscape Enter the URL of an HTML document to validate. To quickly validate multiple URLs, try the batch mode. Alternatively, you can validate files on your computer or you can enter your HTML directly
WebXACT OS Independent FireFox Mozilla, IE, Netscape WebXACT is a free online service that lets you test single pages of web content for quality , accessibility , and privacy issues. Can test one page at a time. Choose among multiple standards - W3C-WCAG guidelines and US Section 508 guidelines.
Weblint Gateway OS Independent FireFox Mozilla, IE, Netscape Site with online HTML validator; somewhat configurable. Site provided by San Francisco State University
Site Audit OS Independent Any major browser Low-cost on-the-web link-checking service from Blossom Software
Link Checker Pro OS Independent Any major browser Link Checker Pro is the leading solution for website analysis and the detection of broken and other problem links. Link Checker Pro combines powerful features and an easy to use interface and is robust enough to deal with corporate websites containing 100,000 links or more
Web Link Validator Windows Any major browser It is a powerful link checker and site management tool for webmasters to check links for accuracy and availability, find broken links and links containing syntactic errors.
SiteAnalysis Windows Any major browser Link testing is featured with SiteAnalysis, a hosted website monitoring service used to periodically test and validate critical website components, such as internal and external links, domain names, DNS servers and SSL certificates, to ensure the quality and functionality of websites and content portals.
CyberSpyder Link Test Windows Any major browser It is a Web site management program to be used for verifying that the URLs on a site are not broken and for analyzing site content
LinkScan Windows, Unix, Linux and Mac Any major browser It is an industrial-strength link checking and website management tool. The LinkScan™ family of products delivers flexible test automation capabilities for the entire spectrum of web-based applications.
Xenu's Link Sleuth Windows Any major browser It checks Web sites for broken links. Link verification is done on "normal" links, images, frames, plug-ins, backgrounds, local image maps, style sheets, scripts and java applets.

 

Web Site Security Test Tools

Tool/Product Name Operating system Comments
Nessus Linux, Unix It is a remote security scanner for Linux, BSD, Solaris, and other Unices. Nessus is plug-in-based, has a GTK interface, and performs over 1200 remote security checks. It allows for reports to be generated in HTML, XML, LaTeX, and ASCII text, and suggests solutions for security problems.
BFBTester Solaris, Unix, Linux, MAC It is good for doing quick, proactive security checks of binary programs. BFBTester will perform checks of single and multiple argument command line overflows and environment variable overflows. It can also watch for tempfile creation activity to alert the user of any programs using unsafe tempfile names
Flawfinder Windows, Linux This is the main web site for flawfinder, a program that examines source code and reports possible security weaknesses (``flaws'') sorted by risk level. It's very useful for quickly finding and removing at least some potential security problems before a program is widely released to the public
SECURITY TESTING - OSSTMM OS Independent The Open Source Security Testing Methodology Manual (OSSTMM) is a peer-reviewed methodology for performing security tests and metrics.
WebScarab OS Independent It is a loose suite of web application security assessment tools written entirely in Java. It is a tool primarily designed to be used by developers who can write code themselves.
Watchfire Windows It provides automated web application security testing for rapid development of secure Web applications, enables security assurance testing before deployment and auditing post deployment, and insures ongoing confidence by continuously monitoring Web applications across the enterprise
Web Vulnerability Scanner Windows Web site security testing tool from Acunetix first identifies web servers from a particular IP or IP range. It then crawls entire site, gathering information about every file it finds, and displaying website structure. After this discovery stage, it performs an automatic audit for common security issues. Applications utilizing CGI, PHP, ASP, ASP.NET can all be tested for vulnerabilities such as cross site scripting, SQL injection, CRLF injection, code execution, directory traversal and more
Codenomicon test tool Windows and Linux Codenomicon test tools are used for robustness testing, security assessment, software development, risk analysis, purchase criteria and acceptance testing. Codenomicon tools test implementations using black-box testing methods. Proactive flaw discovery introduces tremendous cost savings for our customers and promotes reliability and responsibility.
SARA Solaris, Linux, Mac, Windows and Unix It is a comprehensive network security scanner that discovers, analyzes, and reports on security vulnerabilities of network-based computers, server, routers, and firewalls
STAT Scanner Mac, Window, Unix, Solaris, Linux, Cisco, Oracle STAT Scanner is built to deliver a solid balance of speed and accuracy via its adaptive scanning techniques and false-response correlation technology. Through deep inspection of target systems that include redundant file attribute and registry value correlation, as well as SSH tunneling and authenticated OS fingerprinting refinement, STAT Scanner dramatically reduces the risk of false positives and false negatives.
Security Scanner Windows, Linux, Unix Free, open-source remote network security auditing tool, based on 'never trust the version number' and 'never trust that a given service is listening on the good port'. Nessus is made up of two parts : a server and a client; the server (nessusd) manages the 'attacks', whereas the client is a front-end designed to collect the results. Includes more than 1000 tests in 23 vulnerability categories, and Nessus Attack Scripting Language
SAINT® network vulnerability assessment scanner Unix, Linux, MAC It takes a preventative approach to securing your company's computer networks. SAINT scans your systems and finds security weaknesses. It prioritizes critical vulnerabilities in your network and recommends safeguards for your data. Includes DoS testing, reports specify severity levels of problems. Single machine or full network scans. Also available is 'WebSAINT' self-guided scanning service, and SAINTbox scanner appliance
Ethereal Unix, Windows, Linux It is a free network protocol analyzer tool. It allows you to examine data from a live network or from a capture file on disk. You can interactively browse the capture data, viewing summary and detail information for each packet. Ethereal has several powerful features, including a rich display filter language and the ability to view the reconstructed stream of a TCP session.
Snort Unix, Windows, Linux It is a lightweight network intrusion detection system, capable of performing real-time traffic analysis and packet logging on IP networks. It can perform protocol analysis, content searching/matching and can be used to detect a variety of attacks and probes, such as buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts, and much more. Snort uses a flexible rule based language to describe traffic that it should collect or pass, and a modular detection engine.
hping Unix, Linux hping is a command-line oriented TCP/IP packet assembler/analyzer. The interface is inspired to the ping(8) UNIX command, but hping isn't only able to send ICMP echo requests. It supports TCP, UDP, ICMP and RAW-IP protocols, has a trace route mode, the ability to send files between a covered channel, and many other features
dsniff Unix, Windows, Linux Dsniff is a suite of powerful network auditing and penetration-testing tools. It is a collection of tools for network auditing and penetration testing. dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf, and webspy passively monitor a network for interesting data . arpspoof, dnsspoof, and macof facilitate the interception of network traffic normally unavailable to an attacker. sshmitm and webmitm implement active monkey-in-the-middle attacks against redirected SSH and HTTPS sessions by exploiting weak bindings in ad-hoc PKI
GFI LANguard Windows Once GFI LANguard N.S.S. has completed scanning a computer, it categorises security vulnerabilities and recommends a course of action. Wherever possible, further information or a web link is included regarding the security issue, for example a BugTraq ID or a Microsoft Knowledgebase article ID
Ettercap Mac, Window, Unix, Solaris, Linux Ettercap is a suite for man in the middle attacks on LAN. It features sniffing of live connections, content filtering on the fly and many other interesting tricks.
It supports active and passive dissection of many protocols (even ciphered ones) and includes many feature for network and host analysis
J ohn the Ripper Dos, Linux, Windows, Unix, John the Ripper is a fast password cracker, currently available for many flavors of Unix, DOS, Win32, BeOS, and OpenVMS. Its primary purpose is to detect weak Unix passwords. Besides several crypt(3) password hash types most commonly found on various Unix flavors, supported out of the box are Kerberos AFS and Windows NT/2000/XP/2003 LM hashes, plus several more with contributed patches.
Tripwire Linux, Windows, Unix A file and directory integrity checker. Tripwire is a tool that aids system administrators and users in monitoring a designated set of files for any changes. Used with system files on a regular basis, Tripwire can notify system administrators of corrupted or tampered files, so damage control measures can be taken in a timely manner. It is freely available at Tripwire.Org. UNIX users may also want to consider AIDE, which has been designed to be a free Tripwire replacement
Nikto Linux, Windows, Unix Nikto is an Open Source web server scanner which performs comprehensive tests against web servers for multiple items, including over 3200 potentially dangerous files/CGIs, versions on over 625 servers, and version specific problems on over 230 servers.
SuperScan Windows only It is a connect-based TCP port scanner, pinger and hostname resolver. No source code is provided. It can handle ping scans and port scans using specified IP ranges. It can also connect to any discovered open port using user-specified "helper" applications
NBTscan Linux, Windows, Unix NBTscan is a program for scanning IP networks for NetBIOS name information. It sends NetBIOS status query to each address in supplied range and lists received information in human readable form. For each responded host it lists IP address, NetBIOS computer name, logged-in user name and MAC address
Firewalk Linux, Unix Firewalk is an active reconnaissance network security tool that attempts to determine what layer 4 protocols a  given IP forwarding device will pass. Firewalk  works  by sending out TCP or UDP packets with a TTL one greater than the targeted gateway
ngrep Windows, Linux, Unix ngrep strives to provide most of GNU grep's common features, applying them to the network layer. ngrep is a pcap-aware tool that will allow you to specify extended regular or hexadecimal expressions to match against data payloads of packets.
Honeyd Windows, Linux, Unix Honeyd is a small daemon that creates virtual hosts on a network. The hosts can be configured to run arbitrary services, and their personality can be adapted so that they appear to be running certain operating systems. Honeyd enables a single host to claim multiple addresses - I have tested up to 65536 - on a LAN for network simulation
Brutus Windows Brutus is one of the fastest, most flexible remote password crackers you can get your hands on - it's also free. It supports HTTP, POP3, FTP, SMB, TELNET, IMAP, NTP, and more. No source code is available.
Stunnel Windows, Linux, Unix Stunnel is a program that allows you to encrypt arbitrary TCP connections inside SSL available on both Unix and Windows. Stunnel can allow you to secure non-SSL aware daemons and protocols by having Stunnel provide the encryption, requiring no changes to the daemon's code
Fragment Windows, Linux, Unix It features a simple rule set language to delay, duplicate, drop, fragment, overlap, print, reorder, segment, source-route, or otherwise monkey with all outbound packets destined for a target host, with minimal support for randomized or probabilistic behavior. This tool was written in good faith to aid in the testing of intrusion detection systems, firewalls, and basic TCP/IP stack behavior.
SPIKE Proxy Windows, Linux SPIKE Proxy is a professional-grade tool for looking for application-level vulnerabilities in web applications. SPIKE Proxy covers the basics, such as SQL Injection and cross-site-scripting, but it's completely open Python infrastructure allows advanced users to customize it for web applications that other tools fall apart on.
Bastille Linux, Mac OS X, and HP-UX The Bastille Hardening program "locks down" an operating system, proactively configuring the system for increased security and decreasing its susceptibility to compromise. Bastille can also assess a system's current state of hardening, granularly reporting on each of the security settings with which it works

 

Free Functional Testing Tools

Tool/Product Name Operating system Comments
Anteater OS Independent 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.
Arbiter OS Independent Arbiter is a requirements gathering and verification tool for web projects. It's aim is to sharpen the communication between stakeholders and developers.
Canoo WebTest Java and OS Independent Canoo WebTest is a free open source tool for automated testing of web applications. 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.
DejaGnu Mac, Windows, POSIX DejaGnu is a framework for testing other programs. 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. A Test Harness is the testing infrastructure that is created to support a specific program or tool.
Doit OS Independent 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.
Enterprise Web Test OS Independent 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.
GNU/Linux Desktop Testing Project Linux It is aimed at producing high quality test automation framework and cutting-edge tools that can be used to test GNU/Linux Desktop and improve it. It uses the "Accessibility" libraries to poke through the application's user interface. The framework has tools to generate "AppMap" by reading through the user interface components of an application.
ITP OS independent ITP is a deceptively simple, yet powerful web testing harness. It is a stand-alone Java application that can test your website from a user's perspective. It is amazingly simple and lightweight, yet can be used for powerful test-scripting by using building blocks to create large test runs.
iValidator OS independent iValidator is a framework for XML-based test automation of complex test scenarios. iValidator is completely written in Java. The framework is available under an open source licence
Jameleon OS independent and Java It is an acceptance-level automated testing tool that separates applications into features and allows those features to be tied together independently, creating 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.
Jemmy OS independent and Java Jemmy is a Java TM library that is used to create automated tests for Java GUI applications. It contains methods to reproduce all user actions which can be performed on Swing/AWT components (i.e. button pushing, text typing, tree node expanding, ...). JemmyTest is a program written in Java which uses the Jemmy API to test applications.
JFunc OS independent and JUnit 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.
jWebUnit OS independent jWebUnit is a Java framework that facilitates creation of acceptance tests for web applications. It evolved from a project where we were using HttpUnit and JUnit to create acceptance tests. As the tests were being written, they were continuously refactored to remove duplication and other bad smells in the test code. jWebUnit is the result of these refactorings.
Latka OS independent and Java 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.
LogiTest OS independent and Java LogiTest is the core application in the LogiTest suite. The application provides a simple graphical user interface for creating and playing back tests.
Marathon OS independent and Java Marathon is a testing framework for GUI applications developed using Java/Swing. Marathon composes of recorder, runner and editor. The testscripts are composed of python code
MaxQ OS independent and Java MaxQ records you using a web site. It turns the links you click on and any other input into a Python script that you can play back at any time. 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.
Pounder OS independent and Java Pounder is a utility for automating Java GUI tests. It allows developers to dynamically load GUI's, record scripts, and then use those scripts in a test harness
QAT OS independent and Java 2 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.
Selenium Windows, Linux and Macintosh Selenium is a test tool for web applications. Selenium tests run directly in a browsers, just as real users do. It can be used both for functional, compatibility (it has extensive cross-browser support) and regression testing.
Toster OS Independent Toster is a system for sharing a set of tools that allow you to implement methods for object-oriented testing. The TOSTER is a system for sharing a set of tools that allow to implement methods of object-oriented testing. Any method based on UML diagrams and on the software source code can easily be implemented as a TOSTER module.
WebInject Windows, OS Independent, Linux WebInject is a free tool for automated testing of web applications and services. It can be used to test individual system components that have HTTP interfaces (JSP, ASP, CGI, PHP, Servlets, HTML Forms, etc), and can be used as a test harness to create a suite of [HTTP level] automated functional, acceptance, and regression tests.

 

Free Bug Tracking Tools

Tool/Product Name Operating system Comments
Anthill OS Independent Anthill is a simple, secure, reliable, and fast bug manager based on MySQL and CGI::SecureState. Anthill is a tool that aids code development by keeping track of bugs in a multi-project, multi-developer environment. It accomplishes this with a clean, simple, and fast interface that contains all the essential features but avoids the enormous complexity associated with most other projects of this type.
BugRat OS Independent BugRat is free Java software that provides a sophisticated, flexible bug reporting and tracking system.
Bugs Online Windows The Bugs Online system is a very flexible and capable system for bug and issue tracking. Please feel free to browse through this site to become more familiar with the system and how it might be incorporated into your environment.
Bugtrack Linux, Solaris, Windows Web-based bug tracking tool. Support multiple users, projects, components, versions and email notification
Bugzilla TBC Bugzilla is a "Defect Tracking System" or "Bug-Tracking System". Defect Tracking Systems allow individual or groups of developers to keep track of outstanding bugs in their product effectively.
GNU GNATS OS Independent GNU GNATS is a set of tools for tracking bugs reported by users to a central site. It allows problem report management and communication with users via various means. GNATS stores all the information about problem reports in its databases and provides tools for querying, editing, and maintenance of the databases
Mantis Windows, Mac, Unix, Linux Mantis is a web-based bugtracking system. It is written in the PHP scripting language and requires the MySQL database and a webserver. Mantis has been installed on Windows, Mac OS, OS/2, and a variety of Unix operating systems. Almost any web browser should be able to function as a client.
Request Tracker OS Independent RT is an enterprise-grade ticketing system, which enables a group of people to intelligently and efficiently manage tasks, issues, and requests submitted by a community of users.
Stabilizer Linux, Unix The Stabilizer bug tracking system aims to quickly stabilize buggy GUI applications so that people can get real work done with them. As soon as a few people report the same bug, warnings will be issued to all users whenever they are about to trigger that bug and they will be given the opportunity to abort the input event -- thus avoiding the bug altogether and keeping the application stable.
TrackIt OS Independent TrackIt is the first open source, web based project tracking tool designed from the ground up to provide maximum flexibility, customization, and most importantly, usefulness to the developer

 

Free Java Testing Tools

Tool/Product Name Requirements Comments
Artima SuiteRunner OS Independent, JUnit It is a free open source testing toolkit for Java. We can use this tool with JUnit to run existing JUnit test suites, or standalone to create unit and conformance tests for Java APIs. The three main advantages Artima SuiteRunner offers to JUnit users are reporters, runpaths, and recipe files. Existing JUnit users can use SuiteRunner to run their JUnit tests, which allows them to gain the benefits of reporters, runpaths, and recipe files while continuing to use their JUnit test cases.
Cactus JUnit Cactus is a simple test framework for unit testing server-side java code. The intent of Cactus is to lower the cost of writing tests for server-side code. It uses JUnit and extends it. Cactus implements an in-container strategy, meaning that tests are executed inside the container.
Daedalos JUnitExtensions JUnit The djux JUnitExtensions make it possible to define test resources as known from the Smalltalk SUnit. Unit tests are speeded up by using test resources, because time-consuming initializations are only done once and remain active over a series of tests. As an example, a database connection is opened before executing the first unit test and can be accessed during the whole testing circle. It isn't necessary to re-open the database connection before an unit test is executed
DbUnit JUnit DbUnit is a JUnit extension (also usable with Ant) targeted for database-driven projects that, among other things, puts your database into a known state between test runs. This is an excellent way to avoid the myriad of problems that can occur when one test case corrupts the database and causes subsequent tests to fail or exacerbate the damage.
djUnit Eclipse djUnit plug-in is JUnit TestRunner with the original classloader. djUnit ClassLoader modifies class in loading to JVM, and runs tests using the modified class.
Emma Java Emma is an open-source toolkit for measuring and reporting Java code coverage.
Gretel Java Virtual Machine Gretel is a test coverage-monitoring tool for Java programs. The current version provides statement coverage monitoring. The primary difference between Gretel and other coverage monitoring tools is that Gretel implements residual test coverage monitoring: After you run a program that has been instrumented with Gretel, Gretel can re-instrument the program and remove instrumentation for those parts that have already been executed
GroboUtils Java environment GroboUtils aims to expand the testing possibilities of Java. It contains many sub-projects which experiment with different aspects of testing through Java. The popular tools included with GroboUtils include multi-threaded tests, hierarchial unit tests, and a code coverage tool.
Hansel Java , JUnit and BCEL Hansel is an extension to JUnit that adds code coverage testing to the testing framework. Much of the source code is taken from Gretel a "Residual Test Coverage Monitoring"-Tool developed at the University of Oregon .
J2MEUnit Java environment J2MEUnit is a Java 2 Micro Edition ( J2ME) library containing a unit testing framework for J2ME applications. It is based on the source code of the original  JUnit, the successful unit testing framework for the standard (desktop) edition of Java, J2SE.
Jacareto Java Virtual Machine Jacareto is a capture & replay tool for programs written in Java. It allows you to easily create your own capture&replay tools.
JellyUnit JUnit JellyUnit is a Jelly based JUnit testing mechanism. This allows Jelly scripts to be used to perform unit testing which can be particularly useful if you wish to test XML, XPath, SQL, HTTP, JMS or SOAP interactions.
Jester JUnit, Java, Python Jester is a test tester for testing your java JUnit tests (Pester is for Python PyUnit tests). It modifies your source code, runs the tests and reports if the tests pass despite the changes to the code. This can indicate missing tests or redundant code
Jetif Command-line interface The Jetif is a regression test framework in pure Java. It provides a simple and flexible architecture for Java unit testing and functional testing, and used for testing in both individual and enterprise software development. It's easy to use, but powerful, and with some important features for enterprise software testing. This project was inspired by JUnit, JtestCase, and TestNG.
Jiffie Windows OS Jiffie, a Java/JNI library that allows Microsoft Internet Explorer to be controlled from Java. The primary purpose of this library is to allow automated regression testing of web applications using a framework like JUnit
JUnit OS Independent JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is used by the developer who implements unit tests in Java.
Quilt JUnit, ANT Quilt is a Java software development tool that measures coverage , the extent to which unit testing exercises the software under test. It is optimized for use with the JUnit unit test package, the Ant Java build facility, and the Maven project management toolkit.
Macker JDK, ANT Macker is a build-time architectural rule checking utility for Java developers. It's meant to model the architectural ideals programmers always dream up for their projects, and then break -- it helps keep code clean and consistent. You can tailor a rules file to suit a specific project's structure, or write some general "good practice" rules for your code. Macker doesn't try to shove anybody else's rules down your throat; it's flexible, and writing a rules file is part of the development process for each unique project
MockObjects OS independent Mock Objects is a test-first development process for building object-oriented software and a generic unit testing framework that supports that process. Our first implementation is in Java, largely because that's what we've been working in, but also because it has a stable set of APIs that are suitable for writing Mock Objects.
Mockrunner OS Independent Mockrunner is a lightweight framework for unit testing applications in the J2EE environment. It supports Struts actions and forms, servlets, filters and tag classes. Furthermore it includes a JDBC and a JMS test framework and can be used in conjunction with MockEJB to test EJB based applications.
NoUnit Java, XML NoUnit measures your Junit tests in your project using Java, XML and XSLT. NoUnit gives a picture of your code , like a graph gives you a picture of a set of figures, to allow you to see what is *really* going on.
PMD Java Virtual Machine PMD scans Java source code and looks for potential problems. PMD has plugins for JDeveloper, Eclipse, JEdit, JBuilder, Omnicore's CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs
Slim Java Virtual Machine Slim is an alternative model to implementing JSP syntax. Although it is not 100% compatible with JSP, in many cases it can be used a drop in replacement
StrutsTestCase OS Independent StrutsTestCase for JUnit is an extension of the standard JUnit TestCase class that provides facilities for testing code based on the Struts framework. StrutsTestCase provides both a Mock Object approach and a Cactus approach to actually run the Struts ActionServlet, allowing you to test your Struts code with or without a running servlet engine.
TESTARE Java Virtual Machine TESTARE is a testing framework that aims to simplify the test development process for distributed enterprise JAVA applications. It provides straightforward and easy to use "in container" testing capabilities through the concept of execution scenarios. It provides native support for test environment management and introspection techniques such as fixtures,global fixtures, probes and guards.
TestGen4J All platforms, JUnit TestGen4J is a collection of open-source tools that automatically generates unit test cases. The first released component of TestGen is TestGen4J. TestGen4J automatically generates test cases from your own Java class files, or source files. Its primary focus is to exercise boundary value testing of the arguments passed to the method.
TestNG Java Virtual Machine TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use.
UISpec4J JUnit UISpec4J is an Open Source functional and/or unit testing library for Swing-based Java applications, built on top of the JUnit test harness. UISpec4J's APIs are designed to hide as much as possible the complexity of Swing, resulting in easy to write and easy to read test scripts
XTest ANT XTest is general test framework for Java based products tests. XTest consists from set of utilities, templates, sample configurations and recommendations how to build integrated, flexible and easy to use test environment. XTest framework is planed to be base for NetBeans testing

 

Free PHP Testing Tools

Tool/Product Name Requirements Comments
phpAsserUnit PHP Environment phpAsserUnit is a unit testing framework based on jsAsserUnit. It's a kind of wrapper of the assertion methods found in jsAsserUnit. So it provides the same functionalities, but in a PHP development environment.
PHPUnit PHP, OS Independent Provide a testing framework for PHP, similar to JUnit for Java.
SimpleTest PHP Environment SimpleTest is a testing framework built around test case classes. These are written as extensions of base test case classes, each extended with methods that actually contain test code.
Spike PHPCoverage PHP Environment Spike PHPCoverage is an open-source tool for measuring and reporting code coverage provided by the test suite of a PHP application. Spike PHPCoverage can instrument and record the line coverage information for any PHP script at runtime

 

Free JavaScript Testing Tools

Tool/Product Name Requirements Comments
JsUnit JavaScript, all major browsers supported JsUnit is a Unit Testing framework for client-side (in-browser) JavaScript. It is essentially a port of JUnit to JavaScript. Also included is a platform for automating the execution of tests on multiple browsers and multiple machines running different OSs
jsAsserUnit OS Independent jsAsserUnit to test your JavaScript code, be it small routines and functions included in your site pages, nice scripts used to monitor some other tools using JavaScript as a scripting utility, or a fine hierarchy of classes ala Java with complex inheritance relationships between a thousand files package

 

Free .NET Unit Testing Tools

Tool/Product Name Requirements Comments
ASPUnit Microsoft IIS ASPUnit is a unit testing framework based on the architecture of JUnit, the current open source de facto standard for unit testing. ASPUnit is a web-based port of COMUnit using Active Server Pages
BizUnit . NET environment Test Framework for automated testing. It enables the rapid development of test cases, specifically targeted by not restricted to testing BizTalk solutions.
csUnit Microsoft .NET framework, Win SP2 csUnit is your unit testing tool for the Microsoft .NET Framework. You can use it with all .NET languages including C#, Visual Basic .NET, J#, and managed C++
Nester .NET Framework, NUnit Nester is a tool for mutation analysis of your source code in order to assess the adequacy of your tests. It involves modification of programs to see if existing tests can distinguish the original program from the modified program. Basically Nester is a .NET port of Jester slightly adjusted for C#.
NUnit . NET environment NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.2, is the fourth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
TestDriven.NET . NET environment TestDriven.NET is a zero friction unit testing add-in for Visual Studio .NET. It is compatable with NUnit, MbUnit and Team System. You can download the full add-in from http://www.testdriven.net/. This project only contains the NUnit driver for TD.NET
NUnitAsp . NET environment NUnitAsp is a tool for automatically testing ASP.NET web pages. It's an extension to NUnit, a tool for test-driven development in .NET
NUnitForms . NET environment NUnitForms is an NUnit extension for unit and acceptance testing of Windows Forms applications. It is easy to write automated tests for your Windows Forms classes.
Zanebug . NET supported environment Zanebug is an advanced tool for comprehensive unit and integration testing. Int is an outgrowth of and improvement on NUnit
Adapdev.NET . NET supported environment Adapdev.NET is an enterprise library focused on enhancing the .NET core library and adding new functionality where needed. It is a combination of custom code, contributed code, and code harvested from various projects and articles

 

Database Testing Tools

Tool/Product Name Free Trial Vendor Comments
AETG Yes Telcordia Technologies The AETG TM Web Service generates test cases from a model of your requirements. It uses combinatorial design techniques to find a minimal test-case set that covers all pairwise interactions among input values
Data Factory Yes Quest Software It is a dat a generator tool and data manager for database testing. With an intuitive user interface and its ability to model complex data relationships, DataFactory is a fast, easy source of test data.
Data Generator Yes GSApps GS Data Generator is an automated testing and data generation tool, which enables you to create test data for software quality assurance testing (QA testing), performance testing, usability testing and database load testing. GS Data Generator is a computerized testing application specifically designed to generate random test data, meaningful test data and business intelligent test data for system integration testing, ERP, CRM and data warehouse development, and software marketing.
Test data generator Yes DTM Soft Test data generator is a simple, powerful and fully customizable utility that generates data, tables (views, procedures etc) for database testing (performance testing, QA testing, load testing or usability testing) purposes. Currently, database developers and administrators often have to spend hours of dull work to create test data sets before examining database performance
Datatect Yes Banner Software Datatect , an intuitive, powerful program for generating a virtually limitless variety of realistic test data to ASCII flat files or directly to RDBMS including Oracle, Sybase, SQL Server, and Informix.
jenny Yes   jenny is tool for generating regression tests. Any time exhaustive testing looks painful due to the combinatorial explosion of features interactions to be tested, consider using jenny . It will cover most of the interactions with far fewer testcases. It can guarantee pairwise testing of all features that can be used together, and it can avoid those feature combinations that cannot
TurboData Yes Canam Software TurboData was devised by a developer who wrote a small batch program to manipulate data on a few tables. He found it took longer to create the test data to test his program than to write the code. It was so time consuming making sure that the data was the correct format and all the foreign keys were resolved. He then proceeded to write an automated test data generator that would just populate every row of data on every table with default data values to make sure that the foreign keys would be the same as the parent identifier.
utPLSQL Yes Open source utPLSQL is an open source, unit-testing framework for Oracle PL/SQL developers. Created by Steven Feuerstein, author of several classic PL/SQL books and a leading PL/SQL trainer, utPLSQL is being developed as open source, consistent with the lightweight development methodology known as Extreme Programming

Full article...


Other Resource

... to read more articles, visit http://sqa.fyicenter.com/art/

Open Source Tools for Software Testing and QA