| James's profileJames McCaffreyBlogLists | Help |
|
January 29 Windows XP Embedded, Part IIYou can think of Windows XP Embedded as a slimmed-down, customized version of Windows XP, intended for use in PC-like devices such as game consoles and information kiosks. While I was investigating Windows XP Embedded systems -- by way of conversations with a lot of engineers at Microsoft -- I noticed a sort of a knowledge gap between engineers who work with XP Embedded and engineers who perform testing. Quite a few engineers who perform testing as their primary job role do not have a complete grasp of what Windows XP Embedded is, and quite a few engineers who work with XP Embedded as their primary role do not have up-to-date knowledge of the latest test automation techniques. I set out to help bridge that knowledge gap. I contacted Mike Hall, a senior Microsoft technical product manager, and an expert on Windows XP Embedded. After several days of research we discovered some interesting, currently unpublished, approaches for creating UI test automation for Windows XP Embedded systems. In a nutshell, it is possible to create an XP Embedded UI test automation "component" which exercises the XP Embedded system through the system's UI. This test automation component can then be added to the XP Embedded image and then be used to test the XP Embedded system. I will be presenting details of the technique at the MEDC 2007 conference (Mobile & Embedded DevCon) from May 1 - 3 in La Vegas. The use of embedded systems and mobile systems is growing very fast and there's no better way to get up to speed quickly than by attending a conference like the MEDC. See http://www.medc2007.com for details. January 17 Windows XP Embedded, Part IWhat is Windows XP Embedded? Well, I oversee technical training for several thousand software engineers working at Microsoft. Part of my responsibilities include continuously monitoring what Microsoft hiring managers are looking for so that I can create training classes which target those sought-after technologies and increase Volt engineers' career options. Recently, I noticed a big spike in the number of job openings which are asking for candidates with basic familiarity with Windows XP Embedded. Even though I've worked with software since the 1960s, I wasn't 100% sure I even knew exactly what Windows XP Embedded is. So I found out. The best way to think of Windows XP Embedded is as a customized, slimmed-down version of regular Windows XP. So, what's the point of XP Embedded? A full-blown PC needs an operating system with thousands and thousands of hardware device drivers so that the PC/operating system can accommodate a huge range of possible hardware devices -- keyboards, hard disk drives, USB devices, and so on. You can argue strongly that the plug-and-play hardware support of Windows XP, is as much responsible for the success of Windows and even Microsoft, as anything. But what if you are building a "PC-like" device instead of a full PC? Examples include information-kiosk devices, game console devices, home server appliances (to set up a home network), and so on. In these cases you don't need or even want the full Windows XP operating system. Here's where Windows XP Embedded comes in. Software developers can download a set of four related tools (named Target Analyzer Probe, Component Designer, Component Database Manager, and Target Designer) which allow developers to build a custom version of Windows XP that has only the drivers and other software the PC-like device needs. Very cool idea. As opposed to using a proprietary operating system, XP Embedded allows developers to use their existing knowledge of Microsoft software development (no need to learn a whole new OS and development tools), and XP Embedded has a big support community. Let me point out that Windows XP Embedded is not at all the same as the Windows CE operating system, which is intended for so-called "mobile devices" such as PDAs and cell phones, which are not very "PC-like". So anyway, I saw this interest in Windows XP Embedded from hiring managers and created an intense 2-hour "Introduction to Windows XP Embedded" class which has been enthusiastically received by Volt and Microsoft engineers. See www.vteOnline.com for Volt technical training class information. January 07 AJAX Web Application Test AutomationThe popularity of Web applications that use AJAX (Asynchronous JavaScript And XML) technology has increased steadily over the past several months. When correctly written, AJAX can yield big improvements in performance and user experience compared with non-AJAX Web applications. However, because AJAX Web applications work asynchronously, traditional test automation techniques (which are synchronous) generally don't work.
A traditional, non-AJAX approach posts an HTTP request to the Web server, passing request information in a Form object or a query string. Without AJAX technology, the map application works but has two drawbacks. First, because the HTTP request-response mechanism is synchronous, while the request is being processed by the Web server, the user loses most ability to interact with the Web application until the response is returned to the client. Second, in most cases the HTTP request causes an entire response page to be created, so when the response is received by IE, the entire page is repainted. This leads to an annoying page flicker effect if the request-response is relatively quick, or even to a page blank-out effect if the action is slower. AJAX solves both these problems. AJAX works by sending an XMLHTTP request instead of an HTTP request. XMLHTTP requests are asynchronous. So while the XMLHTTP request is being processed behind the scenes, the user can continue interacting with the Web application. And when the XMLHTTP response is received, the IE DOM can be used to repaint only the area of the Web page which holds the new data, rather than having to repaint the entire page.
Most traditional test automation techniques just don't work with AJAX Web applications. The most fundamental way to test a Web application's functionality is to programmatically send an HTTP request which corresponds to the request generated by some user input to the Web server, fetch the HTTP response, and examine the response to determine a pass-fail result. This approach doesn’t work for AJAX applications because they use special XMLHTTP requests. Another traditional approach is to use JavaScript to manipulate the IE DOM to send a request to the Web server, wait until the onload event fires signaling the response has been received by the client and has been loaded, then use JavaScript and the IE DOM to examine the new state of the Web page to determine a pass-fail result. The problem with this approach is that because AJAX works asynchronously you can't use the onload event to tell when the response has been received by the client. But you can modify this approach to create lightweight test automation for AJAX applications. Instead of using the onload event to signal when a response has been received, you can write code which watches the application for some expected change in application state and then transfers control to a callback function. I describe the process in detail in the February 2007 issue of MSDN Magazine which will appear online at http://msdn.microsoft.com/msdnmag/issues/07/02/TestRun/default.aspx in a few weeks.
|
|
|