Wednesday, July 30, 2008

10th IEEE International Symposium on Web Site Evolution

This IEEE symposium WSE 2008, 3-4 October 2008, Beijing, China. (WSE 2008 is co-located with the 24th IEEE International Conference on Software Maintenance.) The paper and presentation schedule appears to be very strong, including special presentations by Scott Tilley ("Ten Years of Web Site Evolution") and two papers (one in each conference) by Harry Sneed, the noted German software engineering authority.

Sunday, July 27, 2008

Demonstration Yahoo User Interface (YUI) Application

You've probably heard of GWT. But have you heard of YUI?

YUI, the Yahoo User Interface, is a collection of very powerful JavaScript libraries and "widgets" that offer a web developer -- and a an AJAX application developer -- a very powerful collection of ready-to-use objects and interfaces. YUI is widely used, as evidenced by this Yahoo! User Interface Library: Sites Powerd by YUI page.

eValid works well with these sites because the YUI approach is pure-JavaScript all the way. We worked up an example YUI (Yahoo User Interface) Demonstration Script to illustrate how this works. The example handles making a reservation on the SouthWest Airlines website.

This example shows that eValid handles YUI-built applications and also illustrates use of eValid's IndexMotion commands and internal timer commands to create a script that could serve well in functional testing, regression test, and monitoring test roles.

Monday, July 21, 2008

Google Testing Blog Response

There was a post on the Google Testing Blog (Motto: If it ain't broke, you're not trying hard enough!) that seems to be pleading for two things we've already developed.

In response in part to the Google Blog's notion of "layer of abstraction" as a way to characterize a solution we pointedout that we had already prepared a simple description of eValid in terms of its command language. We are also working on additional "abstract models for other aspects of the eValid solution Here's the item: eValid As An Abstract Model: An Initial Analysis.

Meanwhile, the Google Blog item also alluded to issues surrounding testing Google Web Toolkit applications. Testing GWT is straightforward for eValid, as our example showing tests of the GWT Kitchen Sink widgets illustrates. Here's the link: eValid Operation with GWT "Kitchen Sink"Confirmed.

Saturday, July 19, 2008

Summary of AJAX Synchronization Support

Experienced web testers know this too well: AJAX applications are often very difficult to test reliably because they are, after all, inherently asynchronous (AJAX = Asynchronous JavaScript and XML). The problem is that a test recording, one made for example with the "real time recording" setting turned on, will play back perfectly well for a while, but will get out of synchronization when the target website is running slower. The asynchronous JavaScript executions almost always fail to sync using simple Wait times. Something more -- much more -- is needed, and eValid has what is needed.

But not every test command (test action) requires extrinsic synchronization, and in many cases the extra step of having to figure out how to add in a synchronization step isn't even necessary because the intrinsic synchronization is good enough. This table summarizes all of eValid's Synchronization Modes. As you can see there are many different ways that playback synchronization can be maintained.

For tough AJAX applications you usually need to rely on one of the DOM-based synchronization modes, e.g. SyncOnElementProperty or SyncOnText. Those commands need to have their parameters filled in manually through use of the PageMap facility to find the right element properties (attributes) and their values. Our worked example that shows how we test the Google Gmail Example is a good illustration of how this works out in practice

Thursday, July 17, 2008

3rd Google Test Automation Conference (GTAC)

Google sponsored the first GTAC in New York last August, and now they have organized a second rendition. The official Call For Attendance: GTAC 2008 gives details about how to apply for a spot to attend. Google is very generous: it pays for the conference in its entirety.

Here's the list of scheduled presentations (in alphabetic order by paper title):
  • Advances in Automated Software Testing Technologies, by Elfriede Dustin
  • Atom Publishing Protocol, Testing a Server Implementation, by David Calavera
  • Automated Model-Based Testing of Web Applications, by Oluwaseun Akinmade and Prof. Atif M Memon
  • Boosting Your Testing Productivity with Groovy, by Andres Almiray
  • Deployment and Test Automation: Extending the Notion of 'Done' to 'System Tested on a Production Deployment', by Marc-Elian Begin
  • JInjector: a Coverage and End-To-End Testing Framework for J2ME and RIM, by Julian Harty, Olivier Gaillard, and Michael Sama
  • Practicing Testability in the Real World, by Vishal Chowdhary
  • Taming the Beast: How to test an AJAX Application, by Markus Clermont and John Thomas
  • The New Genomics: Software Development at Petabyte Scale, by Matt Wood
  • The Value of Small Tests, by Christopher Semturs

Tuesday, July 15, 2008

Search Engine Optimization: Initial Analysis Script

A suggestion was made some months ago by one of our colleagues who is in the search engine optimization business that we ought to see if eValid could help her out. We asked her, "What is the most common question you want to have answered?"

After several go-arounds, her response was, basically, that it would be great to have an simple, fully-automated way to find out if a particular search string produced a valid clickable link in the first page of search results, and do this across multiple search engines. That second part of the request was the sticky one: just showing a text item was there on the results page was not enough. You really had to know there was a real live link that someone could click that would take you to a specific URL. Making one script for multiple search engines was going to be tricky, too.

The resulting SEO Demonstration Script is a parametric script, expressed in terms of the name of the search engine, the locations of the search-string entry field, the location and properties of the "go get it" action field, and of course the input search string and required URL fragment. To make the script 100% reliable -- we don't want to have to rewrite this script if the search engine pages change -- we worked out the Search Engine Parameters for a number of different search engines.

We ran the parametric script using one of eValid's methods for multiple-script playbacks (e.g. DataSynthesis mode among several options) with very interesting results. Natural enough we searched for "eValid" and discovered lots of references in places we didn't think we'd be referenced. Interesting indeed, the differences we found.

Friday, July 11, 2008

2nd IEEE International Conference on Software Testing, Verification and Validation

Here is a well intentioned, well-organized conference that might be of real interest to the web testing community: ICST 2009, 1-4 April 2009, Denver, Colorado, USA. One aspect of this conference worth noting is that the fact that it claims to have an "open management" approach (see the ICST Charter) -- so it may be a step away from the typical vendor-sponsored events that seem to be growing so rapidly in number.

Monday, July 7, 2008

Summary of Worked Examples

We've been developing already-worked examples of eValid tests of difficult websites or hard-to-test web applications for some time now, and there are quite a few of them completed. We thought it would be interesting to organize these in a way that shows off how example illustrates one or more features of the eValid test engine:

  • Analysis of the DOM of the page for particular properties.
  • Explicit playback synchronization based on page properties.
  • Use of eValid page-position-independent "index motion" commands.
  • Support for AJAX operations, including synchronization.
  • Use of eValid's ability handle Regular-Expression matches.
  • Use of one of eValid's many page-based validation modes.

The result is our Application Support Coverage Matrix, which describes what we have done so far.

Thursday, July 3, 2008

New Movie Demonstrates Test Unification

There's a new eValid movie you might want to review that shows eValid operating in "test unification" mode. By "test unification" we mean the ability to have one test script server multiple purposes, e.g. for tuning properties of a page (how fast parts of it download), or confirming availabilty through monitoring, verifying non-regression (nothing's changed when nothing is supposed to have changed), or for inclusion in a multi-user server loading experiment.

The movie illustrates eValid's ability to do page tuning, functional testing, and server loading, all from the same base. The new 3WAY Movie [shows in a new window, duration 05:39] illustrates how simple this can be.