# Open source tools to automate manual testing a desktop application

I am looking to automate the execution of a series of manual tests which require changes to configuration files to run an executable file and record the result of each test run.

I was wondering whether there are any open source tools that are being used by testers out there to carry out the tests in a distributed environment (master-slave). I had a look at top Google results like TestComplete. Any information on this would be hugely appreciated.

• Welcome to SQA, First you need to know weather the tool fulfills your requirement or not, if yes then start R&D on that. – sameer joshi Aug 11 '16 at 9:36
• For which platform you want tests to automate instead of Manual? Mobile[Android or iOS], Web or Desktop native app etc? – NarendraC Aug 11 '16 at 10:29
• @NarendraC its is onlly a desktop app – Pete Aug 11 '16 at 10:33
• @sameerjoshi thanks. I was hoping for any information on tools that are being used by the test community. According to my requirements there are tools out there but couldn't find any open source alternatives. – Pete Aug 11 '16 at 10:35
• For desktop applications it's also important to know which GUI framework/library is used and on which OS. – Vasily Ryabov Aug 18 '16 at 15:20

Sikuli is pure graphical GUI testing. What you see is what you can manipulate. Allows both Python and JRuby scripting. Needs Java.

AutoIt is embedded into the Windows OS. Internally it uses a BASIC-like scripting language.

Selenium is a very popular tool for browser automation.

If the above does not satisfy, here is a list of test automation tools that also includes open source.

It sounds like you aren't really looking to test an application's features itself, but a build process, yes?

If you know Python (or apparently it also supports Ruby or JavaScript), I'll second SikuliX. You could use it to open your config file, modify it, run your executable, and probably validate stuff in the executable after that.

It's mainly picture (screenshot) based, but it can also do anything that Python itself can do as well. If you don't know a scripting language for Sikuli's fancy stuff, you can generically say click(<picture of the file in Explorer>) for each step, but you may not get the most out of it.

• I will have a look at that tool. The main hurdle that I am facing is the sheer number of files(100,000) that needs to be tested, that means the tests wont complete on a single machine and needs to be run on several machines. It also means report collection and processing it is also a challenge. I will be able run the tests on a number of virtual machines but it seems that it is not the ideal solution as that would introduce a lot of complication to the process. – Pete Aug 12 '16 at 8:52

Since it looks like you have some programming why won't you write a script to do that for you ?

In a distributed environment edit a file, run an executable, collect stdout is a perfect fit for some small-ish script

For example with Python you could use a master using the paramiko ssh library to run local scripts on slave. edit-run-stdout is really simple and straightforward in Python.

Alternatively you could use STAF to automate the process from the Python, Java or even from a shell or batch file.