The challenges of Web 2.0 applications

Rich Internet applications allow for dynamic,
asynchronous data transfer, using multiple protocols and
a variety of servers. They gather data from distributed,
heterogeneous sources, including cloud-based and
external data storage options. Thick clients with widgets
and client-side functionality often have server-side
components, which may need additional processing
before the server sends the data back to the client.
Developers who build these widgets—often adding
them from available toolkits—do it on their development
machines and don’t realize that once separated across
the network, the server component may cause latency
and affect the overall system performance.

New technologies such as Ajax enable prefetching,
where every new letter that a user enters into a
search engine suggests a new set of results that are
dynamically delivered from the server. All this activity
generates a lot of network traffic and can significantly
impact performance. Network latency and
bandwidth constraints can also create performance
bottlenecks. To accurately predict the performance
of an application, it is necessary to test individual
components and services, but equally critical are
server monitoring and end-to-end performance testing,
along with accurate WAN emulation.

Testing Web 2.0 applications presents its own set of
challenges.1 The complexity of new technologies, the
lack of commonly recognized and accepted standards,
and the sheer multitude of emerging frameworks
and toolkits make it difficult for companies to build
Web 2.0 testing strategies and select appropriate
automation solutions. Traditional testing tools focus on
protocol-level verification, offering no framework-level
support or ability to accurately recognize objects in
these new, rich clients, making it virtually impossible
to effectively validate the performance of Web 2.0
applications. Script creation, which has always been a
lengthy, time-consuming process that requires domain
and application expertise, becomes even more
complex in Web 2.0 applications.