This Blog


Favorite Posts


August 2013 - Posts

  • Debugging DevExpress code with PDB files

    Do you like debugging? (I know, I know, a necessary evil, right?) Do you own a license to either DXperience or Universal subscription (in other words, you have the source code)? Do you wish that you could debug into DevExpress code from your code?

    Did You Know?Well, we’ve just made that a whole lot easier in v13.1 (or later) by providing the PDB files as a separate download for you. Just go to the Download Manager once you’re logged in and you should see a link to download the PDB files for your particular version. (They are version-specific, so be warned.) These are standard “program database” files and contain debugging symbols and other information that help in your debugging efforts within Visual Studio. Once you have downloaded these files and completed a little bit of configuration, you will be able to debug into DevExpress code as if it were your own.

    For more details on how to configure Visual Studio to find the DevExpress PDB files once you’ve downloaded them, please see the KA18843 Knowledgebase article in the support center. There are full details in that article – with screenshots! – so you shouldn’t have any issues, but if you do our support team can help.

    Remember: they’re only available for DXperience 13.1 or Universal 13.1 or above (you have to have the source) and they are version specific.

    Happy debugging!

  • TestCafé webinar and quick FAQ

    On Tuesday, August 27, I shall be presenting a webinar on our new functional testing tool for the web, TestCafé. Supporting me will be members of the team that created the product and we’ll be providing as many answers as we can in the half-hour or so of the presentation. I shall of course be demonstrating TestCafé in action; sometimes a picture (or a video) is definitely worth a thousand words.

    TestCafé logoIn preparation for that, let me provide some answers to some questions about the product. I dare say I’ll be talking more about these topics during the webinar, but it doesn’t hurt to provide some foundation first. So, without further ado, here’s the Top Ten questions.

    Q1. What is TestCafé?

    A. It is a tool, a system for creating and running functional tests for web pages, sites, or applications. As I’ve put it before, if it’s HTML5/CSS/JS and served up by a supported browser, TestCafé can test it.

    Q2. What is functional testing?

    A. Functional testing is a QA process designed to test what a system does, and not how it does it. (The latter is more the purview of unit testing.) In other words, you the developer (or tester) define what should happen in a certain scenario with certain inputs, and functional testing verifies that the output is as you’ve specified. Let’s take a small common example from a blog: each article in the blog is shortened in the browser and has a “read more” link. When the user clicks on one of those links (the first, say) the page should slide down to show the remainder of the article. A functional test would recreate the initial conditions, “click” the first link, and then verify that the resulting page has the article visible.

    Q3. Does it work on WinForms/WPF/Silverlight/Metro apps?

    A. No. This is a web testing tool. Think “testing HTML in a browser” and you can’t go far wrong.

    Q4. You mentioned ‘supported browsers’. Which ones?

    A. Essentially any browser that is capable of rendering HTML5 and that supports a modern dialect of JavaScript. So, IE9+, Chrome, Firefox, Safari, Opera on Windows, Safari and others on the Mac, browsers on Linux.

    Q5. They’re all on the desktop, but we need to test our mobile web pages. Does it work with browsers not on the desktop or do we have to use a simulator?

    A. Yes, TestCafé works with any device with a modern browser. So, Safari on the iPhone or iPad is supported, as is the Android browser and IE on Windows Phone 8. Using simulators for testing? <spit>

    Q6. Wow, does that mean you provide plug-ins for all those browsers as part of TestCafé?

    A. No, we don’t. The reason is that, unlike other web testing tools, TestCafé does not use plug-ins at all. When we were coming up with the idea for TestCafé, we recognized that a plug-in architecture was fundamentally flawed. Plug-in functionality is restricted by the browser manufacturers, and yet a testing plug-in has to somehow replicate user input gestures (keyboard, mouse, touch), screenscrape in some way to verify output, read the DOM of the page, verify whether page elements are visible or not, and so on. In essence, the problem is the plug-in is manipulating your browser, not the web page; there’s an awkward man in the middle.

    So, no hunting for that plug-in for Firefox 20 or the one for IE9 so you can install it. There is nothing to install in the browser under test. Zip. Nada. Zilch.

    Q7. So how does it work? Surely it has to replicate user actions in order to run tests, and that would require a plug-in to feed keystrokes or mouse actions.

    A. Not at all. And herein lies the beauty of the TestCafé experience. There are two main parts to TestCafé: the server and the client library. There’s the server part which holds the dashboard and analysis components (as well as the proxy server) that launch the tests being run on the client (one or more browser instances on whatever devices). This part runs on node.js, with the Control Panel being viewed inside a browser. Then there’s the client-side library that runs the tests within the client browser and communicates the results back to the server. The clever bit is that the client browser loads its pages through the TestCafé proxy server, which means TestCafé can inject the client-side library inside the page being tested.

    Now, both the server and the client could be run on the same machine (this is how I do all my work with TestCafé), but they don’t have to be. The client browser could equally well be on a remote PC or mobile device connected to the LAN. All you have to do in that case, is to ‘register’ the remote browser as a ‘worker’ with the TestCafé server by navigating to a special URL, after which TestCafé does the rest. Oh, and just because I use the term ‘client’ in the singular doesn’t mean that TestCafé is somehow restricted. It can run tests on many browsers simultaneously in parallel. And when we release a new version, all you have to do is update the node.js server, you don’t have to go to every single browser you’ve used and update those: the TestCafé server is king.

    Q8. How do you create a test in the first place?

    A. Two ways: you can get TestCafé to record it for you, or you can write it from scratch.

    Q9. Great, so there’s yet another DSL (Domain-specific language) to learn?

    A. Nope. All tests for TestCafé are written in JavaScript, even the ones recorded by the tool. If you think about it, that’s the only way it would all work: the client-side library gets your tests as JavaScript files and just executes them. You can put anything in your tests, including calls to your own libraries that you’re loading as part of the page. In other words, code re-use is other big benefit of using TestCafé. The biggest benefit of all though is that your test code is running as part of the page in the browser. You have full access to the DOM of the page; it’s just as if your tests were part of the page. There is a small TestCafé API to learn, certainly, but it’s not a completely new language.

    And that, boiled down to the basics, is why TestCafé works on all devices with a modern browser: it’s just JavaScript all the way down. If you’re a web developer, you know it already and TestCafé fits right in to your experience and workflow. If you’re not a web developer or tester, why are you reading this?

    Q10. How do we get TestCafé? Is it a service or is it a separate download that we install?

    A. It’s a download. Yes, we could have launched TestCafé in such a manner that we controlled the server part (in essence, we could have “rented” out testing services), but we recognized that a lot of web testing is done in a QA environment which may be just running on an intranet, with no connection to the internet. In that scenario, it makes sense to provide the server part as part of the TestCafé install.

    So if you want to try it out, go ahead, download and install into a local instance of node.js and experiment to your heart’s content. If you want some hand-holding as you set it all up, please visit our documentation page: there’s a full tutorial of how to configure TestCafé, how to create tests, how to run them and debug them, and how to add them to a Continuous Integration system. Or just watch the supplied videos on those tutorial pages. Or, if you’re like me, do both ;). Of course, full support is also available from our support team if you get stuck.

    If you want to use it for a commercial site or app, we sell licenses per developer/tester, not per machine. You can buy a license for $499, and please note that we do have discounts for multiple licenses. Naturally, you get all the benefits that the non-commercial tester gets, with the additional benefit of faster response to support questions.


    So, see you on Tuesday, August 29. Register now!

  • Meet DevExpress TestCafé

    There have been some hints here and there, some rumblings of a new product on the horizon, but now it’s finally time to reveal all…

    A revolutionary website functional testing tool

    DevExpress TestCafé logoWe are very excited to introduce the newest addition to our product line – TestCafé – the testing tool that will change the way you view web testing. It differs from other testing or browser automation tools in so many ways. Firstly, there’s next to no configuration involved: it just works on different operating systems and allows you to test your web UI in any modern browser. And not just browsers on your desktop or laptop either. You can connect remote devices, including smartphones or tablets, and TestCafé will execute the tests on the device itself using its browser. Note that the mouse and similar system resources aren’t being used when testing – so you can continue using your computer for other work while TestCafé runs tests in multiple browsers in parallel in the background.

    Those and many other features – including the Visual Test Recorder, Continuous Integration support, markup and script analysis on the target webpage – are all described on the dedicated TestCafé website: testcafe.devexpress.com.

    Great news for web developers

    No matter how you create tests with TestCafé – either using the Visual Test Recorder or just by writing the script by hand (and, believe me, it’s pretty simple to do that) – you end up with code. The good news that it is JavaScript code, there is no proprietary language to learn here. As such, you can do many things in the same manner as you do them when developing your site:

    • Access webpage elements just as you would normally do – use the DOM, Luke!
    • Re-use existing JavaScript functions that you have written, or call into other JavaScript libraries.
    • Debug your test code using your browser’s Web Developer tools.

    In other words, if you are a web developer, you’re pretty much a TestCafé expert already.

    Getting started with TestCafé

    We suggest that you first watch our overview video that will cover all aspects of TestCafé usage – from recording tests to continuous integration.

    Comprehensive online documentation is available here. It’s online and being continually updated, so if something isn’t clear, let us know and we’ll fix it immediately.

    Being a developer, you’ll want to see code; we totally understand that. Bookmark the Example page – it’s used in many documentation samples. Navigate to that page and download the sample test fixture to learn how TestCafé tests work.

    Pricing, licensing, and some good news for Universal subscribers

    Like all our products, TestCafé is licensed per developer, meaning that everyone creating and running tests using TestCafé will need a license, which costs $499. As usual, multi-seat discounts are available. For more information on licensing, please refer to the following pages:

    TestCafé will be included in the Universal subscription, so all active subscribers will see it in their Download page.

    Let us know what you think

    As always, we want to hear from you. Give TestCafé a try and write us a line in comments to this post or by contacting our Support Team at http://devexpress.com/Support/Center/

  • What’s coming in XAF 13.2 – Webinar

    String around finger as reminderThis post is for all the XAF fans out there: I’m presenting a webinar on the features we’re planning to add to eXpressApp Framework for Universal 13.2, for release towards the end of the year. I’ll have Dennis and the rest of the team here helping out, of course. This has been scheduled for Tuesday, August 20, at 10am, Pacific Daylight Time (GMT-7).

    (To ensure Dennis is as fresh as a daisy for this webinar, he’s gone off on a camping holiday somewhere in the wilds of the countryside where the dreaded internet has not yet reached. At least that’s what he told me. Meanwhile he left me this email about possible features that is a bit short on details…)

    Some keywords we may be discussing: tablets, performance, web UI, reports, data consistency, performance, validation. Of course, in order to find out what we actually do discuss, you’ll have to attend. So visit the Webinars page in order to register your seat now; don’t leave it too late or you’ll be disappointed!


Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2018 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners