Ten ways to improve testing, performance of Web 2.0 applications

本文探讨了Web2.0时代下网站体验的变化,从过去单一平台的简单应用到现今多浏览器、多操作系统的复杂环境。文章提出了十项建议来改善Web2.0应用程序的可靠性和性能,包括全面考虑用户体验质量、了解并管理客户体验的所有组成部分、创建浏览器兼容性实验室等。
 

Ten ways to improve testing, performance of Web 2.0 applications

By Patrick Lightbody
11 Jun 2007 | SearchSoftwareQuality.com

The Web 2.0 vision promises many wonderful things, including rampant social networking, grassroots content creation and broad-based collaboration. On the tech side, Web 2.0 promises access to all the riches of the Internet with the blazing performance of the fastest desktops. Consider Google Maps. You can "speed drag" satellite maps of your neighborhood, city, state or country at will because Ajax anticipates your movements and makes server calls behind the scenes.

But as organizations strive to deliver exhilarating experiences like those, they may be relinquishing control of the Web experience. Earlier in this decade, a company's IT organization owned its Web site experience and had complete control of the infrastructure, presentation logic, business logic and data tier. In 2007, ownership is distributed and constructed in the browser. There are a million ways for an application to break in the Web 2.0 era.

Times were simpler a few years ago when the vast majority of Web users used Internet Explorer (IE) on Windows. This single delivery platform led to few surprises when applications hit production. Since developers were using the same platform as their users, problems showed up sooner rather than later. However, the overall Web experience -- a function of reliability, appearance and performance -– was mediocre (but not bad for a first attempt). Since I like to give grades, here's a report card that explains why:

Yesterday's Web Experience
  • Reliability: B+ (one consensus platform was easy to troubleshoot)
  • Appearance: C- (quite gray)
  • Performance: B (expectations were lower and applications were simple)
  • Overall: Mediocre

Although tomorrow's Web 2.0 experience promises wondrous things, we are currently going through a painful "rock bottom" trough first. Users are on a host of different browsers (IE, Safari, Firefox, Opera, iPhone, BlackBerry and more) on myriad operating systems (Windows, Mac, Linux, and mobile OSes).

More logic than ever runs inside the browser. Meanwhile, more content than ever is beyond the host organization's control -- advertisements, analytics and content delivery networks, for starters. It's a composite world, but companies typically haven't figured out how to test anything besides their own stuff. The Web experience report card now looks like this:

Today's Web Experience
  • Reliability: F ("You forgot to test for my particular browser and OS!" "There's a hole where that Web service should be!")
  • Appearance: A- (pretty slick, I must say)
  • Performance: C (expectations are up, and so are numbers of parts that break)
  • Overall: Poor

So what is it going to take to get these reliability and performance grades up, deliver a consistent user experience despite all the component pieces, and deliver on the promise of Web 2.0?

Since we are dealing with an entirely new development and delivery paradigm, we must update our software development and testing strategies. Here are some suggestions:

 

  1. Engineer Web experience quality into your product. Don't just makes changes on the fly like we all did in the past. (If you've ever built a Web application in Perl, you know what I'm talking about.) Take the entire experience into account up front, from the moment you conceive the application. Ensure that your release criteria include specific performance and reliability metrics that you can measure often during and after development.

     

     

  2. Know (and manage) what feeds into your customer's experience. Many organizations understand the concept of third-party Web services but still test only the content they themselves serve up. Keep tabs on every factor that affects your customers' experience, including third-party data and services. And remember: just because a third-party Web service works well for some of your customers doesn't mean it will for all of them.

     

    Web site testing, performance resources
    Tools for testing Web sites

    Test coverage: Finding all the defects in your application

    Free Web application security testing tools you need to get to know

    Acceptable application response times vs. industry standard

     

  3. Know your customers, their profiles and their usage patterns. What kind of browsers do they use? What kind of machines? How do they connect to the Internet? Where in the world are they located? What are their usage patterns, (e.g., days, nights, weekends or certain paths through the application)? All of those factors affect the customer experience, so make sure your application will work well for your customers. And just because your third parties deliver well in one geographical area doesn't mean they will in all of them. You can't assume your third parties are as consistent as you are.

     

     

  4. Create a browser compatibility lab consisting of all the possible browser operating system combinations users could have, including cell phones (I plan on being one of the first in line for an iPhone) and the BlackBerry. The open source Selenium testing tool is a good way to automate tests on any browser/OS combination. Selenium Remote Control lets developers code tests in their favorite language and operate these browser/OS combinations remotely. An alternative tool to Selenium is Watir. Both are hosted at OpenQA.org. And Firebug, an open source Firefox extension, is the Swiss Army Knife for Web 2.0 developers and QA engineers alike.

     

     

  5. Capture screenshots and movies of actual tests on those platforms so you can gain real insight into any problems, their impact and how to fix them. This is an emerging functionality available in very few commercial testing tools, but it can really help when trying to determine why an automated test failed.

     

     

  6. Capture logged activity in the browser during automated tests and during production. There's too much application logic in the UI to ignore. Firebug provides this support for Firefox, and Safari has built-in support. Consider Firebug Lite for IE and other browsers. The hardest trick is transferring logs from the browser to a persistent storage, but the payoff is well worth it.

     

     

  7. Understand the connection between performance and perception. If a user's browser window is full, but parts of the Web page that are off your screen haven't loaded, perception-wise the page is complete. Consequently, testers need to go beyond HTTP response time data, which can be simplistic by itself, and capture information about individual JavaScript functions, Ajax calls, objects (e.g., images and cascading style sheets) and HTML-specific events to accurately measure perceived performance. This is what really matters to users.

     

     

  8. Incorporate the browser into your continuous integration (CI) processes. Most implementations of CI typically test server code, but they don't account for the increasing amount of activity occurring in the browser. Even though incorporating the browser takes a bit more time and resources, it ensures you test on the real end-user experience, which is critical these days.

     

     

  9. Consider "on-demand" testing. Testing on real multiple browser/OS combinations and capturing gigabytes of performance data require much more testing infrastructure than most organizations want to invest in. Using on-demand testing (Software as a Service) lets you leverage someone else's testing horsepower, architecture and setup investment. Then you can just rent a browser lab as needed.

     

     

  10. Refactor tests as Web applications evolve. Ajax has changed how Web applications are built, and in turn it has made their automated tests more tightly coupled to the code. The tighter the coupling, the more attention to data consistency and test fixtures that is required. In the old days, defining an automated test on a Web application was easy: every step in a use case (Joe Surfer visits www.xyz.com and clicks on the log-in link, etc.) corresponded to a new page view. With Ajax, things are more complicated, so refactoring is critical.

 

Adopting these strategies will ensure that your QA testing is sophisticated, thorough and agile enough to keep up with the evolving complexity of Web 2.0 applications. Good, clean, reliable, high-performing code will help transform the Web 2.0 vision and its enormous potential into a reality that raises the value of the Internet.

内容概要:本文围绕含氢气氨气的综合能源系统优化调度展开研究,提出了一种基于Matlab的仿真建模与优化方法,旨在实现多能互补、高效利用与低碳运行。研究构建了包含风能、太阳能、电解水制氢、氢气储存、氢合成氨、氨储存及能源转换设备在内的综合能源系统架构,重点考虑了氢、氨作为二次能源载体在能量存储与转化中的关键作用。通过建立系统各组件的数学模型,如电解槽效率模型、合成氨反应动力学模型、储氢储氨容量模型等,并结合可再生能源出力不确定性、负荷需求波动等因素,构建了以系统运行成本最小化、碳排放最小化或多目标综合最优为目标的优化调度模型。采用智能优化算法(如改进粒子群算法、多目标优化算法等)对模型进行求解,实现了对系统中各类设备出力、储能充放电状态、能量交互功率等变量的精细化调度,有效提升了能源利用效率与系统经济性。; 适合人群:具备一定电力系统、能源工程或自动化专业背景,熟悉Matlab/Simulink仿真工具,从事新能源、综合能源系统、氢能等领域研究的研发人员、研究生及高年级本科生。; 使用场景及目标:① 为含氢、氨等新型能源载体的综合能源系统规划设计提供理论依据和技术支撑;② 实现对风光等波动性可再生能源的高效消纳,提高系统灵活性与可靠性;③ 通过优化调度降低系统运行成本与碳排放强度,服务于“双碳”战略目标。; 阅读建议:此资源以Matlab代码实现为核心,提供了完整的仿真模型与优化算法代码,学习者应结合相关专业知识,深入理解模型构建的物理意义与数学表达,调试并运行代码以掌握其工作流程,进而可根据实际需求对模型进行扩展与改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值