Silverlight is a powerful Rich Internet Application (RIA) platform. It is also a platform in transition. Even though there are discussions and concerns about its future, the existing applications are surely going to serve us for the foreseeable future, and now may be the time to automate testing for your Silverlight applications and to optimize their performance. Below, you will find an overview of learning resources for testing of Silverlight applications. This overview covers functional testing, performance profiling, and load testing. It also provides resources for further learning about Silverlight testing.
Automated functional testing goes beyond checking of style and compatibility between browsers. The purpose of functional testing is to ensure that any changes to the application – new features, bug fixes, refactoring and optimizations didn’t introduce any defects. Typically, automation of Silverlight testing includes recording and playback of user interaction with the Application Under Test (AUT) combined with automatic checkpoints for test execution. You can also combine these automated interactive tests with Silverlight unit tests in order to create a continuous build and test environment.
Performance and Coverage Profiling
Performance requirements are often considered to be non-functional. Failure to meet performance may affect functionality, but more frequently the result is end-user frustration. Often performance bottlenecks are introduced inadvertently through unnecessary or inefficient function calls, poorly managed database connections, or inefficient algorithms. Profiling of coverage can provide you with the feedback on the completeness of your test cases and, in some cases, can reveal functional problems, such as cases where seemingly correct use case fails to call the right functions. Here are some handy resources to get you started with performance and coverage profiling of your Silverlight scripts:
When you start going down the performance testing path you will quickly realize that performance of your scripts running locally is just one important aspect of the performance puzzle. Rich Internet Applications (RIA) invoke protocols that transfer large amounts of data over the Web. Performance of such applications also depends on the available infrastructure, connection speeds and how your Silverlight application manages workload for different users. The best way to ensure quality of service is to simulate usage of thousands, or tens-of-thousands of users during peak hours while monitoring utilization of hardware resources. Here are some helpful resources to get you going with load testing of Silverlight applications:
If you’d like to sharpen your testing skills on demo applications before taking a crack against the real thing, here are a couple of demo applications for you to try:
Additional Silverlight Resources
Finally, here is a selection of articles that provide insight into the fascinating story of the past and future of Silverlight and related technologies.
The Past and Future of Silverlight: