Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

I need a list of some good tools which are open source and meant for automating the UI testing of Windows GUI. Any help will certainly be appreciated.

share|improve this question
2  
What have you tried so far? Isn't en.wikipedia.org/wiki/List_of_GUI_testing_tools enough? Why not? –  dzieciou Jun 5 at 21:15
    
Does it need to be open source or will free work for you? There is a very limited list of "good" open source UI tools for windows. –  Niels van Reijmersdal Jul 11 at 7:37

4 Answers 4

I have worked on SilkTest and it is good. Also, as @Ankit mentioned there are many good UI testing tools, you can find here: http://en.wikipedia.org/wiki/List_of_GUI_testing_tools

share|improve this answer
    
The question is about "Open Source" tools. SilkTest is not open source. :) –  Niels van Reijmersdal Jul 11 at 7:32
    
I missed "Open Source", thank you for the correction :) –  Committed to quality Jul 11 at 8:20

Sikilu:

Sikuli automates anything you see on the screen. It uses image recognition to identify and control GUI components. It is useful when there is no easy access to a GUI's internal or source code.

share|improve this answer

TestStack White: (partial open-source)

White is an open-source framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It is .NET based and does not require the use of any proprietary scripting languages. Tests/automation programs using White can be written with whatever .NET language, IDE and tools you are already using. White provides a consistent object-oriented API, hiding the complexity of Microsoft's UIAutomation library (on which White is based) and windows messages.

With the free Visual Studio Express you can create automated tests with the .Net framework. See my example console C# app code to automate notepad.exe below:

using System;
using TestStack.White;
using TestStack.White.InputDevices;
using TestStack.White.UIItems.Finders;
using TestStack.White.UIItems.MenuItems;
using TestStack.White.UIItems.WindowItems;

namespace WhiteTest
{
    class Program {
        static void Main(string[] args) {
            Tests tests = new Tests();
            tests.Notepad();
        }
    }

    class Tests {
        public void Notepad() {
            Application app = Application.Launch("notepad.exe");
            Window window = app.GetWindow("Untitled - Notepad");

            // Change text
            var box = window.Get(SearchCriteria.ByClassName("Edit"));
            Keyboard.Instance.Send("test", box);

            // Save
            window.MenuBar.MenuItem("File", "Save As...").Click();
            var filename = window.Get(SearchCriteria.ByClassName("Edit"));
            Keyboard.Instance.Send(DateTime.Now.ToString("yyyyMMddHHmmssffff") + "test.txt", filename);
            window.Get(SearchCriteria.ByText("Save")).Click();

            app.Kill();

            // Assert file is created in Documents folder
            // etc...
        }
    }
}
share|improve this answer

One option would be to use robot framework with the autoit library. Robot is a keyword driven acceptance testing framework, which allows you to write your tests in a very readable, english-like format. Robot files are plain text so they integrate well with version control, and there is a robot format plugin for jenkins to support continuous integration. Robot also has a nice mechanism for tagging tests, and generates both xml and html reports and logs.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.