views:

119

answers:

5

Hello,

I've got a desktop application written in C# created using VS2008 Pro and unit tested with Nunit framework and Testdriven.net plugin for VS2008. I need to conduct system testing on the application.

I've previously done web based system tests using Bad Boy and Selenium plugin for Firefox, but I'm new to Visual Studio and C#.

I would appreciate if someone could share their advise regarding this.

Thank you!

A: 

System tests usually have use cases, end to end scenarios and other scripted functions that real people execute. These are the tests that don't lend themselves well to automation as they are asking your unit-tested cogs to work with each other. You might have great unit tests for your "nuts" and your "wrenches" but only a comprehensive system test will let you know if you have the right sized wrench for the nut at hand, how to select/return it from/to the drawer, etc.

In short - manual tests.

No Refunds No Returns
1down. Sorry but big,big disagree. System functional testing on desktop app can be easily automated, specially on windows, with other platforms there might be a problem (like QNX). But for windows there are tools that do that. And there is lot of tools for different system testing on desktop (as Thomas Owens commented the question).
yoosiba
+1  A: 

System testing will likely need to be done via the UI. This gives you two options:

1) You can manually conduct the test cases by clicking on elements. 2) You can automate the test cases by programming against the UI. There are plenty of commercial tools to do this or you can use a programming framework like the Microsoft UI Automation Framework. These tend to use the accessibility APIs built into Windows to access your UI.

Whether you go the manual or automated route depends on how many times you will be running the tests. If you are just going to run them once or twice, don't spend the time automating. You will never earn it back. If you are going to run them often, automating can be very handy.

A word of caution: Automating the UI isn't hard, but it is very brittle. If the application is changing a lot, the tests will require a lot of maintenance.

Steve Rowe
A: 

If you're willing to put money down, you could look at something like TestComplete.

Although I haven't really used it yet (our company just bought it), it seems quite nice. You can record clicks and keypresses and stuff, define success criteria, and it will replay the test for you later. It appears to be quite smart about UI changes - it remembers which button you clicked, not just the (x,y) of each click.

It's scriptable, or drag-and-drop programmable.

I'm not affiliated in any way, and this is not an endorsement, because I haven't really formed an opinion of it yet.

Blorgbeard
A: 

Hey.
As Thomas Owens commented on your question, first you must decide what kind of system testing you want to do. But assuming you want start with Functional System Tests. Prepare use cases you want to automate. Than you must find proper tool.

Just for start:
AtoIT – is not test atomization tool but it lets automate some tasks. So you could record/script use cases. Not really recommended, but can be done.
HP QuickTestPro – easily can be done with this tool via recording/scripting but it is expensive, so maybe not worth it for personal use.
IBM Robot – as HP QTP.
Powershell – you could write scripts in powershell and execute them. If you would use dedicated ide-like tools for powershell you could record test also. I did some web automation via powershell and it worked. With a bit of work probably you could script around your desktop app.

And the best would be to try different tools, and use one that suits you best. Try this link and this link.

yoosiba
A: 

Perhaps NUnitForms could be useful for you?

devghost