Very sneaky peek: Functional test framework for eXpressApp Framework (XAF)

15 July 2009

Some new functionality just managed to get into DXperience v2009 vol.2 under the code freeze wire: functional testing in XAF. In fact it was so close and so new, we haven't got that much documentation for it yet. So, the decision was between, eh, tough, nice try guys, but don't tell anyone and keep it out until v2009.3, or, keep it in and document as we go. Guess which path we're taking? Smile

Welcome to EasyTest for XAF: a test framework that does functional testing for XAF applications.

The big idea here was to create a very simple and easy-to-use framework for testing the multi-platform XAF applications you write. We aimed for functional testing, that is, testing of the overall functionality of the application rather than the unit testing of single methods and the like. Furthermore, since XAF can create WinForms and ASP.NET applications, our goal was to be able to test both platforms with one tool rather than have a separate "WinForms" testing tool and an "ASP.NET" testing tool. Another goal was to allow the QA team to create tests, rather than the developers, and to support this you can run EasyTest tests standalone, rather than in Visual Studio (which is what I'll talk about here).

With some bribes of pizza and beer, we got some help from the CodeRush team to fully integrate EasyTest into Visual Studio so that you can do things like run (and stop) tests and even step through XAF tasks and actions.


(Note: the pane on the left shows the test script being executed. We'll talk about the grammar of the script commands in a later post.)

Not only that, but EasyTest also supports breakpoints:


While an application is being tested, EasyTest provides the actions that you've already specified and the application runs on its own.


At the moment, the logging facilities are pretty simple too: test messages and warnings are posted to the Output window in Visual Studio:

Test Output

Although I stated above that we didn't have much documentation yet, we are certainly in the process of writing it for the release. For such a feature though, it makes sense to continue to blog about it and explain its evolution, why we did it, how simple it is to use and run. So, please stay tuned as we explain more about functional testing in XAF, about test scripts, and about the standalone testing app.

12 comment(s)
Adam Leffert

1) First!

2) A+!  Way to go!

Adam Leffert

15 July, 2009
Freddy Caballero

Great job!! it's very useful

15 July, 2009
Boris Bosnjak

Unbelievably awesome!

15 July, 2009
Robert Fuchs

Absolutely great!!!

Regarding the standalone testing app for QA, how about licensing?

15 July, 2009
Julian Bucknall (DevExpress)

Robert: Obviously in order to use the EasyTest plug-in to Visual Studio a user will have to be properly licensed.

For the standalone application (which is just a test runner, no tracing/stepping), you shouldn't need the full-blown license and so, just like the end-user report designer I suppose, we'd have to add some special language to the EULA.

(Note to self: must get that language in the EULA before v2009.2.)

Cheers, Julian

15 July, 2009
Binish Peter

Waiting....... for it.

something scary is in log output, I see statements like "This may take several minutes.." , minutes??.

One of the main expectation for me in 9.2 is XAF startup performance

16 July, 2009
Chloe Anfield

Looking good.

16 July, 2009
Steve Sharkey

Amazing job.

Really looking forward to this one - though it is of course more work in the short term it will (I'm sure) lead to much better releases.

Thanks DX

16 July, 2009
Mohsen Benkhellat

I love it!

16 July, 2009

Yesterday, I introduced EasyTest for XAF, our new functional testing framework for applications built

16 July, 2009
Troy Gould

Boo.  You've been building your own tool when there are a million other very good testing tools out there?   How about just implementing Microsoft Automation UI framework for your non WPF controls.  After that, there are many very good tools out there that can (gasp) test both your controls and generic winform controls that developers may have in an application.

Disappointed in the lack of seeing the bigger picture...

29 July, 2009
Joe Hendricks


And Troy, there is a big advantage in having fewer learning curves for me and also for having a testing tool that understands XAF.

30 December, 2009

Please login or register to post comments.