Accessibility
 
Home / Developer Center / Pet Market Application Center  

Developer Center Article

Tom Hale

Tom Hale joined Macromedia in 1995 as a product manager. Since then, he's worked on products, communications, and strategy for the company. Today, he is responsible for building community and content for the DevNet on macromedia.com.

Tom has never been on a QA team, but bows down in respectful admiration for every QA professional he's ever worked with.

 

 

 

 

 
Quality assurance for Rich Internet Applications: 10 tips we learned while doing QA for Pet Market


(With contributions from Becky Sowada, Steve Peterson, and the Pet Market QA team.)

In this article, we'll discuss the quality assurance (QA) processes for the Pet Market blueprint application. Here's the good news: all of the QA techniques that you use for HTML and JavaScript-based web applications can be directly applied as you QA Rich Internet Applications.

Fundamentally, a web application is a software project. There are many good resources for best practices about development and QA that you can apply during QA. However, there are a few key lessons that the QA team learned along the way that will help you deliver Rich Internet Applications that are usable and error-free.

The quality assurance team on Pet Market had a unique challenge. The application had to run well on:

  • A multitude of web browsers
  • Two server operating systems (Windows and UNIX)
  • Two client operating systems (Mac and PC)
  • Two server scripting environments (ColdFusion MX and the Microsoft .NET framework)
  • The JRun 4 J2EE application server

Fortunately, you probably can eliminate a server operating system and an application server platform (J2EE or .NET) from the mix, as your application may not need to work across multiple back-ends. However, delivering a high quality Rich Internet Application still rests squarely on the shoulders of your quality assurance (QA) team and the processes they use to ensure a great user experience.

The team
Becky Sowada led the QA effort on the Pet Market blueprint application. She had four QA engineers on her team: three with five years or more of QA experience, and one with only 18 months. The team members came from a QA team for a Macromedia server product. They had done user experience QA for web applications and were knowledgeable about Macromedia Flash-based user interfaces. Mark Soderberg took the responsibility for automated testing and performance measures, while Ladonna Williams and Jamie Huggett wrote the test cases and did functional QA. Rondi Lund did functional QA and helped with general tasks.

While most of the team was familiar with Macromedia Flash, the team had never released a client-server application using Macromedia Flash Player 6 and ColdFusion MX. As it turned out, most of the testing effort was on the client side (80% client and 20% server). Most of the work revolved around creating a great user experience on the client. But the team was well configured for these tasks. Becky noted that if there was a skill gap on her team, it was in administering and configuring the various server and application server environments. [Tip #1: Make sure your QA team has time to get familiar with Macromedia Flash and has a good balance of server-side QA, client-side QA, usability, and server administration skills.]

Becky's team divided the work of the team across three key areas:
• Writing test cases and other documentation
• Creating automated and semi-automated tests to save time
• Doing the functional testing

Written test cases ensured that a “QA pass” (a complete review of the functionality of the application, including edge cases and boundary conditions) was the same every time. The team created automated testing routines to quickly focus on what piece of the application was breaking. They also automated performance testing. The functional testing required the QA engineers to step through the application to make sure that no functionality was lost between builds and to confirm that bugs were fixed. By and large, most of the team's effort was focused on functional and compatibility testing.

The tools
The team made use of several tools to make their work easier and more standardized. Ideally, test cases are based on engineering specifications (“specs') which describe the as-designed functionality of a given feature. The test cases describe the steps needed to ensure that the feature works as intended. In many teams, the quality assurance team is involved in the design of those specifications so they are intimately familiar with the design of the application. [Tip #2: Get your QA team involved in the specifications of the application early and write detailed test cases from those specs.]

The testing matrix was the core document for the QA team. As the team worked through the functional QA of each build, they would check off the areas of the application that had passed QA. This list of tasks let the team view what tests remained to be done, which tests where checked with each build, and which bugs were found for which test cases.

The testing matrix provided a checklist of platforms, browsers, and operating systems and assigned owners to each combination. While Macromedia Flash Player is cross-platform and reliable across a wide range of browsers and platforms, the QA team wanted to be sure that the application worked especially well for the target platforms.

The team used of a bug database to enter bugs that the engineering team could use to make fixes to the application. Most software development efforts make use of a bugbase, so that bugs can be tracked, fixed, regressed, and sometimes deferred (as little as possible).

The team also built a special test file (a Macromedia Flash MX-native FLA file), which they used to test the server side of the Pet Market application across platforms and between builds. This file helped the QA engineers sign off on the various server implementations of Pet Market by ensuring that all of the APIs and calls used by the client-side front end of Pet Market were still functioning. By running the file inside of Macromedia Flash MX with the NetConnect debugger add-on, the team could check the function of the server APIs. This allowed the team to rule out errors on the server when tracking down an error in the app. [Tip #3: Build test clients that can ensure the error-free operation of the server side of your Rich Internet Application.]

For automated testing, the team made use of Homer, a free loadtesting utility, and SilkTest, which enabled the team to script some of the user interactions. (Editor's note: While today none of the automated testing tools from Mercury Interactive, Rational, Compuware, or Segue directly support Macromedia Flash Player 6, Macromedia is working to address this with those vendors.) However, since so much of the Pet Market application relied on new functionality in Flash Player 6, the team relied primarily on manual testing. [Tip #4: Automate as much testing as possible.]

The timeline
The QA team was involved in the Pet Market project very soon after the development team began to code. Here is a rough schedule of the key phases of the project:

• Prototyping, architecture and design: 2 weeks
• Server-side development: 2 weeks
• Client-side feature development: 3 weeks
• Usability testing: 1 week
• Functional Testing: 2 weeks
• Bug Fixing and Beta testing: 4 weeks
• Performance enhancements and platform testing: 2 weeks
• Endgame: 3 weeks

Most of the prototyping and user interaction was designed before the QA team was fully staffed on the project. The development team used personas for the users to ensure that the application was user-centered. In general, getting the QA team involved early makes the downstream process smoother, because the QA engineers will be more familiar with the application and enfranchised in the decision making process. [Tip #5: Get the QA team into the process early.]

Developing and doing QA on the the server-side functionality of the application was a key priority for the team. The QA team was able to mold their test cases around the server APIs and sign off on major pieces of functionality. This freed the development and QA teams to focus on the user experience and client-side development, which required more cycles of testing, usability testing, and feature development. While the server-side APIs did evolve during this period, the stability of this part of the application made for a smoother QA process. [Tip #6: Start QA on the server side of your application early in the cycle.]

Midway through the schedule, the checkout experience had been implemented as a single screen with multiple form fields. When usability testing showed that users found this design overwhelming, the team redesigned the entire experience to its current “accordion” of expanding screens for each step of the process (login, billing address, shipping address, shipping options, and credit card). The QA team had to reset around this new design and build test cases for the newly redesigned features. Once the team completed the work, built the installers, and fixed most of the bugs, the team released the Pet Market application to the beta list for feedback. By planning ahead for the feedback, the QA and development teams were able to add and drop features and incorporate feedback from a wide variety of sources. [Tip #7: Leave time in the schedule for revisions and user feedback.]

At this point in the schedule, the QA team's processes were well-documented. The QA team was well-versed in the functional QA requirements of Pet Market, and three QA engineers could complete a full QA pass on Pet Market in two days.

At this point, the QA team changed its focus from the functionality of Pet Market to the reliability of the application on various platforms. First came the detection scripts that determined that the user's browser was configured with the correct version of Macromedia Flash Player. Dan Tull, the engineer who implemented the detection script, was surprised at how little time it took (he used the Macromedia Flash MX Deployment Kit). He walked into Becky's cube and said, “The detection is in, or at least I think it is, because it was way too easy.” Of course, it was that easy. [Tip #8: Use the Macromedia Flash MX Deployment Kit for browser and Macromedia Flash Player detection.]

Finally, it came down to performance enhancements, platform testing, and the endgame. During this phase, the QA team served as the team's watchdog, ensuring that fixes and optimizations did not introduce new issues. Becky and her team wish that they could have done performance testing earlier in the process. The testing was time-consuming, but it ended up having a big impact on the overall user experience. [Tip #9: Get performance metrics and testing on the schedule from the beginning—performance is critical for a great user experience.]

As the team was testing for platform and browser compatibility, they uncovered an issue with Mozilla-based browsers and Macromedia Flash Player 6. While Macromedia Flash Player 6 is the most reliable and ubiquitous client runtime by leaps and bounds, Macromedia cannot always control changes that are made in the browser environment.

During the endgame, the marketing team (including yours truly) pushed for new features such as a new loading sequence and “back button” functionality. While most projects do not enjoy the luxury of a schedule that allows for additional development, these new features added to the user experience for Pet Market. Becky Sowada, as a QA professional, wanted to ensure quality wherever possible, but she “recognizes it as a fact of life” for software development projects. [Tip #10: Be aware of risks involved with feature creep and ensure that priorities are clear. This way the team will have the time to make the most the most valuable enhancements to your application.]

Wrapping it all up and shipping Pet Market
Finally, it came time to ship Pet Market. The development team was done, the QA team signed off, and the distibution bits were delivered to the web team for deployment.

At the end of the process, I asked Becky to reflect on the experience of QAing and releasing a Rich Internet Application. Becky indicated that it was easy to apply standard QA processes to this effort and that the work itself was comparable to the effort required for any typical web application. Moreover, the effort that team spent on the user experience really made a difference in the quality of Pet Market.

But here is the $64,000 question. Was shipping a Rich Internet Application easier and cheaper than deploying a web application? “About the same” said Becky, “but the user experience is much, much better.”

Let us know your feedback on this article.

If you would like to configure the semiautomaster.fla API Bug Exterminator testing movie to your server, follow the configuration instructions.

Download or view the files that accompany this article:

SemiAutoMaster.fla
Download (540K)

SemiAutoMaster.swf

PetMarket Test Matrix Excel file PetMarket_Matrix.xls

Download (24K)

 


1 Macromedia has confirmed that a binary-post bug introduced in Mozilla 0.9.6 browsers prevents Macromedia Flash Remoting from functioning correctly. The affected browsers include: Netscape 6.x, Opera 6.x, and any other browsers built on the Mozilla 0.9.6 code base. This issue was introduced only in these specific versions and does not exist in earlier versions. Macromedia is in contact with the Netscape team and has been informed that the issue has been corrected in Mozilla 1.0, therefore resolving the issue in the Netscape 7.x browser soon to be released. Additionally, Macromedia is working on a service release to the Flash Player to work around this bug. Mozilla 0.9.6 browsers account for approximately 3% of the Flash Player installations around the world.