Windows Forms Test Automation - winforms

We are looking for a way to automate windows forms for acceptance testing. Our requirements are:
Must be usable by non-developers (ie: people with no development environment installed)
Must have a recorder
Must support third-party controls
Must have basic functionality (allow clicking on buttons, inputing text, validating results, accros multiple windows if necessary)
Basically, something like Selenium, but for windows forms.

For what it's worth, I've been testing for 15 years, and to this day have never seen ROI on tests created in this fashion. Automated testing, is obviously a good thing, but if you are just taking test cases that should be manual test cases and having minimum wage workers "automate" them, you will almost always end up with a mass of unmaintainable fragile tests that save no time in the end and get thrown out quickly.
The FitNesse suggestion from paiNie is a great suggestion.

Must be usable by non-developers
Any not-web test automation tool will need either dev`s well-known ide (Eclipse etc.) or test tool ide. SilkTest, TestComplete etc. will also make u to write some code.
U can separate work between devs and testers using tool for creating "executable requirements" like "Fitnesse" or Concordion

AutomatedQA TestComplete meets your requirements AFAIK

HP QuickTest Pro is a good tool, even for non-developers

Posting this on behalf of my wife :)
We were using a tool from Compuware called TestPartner to create the test scripts for testing a WinForms client-server application. For managing and controlling the scripts execution we were using Compuware QA Director.
TestPartner uses VBA which is quite easy to understand and to use. Some non-developers could even know it because they write Excel macros.
It has good record-and-replay functionality and is very good with objects recognition.
So you could use it for both simple scripts created by your business users and to create a framework of advanced scripts by your developers and test engineers.

Never used it but Borland SilkTest seems to be another meeting your requirements.

Basically, something like Selenium, but for windows forms.
You could try AutoIt. It's free and has a community site where you could find already created solutions.
However I'm generally concerned about your goal. Acceptance criteria are informal.
Have you got already ideas how would you be translating informal stuff to technical requirements?

We use TestComplete for automating our Windows forms test cases. It is a pretty good product overall.
The main issue you will run into is that while most of these products will meet all of your requirements, you are going to run into a lot of maintenance issues, especially having non-developers recording the tests.
Although it may seem like a good idea to quickly record all of your tests then have them run from the recordings, you will have a much better ROI by actually treating your automated tests like regular development. Recordings will leave you with a lot of duplicated code, which is very difficult to maintain. By properly designing the tests and breaking out reusable code you will end up with much more stable tests and you will be able to get your results much quicker.

The Vermont HighTest:
http://www.vtsoft.com/vcsproducts/index.html
The 30 day trial looked pretty good!

Check out Oracle/Empirix e-Test.

Check the perfect solution. TestComplete is a great tool for record and play and creating your own scripts using VB, C#, C++ or anything else you want. It beats Silk, Compuware, Mercury hands down. It has very low price per license. You can get 5 license for price of 1 license in Compuware and silk, and 1/4 license for price Mercury.

You can try Sikuli. It's free and easy. No programming skills needed.

Related

Easy to use multi browser automation tool for record, parameterize, debug, batch run of suites and results report

I'm new in tests area. Regression team where I belong has built GUI tests for some web applications with complex business logic that developers team has produced.
Until now, we have been using Selenium IDE to build regression tests (record, edit, parameterize, debug and playback). Tests are exported and maintained in Html format. We used to have a tool to manage tests and iterations (store html scripts/tests suites, run tests in batch mode, run tests in background, get detailed test result reports), which is now deprecated because uses Selenium RC. Additionally, tests are made only in Firefox, but our clients are mainly IE users.
So, we have some important and strategic decisions to make. We need urgently to start testing in IE and a new way to do the tasks we were doing.
An attempt was made to change the code of tests’ manager tool in order to work with Selenium Webdriver. It was tried to code tests in Ruby from the beginning, since Selenium IDE export to Ruby was not satisfactory. We figured out that huge changes and subsequent tests on the manager tool were needed. It would also involve programming the methods and test them.
Our regression team is quite small and we don’t want to focus too much on the programming task itself, but more on testing our webApps. Additionally, no one on the general team had experience in working with Ruby before.
Can you help us with some suggestions about the route we should take?
Is there an integrated solution easy to work with (as Selenium IDE) and able to do the manager tasks of our old tool without taking us much time on “hard coding”?
Is there any reliable open source tool that could do it? And a commercial solution?

Is the Meanstack suitable for production?

I have been looking at the various Meanstack frameworks out on the net - and whilst impressed with what they achieve I have one serious concern - the number of files used in a typical stack - meanstack.js uses over 15000 files whilst the bmean example has a modest 1900 in comparison.
The question I am asking myself is would I be happy to put my trust is such a system from a production view point - what happens when something goes wrong how easy is it going to be to find the answer? You can almost bet that when your most important customer logs on it is going to go haywire. Also what happens when Angular version 2 comes along it could require a complete rewrite but by then the stack your using has been customised and difficult to change?
Am I getting over concerned about the technology - my intended approach is to strip the client side code out of the bmean example and rewrite it with my own - at least that way I know (and control) what goes on in the client. Do you think this is the correct way to proceed?
With most systems there is a bit of preparation required before going to production. The same is true with mean.io (using multiple cpu's, improved aggregation, caching, etc etc)
The large number of files is essentially a product of the way npm handles dependencies. Each module is able to define independent versions of the same dependencies thus creating a bit of bloat but at the same time allowing a lot of flexability in nodejs code.
We currently have a number of mean.io projects in production phase and have been very happy with performance and the overall experience.
New releases of the project are scheduled every couple of months, upgrading should not be too much of a problem if you use the package system correctly.
Issues with the project are handled and managed through github issues additional support can be found on our irc (freenode #mean_io) channel as well as on facebook.
For commercial support have a look at the support page

migrator.net vs fluentmigrator vs migsharp

I am currently investigating possible options of a migration framework/tool. I like the idea of ruby migrations on which the above frameworks are based.
So I am asking for your experience, opinions and maybe a comparison between them. Are you using them in production?
thanks for responses. The goal of this question was to get a feeling about which tools is used most in the developer community but it seems that migrations are not a hot topic here.
Anyway, I have decided to go with MigSharp as the codebase seem to be pretty clean and it is quite easy to handle and had build in support for MS SQL CE. Second runner up would have been FluentMigrator where I was not able to produce a working example for compact edition.
Cheers
I use FluentMigrator in production, and am a longtime contributor to FM. I think your question is to general; be more specific. Also, FM has a google group which is fairly active if you want FM information.
FM is derived from migrator.net, as I recall. It uses a fluent-syntax, and supports multiple databases. We have taken some inspiration from rails migrations, but it's definitely not a port. Worth checking out.
One thing I've learned is not to put your migrations in the same assembly as you app code. Separate them into a migration assembly, and use that for migrating your databases.
Also, you should always work on multiple environments to avoid problems with migrations run straight against production. I always have at least a development and production environment, and most of the time there is a testing environment as well.
I use mig#.
It works well, but you will need to have some guidelines for usage - as migrations can get complicated.
We use sequence number on the end of our migrations rather than a date-time stamp. This is because we don't know when the date time stamp was set (when they begun the source code change-set; just before committing; some time inbetween) different developers could use different approaches.
Names such as Migration_0000034.cs give you plenty of space.
At this point, I would stick with migrator.net. I like the promise of FluentMigrator, but it seems to not have any better active development than migrator.net (see the issues and pull requests that have languished on their github site).
There is also no easy way to do an ExecuteScalar(). I'd add it, but I don't want to create my own fork, and I see no reason that a pull request would actually land in the master. (Execute.WithConnection is an Action so it will fire on demand rather than when I need it to fire)
So for me, I'm heading back to migrator.net.

Advice on learning about web applications

I know how to write programs in Java and C++, and would like to learn how servers, databases and Internet based applications work so I could start developing them.
Where should I start? What should I learn first? What books would you recommend for me?
Thank you, in advance :)
I would start by either trying Tomcat which would let you create fairly basic web applications. I would start by playing around with either servlettes or JSPs. There is a lot documentation and examples.
Or you could start by downloading and playing around with a database. PostgreSQL is really good. It is free and they have a tool called pgadmin which is a really good ide.
Once you have been able to get these set up and working I would then start taking a look at some various frameworks that exist to make using these tools a lot easier. For example, you could take a look at Guice or Spring for dependency injection or a range of other tools. This is a comparison of each.
You will also probably want to also look into Velocity, Freemarker, or struts, or something similar. These will make your life a lot easier.
For the database you could look at: Hibernate or MyBatis, both are really good and function slightly differentially. Hibernate is very commonly used and they cache objects very efficiently.
I don't know what you mean by "cells", anyway you may start from open source technologies and their online docs, like Apache, MySQL, and PHP.

Simple standalone website checking tool

Background:
We run a content management platform that hosts 20+ separate websites - some intranets and some internet sites - so that have different end points routed for internal or external access.
We are currently upgrading our infrastructure - including software versions, hardware, changes of IP/VIP/DNS entries etc which affects all of the sites.
I want to be able to run a repeatable site test against all sites check everything is working fine and I'd like to do it from different end points (locally on each box in the cluster, from the cluster level, from the internet, from the intranet extra.
Anyone know of a simple tool that requires no sofware to install to run a repeatable regression test against a whole bunch of defined URL's?
I was thinking of a HTML page that I can run from different locations that is essentially a link checker.
Can anyone recommend a simple way to provide a level of automatic testing of our sites (in addition to our manual verification.
Thanks
Sounds like you're looking for Selenium: http://seleniumhq.org/
Edit
Wait, I think you mean 'Testing' them as in, check to see if they're online and reachable? Then I might just automate a series of ping or telnet commands, and check appropriate things. Would take a matter of minutes to write a little app in any language to do this.
There is all sorts of web site monitoring software available (check google, or ask for recos here). That's what you're looking for. There is a whole range from free to very expensive that monitor and stress your site from around the world.
Or you can write simple shell scripts that do what you want.
>> 'Testing' them as in, check to see if they're online and reachable?
Yes that's exactly it!! I was thinking the same - I could script something up but I thought I'd check first to see if someone has already done this - I guess not!
Thanks
Doesn't fit the "requires no sofware to install to run" part, and it's not necessarily super-cheap, but we've had great results with Radar Website Monitor for this kind of thing.

Resources