﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-OscarXie.net </title><link>http://www.cnblogs.com/oscarxie/</link><description>关注质量与体验——电子商务与自动化测试</description><language>zh-cn</language><lastBuildDate>Sun, 05 Jul 2009 17:32:14 GMT</lastBuildDate><pubDate>Sun, 05 Jul 2009 17:32:14 GMT</pubDate><ttl>60</ttl><item><title>拉卡拉——便利的线下付费方式</title><link>http://www.cnblogs.com/oscarxie/archive/2009/06/26/1511129.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Fri, 26 Jun 2009 10:07:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/06/26/1511129.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1511129.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/06/26/1511129.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1511129.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1511129.html</trackback:ping><description><![CDATA[<p>其实很早以前就有报道说便利店里有pos机提供支付公共事业费,信用卡还款等支付服务，过去一直在小区门口的好德便利店的柜台人工交费，虽然知道旁边就放着这样的一个pos机，但迟迟没去使用；直到最近新家的水电费要交了，小区里没有人工交费的，又不愿意跑远，终于尝试了一次，确实方便很多，到现在为止，我已经能够熟练的使用这个拉卡拉的机器了，我主要用来交公共事业费和信用卡还款，因为这些都还是免费的服务，至于支付宝充值目前是需要付费的。</p>
<p><span lang="EN-US"><span><img height="230" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/lakala/lakalapos.jpg" width="385" border="0" /></span></span></p>
<p><span lang="EN-US"><span>拉卡拉便利支付服务：</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_03.gif" width="15" />信用卡还款</span> </p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_06.gif" width="15" />手机充值</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_08.gif" width="15" />支付宝充值码和交易号付款</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_10.gif" width="15" />网上账户充值</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_12.gif" width="15" />拉卡拉账单号支付</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_14.gif" width="15" />游戏点卡</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_16.gif" width="15" />公共事业缴费</span><span lang="EN-US"> </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/top_18.gif" width="15" />自助银行，包括余额查询及跨行转账服务</span> </p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/hm009.gif" width="15" />期刊订阅 </span></p>
<p><span><img height="11" alt="" src="http://www.lakala.com/uploads/未标题-1.gif" width="15" />小额保险</span> </p>
<p></span>&nbsp;</p>
<p><img height="398" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/lakala/lakala1.jpg" width="200" border="0" /></p>
<p>拉卡拉针对个人的服务项目已经有10项了，并扩展到18个省，30个城市，2万个网点，由于和便利店的合作，更贴近社区和大众。</p>
<p>不过拉卡拉要实现盈利还需要依靠中小企业的合作，个人的充值手续费基本无法维持运营。</p>
<p>拉卡拉自己还是蛮看好线下便利支付方式，还在自己的网站上提供了一些调查数据：</p>
<div class="content_T">数据看点</div>
<div class="content_C">
<div class="table"><img alt="" src="http://www.lakala.com/yiguanbaogao/img/table_1.jpg" /> 
<p>2008年中国线下便利支付市场运营商终端份额</p></div>
<div class="table"><img alt="" src="http://www.lakala.com/yiguanbaogao/img/table_2.jpg" /> 
<p>中国线下便利支付市场交易规模趋势预测</p></div>
<div class="clear"></div>
<div class="table"><img alt="" src="http://www.lakala.com/yiguanbaogao/img/table_3.jpg" /> 
<p>中国线下便利支付市场用户年龄特征</p></div>
<div class="table"><img alt="" src="http://www.lakala.com/yiguanbaogao/img/table_4.jpg" /> 
<p>中国线下便利支付市场用户使用满意度</p></div></div>
<p>BTW：目前支付宝，快钱等都不是从个人用户身上盈利</p>
<p>PS:拉卡拉网站</p>
<p><a href="http://www.lakala.com/">http://www.lakala.com/</a></p>
<p><a href="http://www.neo-biz.com/?p=246">拉卡拉的新渠道</a></p>
<p><a href="http://news.cyzone.cn/news/2009/03/16/75399.html">拉卡拉：便利店 大市场</a></p>
<p>&nbsp;</p> <img src ="http://www.cnblogs.com/oscarxie/aggbug/1511129.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47989/" target="_blank">Twitter无处不在 魔兽世界Twitter发送器插件发布</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>我的窝</title><link>http://www.cnblogs.com/oscarxie/archive/2009/06/25/1511095.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Thu, 25 Jun 2009 08:49:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/06/25/1511095.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1511095.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/06/25/1511095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1511095.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1511095.html</trackback:ping><description><![CDATA[<p>耗时3个月，终于把自己的窝搞得有点模样了。</p>
<p><img height="480" alt="" src="http://lh3.ggpht.com/_e6uoVHEz4PA/Sip7FjiKpgI/AAAAAAAACM8/lrDlONJZfJY/s640/DSCF3123.JPG" width="640" border="0" /></p>
<p><img height="480" alt="" src="http://lh4.ggpht.com/_e6uoVHEz4PA/Sip7qYt07MI/AAAAAAAACNY/muitoJIhdro/s640/DSCF3129.JPG" width="640" border="0" /></p>
<p>可惜还很乱，要慢慢收拾了，顺便也好好休息下。</p><img src ="http://www.cnblogs.com/oscarxie/aggbug/1511095.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47988/" target="_blank">Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]google v. microsoft, and the dev:test ratio debate</title><link>http://www.cnblogs.com/oscarxie/archive/2009/06/23/1509772.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Tue, 23 Jun 2009 14:03:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/06/23/1509772.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1509772.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/06/23/1509772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1509772.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1509772.html</trackback:ping><description><![CDATA[<p style="margin: 0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri">Every since I gave a talk at Google&#8217;s GTAC event here in Seattle this past October, I&#8217;ve had the chance to interact with a number of Google testers comparing and contrasting our two companies&#8217; approach to testing. It&#8217;s been a good exchange.</font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri">Now it seems that, their toilets notwithstanding, Google focuses on testing with an intensity that is in the same general ballpark as ours. We both take the discipline and the people who do it seriously. But I think that there are some insights into the differences that are worth pondering. </font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri">Specifically, the disparity between our respective developer-to-tester ratios is worth a deeper look. At Microsoft the dev:test ratio varies somewhat from near 1:1 in some groups to double or triple that in others. At Google just the opposite seems to be the case with a single tester responsible for a larger number of bug-writing devs (clearly we have that in common). </font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri">So which is better? You tell me, but here are my thoughts (without admission of any guilt on Microsoft&#8217;s part or accusations against Google):</font></p>
<p style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><span style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3" face="Calibri">1.</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3" face="Calibri">1:1 is good. It shows the importance we place on the test profession and frees developers to think about development tasks and getting the in-the-small programming right. It maximizes the number of people on a project actively thinking about quality. It speeds feature development because much of the last minute perfecting of a program can be done by testers. And it emphasizes tester independence, minimizing the bias that keeps developers from effectively testing their own code. </font></p>
<p style="text-indent: -0.25in; margin: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><span style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3" face="Calibri">2.</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3" face="Calibri">1:1 is bad. It&#8217;s an excuse for developers to drop all thoughts of quality because that is someone else&#8217;s job. Devs can just build the mainline functionality and leave the error checking and boring parts to the testers. </font></p>
<p style="margin: 0in 0in 10pt 0.25in" class="MsoNormal"><font size="3" face="Calibri">It&#8217;s interesting to note that Microsoft testers tend to be very savvy developers and are often just as capable of fixing bugs as they are of finding bugs. But when they do so, do devs really learn from their mistakes when they have someone else cleaning up after them? Are testers, when talented and plentiful, an excuse for devs to be lazy? That&#8217;s the other side of this debate:</font></p>
<p style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><span style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3" face="Calibri">3.</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3" face="Calibri">Many:1 is good. When testers are scarce, it forces developers to take a more active role in quality and increases the testability and initial quality of the code they write. We can have fewer testers because we our need is less. </font></p>
<p style="text-indent: -0.25in; margin: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><span style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3" face="Calibri">4.</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3" face="Calibri">Many:1 is bad. It stretches testers too thin. Developers are creators by nature and you need a certain number of people to take the negative viewpoint or you&#8217;re going to miss things. Testing is simply too complicated for such a small number of testers. Developers approach testing with the wrong, creationist attitude and are doomed to be ineffective. </font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri">So where&#8217;s the sweet spot? Clearly there are application specific influences in that big server apps require more specialized and numerous testers. But is there some general way to get the mix of testers, developers, unit testing, automated testing and manual testing<span style="mso-spacerun: yes">&nbsp; </span>right? I think it is important that we start paying attention to how much work there really is in quality assurance and what roles are most impactful and where. Test managers should be trying to find that sweet spot. </font></p>
<p>ps:<a href="http://blogs.msdn.com/james_whittaker/archive/2008/12/09/google-v-microsoft-and-the-dev-test-ratio-debate.aspx">http://blogs.msdn.com/james_whittaker/archive/2008/12/09/google-v-microsoft-and-the-dev-test-ratio-debate.aspx</a></p><img src ="http://www.cnblogs.com/oscarxie/aggbug/1509772.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47987/" target="_blank">预测：Twitter最可能收购的十家公司</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Links for today(2009-06-17)</title><link>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505421.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 17 Jun 2009 15:51:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505421.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1505421.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1505421.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1505421.html</trackback:ping><description><![CDATA[<p>1.自动化测试的投资回报率</p>
<p><a href="http://www.infoq.com/cn/news/2009/04/testing-roi">http://www.infoq.com/cn/news/2009/04/testing-roi</a></p>
<p>2.选择哪个SOA测试工具？</p>
<p><a href="http://www.infoq.com/cn/news/2009/03/soa-testing-tools">http://www.infoq.com/cn/news/2009/03/soa-testing-tools</a></p>
<p><a href="http://www.infoq.com/cn/news/2009/01/tester-to-developer-ratio"></a>&nbsp;</p><img src ="http://www.cnblogs.com/oscarxie/aggbug/1505421.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47986/" target="_blank">网易澄清:与暴雪合资公司仅提供技术支持</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]Selenium 1.0正式发布,支持Google Chrome</title><link>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505411.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 17 Jun 2009 15:39:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505411.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1505411.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1505411.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1505411.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 16px Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="line-height: 16px; font-family: Lucida; font-size: 13px" class="Apple-style-span"> 
<p style="padding-bottom: 0px; list-style-type: none; margin: 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; padding-top: 0px" class="info">作者<span class="Apple-converted-space">&nbsp;</span><strong style="padding-bottom: 0px; padding-left: 2px; padding-right: 2px; color: rgb(28,73,123); padding-top: 0px"><a style="padding-bottom: 0px; padding-left: 2px; padding-right: 2px; color: rgb(28,73,123) !important; text-decoration: none; padding-top: 0px" class="editorlink" href="http://www.cnblogs.com/cn/bycategory.action;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD?authorName=%E5%B4%94%E5%BA%B7">崔康</a><span class="Apple-converted-space">&nbsp;</span></strong>发布于 2009年6月12日 下午9时40分</p>
<dl style="padding-bottom: 0px; margin: 0px 0px 15px; padding-left: 0px; padding-right: 0px; font-family: 'Trebuchet MS'; font-size: 12px; padding-top: 0px" class="tags2">
<dt style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" class="community">社区</dt><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="739" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/java;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="java">Java</a></dd><span class="Apple-converted-space">&nbsp;</span> 
<dt style="padding-bottom: 0px; margin: 0px; padding-left: 15px; padding-right: 0px; display: inline; padding-top: 0px" class="topics">主题</dt><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="837" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/software_testing;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="software_testing">软件测试</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="781" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/artifacts_tools;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="artifacts_tools">工件和工具</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="845" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/unit_testing;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="unit_testing">单元测试</a></dd><span class="Apple-converted-space">&nbsp;</span> 
<dt style="padding-bottom: 0px; margin: 0px; padding-left: 15px; padding-right: 0px; display: inline; padding-top: 0px" class="topics">标签</dt><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="3,704" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/acceptancetesting;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="acceptancetesting">验收测试</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="888" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/oss;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="oss">开源软件</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="784" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/tdd;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="tdd">测试驱动开发</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="783" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/Testing;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="Testing">测试</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="1,177" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/quality;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="quality">质量</a>,</dd><span class="Apple-converted-space">&nbsp;</span> 
<dd style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; font-weight: bold; padding-top: 0px"><a style="color: rgb(49,133,40); text-decoration: none" id="929" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.cnblogs.com/cn/selenium;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD" name="selenium">Selenium</a></dd></dl>
<p>Selenium是一款开源Web自动化测试工具，最近发布了1.0版，标志着Web自动化测试领域正式加入了一名新成员。在其新版本中，除了修正了若干Bug，最引人瞩目的就是Selenium RC增加了对Google Chrome浏览器的支持，同时Selenium官方网站上提供了完整的用户指南。</p>
<p>InfoQ一直关注Selenium的成长，<a style="color: rgb(11,89,178); text-decoration: underline" href="http://www.infoq.com/cn/bycategory.action;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD?authorName=%E8%B5%B5%E5%8A%BC">赵劼</a>在<a style="color: rgb(11,89,178); text-decoration: underline" id="lumw" title="《.NET平台下Web测试工具横向比较》" href="http://www.infoq.com/cn/news/2009/04/dotnet-web-test-fx-compare;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD">.NET平台下Web测试工具横向比较</a>一文中对Selenium做了概括：</p>
<blockquote style="background-image: url(http://www.infoq.com/styles/cn/i/bg-blockquote.gif); border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; background-color: rgb(250,250,250); padding-left: 5px; padding-right: 5px; background-repeat: no-repeat; background-position: 5px 5px; color: rgb(51,51,51); margin-left: 20px; border-top: rgb(239,239,239) 2px solid; margin-right: 0px; border-right: rgb(239,239,239) 2px solid; padding-top: 5px; -webkit-background-clip: initial; -webkit-background-origin: initial">严格说来，<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/">Selenium</a>是一套完整的Web应用程序测试系统，它包含了测试的录制（<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/projects/ide/">Selenium IDE</a>）、编写及运行（<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/projects/remote-control/">Selenium Remote Control</a>）和测试的并行处理（<a style="color: rgb(11,89,178); text-decoration: underline" href="http://selenium-grid.openqa.org/">Selenium Grid</a>）。Selenium的核心<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/projects/core/">Selenium Core</a>基于<a style="color: rgb(11,89,178); text-decoration: underline" href="http://jsunit.net/">JsUnit</a>， 完全由JavaScript编写，因此可运行于任何支持JavaScript的浏览器上。Selenium Core由一种指定格式的HTML文件驱动，在一定程度上增强了测试套件（Test Suite）的可读性。Selenium Remote Control允许测试人员使用<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/about/platforms.html#programming-languages">常见的语言</a>（自然包括C#等.NET语言）编写测试代码，并支持<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/about/platforms.html#operating-systems">不同操作系统</a>下的<a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/about/platforms.html#browsers">各种主流浏览器</a>。Selenium Grid的作用是将测试分发至多台机器，这样便可大大加快测试速度。与WatiN相同，Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。</blockquote>
<p>从读者对上文的<a style="color: rgb(11,89,178); text-decoration: underline" id="p38n" title="回复" href="http://www.infoq.com/cn/news/2009/04/dotnet-web-test-fx-compare;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD#view_41345">回复</a>中也可以看出，国内社区对Selenium的喜爱和关注也在升温。</p>
<p>Selenium作为一款Web自动化测试工具，其支持的浏览器类型之多一直为社区所乐道，而在1.0版中，Selenium正式加入了对Google Chrome的<a style="color: rgb(11,89,178); text-decoration: underline" id="qq32" title="支持" href="http://jira.openqa.org/browse/SRC-520">支持</a>：</p>
<blockquote style="background-image: url(http://www.infoq.com/styles/cn/i/bg-blockquote.gif); border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; background-color: rgb(250,250,250); padding-left: 5px; padding-right: 5px; background-repeat: no-repeat; background-position: 5px 5px; color: rgb(51,51,51); margin-left: 20px; border-top: rgb(239,239,239) 2px solid; margin-right: 0px; border-right: rgb(239,239,239) 2px solid; padding-top: 5px; -webkit-background-clip: initial; -webkit-background-origin: initial">Selenium Remote Control采用浏览器参数googlechrome调用Google Chrome，在Windows XP/Vista上已通过测试，Chrome支持由Google人员完成。</blockquote>
<p>至此，除了对IE8的支持功能还在开发中，<a style="color: rgb(11,89,178); text-decoration: underline" id="f._8" title="其他所有主流浏览器" href="http://seleniumhq.org/docs/01_introducing_selenium.html#supported-browsers">其他所有主流浏览器</a>都可以通过Selenium来自动化驱动以测试Web应用。</p>
<p>Selenium的官方网站在Selenium 1.0发布之际，正式推出了Selenium的<a style="color: rgb(11,89,178); text-decoration: underline" id="hpyg" title="用户手册" href="http://seleniumhq.org/docs/01_introducing_selenium.html#supported-browsers">用户指南</a>。在此之前，用户只能通过有限的文字介绍和<a style="color: rgb(11,89,178); text-decoration: underline" id="jasc" title="论坛" href="http://clearspace.openqa.org/community/selenium">论坛</a>来学习Selenium。现在，负责文档写作的团队完成了一份较为完整的Selenium用户指南，主要包括：</p>
<ul><li><a style="color: rgb(11,89,178); text-decoration: underline" id="nyxs" title="Selenium介绍" href="http://seleniumhq.org/docs/01_introducing_selenium.html">Selenium介绍</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" id="wki1" title="Selenium基本概念" href="http://seleniumhq.org/docs/02_selenium_basics.html">Selenium基本概念</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" id="j.sq" title="使用Selenium IDE开发测试用例" href="http://seleniumhq.org/docs/03_selenium_ide.html">使用Selenium IDE开发测试用例</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" id="kqla" title="熟悉Selenium命令" href="http://seleniumhq.org/docs/04_selenese_commands.html">熟悉Selenium命令</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" href="http://seleniumhq.org/docs/05_selenium_rc.html">Selenium-RC</a></li></ul>
<p>除此之外，Selenium 1.0还包括了以下重要更新：</p>
<ul><li><a style="color: rgb(11,89,178); text-decoration: underline" id="zvwd" title="支持右键/上下文菜单" href="http://jira.openqa.org/browse/SEL-381">支持右键/上下文菜单</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" id="t.aa" title="支持setSpeed" href="http://jira.openqa.org/browse/SEL-400">支持setSpeed</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" id="on71" title="大小写敏感匹配" href="http://jira.openqa.org/browse/SEL-460">大小写敏感匹配</a></li><li><a style="color: rgb(11,89,178); text-decoration: underline" id="oaq6" title="增加deleteAllVisibleCookies命令" href="http://jira.openqa.org/browse/SEL-508">增加deleteAllVisibleCookies命令</a></li></ul>
<p>不过在Selenium 1.0中，shutDownSeleniumServer命令由于之前的代码重构错误而不起作用，因此Selenium团队随即发布了1.0.1版本，以修正该Bug，最新版可以从<a style="color: rgb(11,89,178); text-decoration: underline" id="rxa5" title="这里" href="http://seleniumhq.org/download/">这里</a>下载。</p>
<p>令人欣喜的是，国内社区在学习和使用Selenium之余，也针对其不足提出了新的Web自动化测试框架，<a style="color: rgb(11,89,178); text-decoration: underline" id="f5lw" title="Tellurium" href="http://code.google.com/p/aost/">Tellurium</a>就是其中一个。目前InfoQ中文站<a style="color: rgb(11,89,178); text-decoration: underline" id="jw3-" title="张凯峰" href="http://www.infoq.com/cn/bycategory.action;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD?authorName=%E5%BC%A0%E5%87%AF%E5%B3%B0">张凯峰</a>对此做了<a style="color: rgb(11,89,178); text-decoration: underline" id="tgqw" title="专门报道" href="http://www.infoq.com/cn/articles/tellurium-testing-framework;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD">专题报道</a>，Tellurium的创始人方剑先生在采访中谈到了Selenium的不足：</p>
<blockquote style="background-image: url(http://www.infoq.com/styles/cn/i/bg-blockquote.gif); border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; background-color: rgb(250,250,250); padding-left: 5px; padding-right: 5px; background-repeat: no-repeat; background-position: 5px 5px; color: rgb(51,51,51); margin-left: 20px; border-top: rgb(239,239,239) 2px solid; margin-right: 0px; border-right: rgb(239,239,239) 2px solid; padding-top: 5px; -webkit-background-clip: initial; -webkit-background-origin: initial">我有个工作（Task）就是用Selenium去测试我们的一个应用程序（是用Dojo Javascript框架写的）。应该说在当时，Selenium是一个开创性的框架，如果用他们的复制和重播模式（record and replay）很容易产生测试脚本。但一旦我开始用Selenium，我发现它还是有一些缺点和不便之处。主要测试脚本是对代码的更新很脆弱 （Fragile）。 但是在一个敏捷开发的环境下，一般都有阶段性的用户接受测试（User Acceptance Test），由于程序一直更新，Selenium测试脚本的维护就变成一个很头痛的问题。而且，对于很多企业级应用，复制和重播模式本身就不太适用，比喻 我们有很多数据格（Data Grid），它的内容本身就是动态的。其他的问题包括Selenium测试脚本不是结构化的，你可以看到处有XPath，这更增加了维护的困难。</blockquote>
<p>他同时表示，Tellurium脱胎于Selenium,它的主要竞争对手还是Selenium, 毕竟Selenium已经推广好几年了。要用户用一个新的框架是要花一定的时间的。</p>
<p>由此可见，Web自动化测试工具的竞争愈演愈烈。但不论是Selenium还是Tellurium，软件开发社区都是最终的评判者和受益者。读者可以在InfoQ中文站查看更多有关<a style="color: rgb(11,89,178); text-decoration: underline" id="st-n" title="测试" href="http://www.infoq.com/cn/Testing;jsessionid=8E6485CEFCCE90C1DBC97ECB1E1597BD">测试</a>的报道。</p><a href="http://www.infoq.com/cn/news/2009/06/selenium-1.0">http://www.infoq.com/cn/news/2009/06/selenium-1.0</a>
<p></span></span>&nbsp;</p> <img src ="http://www.cnblogs.com/oscarxie/aggbug/1505411.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47986/" target="_blank">网易澄清:与暴雪合资公司仅提供技术支持</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]开源自动测试框架Tellurium</title><link>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505396.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 17 Jun 2009 15:04:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505396.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1505396.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/06/17/1505396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1505396.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1505396.html</trackback:ping><description><![CDATA[<p class="info">作者 <strong><a class="editorlink" href="http://www.infoq.com/cn/bycategory.action?authorName=%E5%BC%A0%E5%87%AF%E5%B3%B0">张凯峰</a> </strong>发布于 2009年6月11日 下午8时51分 </p>
<dl class="tags2">
<dt class="community">社区 
<dd><a id="740" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/dotnet" name="dotnet">.NET</a>, 
<dd><a id="743" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/agile" name="agile">Agile</a> 
<dt class="topics">主题 
<dd><a id="781" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/artifacts_tools" name="artifacts_tools">工件和工具</a>, 
<dd><a id="782" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/agile_techniques" name="agile_techniques">敏捷技术</a>, 
<dd><a id="845" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/unit_testing" name="unit_testing">单元测试</a> 
<dt class="topics">标签 
<dd><a id="783" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/Testing" name="Testing">测试</a>, 
<dd><a id="784" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/tdd" name="tdd">测试驱动开发</a>, 
<dd><a id="944" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/Interviews" name="Interviews">采访</a> </dd></dl>
<p><a href="http://code.google.com/p/aost/">Tellurium自动测试框架</a>是一款针对web应用、基于UI模块的自动测试平台。UI模块是由一组复合的UI对象以嵌套的形式组成，比如，Google的搜索UI模块可以表示成：</p><pre>ui.Container(uid: "GoogleSearchModule", clocator: [tag: "td"], group: "true"){
   InputBox(uid: "Input", clocator: [title: "Google Search"])
   SubmitButton(uid: "Search", clocator: [name: "btnG", value: "Google Search"])
   SubmitButton(uid: "ImFeelingLucky", clocator: [value: "I'm Feeling Lucky"])
}
</pre>
<p>Tellurium框架还定义了一套全新的领域特定语言来进行web测试，比如对于Google搜索模块，你可以使用下面的DSL来完成一次搜索测试：</p><pre>type "GoogleSearchModule.Input", "Tellurium test"
click "GoogleSearchModule.Search"
waitForPageToLoad 30000
</pre>
<p>目前Tellurium已经发布0.6.0版本，InfoQ中文站就Tellurium的方方面面，特地邮件采访了Tellurium的创始人方剑先生：</p>
<p><strong>1、请介绍一下您自己，以及所从事的工作？</strong></p>
<blockquote>我的名字是方剑，曾经在上海读书和工作多年。2000年在美国佐治亚理工（Georgia Institute of Technology）求学。毕业后在一家美国公司做软件开发工作，从事企业级应用（Enterprise Applications）开发，主要负责服务器端框架的设计和开发，商业应用服务（Business Services）的开发, 和一些软件规范的制定。此外，我还有很强的人工智能和计算机网络方面的研究背景。 </blockquote>
<p><strong>2、您开始做Tellurium这样一个自动化测试框架，是基于怎样的考虑呢？我看到有特色的两点是使用UI module-based这样的描述块来定义待测的UI，以及使用DSL来表述测试代码，还有哪些与以往框架不同的设计思想，缘起是什么呢？</strong></p>
<blockquote>在2007年，我们公司开始注意到Selenium测试框架。由于我们用敏捷开发方法（Agile development），在Scrum队伍中，每个人的角色开始变得多样性了。我有个工作（Task）就是用Selenium去测试我们的一个应用程序（是用Dojo Javascript框架写的）。应该说在当时，Selenium是一个开创性的框架，如果用他们的复制和重播模式（record and replay）很容易产生测试脚本。但一旦我开始用Selenium，我发现它还是有一些缺点和不便之处。主要测试脚本是对代码的更新很脆弱（Fragile）。 但是在一个敏捷开发的环境下，一般都有阶段性的用户接受测试（User Acceptance Test），由于程序一直更新，Selenium测试脚本的维护就变成一个很头痛的问题。而且，对于很多企业级应用，复制和重播模式本身就不太适用，比喻我们有很多数据格（Data Grid），它的内容本身就是动态的。其他的问题包括Selenium测试脚本不是结构化的，你可以看到处有XPath，这更增加了维护的困难。因此，我们决定开发一个在Selenium之上的框架来解决这些问题。我做的第一个版本是通过Spring框架和物体工厂（Object Factory）来产生UI元素（Element），使得框架能把UI元素的表达和测试代码分开，自动处理Javascript事件，并在一定程度上能处理动态网页内容。<br /><br />由于这个框架用XML来配置UI元素，使用起来并不是很方便。在2008年，我用Groovy重写了整个框架并变成一个开源项目（open source project)。新的版本主要有三个大的改变。首先是采用UI Module（UI模块）描述块来定义待测的UI。这样做的好处是系统自动生成运行时的Locator，即使你改变了其中的一些元素，框架本身会生产新的 Locator来适应这种改变。而且框架侧重一个集合的元素，而不是单个元素，这样使得我们可以利用元素之间的关系来帮助我们定位他们在DOM中的位置。此外，这样也增加了重用性，比如，我们可以定义一些Tellurium Widget，在你的测试代码中可以直接定义这个Widget，而不需要重新定义一个个的单个元素。第二个大的变化是用DSL来写测试代码。这样增加了表达性使得用户很容易写和维护测试代码。Tellurium测试代码可以用Java, Groovy, 或纯DSL脚本来写。Tellurium本身也支持JUnit和TestNG测试框架。另一个大的变化是开始用UI模板（UI templates）来表述动态网页内容，例如数据格（Data Grid）。这样使得Ajax应用程序的测试变得可行和容易。 </blockquote>
<p><strong>3、 Tellurium主要有那些子项目构成？</strong></p>
<blockquote>Tellurium主要是由Tellurium Core, Tellurium Engine, Tellurium Widget Extensions, 和Tellurium UI Module Plugin（TrUMP）子项目构成。Tellurium Core主要是处理DSL和动态生成Locator. Tellurium Engine是测试驱动模块，目前还是利用Selenium Core. Tellurium Widget Extensions包括一些DOJO和ExtJS Javascript框架的可重用Widget模块。这些Widget被编译成一个jar文件方便用户调用。TrUMP是一个Firefox plugin来自动生成UI Module。<br /><br />另外，Tellurium还提供两个参考子项目（Reference Projects），分别为JUnit和TestNG项目，来给用户示范如何创建Tellurium测试项目和如何使用Tellurium的各种功能。<br /><br />除此之外，Tellurium还提供了Tellurium Maven Archetypes，使得用户可以用一个Maven命令就可以创建自己的Tellurium测试项目。 </blockquote>
<p><strong>4、介绍一下Tellurium的代码贡献者们吧？</strong></p>
<blockquote>我主要是负责Tellurium的整体设计和很大一部分的代码编程。除我之外，现在还有四个来自美国和英国的队友（team members）。Vivek Mongolu主要负责TrUMP的UI设计和实现。Matt Senter主要负责Maven支持，包括代码的编译，发布，和Maven Repository的维护。Haroon Rasheed参加了Tellurium参考项目（Tellurium Reference Projects）的开发，Selenium Grid的支持和其他的维护工作。Mikhail Koryak参于了TrUMP的开发工作，他是jQuery方面的专家，负责Tellurium的jQuery支持。现在参与Tellurium Engine的开发。 </blockquote>
<p><strong>5、你了解在自动化测试工具这个领域，有着哪些和Tellurium类似的竞争对手吗？比如ThoughtWorks的Twist？与它们相比，Tellurium的优势在什么地方？有什么劣势吗？ </strong></p>
<blockquote>Tellurium脱胎于Selenium,它的主要竞争对手还是Selenium, 毕竟Selenium已经推广好几年了。要用户用一个新的框架是要花一定的时间的。此外Canoo WebTest也是一个比较流行的网页测试框架（Framework）。但是Tellurium还是有它本身的优势的，如UI Module的概念，鲁棒性好，可重用性好，表达性好（Expressiveness）。用Tellurium写的测试代码的结构性好，比较容易维护。<br /><br />毕竟Tellurium还是一个新的框架，到现在只有一年多的开发时间。有些特色还有待成熟。此外，Tellurium要用到Groovy动态语言，尽管用户并不一定需要了解Groovy才可用Tellurium，但由于Groovy相对比较新，所以不少人还是有疑豫的。<br /><br />ThoughtWorks的Twist基本上是Selenium + GSpec, 就是在Selenium之上增加了行为测试（Behavior Driven Test）的DSL。其实我很早就考虑到对行为测试的支持，但精力有限，Tellurium目前还没有这方面的实现。将来会增加的，可以和EasyB框架结合来支持行为测试，或直接实现对行为测试的支持。 </blockquote>
<p><strong>6、现在Tellurium的应用情况是怎样的？来自使用者的反响如何？</strong></p>
<blockquote>现在已经有不少Tellurium用户，主要来自美国，印度和欧洲。由于Tellurium本身的特色，如易用，可维护性好，新的功能如对jQuery Selector的支持，使用者的反应还不错。甚至有的用户在自己的公司里给同事作Tellurium的培训。当然，Tellurium还很年青，而且前一段时间由于全球性经济危机的影响，我们对Tellurium的推广还做得很不够。以后会加大对Tellurium的推广。</blockquote>
<p><strong>7、Tellurium在社区采用了哪些方式和开发者们进行交互呢？</strong></p>
<blockquote>我们有自己的用户组Tellurium user group, 用户提出问题往往能很快地得到解答。我们也有LinkedIn用户组让用户之间能更好地交流。此外我们还鼓励用户参加Tellurium的设计讨论和推广。我们会每年从用户中推选出一个最活跃用户（most active user）和一个最有价值用户（most valuable user）。Tellurium将来会设推广队（Evangelism Team），如果某人对Tellurium做了很多推广工作，他／她也可以成为Tellurium正式成员（team member）。</blockquote>
<p><strong>8、Tellurium未来的发展有怎样的规划吗？有计划推出中文的社区及文档吗？</strong></p>
<blockquote>尽管Tellurium和Selenium在概念上有很大的不同，一直到Tellurium 0.6.0, 我们还是依赖Selenium Core作为底层的测试驱动Engine. Tellurium 0.7.0将成为Tellurium发展史上的一个重要里程碑，我们将开发自己的测试驱动Engine使得Tellurium能更好，更有效地支持UI Module，同时可以进行UI Module的缓存（Caching）以增加其可用性和提高测试速度。并可对UI Module进行部分匹配以增加其鲁棒性。在新的Tellurium Engine的支持下，Tellurium widget将变得更容易，更实用，和更有效。其他的发展规划包括TrUMP的改进，行为测试（Behavior Driven Test）的支持，功能测试（functional test）的增强支持, 和IDE的支持。<br /><br />毕竟我来自中国，当然希望得到更多的来自自己国家的用户的参与和支持。现在我们已经开通中文社区和文档项目，会有相关的中文文档逐渐添加进来，我们也热烈欢迎更多国内的开发者能加入进来，帮助支持和推广Tellurium，谢谢。 </blockquote>
<p><strong>9、能给国内的用户一个快速的开始吗？怎么立刻感受到Tellurium带来的好处？</strong></p>
<blockquote>我们提供了一份<a href="http://code.google.com/p/telluriumdoc/wiki/TelluriumQuickStart">中文版的Tellurium QuickStart</a>，还有一个短小的演示：<a href="http://code.google.com/p/aost/wiki/TenMinutesToTellurium">十分钟感受Tellurium</a>（10 minutes to Tellurium）。它包括利用Tellurium Maven archetype去建立一个新的Tellurium测试项目，再用 Tellurium Firefox plugin TrUMP去自动生成一个UI Module，然后再写自己的Tellurium测试代码。<br /><br />如果用户不熟悉Maven, 他可以下载<a href="http://code.google.com/p/aost/wiki/ReferenceProjectGuide">Tellurium参考项目</a>（Tellurium Reference Project）。这个项目是我们用来测试Tellurium项目网页的。包括了各种例子，可以直接运行。 </blockquote>
<p>更多有关Tellurium的信息，请参考DZone上的<a href="http://www.dzone.com/links/search.html?query=tellurium&amp;x=0&amp;y=0">相关资料</a>和Tellurium的<a href="http://code.google.com/p/aost/w/list">Wiki</a>。敬请期待Tellurium在InfoQ中文站的更多技术文章。</p>PS:<a href="http://www.infoq.com/cn/articles/tellurium-testing-framework">http://www.infoq.com/cn/articles/tellurium-testing-framework</a>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/oscarxie/aggbug/1505396.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47986/" target="_blank">网易澄清:与暴雪合资公司仅提供技术支持</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Web Search向站内搜索靠拢？</title><link>http://www.cnblogs.com/oscarxie/archive/2009/05/26/1490149.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Tue, 26 May 2009 09:44:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/05/26/1490149.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1490149.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/05/26/1490149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1490149.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1490149.html</trackback:ping><description><![CDATA[<p>最近Google发布了谷歌百宝箱的新功能（<a href="http://googlechinablog.com/2009/05/blog-post_21.html" name="7843541839728996692">量身订做的人性化搜索 &#8212; 谷歌搜索百宝箱让你决定搜索结果</a>，<a href="http://googlechinablog.com/2009/05/blog-post_25.html" name="498753819332957525">让搜索展开历史的画卷</a>），随便看了下结果页，一下子就联想到购物网站的站内搜索，在全局的搜索结果上再进行分类，方便用户查找，并减少查找的时间。</p>
<p><img height="437" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/GoogleSquared.jpg" width="685" border="0" /></p>
<p>Endeca站内搜索(Endeca信息参见<a href="http://www.endeca.com/">http://www.endeca.com/</a>，Endeca使用叫做维度的概念)</p>
<p><img height="619" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/Endeca1.jpg" width="679" border="0" /></p>
<p>&nbsp;</p>
<p><img height="640" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/Endeca2.jpg" width="682" border="0" /></p>
<p>出名的站内搜索引擎还有如免费的基于Java的Lucene，园子里已经有很多介绍了。(<a href="http://lucene.apache.org/">http://lucene.apache.org/</a>，<a href="http://www.lucene.com.cn/">http://www.lucene.com.cn/</a>)</p>
<p>当然Google的search option也经过了多次改版，最终把option定位在页面的左侧，看来从用户体验上来看，大众还是喜欢使用左边来做Nav的。(<a href="http://google.org.cn/2009/05/16/behind-scenes-of-search-options-panel/">http://google.org.cn/2009/05/16/behind-scenes-of-search-options-panel/</a>)</p>
<p>BTW，淘宝的是在顶部：</p>
<p><img height="367" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/Search.jpg" width="771" border="0" /></p>
<p>&nbsp;</p>
<p>PS：神奇罗盘的样子和微软的人立方(<a href="http://renlifang.msra.cn/">http://renlifang.msra.cn/</a>)异曲同工</p>
<p>Wonder wheel:</p>
<p><img height="350" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/GoogleSquared2.jpg" width="801" border="0" /></p>
<p>人立方：</p>
<p><img height="410" alt="" src="http://images.cnblogs.com/cnblogs_com/oscarxie/Search2.jpg" width="801" border="0" />&nbsp;</p> <img src ="http://www.cnblogs.com/oscarxie/aggbug/1490149.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47985/" target="_blank">杰克逊悼念仪式或成史上最大规模Web活动</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>《中国国家地理》福建专辑</title><link>http://www.cnblogs.com/oscarxie/archive/2009/05/11/1453974.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Mon, 11 May 2009 03:03:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/05/11/1453974.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1453974.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/05/11/1453974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1453974.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1453974.html</trackback:ping><description><![CDATA[<p>最近，《中国国家地理》在4，5月分别推出了&#8220;福建专辑&#8221;上下，上辑从中国海洋文明的视角，对福建的海洋文明底蕴、自然地理环境进行了多方位的探寻和展示；下辑讲述福建的山水人文。看到这个消息，立马找书店买下这上下两册，以便更详细的了解家乡。</p>
<p>上册：</p>
<div class="theimg" align="center"><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101221615_20090410165039.jpg" /></div>
<div class="font_12px" align="center">2009年第4期封面 泉州渔船 摄影/何清和</div>
<p><br />
&nbsp;</p>
<div class="theimg" align="center"><strong><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101221616_20090410165039.jpg" /></strong></div>
<div class="font_12px" align="center">备选封面一</div>
<p><br />
&nbsp;</p>
<div class="theimg" align="center"><strong><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101221617_20090410165039.jpg" /></strong></div>
<div class="font_12px" align="center">备选封面二</div>
<p><br />
&nbsp;</p>
<div class="theimg" align="center"><strong><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101221618_20090410165039.jpg" /></strong></div>
<div class="font_12px" align="center">备选封面三</div>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff"><span style="color: #0000ff">闽在海中。 </span></span></p>
<p><span style="color: #0000ff"><span style="color: #0000ff">　　这句出自《山海经&#183;海内南经》的古语，似乎能诗意地道出福建与海洋千丝万缕的关系。</span></span></p>
<p><span style="color: #0000ff"><span style="color: #0000ff">　　濒海与多山的福建位于欧亚大陆东南隅，背倚众多山地，面朝太平洋，这种独特的地理单元，使福建天然地具备了归顺大海的气质。所以，这块土地有可能是中国历史上最早与海外产生联系的区域之一；所以，这块土地上的人有可能是中国历史上最早向海外发展的人。</span></span></p>
<p><span style="color: #0000ff"><span style="color: #0000ff">　　如是，我们的福建专辑策划中，离不开海，离不开山。上辑我们是围绕着海洋来结构文章，下辑自然就是山了。那么，上辑的封面我们是离不开海洋了。</span></span></p>
<p><span style="color: #0000ff"><span style="color: #0000ff">　　第一张是港口。福建拥有众多的良港，其中的福州、泉州、漳州、厦门四大港口在不同历史时期此起彼伏地成为中国的海上门户，宋元极盛时期，泉州港还是中国的海上零公里处。而厦门港不管是在清代还是在今天，都举足轻重，图片中的厦门港，远远眺望，这座目前在港口综合实力排名中位居福建第一、全国第七、全球第二十二的天然良港一派繁荣。第二张是滩涂。漫长而曲折的海岸线，平添了众多的天然海湾、滩涂，这给福建的海水养殖业创造了良好的条件。耕海牧渔的渔民们在创造物质财富的时候，不经意地创造了一些赏心悦目的美景。罗源湾的海上网箱养殖人家，便是其中的一道风景。第三张是海岛。辽阔的海域与山岭遍布的陆地，让福建仿佛是一部打开的&#8220;山海经&#8221;。而众多的海岛，则因其独特的地理位置，成为山与海交融的最前沿。这块形似海鸟的礁石，诡谲异常，极具视觉冲击力。摄影师蓝添艺在拍摄她时，一脚踩空，摔成股骨粉碎性骨折，这是他在病床上给我们传来的图片。第四张是福船。中国帆船的建造与航海技术在相当长的历史时期领先于西方，是中国古代海洋文明成就的佐证之一。其中福船功不可没，曾经浩浩荡荡的郑和船队，大部分都是福船。图片中泉州沿海的渔船，恍若那个帆船时代的缩影。</span></span></p>
<p><span style="color: #0000ff">　　最终，我们选择了渔船作为封面。天空中，云破处，夕阳下，历史的雾霭，曾经的辉煌，今日的落寞，在这张图片中，弥漫开来......</span></p>
<p>下册：</p>
<p>&nbsp;</p>
<div class="text" id="artibody">
<div class="theimg" align="center"><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101222115_20090511154229.jpg" /></div>
<div class="font_12px" align="center">2009年第5期封面 武夷山天游景区 摄影/刘达友</div>
<br />
<div class="theimg" align="center"><strong><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101222116_20090511154229.jpg" /></strong></div>
<div class="font_12px" align="center">备选封面</div>
<br />
<div class="theimg" align="center"><strong><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101222117_20090511154229.jpg" /></strong></div>
<div class="font_12px" align="center">备选封面</div>
<br />
<div class="theimg" align="center"><strong><img class="img-border" alt="" src="http://image.dili360.com/cng/cng/zzfm/2009/6_101222118_20090511154229.jpg" /></strong></div>
<div class="font_12px" align="center">备选封面</div>
<br />
<p>　　<span style="color: red"><span style="color: #0000ff">《福建专辑》(上)，我们关注的是福建的海洋，蔚蓝色的大海意味着开放、冒险和交流，而当我们在专辑(下)中将目光投向福建内陆，则看到了这座&#8220;东南山国&#8221;中连绵无尽的群山。它们在带来封闭、阻塞的同时，却也成为了强大的涵养与保存的力量。开放与封闭，冒险与保守，种种矛盾在福建这部&#8220;山海经&#8221;中得到了奇妙的协调，形成了独特的八闽文化。</span></span><span style="color: red"><span style="color: #0000ff"><span style="color: #0000ff">　　</span></span></span></p>
<p><span style="color: red"><span style="color: #0000ff"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第一张图片，出现在我们眼前的是武夷山风景区的天游峰、九曲溪和错落峰群。它&#8220;奇秀甲东南&#8221;，自古以来便是福建第一名山，盈盈一水折为九曲，&#8220;山水若从奇处看，西湖终是小家容&#8221;，丹山碧水的秀美一览无余。而远处隐约的群山，则展示了武夷山脉的磅礴和封闭，它不仅是气候和江河的分水岭，也给福建文化带来了深刻的影响。</span></span></span></p>
<p><span style="color: red"><span style="color: #0000ff"><span style="color: #0000ff">　　第二张图片是著名的福建南靖县田螺坑土楼群。土楼中的各种形状—圆的、方的、椭圆的一应俱全。从高处俯瞰，如花朵开放在山野之中，又像神秘降落在大山里的飞碟，是展现土楼的经典画面。不过，这幅被形象地称为&#8220;四菜一汤&#8221;的场景已经多次出现在人们视野中，缺乏新鲜感和视觉冲击力。</span></span></span></p>
<p><span style="color: red"><span style="color: #0000ff"><span style="color: #0000ff">　　第三张图片是雄跨九曲溪口的大王峰，它上丰下敛，额状悬崖气势磅礴，颇具王者威仪，是进入武夷山的第一峰。汉武帝曾派遣使者在大王峰南麓设坛祭祀武夷君。不过，茂盛的树丛有些&#8220;抢镜&#8221;，未能尽显丹霞山峰的壮观。</span></span></span></p>
<p><span style="color: red"><span style="color: #0000ff"><span style="color: #0000ff">　　第四张图片展示了流行于福建连城县罗坊镇的一种宗教民俗活动—&#8220;走古事&#8221;。由于独特的地理文化条件，福建拥有成百上千的大小神灵和难以计数的神诞日和节庆，堪称中国&#8220;造神&#8221;最多的省。但在讨论中，大家认为它反映的内容略显单薄，难以代表福建内陆人文自然的丰富多彩。</span></span></span></p>
<p><span style="color: red">　　<span style="color: #0000ff">最后，我们选择了第一张图片作为封面，&#8220;山为锦屏何须画，水作琴声不用弦&#8221;，九曲之幽，丹霞之美，武夷山脉之壮阔，在这幅画面中融为一体。</span></span> </p>
</div>
<p>发布会：</p>
<p><a href="http://blog.sina.com.cn/s/blog_48d84e6f0100d3gv.html">http://blog.sina.com.cn/s/blog_48d84e6f0100d3gv.html</a></p>
<p><a href="http://dp.pconline.com.cn/photoblog/page.do?method=photoPage&amp;from=photoblog&amp;pid=909604">http://dp.pconline.com.cn/photoblog/page.do?method=photoPage&amp;from=photoblog&amp;pid=909604</a></p>
<p>《中国国家地理》2009年第4期 目录及内容预告：</p>
<p><a href="http://cng.dili360.com/cng/ml/2009/04102217.shtml">http://cng.dili360.com/cng/ml/2009/04102217.shtml</a> </p>
<p><a href="http://cng.dili360.com/cng/yg/2009/03272211.shtml">http://cng.dili360.com/cng/yg/2009/03272211.shtml</a> </p>
<p>《中国国家地理》2009年第5期 目录及内容预告：&nbsp;</p>
<p><a href="http://cng.dili360.com/cng/ml/2009/05112222.shtml">http://cng.dili360.com/cng/ml/2009/05112222.shtml</a> </p>
<p><a href="http://cng.dili360.com/cng/yg/2009/04282219.shtml">http://cng.dili360.com/cng/yg/2009/04282219.shtml</a></p>
<p>福建专辑上：卷首语：一个中国海盗的心愿&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cng.dili360.com/cng/jsy/2009/04102213.shtml">http://cng.dili360.com/cng/jsy/2009/04102213.shtml</a> </p>
<p>福建专辑下：卷首语：矛盾的福建&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cng.dili360.com/cng/jsy/2009/05072220.shtml">http://cng.dili360.com/cng/jsy/2009/05072220.shtml</a> </p>
<p>PS:</p>
<p>中国国家地理网：&nbsp;<a href="http://www.dili360.com/">http://www.dili360.com/</a></p>
<p>中国国家地理——新浪博客：<a href="http://blog.sina.com.cn/cng">http://blog.sina.com.cn/cng</a> </p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/oscarxie/aggbug/1453974.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47984/" target="_blank">《商业周刊》:Mozilla的志愿者开发模式被复制</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]从Google到“谷歌”</title><link>http://www.cnblogs.com/oscarxie/archive/2009/05/08/1452827.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Fri, 08 May 2009 10:19:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/05/08/1452827.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1452827.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/05/08/1452827.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1452827.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1452827.html</trackback:ping><description><![CDATA[<div id="news_body">
<p style="text-align: center"><img alt="" src="http://pic002.cnblogs.com/img/itnews/200905/2009050521244690.jpg" /></p>
<p style="text-align: left"><span style="line-height: normal">
<p>　　只需要4年时间，Google就从一个偏僻车库里的小公司成长为全世界最炙手可热的高科技偶像；而同样花了4年时间，进入中国的Google几经外界质疑，销售团队更换了两拨人马，才终于得见曙光。Google中国宣称，2008年其销售收入的增长达到三位数，实现了全球最快的增长率。艾瑞咨询的报告也显示，2008年，Google和百度的市场份额差距缩短了几近 8%，这是Google正式入华三年多以来首次从百度手中如此大规模地&#8220;掠取&#8221;客户。</p>
<p>　　Google是一个技术王者，也是一家商业公司。自2004年8月19日上市那天起，这个市值超过1500亿美元、年纯利润40亿美元的&#8220;搜索帝国&#8221;就成为华尔街的宠儿，其每季营收、净利润、增长率等数据的变化牵动着众多分析师和投资者的心。它发布的每一款产品都能够给Web和通讯领域带来一场革命。Google的LOGO中，红色和蓝色是两种最主要的颜色。它似乎预示着，尽管Google中国的销售业务必须在&#8220;红海&#8221;中搏击，但其在&#8220;蓝海&#8221;中产品创新为其创造了更多市场布局的时间和空间。</p>
<p>　　与在中国市场饱受挫折的雅虎、eBay、MySpace这样的国际互联网巨头们相比，它虽然同样遭遇本土竞争对手的严酷竞争，却拥有更为灵活、开放的企业文化。衡量一家公司本土化是否成功的标准有很多，业绩不是唯一标准，却是重中之重。我们试图还原Google中国销售团队走过的这条人员本土化 -产品本土化-运营本土化的内生道路，以探究一家创新型公司在中国如何落地的&#8220;普适价值&#8221;</p>
<p>　　□ 记者 张娅</p>
<p>　　为了赢得中国市场，Google创造了不少特例，其中之一就是2006年4月12日发布&#8220;谷歌&#8221;这一全球中文名称，这也是Google唯一一个在非英语国家发布的名字。其在上海设置的广告研发团队和在中国的代理销售模式，也表现出鲜明的&#8220;中国特色&#8221;。它的最新&#8220;中国特例&#8221;出现在今年3月30日推出的免费正版音乐搜索。中国是Google在全球范围唯一推出这项服务的国家。为此，英国《金融时报》使用了&#8220;谷歌&#8216;中国化&#8217;&#8221;的标题，并很是煽情地写到：&#8220;由此开始，这只是向承认中国将改变世界迈出了一小步。&#8221;</p>
<p>　　对于国际互联网巨头们来说，&#8220;本土化&#8221;仿佛成为了&#8220;图坦卡蒙咒语&#8221;，雅虎、eBay、MySpace甚至微软都曾在中国市场饱受挫折。1998 年4月，在澳大利亚布里斯班参加国际互联网大会的Google两位年轻创始人也没有想到，面前一个叫李彦宏的中国帅小伙正是因为后来Google的崛起而回国创办百度，并成为Google在中国市场最强劲的竞争对手。</p>
<p>　　衡量Google本土化是否成功的标准有很多个，销售业绩不是唯一标准，却是重中之重。抛开那些汗牛充栋般对于Google创新文化的描述，Google毕竟是一家华尔街的上市公司。尽管大部分&#8220;G粉&#8221;还是习惯于用神圣的互联网精神来崇拜这家公司，但Google全球副总裁刘允认为，Google中国已经不再只是一个技术公司，而是一个成功的商务公司。</p>
<p>　　近一年多来，Google中国大力推介自己的广告产品和给用户及广告主带来的价值。作为整个亚太地区销售和运营业务的负责人，Google全球副总裁丹尼尔&#183;阿勒格里(Daniel Alegre)表示，2008年Google在中国的销售收入的增长达到三位数，实现了全球最快的增长率。</p>
<p>　　来自市场研究机构艾瑞咨询的报告显示，2008年，百度、Google长时间的平稳竞争态势首次发生逆转，Google的市场份额增加了 5.6%达到23%，百度的市场份额则下降了2.1%到72.0%。这是Google正式入华三年多以来首次从百度手中如此大规模地&#8220;掠取&#8221;用户。双方在收入方面的差距更小，2008年Google中国的收入规模为14.32亿元，所占市场比例达27.3%，同比提高6个百分点，而百度在2008年的收入规模为31.97亿元。4月12日，艾瑞公布的最新数据显示，Google今年第一季度延续高速增长态势，市场份额首度突破30%。</p>
<p>　　成立之初，Google仅仅花了四年时间便成为硅谷最炙手可热的高科技公司。但进入中国四年多来，Google艰难走过一条人员本土化—产品本土化—运营本土化的内生道路，终于初见曙光。但真正的市场竞争显然才刚刚开始。</p>
<p>　　<strong>起步2006</strong></p>
<p>　　2005年7月19日，李开复走马上任建立Google中国工程研究院，意味着这家神话公司正式进入中国。但外人少为关注的是，同时建立起来的还有Google在线服务团队，5个人都是来自美国的&#8220;海归&#8221;。此时，Google在中国已经有一些自然客户。早期，在线团队的主要工作就是为这些客户介绍Google广告平台的更多功能，提出一些更优化的解决方案。直到后来更多本地人才进入、队伍规模有所扩大之后，在线团队才逐渐加强本地的推广力度。</p>
<p>　　按照Google中国区销售总经理宋中杰的说法，在进入中国之前，Google总部派人花了很长时间去拜访搜索广告产业链上的公司，尤其是代理商，&#8220;跑了很多地方，见了很多人，也跟中国互联网业以及商业人士详细了解中国市场&#8221;。更为重要的是，此时的百度已经通过发展众多代理、并在全国培养数家大代理商的方式，一跃为最成功的中文搜索引擎。2005年8月8日，Google宣布授权经销商计划扩展到中国，同时公布了中企动力成为Google在中国首家正式授权经销商，在中国境内提供AdWords关键字广告服务销售和支持。代理商现在已经成为Google中国的营收支柱，而在美国，Google几乎60%—70%的销售额来自于在线方式。当年9月，Google的AdSense中国团队正式成立。一个代理商、在线和大客户直销团队以及广告联盟&#8220;三位一体&#8221;的销售模式粗具雏形。</p>
<p>　　到2005年年底，Google中国的代理商发展到了5家，包括两个全国代理商和北京、上海、深圳的三个区域代理商。但是，代理商们普遍信心不足，基本处于观望状态，真正放在Google广告业务上的资源很少。李开复一开始就认为，Google中国与其去寻找100种改善流量的方法，不如坚持改善搜索引擎技术。因此，Google把大部分精力都放在提高中文搜索网页的质量上。在2006年2月宋中杰进入Google中国时，谷歌内部的资源分配是：在线团队有十几个人，代理商销售团队只有四五个人，大客户团队只有一个人，也缺乏相应的支持和流程架构。&#8220;这完全是从无到有的一个建设过程。&#8221;宋中杰说。</p>
<p>　　这一年，同时也是在欧美市场凯歌高进的Google在中国备受质疑的一年。有消息称，2006年年中，Google总部甚至曾有一些高层主动提出，是否应该将Google中国的业务与腾讯组建合资公司？Google中国高层团队当然对此坚决反对，认为在那样一个非常时期，如此大的动作会破坏公司内外的信心，这一方案才最终被搁置。2006年9月，由J.P.摩根和互联网分析专家吕伯望共同推出的中国互联网搜索引擎调查报告显示，2006年 Google的市场份额同期下滑了8%，只有25.3%，而&#8220;中国的Google&#8221;——百度的市场份额超过了60%。2006年底，Google亚太区市场总监王怀南和负责Google中国市场营销的大中华区联合总裁周韶宁先后离职。业界普遍流传的是，周韶宁曾于此前几个月向总部提交了一份本地化方案，其中涉及到中国公司的架构设计以及市场策略，但是总部认为策略过于激进，并且可能影响到其在全球的整体品牌形象而最终否定。尽管此说法后来遭到了 Google中国和周韶宁本人的否认，但Google早期在中国市场未能形成有效的商业渗透是不争事实。</p>
<p>　　从某种程度上说，Google中国的第一个&#8220;对手&#8221;并不是百度，而是美国总部。雅虎、eBay等的前车之鉴已经证明，互联网世界瞬息万变，跨国公司却往往决策链条过长、考虑问题也难以本土化。对于Google这样一家以&#8220;不作恶&#8221;为座右铭的公司来说，它还很在意道德姿态上的完善，短短数年间的急速成功也让它极度自信自己的发展路径。</p>
<p>　　在早期的招聘过程中，宋中杰经常遇到向总部报批时被否的情况。这并不是因为总部对Google中国有人数限制，而是员工对于Google的文化认同是Google招聘时一个重要衡量指标。他解释说：&#8220;你能不能干是一方面，如果做事方式不符合Google的行为准则和道德规范也是不被允许的。&#8221;</p>
<p>　　对于在中国大力发展代理商模式，Google总部也存在很多顾虑：比如说代理商毕竟不属于Google，他们的一些销售和服务行为是否会给公司品牌带来负面影响，在线团队和代理商之间是否会有很大冲突，等等。一个新问题也被摆在了销售团队面前，那就是一向以在线运营为主的Google是否能对代理商提供有效支持。</p>
<p>　　传统上，Google的代理商销售部门由两部分组成，即代理商开发人员和代理商管理人员。而Google中国将其合二为一，按照区域划分，由一个销售人员对代理商从头负责到底。Google中国还打造了全球最完整的代理商架构，比如市场部和商务拓展部(BD)都是其他国家所没有的组织机构。</p>
<p>　　&#8220;当时讨论了很久。&#8221;宋中杰回忆到，&#8220;我们分析了所有开发和管理代理商时的困难和挑战，并列出哪些工作对新增客户很重要，以证明合二为一的必要性。并且，我们在中国市场面对的是大量中小代理商，如果没有一个中央参谋部把作战计划拟好，每一个数据分析和计划制定都交给各区自己做的话，是更加无效的做法，也很难把全国协调起来。所以，我们把商务拓展工作分解下去，看每个步骤是不是都需要，如果需要的话是集中起来有效还是分散到不同的区域、不同的销售人员中更有效。好处、坏处一列，总部也就清楚了。&#8221;</p>
<p>　　从2006年下半年开始，Google在中国进行了新的渠道布局，开始发展区域代理。当年第三季度，Google一口气发展了10家代理商，年底代理商已经超过20家。</p>
<p>　　在2006年整整一年里，Google中国销售团队花费了大量时间和总部进行如此沟通，也不可避免地出现过&#8220;拍桌子、发脾气&#8221;的场景——好在 Google是一家靠数据说话的公司。宋中杰表示：&#8220;从一开始，我们基本上每采用一个新方式都能完成既定目标，甚至大部分还超过了目标。这建立起了总部对中国区管理层的信任，后面就走得很快了。原来很多事情我们都要先跟总部谈，后来原则沟通一下就能通过，再后来我们只要和总部一起把目标定好，具体的策略和执行都可以由本地自己决定。&#8221;</p>
<p>　　同样在2006年8月，Google AdSense在广州成功举办发布商路演，这在全球也属首创。&#8220;中国人更习惯于面对面地交流。&#8221;Google大中华区在线销售与运营部经理王莹说，&#8220;路演的效果非常好，发布商反馈也很好。我们当年一共做了3次路演。&#8221; 2007年，AdSense又进行了13场发布商路演，基本覆盖中国一线城市。2008年，Google在二、三级城市做了3场路演，10月份又把全国所有的大中型合作伙伴请到北京做了一个Google发布商峰会。后来这个经验还被Google总部推广到其他国家。</p>
<p>　　Google大中华区在线销售与运营总监赵东平也发现，与客户面对面的交流给在线团队带来了良性互动。在线团队自己不能进行线下活动，代理商的作用就发挥出来了。&#8220;代理商经常进行本地推广活动，提升了Google的品牌。很多人在现场没有和代理商合作，但听代理商讲完后再上网一看，发现可以自助开设账户，很方便，就与我们合作了。&#8221;他说，&#8220;这其实是代理商在帮我们。&#8221;</p>
<p><span style="line-height: normal">
<p>　　<strong>稳定局面</strong></p>
<p>　　最终让外界对Google中国的唱衰之声戛然而止的，是在2007年6月11日Google与新浪实现战略合作。&#8220;从今天开始，指责Google不懂本地化的人可以闭嘴了。&#8221;当时一名Google中国的工程师如此对媒体表示。</p>
<p>　　2007年1—5月，Google中文网页的搜索量提高了60%，其中不少是原来因为网页不稳定而离开Google的用户。2007年5 月，Google全球CEO施密特访华时对媒体证实，对Google中国的考核包括了流量的提升、广告收入的情况，并非只关注中国团队建设和研究院的情况。</p>
<p>　　与百度强调&#8220;社区搜索&#8221;，通过贴吧、知道、空间、维基等提高用户黏性从而获得广告投放不同的是，李开复希望通过整合搜索赢得广告主的青睐。Google中国的合作对象包括了中移动、网通这样的运营商，以及从腾讯、新浪等门户一直到影视、饮食领域的垂直网站。</p>
<p>　　此时，两个竞争对手出现的另一个差异是，Google努力通过代理商渗透中国市场之时，百度逐渐取消了北京、上海、广州等大城市的代理渠道，转而做直销，只在较小的市场采取代理模式。由此，百度可以获得更高的利润。</p>
<p>　　此时的Google中国已经度过最初的动摇，希望向外界传导出2007年&#8220;加速跑&#8221;的印象，但销售并不包括其中。Google销售团队发现，部分客户在使用了Google的关键词广告一段时间后停止了续费。按照竞争对手的做法，Google应该开发更多的新客户以弥补损失，但它选择了另一条道路。</p>
<p>　　这一年被Google销售团队定为&#8220;服务年&#8221;。他们和代理商一起开发了一个服务模式，对客户群进行分类并提供不同的服务。代理商客服流程也被固定下来，客服工作时间被划分为几个阶段，最小的时间划分是半个小时，每个时间段客服应该做什么事都有详细规定。在此基础上，Google对代理商的人员规模、员工素质和服务做出严格考核，从事海外业务的代理商销售人员还必须通过国家的英语专业八级考试。Google还制定出了清晰的代理商培训课程，甚至精确到了制定代理商员工的职业发展图。</p>
<p>　　或许本人就是一名&#8220;G粉&#8221;的缘故，网通互联公司总经理樊美勇一直在代理商模式改革中与Google中国亦步亦趋。早在Google进入中国之前，网通互联就一直与CNNIC合作进行中文域名的推广，并帮助当地的中小企业建设网站。如果客户希望在平台上做广告，公司也会代为运作。到了2005年下半年Google中国公布第一批代理商之后，樊美勇在网上找到Google的联系邮箱，主动申请成为代理商。2006年4月，网通互联正是获得授权。</p>
<p>　　与Google中国其他深入中国基层市场的&#8220;触须&#8221;一样，网通互联对当地市场和客户有足够的了解，但对公司本身却缺乏精细化管理的概念。为节省成本，公司一般每100—200个客户配一个客服。但此时Google坚决要求一个客服只能管40个客户。为此，网通互联投入了大量人力成本。樊美勇在实践中发现，客服管的客户数虽然少了，但管的生意却比以前多了。按照樊美勇的说法，此前网通互联已经积累了400多个Google客户，&#8220;转正&#8221;之后到 2007年收入同比增长了1.3倍，</p>
<p>　　&#8220;黄金账户&#8221;是Google中国为代理商配备的又一市场利器，即为客户的关键词广告账户设置合理的结构，使客户的每个关键词都能获得更高的点击质量和点击率，由此客户为用户每次点击所付出的费用大为降低。但因为&#8220;黄金账户&#8221;至少要求用户设置30个关键词，客户开始也并不认同，投诉一直到了宋中杰那里。宋中杰不得不一再跟客户解释，如果没有那么多的关键词，就不会有足够多的流量触发广告。实践一段时间之后，越来越多的客户在签合同时就直接提出：&#8220; 你必须把我的账户做成黄金账户，否则我就不签了。&#8221;按照宋中杰的说法，2007年做完之后，客户满意度增长了30%-40%。</p>
<p>　　<strong>从沉默到招徕</strong></p>
<p>　　据说，在2006年Google中国某高层回国走马上任之时，不少朋友都断言，&#8220;两年后你必然会退出中国&#8221;。艾瑞咨询统计显示，2005年年中，百度、Google和雅虎在中国搜索市场三分天下，市场份额分别为37 : 23 : 21。随后的两年多时间里，雅虎中国发生巨大变动，Google和百度几乎将市场份额瓜分殆尽。到2008年，百度、Google两家的搜索引擎的营收份额之和超90%，而百度和Google合占网页搜索请求量市场份额的93.2%，中国搜索市场进入双寡头时代。</p>
<p>　　这一年，Google广告销售已经不再需要隐藏于搜索背后。Google把中国划分为北京、上海和广东三个区域，在每个区域办公室配备一名总经理、两名销售员和三名客服人员。Google的中国代理商也发展到了26家，除了最早的两个全国总代外，其他的24家都是区域代理商。如何在中国挣更多的钱也成为了Google中国的头等大事。</p>
<p>　　作为Google大中华区营销总裁位置空缺一年后迎来的&#8220;营销强人&#8221;，2008年1月7日加盟之前，刘允是韩国头号移动运营商SK电讯中国区的CEO兼总裁。业界认为，他对中国电信行业的稔熟与人脉正是Google所看中的。</p>
<p>　　刘允半开玩笑地表示，自己到Google上班第一天的感觉和20多年前初入职场时一样。他回忆说：&#8220;当我以高管身份进入其他公司时，公司几乎把什么都准备好了。而在Google，有人把你往办公室一领，再来一个人把电脑装好，然后就都走人了，我觉得也是蛮好玩的。&#8221;现在，刘允每天上班的标准装备是西装加双肩背包。他的办公室面积也大为缩减，因为太小而甚至显得有些简陋。据说，刘允的前同事到Google来参观时，完全不相信他就坐在这样的办公室里。</p>
<p>　　Google开放、平等、宽松的工作环境一直为外界所称道。但刘允看到了身上的压力。他上任的第一把火，就是撤换不称职的管理人员，还劝退了一些员工。&#8220;我们是一个商务团队，和研发部门还是有一些差别。在原有Google团队的价值和文化基础上，我们需要更集中、更有效率、更有战斗力。&#8221;他说。随后，Google中国大规模组建销售渠道和销售队伍，其销售团队已经有几百人，目前还在扩招之中。新团队感受到了比以前更强的目标设定。&#8220;我告诉大家我们可以做到那么高的目标，要达到目标需要哪几步，通过团队重组、组织变化和人员调整坚定他们的信心。只要我们能够做下去，Google在中国的发展就非常非常有希望。&#8221;刘允说。</p>
<p>　　2008年5月开始，刘允带着团队频繁到两岸三地路演，不断向中小企业说明Google已经有&#8220;中国化&#8221;的产品和广告形式。截至当年底，Google中国针对中小企业的营销坛论一共举办了26场，全国各地26个代理商也举办了50—60个企业的小型客户推广会。</p>
<p>　　在&#8220;传道&#8221;同时，Google中国也下决心要改变互联网代理商原有的销售模式。传统的互联网代理商采用人海战术，把任务完全压在销售员身上，对销售员实施放羊式管理。Google抛出了&#8220;iSales&#8221;精细管理的杀手锏。这一措施将销售划分为数据分析、电话访谈和最终销售三个环节，并且在数据分析环节建立数据库，使每次最终销售环节所获得的信息都可以统一反馈到数据库，成为下一次销售的基础。</p>
<p>　　实际上，早在2007年第三季度，Google中国就开始了试点。第一个&#8220;吃螃蟹&#8221;的还是网通互联。由于&#8220;iSales&#8221;模式对原有的销售人员造成了巨大冲击，网通互联一开始试点，下面四个销售经理就走了三个。促使樊美勇坚持下去的原因是：&#8220;无论从今后长期发展来看，还是从规模化来看，包括我们要寻求生意突破、订单突破的角度，都必须去做流程改造。&#8221;</p>
<p>　　樊美勇透露，为了客服和销售的流程改造，公司截至目前累计投入了50万资金。好在试点给公司业绩的影响只有一个季度。到了第二个季度，公司恢复增长，还基本弥补了上一个季度的损失。在2008年，公司收入同比增长1.6倍。</p>
<p>　　2007年第四季度，Google中国把试点扩大到了5家，并且不断把结果与其他代理商分享，成绩和问题都全面呈现。试点首先打消了代理商对效率的顾虑。宋中杰说：&#8220;这种模式的效率当时虽然并没有完全体现出来，但至少效率和以前是一致的，不会比以前低，这点大家都认同。&#8221;同时，代理商在销售的透明性、可预测性、可管理性和稳定性，以及人员的素质上都有明显的改善。</p>
<p>　　从2008年第二个季度开始，Google决定在代理商中强制实施&#8220;iSales &#8221;销售模式，设定了十条法则对代理商实施认证。执行之外，新的问题又出现了：随着流程的不断优化，代理商管理能力不强开始暴露出来，部门之间的连接也出现了很多问题。又有代理商想打退堂鼓。但Google还是下定决心坚持。到2008年第三季度结束时，有20家代理商通过认证。来自Google的数据显示，2008年底，代理商与客户达成交易的成单率普遍提升了40%以上。</p>
<p>　　两次变革也让代理商对于Google中国的态度发生巨大转变。&#8220;早期，有些代理商认为Google根本不懂中国市场，做的东西都是阳春白雪，好看不实用。通过三年的实践，现在没人敢这样讲了。&#8221;宋中杰说，&#8220;刚开始时，我们说是不是这样做更好，代理商就会说不对，应该那样做。到中间一个阶段时，我们问这样做对不对？他说对，但回去还按照自己的来。现在基本不谈对不对的问题了，我们直接跟他们谈怎么才能实施得更好，代理商也会真正去执行。&#8221;</p>
<p><span style="line-height: normal">
<p>　　<strong>纵横对峙</strong></p>
<p>　　对于2008年的工作，刘允给自己打了90分。在他看来，过去是全球总部告诉Google中国如何营销，现在则是中国的营销团队说中国要怎么做，来争取Google全球的支持。</p>
<p>　　刘允声称，2009年Google中国的销售团队将更专注于特定的用户群和特定行业。他透露：&#8220;我们的搜索质量已经不亚于任何一个中文搜索引擎，未来希望能够把搜索这个概念外延和扩大，为使用者带来更好的信息。除了已经推出的Google地图和音乐搜索，未来在手机搜索和手机信息以及云计算方面，我们也正逐步走向实际应用。&#8221;</p>
<p>　　作为代理商和大客户直销的负责人，宋中杰也希望其执掌的业务在2009年实现加速成长。按照计划，Google中国首先要实现的是客服模式和销售模式的继续升级；在此基础上加大客户覆盖面，代理商销售人员要实现成倍增长，客服要实现80%的成长；随着人员的增加，Google中国销售部门不但要实现自身的人员素质提升，还要帮助代理商选拔和培养人才；为了吸引更多客户，此前Google中国已经推出了静态网站建设以帮助客户对其网站进行诊断和优化，接下来还把一些免费产品进行包装，通过代理商提供给客户，并针对地方大客户引进更多广告创意人才。</p>
<p>　　而就在2008年10月份，Google AdSense推出了广告管理系统，针对发布商运营效率问题提供全面解决方案。在王莹看来，AdSense在中国已经度过了知识普及阶段。她说：&#8220;我们的发布商规模越来越大之后，涉及到的网站大小不一，需求也各不相同。接下来，我们将更多去发掘他们深层次的需求，针对提出个性化建议。&#8221;</p>
<p>　　同样值得关注的是Google的在线运营业务。赵东平透露，客户位居前两名的行业分别是制造业和零售。为了适应中国客户习惯通过电话而非网络进行沟通的需求，Google中国的在线运营部门最近还新增了一个免费服务电话。这个看似简单的举动，却是只熟悉美国人在线沟通方式的Google迈出的一大步。赵东平认为：&#8220;尽管中国市场还属于培育期，在线运营不会像代理商机制那样产生立竿见影的作用。但当这个系统不再复杂、人力成本又越来越高的时候，会有越来越多的客户倾向于使用在线自助服务。&#8221;</p>
<p>　　所有这些事情似乎都在暗示，Google在中国已经实现&#8220;落地&#8221;。2008年第三季度，Google的市场份额为20.8%，百度为 73.2%。在2008年第四季度，由于虚假广告事件百度市场份额下降了1.2%，Google增加2.2%。而到2008年底，百度依然把持着 63.5%的市场营收份额。</p>
<p>　　&#8220;刚开始，Google广告模式的设计对于许多中国客户来说还很难接受，但从2007年下半年起情况就有所改变。&#8221;樊美勇说，&#8220;现在，Google不以价格决定排名反而变成了我们很大的卖点，甚至连代理商要收取20%的服务费也是一个卖点。&#8221;</p>
<p>　　针对Google中国今年的专注策略，网通互联已经开始集中一些行业网站资源主动出击：在杭州，网通互联把50个关注度比较高的房地产网站打包成房产联播网，向当地房地产公司推广；针对宁波厨卫生产商集中的特征，公司的重点推广对象则是方太、帅康、欧菱等公司。</p>
<p>　　实际上，中小企业云集的浙江市场是Google中国今年的一个重点地区。按照计划，Google在当地的代理商数量和工作人员都要比去年翻一番。这意味着，除了与同处搜索广告行业的百度短兵相接之外，Google还要在马云的&#8220;发家地&#8221;与阿里巴巴进行电子商务战的正面对峙。</p>
<p>　　年报显示，2008年阿里巴巴B2B业务的总营收为30.01亿元，同比增长39%，其中国内交易市场占总收入的比重由2007年的28%上升至36%。2005年并购雅虎中国资产并经过三年整合之后，阿里巴巴已经宣布今年要向雅虎口碑网再投入3亿元，把其真正纳入阿里巴巴电子商务体系，雅虎中国的营收也被重新提上战略高度。</p>
<p>　　&#8220;任何一个市场都有竞争，在中国也不例外。Google会坚持自己的方向。&#8221;刘允对未来充满信心，&#8220;我们希望能够快一点把规模做起来，同时，更有效地联合产业链上下游合作伙伴，一起把中国互联网行业做起来，为一些熟悉电子商务的企业和传统企业提供更多的服务。&#8221;</p>
<p>　　<strong>用&#8220;蓝海创新&#8221;拉动&#8220;红海市场&#8221;</strong></p>
<p>　　作为一家以创新为旗帜的公司，如何在复制全球模式的同时与本土市场对接，对Google中国的未来产生着决定性影响</p>
<p>　　2006年，时任eBay中国研发中心总经理的王劲接到了Google大中华区总裁李开复的邀请，希望他加入建立在北京的Google中国工程研究院。独特的企业文化让Google一直是技术开发者们心中的天堂。但王劲有些犹豫，因为他不想离开已经生活了5年多的上海。很快，他又接到了李开复的电话。李开复一开口就说：&#8220;告诉你一个好消息，我们要成立一个上海研究院，所以你没有理由不来。&#8221;于是，2006年8月，王劲加入Google，以中国研究院副院长的身份在上海参与筹备工作。2007年6月25日，Google中国工程研究院(上海)正式成立。</p>
<p>　　这并非Google中国第一次为争取所需要的人才而就地建立研究中心。此前的2006年3月31日，为了把中文信息检索领域顶级专家简立峰招至旗下，Google设立了台湾研发所，并任命简立峰为主管。由此，北京、上海和台北三地的研发中心共同构成了Google中国强大的本地创新体系。</p>
<p>　　与北京研发中心成立之初一样，为了让Google独特的创新机制薪火相传，总部特地给上海派去了一批优秀的美国工程师，这在Google内部被称为&#8220;文化火种&#8221;。他们带来的不仅是已经被奉为经典的创新思维模式、文化和价值观，也要具体指导当地工程师如何充分利用Google的创新法则，以及如何开发出符合Google价值观的软件和服务。此外，李开复也从北京调了10个工程师到上海。上海的研发中心很快成长起来。按照最初的划分，北京研发中心主要负责基础搜索技术，上海则侧重于广告的研发。两年多后的今天，Google上海研发中心不仅与销售团队实现无缝链接，并且在内容广告方面占据了全球 40%的核心力量，一些相关的搜索技术开发也被纳入进来，包括Google新闻搜索、财经搜索和图片搜索等等。</p>
<p>　　作为一家以创新为旗帜的公司，善于对创新进行管理的Google是世界上最赚钱的网络公司。Google平台打造的是一个&#8220;生态系统&#8221;，通过 Google本身与第三方创新者、用户和广告商之间积极互动，形成对各方都有利的良性循环。在这家公司2008年高达218亿美元的总收入中，广告收入占了95%以上。事实上，Google一直占据着这个生态系统的制高点，控制整个系统的发展，并从中赚取超高比例的收益。这不但形成了Google的差异化优势，当它来到中国后，也对其在中国市场的未来产生着决定性影响。</p>
<p>　　<strong>复制&#8220;80/20&#8221;</strong></p>
<p>　　创新是互联网公司在市场的立足点，但Google创新的速度之快、数量之多，常常令其他公司黯然失色。在Google的创新机制中，最为外界津津乐道的是将创新列入员工的工作时间预算，要求技术人员花80%的时间在核心的搜索和广告业务上，其余20%则用在他们自己选择的技术项目上。对管理人员，公司也有类似的规定。这就迫使员工必须腾出时间来搞创新。实际上，内容广告就是Google技术人员利用20%时间开发出来的产品，现在已经成为 Google营收的第二大支柱，每个季度为其带来超过10亿美元的收入。</p>
<p>　　但上海研究中心成立后不久，王劲就发现，中国的工程师总是希望尽快完成工作任务，往往忘记有20%的时间可以自由支配。&#8220;我们发现有绝大部分工程师，当他们80%时间的工作目标确定以后，比较喜欢围绕这一目标去考虑20%时间的创新。&#8221;因此，王劲反而要鼓励他们不一定要把20%的创新计划和既定工作紧密结合，&#8220;让他们可以更大胆一点，更放开一点、更海阔天空地去想一些能够为用户带来更好体验的产品和服务&#8221;。</p>
<p>　　除了来自总部工程师展示出来的&#8220;榜样的力量&#8221;之外，不遗余力复制总部对创新成果的奖励政策，也是Google中国鼓励创新的秘诀之一。</p>
<p>　　Google工程师可以获得的最高奖是&#8220;创始人奖&#8221;，奖金高达1000万美元。2005年，研发出AdSense的五人小组就获得了这一奖项，其中包括两名中国籍技术人员。该奖项并非以赢利为评价标准，但要求产品对公司做出重大贡献。在此之下，Google还设了其他创新奖励，奖金从几百美元到几千美元。2009年，Google中国推出了&#8220;十大杰出工程师&#8221;评选。另外一个极具Google特色的是名为&#8220;PEER&#8221;的奖励方法。在公司内部网站上设有一个链接，任何员工只需要填好奖励对象的名字，并陈诉简单理由，都可以申请对其他同事进行奖励，而且每个人申请的名额没有限制。如果推荐被批准，两三天之内该名同事就会收到一封电子邮件，并且在发工资时就可以看到这笔奖金。</p>
<p>　　&#8220;我们很高兴看到，Google中国没有人滥用这种权利，这个是非常好的鼓励大家互相帮助的办法。&#8221;王劲说。</p>
<p><span style="line-height: normal">
<p>　　<strong>更为贴近市场</strong></p>
<p>　　由于中国客户更习惯面对面的交流，Google上海研发中心与销售团队的结合在全球范围内也算是最紧密的。</p>
<p>　　每个季度，Google中国广告技术团队的负责人都会和销售经理坐到一起，共同制定当季乃至全年的销售计划和战略。每个星期，双方也有固定的例会，广告技术人员可以从中详细了解各个产品在市场的表现情况。</p>
<p>　　中国的研发中心另一个与Google全球不一样的做法是，工程师会积极参与到公司的销售活动中，不但告诉客户Google的广告产品有哪些中国特色，也倾听来自客户和发布商的反馈和建议。</p>
<p>　　从2008年11月6日开始，为了应对金融危机带来的影响，Google中国曾经在全国22个城市举办了26场主题为&#8220;突破&#183;智胜&#8221;的&#8220;冬日暖阳&#8221;企业营销论坛。王劲透露，整个过程都有上海研发中心工程师的参与。每到一个城市，工程师会在论坛上亲自进行产品和技术的宣讲。论坛之外，工程师还在每个城市召开一个和客户的小型见面会。这次的巡回中，很多客户向Google工程师提出，希望代理商能够定期、快速地把一些消息发送到邮箱，以便他们不用登录账号就可以了解到账号动态和广告动态。回去之后，上海研发中心很快研发出&#8220;代理商服务工具&#8221;，现在已经被Google总部推广到十几个国家。</p>
<p>　　在王劲看来，依托销售团队组织的营销活动，研发中心可以深入到客户基层，获得第一手资料。为了更加了解中国本土的需求，研发中心还鼓励工程师回家乡和母校与Google用户进行深入接触。他说：&#8220;这些可能都是我们在实践中和总部不一样的地方，但是理念上确实是一致的，就是以用户为先。&#8221;</p>
<p>　　<strong>用数据说话</strong></p>
<p>　　Google的创新结合了根据市场反馈而进行的创新和根据技术发展进行的创新。但是，这种百花齐放的战略并不意味着许多产品注定要失败。Google以一套非常严谨的以数据为驱动的创意评估流程，很好地确保了创新的有效性。</p>
<p>　　Google对于分析和数据的重视远远超过其他绝大多数公司。目前，在其上海研发中心有一个专门的小组，负责收集与销售相关的数据，并通过各种方式将海量数据归纳到数十个衡量指标中。王劲具体解释到：&#8220;我们可以从地域来分析，广州的客户有什么样的特性，北京客户又是什么样的特性，然后在不同地域做出针对性决策。我们也可以从不同行业来进行分析，了解最近哪个行业发展得比较快，哪个行业具体的用户数多，新建的广告数多，点击率多等等，这给我们的研发工作做出了重要引导。&#8221;</p>
<p>　　当然，Google施之于全球的创新实验机制也被复制到了中国。当工程师开发出一个产品时，可以在数据中心申请一部分服务器流量，把产品直接带入到客户面前。Google是否会对此进行更大投入，完全看这个试验所产生的数据。</p>
<p>　　在很大程度上，这些创新实验都受益于Google享有盛名的IT基础架构。它保证了在试验上的收放自如，也使得进行实验的新系统与原有系统之间的无缝链接得以实现。</p>
<p>　　&#8220;在我们的创新管理机制里面，我们并没有一开始就对产品进行区分，唯一的选择机制就是让数据说了算，用户说了算。&#8221;王劲说，&#8220;我们会根据产品的性质来决定在多少流量中进行实验。也许一开始我们只应用在0.5%的流量上，如果用户反馈不错，就逐渐增加到1%、2%甚至20%。有一些实验可能只进行 2%的流量测试就搜集到足够的数据，我们就可以做出决定，让100%的客户马上使用。这样，产品失败的风险可以被限制在很小的范围内。&#8221;</p>
<p>　　<strong>手机上的大场面</strong></p>
<p>　　在强大创新机制的护航下，Google的技术和战略一直密不可分。Google的使命是&#8220;整合全球信息，使人人皆可访问并从中受益&#8221;。而要完成这个使命，CEO埃里克&#183;施密特(Eric Schmidt)估计需要300年。有市场人士指出，在微软阴影下长大的Google从企业文化到性格基因里包含有某种因为Google而生的因子，它的心脏是为了与微软战斗而跳动。但在中国，它的手脚却不得不面对百度这样的公司。</p>
<p>　　但王劲认为，Google中国现在做的每件事还都是在为实现以上使命而服务。&#8220;很多人认为Google是一个互联网公司，但是我们从来没有把自己局限于只是做互联网产品的公司。比如说手机产品和图书产品，都不属于互联网产品，却帮助我们达到了整合全球信息的目标。&#8221;他说，&#8220;在不同时期，不同市场，因为不同的产品我们遇到了不同的竞争对手，这是Google整体战略在每个地方的具体表现。可能别人看到竞争对手的市场就认为是我们的目标市场，其实不一定是这样。&#8221;</p>
<p>　　在Google的LOGO中，红色和蓝色是两种最主要的颜色。这似乎预示着，尽管Google中国的销售业务必须在&#8220;红海&#8221;中竞争，但其&#8220;蓝海&#8221;中的产品战略使得再强大的竞争对手也无法忽视它的存在，这为其创造了更多市场布局的空间。</p>
<p>　　对于下一个&#8220;蓝海&#8221;，Google的答案或许只需要两个字——手机。2008年9月25日，苹果<a href="http://news.sina.com.cn/wap/iphone.html" target="_blank">iPhone</a><!--wapdump begin-->(<a href="http://news.sina.com.cn/wap/iphone.html" target="_blank">手机上网</a>)<!--wapdump end-->上市后不到5个月，Google就发布了&#8220;Android&#8221;开源移动操作系统(见《商务周刊》2008年11月5日第21期封面故事《手机新三国演义》)。当年10月22日，使用基于Android操作系统的G1手机在全球22个国家和地区盛装上市。尽管Gphone的应用和Google的广告销售没有太多关联，但Google早已经把搜索系统嵌入到了手机中。2008年，Google推出了&#8220;手机内容AdSense&#8221;，为出版商加入手机内容网络并通过文字广告获得收入提供了方便。今年2月11日，Google为移动运营商和手机网站推出新的&#8220;手机搜索AdSense&#8221;，该服务可以让运营商和手机网站快速而轻松地置入Google搜索框。</p>
<p>　　在王劲看来，手机平台的发展非常快，功能也越来越趋近于电脑。今天，中国已经有3亿多互联网用户，但与6亿多手机用户相比差距还是很大。&#8220;手提电脑和手机之间的界限越来越模糊，手机平台已经在人们生活中占到很重要的位置。&#8221;他说，&#8220;尽管目前这个市场还在培育之中，但在未来，手机搜索上的广告业务一定会超过互联网。&#8221;</p>
<p><span style="line-height: normal">
<p>　　<strong>&#8220;我们需要在亚太区强有力地存在&#8221;</strong></p>
<p>　　——访Google全球副总裁丹尼尔&#183;阿勒格里</p>
<p>　　对于Google在中国的战略，其全球CEO埃里&#183;施密特(Eric Schmidt)曾经宣称：&#8220;我们将以长远的眼光赢得中国市场，中国有五千年的历史，Google对中国市场的成功有五千年的眼光。&#8221;现在看来，Google已经不需要等这么久了。8个月前，Google把亚太区总部从美国搬到新加坡，以&#8220;背水一战&#8221;的方式表现出对于亚太区市场的决心。</p>
<p>　　作为整个亚太地区销售和运营业务的负责人，Google全球副总裁丹尼尔&#183;阿勒格里(Daniel Alegre)几乎全程见证了Google中国的成长。自2004年加入公司之后，他扩展了Google的合作伙伴渠道，包括与中国移动、AOL欧洲、 KDDI公司和NTT DoCoMo公司建立了战略合作关系。在全球经济危机的大背景下，Google如何看待此前在亚太区遇到的困境，又将如何实施新的战略？针对上述问题，《商务周刊》对其进行了专访。</p>
<p>　　《商务周刊》：Google刚刚把亚太区总部搬到了新加坡，这是否意味着亚太区将获得公司更多的资源倾斜？这将对中国市场产生哪些影响？</p>
<p>　　丹尼尔&#183;阿勒格里：对Google来说，亚太区在战略方面非常重要，特别是中国市场。世界上有40%的互联网使用者都集中在亚太地区，超过半数的移动电话使用者都在这里。为了能够达到我们的使命，我们需要在亚太区强有力的存在。此前，Google在亚太区各个国家已经有了办公室，这次只是把亚太区一些高层管理人员从美国迁到新加坡，以使公司在亚太区的决策更加本地化，更贴近本地需求，同时也更快做出决策。</p>
<p>　　Google虽然是在美国成立的，但我们从来不把自己看作是一家美国公司。我们一直认为自己是一家国际公司和全球性公司。无论我们在哪一个市场运作，比如说在中国市场运作，都认为自己是中国经济的一部分，是中国互联网大的生态环境的一部分。去年，中国的网民数量已经超过了美国。如果将来有一天中国网民数量超过美国整体人口总数，我也一点不会觉得奇怪。在移动业务方面，中国也是全球市场手机使用者最多的一个市场。中国市场对于Google来说，有着我们取得重大成功的所有必要条件。</p>
<p>　　《商务周刊》：亚太区虽然是增长最快的市场，但也可以说是全球最复杂的市场。目前，Google依然无法在日本和韩国实现突破，接下来在这两个市场上是否会有一些新的计划？</p>
<p>　　丹尼尔&#183;阿勒格里：你说的没错。即使在世界范围内，亚太区对我们来说都是一个相当多样性的、同时有很强挑战性的市场。但我们认为这是一件好事，因为它使我们能够重新考虑产品战略，使我们更加灵活，更快地适应市场需要。</p>
<p>　　日本是我们在全球所有市场中第一个推出手机广告的市场。我们的手机广告产品在两年半前推出，并且和KDDI和NTT DoCoMo两家日本运营商结成了伙伴关系。目前，无论对我们来说还是对运营商，手机广告都是推动销售额持续增长的一个重要方面。另外，我们在日本的手机上特别开发了地图的运用，这也是我们针对日本市场的一个创新。在韩国，大约在两年半或三年前，我们建立了一个研发中心。去年下半年我们为韩国市场推出了 25款新的产品。由此可见，我们在整个亚太区是做了很多投资的。这些投资一是用于本地化我们已有的产品，另外也是为本地市场，无论韩国市场、日本市场还是中国市场，提供一些针对性的独特产品。</p>
<p>　　《商务周刊》：目前，中国的研发团队在Google的全球创新中占据什么位置？您对2009年Google中国的业绩又有哪些期待？</p>
<p>　　丹尼尔&#183;阿勒格里：Google中国研究院的工程师也主要做两件事：一是把Google的产品本地化，使我们的搜索结果能够更加贴近中国消费者；二是开发一些新产品，这些新产品不仅针对亚洲市场，有时候也可以在全球进行应用，比如我们开发的手机搜索工具可以在亚太区之外进行应用。所以，他们的工作是一种双向关系，也就是说在Google的创新理念下，既有欧洲、北美和拉丁美洲的工程师为亚太区开发产品，也有亚太区工程师为本土市场乃至全球市场贡献他们的才智。</p>
<p>　　2008年对Google中国来说是业绩非常好的一年，我们在中国的收入增长达到了三位数。我们相信2009年会继续这样一个发展势头。另外，Google在中国的市场份额也在持续上升，我们相信这样的趋势也会继续下去。</p>
<p>　　《商务周刊》：那么您怎么看待Google在日、韩两个市场遇到的挫折？您刚才提到2008年Google在中国赢得了三位数的增长，您可以总结其中的原因吗？</p>
<p>　　丹尼尔&#183;阿勒格里：谷歌在整个亚太区的一些发展经验表明，我们应该考虑到在不同的国家，大家有不同的方式和互联网进行互动。比如在韩国和日本，人们的宽带使用率比较高，在网上看视频也比较广泛。所以，我们在推出产品时就要考虑到视频和移动的因素。除此之外，在使用习惯上，日韩也有很多跟其他市场不一样的地方。比如说键盘，无论在中国、日本还是韩国，很多人都不喜欢用键盘进行输入。所以在日本和韩国，我们特意把Google的首页进行了改变。</p>
<p>　　中国是一个充满活力的市场。要归结Google中国2008年的成功因素，答案其实非常简单。首先，我们在中国雇佣了非常聪明的工程师、产品开发人员和销售人员；其次，我们在业务方面非常专注，只做搜索和搜索广告；第三，我们强调创新，我们在中国的研发中心是四年前建立的，现在已经开始到了收获季节。我们已经研发出很多世界一流水平的搜索工具，同时这些新产品更加贴近中国用户，和中国用户之间建立了一种很好的信任，这都反映在我们销售收入和市场份额的增长上。</p>
<p>　　《商务周刊》：那么，您认为Google在中国的营销模式是不是代表了国际上最新的模式？</p>
<p>　　丹尼尔&#183;阿勒格里：我不知道这能不能成为一种趋势。因为讲到趋势，大家常常会想到6个月甚至两年之后。但我认为Google提供的搜索营销平台是一个非常清晰有效的平台。第一，它的目标非常精准；第二，营销计划可以很快实施，也可以很快停止；第三，可以精准针对你需要的消费者。所以，我想把它称作一个解决方案更加合适。这个解决方案为整个广告业带来了变革。它使得广告商可以从非常微观的领域来分析消费者，并且针对他所需要的消费者推送合适的产品。同时，你只有在消费者点击之后，真正和你的品牌进行互动才支付费用。你知道你在广告商的每一分花费都取得了成效。</p>
</span>
<p></span></span></span></span><a href="http://www.businesswatch.com.cn/">http://www.businesswatch.com.cn/</a></p>
<p><a href="http://www.businesswatch.com.cn/Mag/Cover/2009/0506/1449.html">http://www.businesswatch.com.cn/Mag/Cover/2009/0506/1449.html</a></p>
<p><a href="http://www.businesswatch.com.cn/Mag/Cover/2009/0506/1450.html">http://www.businesswatch.com.cn/Mag/Cover/2009/0506/1450.html</a></p>
<p><a href="http://www.businesswatch.com.cn/Mag/Cover/2009/0506/1451.html">http://www.businesswatch.com.cn/Mag/Cover/2009/0506/1451.html</a></p>
<p>&nbsp;</p>
</div>
<!--end: come_from -->
 <img src ="http://www.cnblogs.com/oscarxie/aggbug/1452827.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47977/" target="_blank">Mono 的Virtual PC 虚拟机</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]7 Useful Tools for Web Development Testing</title><link>http://www.cnblogs.com/oscarxie/archive/2009/04/24/1442903.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Fri, 24 Apr 2009 06:25:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/04/24/1442903.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1442903.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/04/24/1442903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1442903.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1442903.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="word-spacing: 0px; font: 12px/14px verdana; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"> 
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<div class="author-photo" style="border-right: rgb(227,227,227) 1px solid; padding-right: 1px; border-top: rgb(227,227,227) 1px solid; padding-left: 1px; float: left; padding-bottom: 1px; margin: 5px 14px 0px 0px; border-left: rgb(227,227,227) 1px solid; width: 64px; cursor: pointer; padding-top: 1px; border-bottom: rgb(227,227,227) 1px solid; position: relative; height: 64px"><a style="color: rgb(64,158,211); text-decoration: none" href="http://mashable.com/author/ben-parr/">
<div class="entry_author_image" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><img style="border-top-width: 0px; overflow-y: hidden; display: block; border-left-width: 0px; z-index: 1; overflow-x: hidden; border-bottom-width: 0px; width: 64px; position: relative; border-right-width: 0px" alt="" src="http://ec.mashable.com/wp-content/authors/Ben%20Parr-87.jpg" /></div></a>
<div class="author-dropdown" style="padding-right: 0px; padding-left: 0px; z-index: 100; right: -1px; padding-bottom: 0px; margin: 0px; width: 15px; bottom: 0px; padding-top: 0px; position: absolute; height: 15px"><a class="view-my" style="background-position: -213px -296px; overflow-y: hidden; z-index: 2; right: 0px;background-image: url(http://ec.mashable.com/wp-content/themes/v5/img/bg.gif); overflow-x: hidden; width: 15px; color: rgb(64,158,211); bottom: 0px; text-indent: -9999em; background-repeat: no-repeat; position: absolute; height: 15px; text-decoration: none; webkit-background-clip: initial; webkit-background-origin: initial" href="#">View my</a></div></div>
<div class="headline" style="padding-right: 0px; padding-left: 0px; float: right; padding-bottom: 0px; margin: 0px; width: 564px; padding-top: 0px; font-family: arial, helvetica, sans-serif">
<h1 style="padding-right: 0px; padding-left: 0px; min-height: 55px; padding-bottom: 0px; margin: 0px; font: 2.4em/1.1 arial, helvetica, sans-serif; color: rgb(0,126,196); padding-top: 0px"><a class="fn url" title="Permanent Link to 7 Useful Tools for Web Development Testing" style="font-weight: bold; font-size: 0.86em; color: rgb(0,126,196); text-decoration: none" href="http://mashable.com/2009/03/21/tools-web-testing/" rel="bookmark">7 Useful Tools for Web Development Testing</a></h1>
<p class="vcard" style="clear: both; padding-right: 0px; overflow-y: hidden; padding-left: 0px; font-weight: bold; overflow-x: hidden; padding-bottom: 0px; margin: 0px; color: rgb(153,153,153); line-height: 1.5; padding-top: 1px; height: 1%; text-align: justify"><strong class="dtreviewed" style="font-weight: bold; float: left; font-style: normal">March 21st, 2009 | by<span class="Apple-converted-space">&nbsp;</span><a title="Posts by Ben Parr" style="color: rgb(0,126,196); text-decoration: none" href="http://mashable.com/author/ben-parr/">Ben Parr</a></strong><span class="comments" style="padding-right: 0px; background-position: 0px -156px; padding-left: 17px; float: right;background-image: url(http://ec.mashable.com/wp-content/themes/v5/img/bg.gif); padding-bottom: 2px; padding-top: 0px; background-repeat: no-repeat; webkit-background-clip: initial; webkit-background-origin: initial"><a style="color: rgb(0,126,196); text-decoration: none" href="http://mashable.com/2009/03/21/tools-web-testing/#comments" rel="comment"></a><a class="dsq-comment-count" style="color: rgb(0,126,196); text-decoration: none" href="http://mashable.com/2009/03/21/tools-web-testing/#disqus_thread" wpid="113252">30 Comments</a></span></p></div>
<div class="headliner" style="clear: both; border-right: rgb(243,243,243) 0px dotted; padding-right: 0px; border-top: rgb(243,243,243) 0px dotted; padding-left: 0px; padding-bottom: 5px; margin: 0px 0px 15px; border-left: rgb(243,243,243) 0px dotted; width: 100%; padding-top: 0px; border-bottom: rgb(243,243,243) 1px dotted; font-family: arial, helvetica, sans-serif"></div>
<div class="text-content" style="padding-right: 0px; overflow-y: hidden; padding-left: 0px; overflow-x: hidden; padding-bottom: 0px; margin: 0px; width: 100%; padding-top: 0px">
<div style="padding-right: 0px; padding-left: 0px; float: left; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div class="wdt_button" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; margin: 0px; padding-top: 5px">
<div class="bookmark-this" style="padding-right: 0px; background-position: 0% 0%; padding-left: 14px;background-image: url(http://mashable.com/wp-content/plugins/wp-digg-this/xtra/delicious-background.gif); padding-bottom: 0px; margin: 0px; width: 70px; padding-top: 13px; background-repeat: no-repeat; font-family: Arial, sans-serif; position: relative; height: 67px; background-color: transparent; webkit-background-clip: initial; webkit-background-origin: initial"><img style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" height="18" alt="" src="http://mashable.com/wp-content/plugins/wp-digg-this/xtra/delicious-icon.gif" width="18" /><span class="rank" style="font-size: 19px; right: 15px; color: rgb(91,89,89); position: absolute; top: 14px">729</span><a style="font-size: 10px; left: 14px; color: rgb(91,89,89); line-height: 1.3; position: absolute; top: 40px; text-decoration: none" href="http://delicious.com/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fmashable.com%2F2009%2F03%2F21%2Ftools-web-testing%2F&amp;title=" target="_blank">Bookmark to Delicious</a></div></div></div>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"><img class="alignright" title="Web Development HTML Image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; float: right; border-bottom-width: 0px; padding-bottom: 0px; margin: 3px 0px 0px 15px; padding-top: 0px; border-right-width: 0px" alt="Web Development HTML Image" src="http://ec.mashable.com/wp-content/uploads/2009/03/development.jpg" />Before launching any new website, feature, or upgrade, it has to be tested. The worst nightmare of any programmer, designer, or business is to launch a broken website that drives away users and hurts reputations. It will only create more work, more headaches, and lost profits.</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">Luckily, there are many great tools for web development testing. These tools test everything from CSS validation to website speed. Making sure that users and customers have a problem-free experience should be the goal of any website. These tools are the final step in that process.<span id="more-113252"></span></p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">1. WebSitePulse Test Tools</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img class="aligncenter" title="Websitepulse image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="Websitepulse image" src="http://ec.mashable.com/wp-content/uploads/2009/03/websitepulse.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">Want a fast test for response time, file size, and links?<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://www.websitepulse.com/" target="_blank">WebSitePulse Test Tools</a><span class="Apple-converted-space">&nbsp;</span>provides a series of quick and easy-to-use tests that graph out everything from website speed to link errors. It also provides numbers on file sizes, redirect speed, and DNS.</p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">2. XenoCode Browser Sandbox</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img title="XenoCode Browser Sandbox Image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="XenoCode Browser Sandbox Image" src="http://ec.mashable.com/wp-content/uploads/2009/03/xneocode.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">Browser testing is one of the most tedious and frustrating parts of web development. What designer or programmer hasn&#8217;t screamed bloody murder at broken alignments in Internet Explorer<a class="blippr-inline-smiley blippr-inline-smiley-01" style="width: 12px; color: rgb(64,158,211); text-decoration: none! important" href="http://www.blippr.com/apps/336748-Internet-Explorer" target="_blank" rel="http://www.blippr.com/apps/336748-Internet-Explorer.whtml"><img class="wp-smiley" style="border-right: rgb(201,214,221) 0px solid; padding-right: 1px! important; border-top: rgb(201,214,221) 0px solid; display: inline! important; padding-left: 1px! important; padding-bottom: 1px! important; margin: 0px 0px 0px 4px; vertical-align: middle; border-left: rgb(201,214,221) 0px solid; padding-top: 1px! important; border-bottom: rgb(201,214,221) 0px solid; background-color: rgb(255,255,255); webkit-background-clip: initial; webkit-background-origin: initial" alt="Internet Explorer reviews" src="http://static1.blippr.com/images/inline-face_01.png?1237798206" /></a><span class="Apple-converted-space">&nbsp;</span>6? One of the difficult parts of browser testing is that no developer can have every browser type on a single computer for proper testing.</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">Enter<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://www.xenocode.com/browsers/" target="_blank">XenoCode Browser Sandbox</a>, a series of virtual applications that can run all popular browsers simultaneously. It does not even require the installation of software. However, XenoCode<a class="blippr-inline-smiley blippr-inline-smiley-05" style="width: 12px; color: rgb(64,158,211); text-decoration: none! important" href="http://www.blippr.com/apps/336978-Xenocode" target="_blank" rel="http://www.blippr.com/apps/336978-Xenocode.whtml"><img class="wp-smiley" style="border-right: rgb(201,214,221) 0px solid; padding-right: 1px! important; border-top: rgb(201,214,221) 0px solid; display: inline! important; padding-left: 1px! important; padding-bottom: 1px! important; margin: 0px 0px 0px 4px; vertical-align: middle; border-left: rgb(201,214,221) 0px solid; padding-top: 1px! important; border-bottom: rgb(201,214,221) 0px solid; background-color: rgb(255,255,255); webkit-background-clip: initial; webkit-background-origin: initial" alt="Xenocode reviews" src="http://static1.blippr.com/images/inline-face_05.png?1237798206" /></a>&#8217;s Browser Sandbox can be heavy in some browsers and is still lacking in a Mac version.</p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">3. Firebug Firefox Extension</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img title="Firebug image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="Firebug image" src="http://ec.mashable.com/wp-content/uploads/2009/03/firebug.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">The favorite extension of programmers everywhere,<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://getfirebug.com/" target="_blank">Firebug</a><span class="Apple-converted-space">&nbsp;</span>is one of the best applications around for debugging issues with front-end code and CSS. If there&#8217;s any image or style that&#8217;s out of line, checking it out with Firebug is the best response. It&#8217;s even possible to change styles within the extension to see how a website will actually appear in the browser.</p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">4. Load Impact</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img title="Load Impact Image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="Load Impact Image" src="http://ec.mashable.com/wp-content/uploads/2009/03/loadimpact.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">If a website goes viral and Digg<a class="blippr-inline-smiley blippr-inline-smiley-05" style="width: 12px; color: rgb(64,158,211); text-decoration: none! important" href="http://www.blippr.com/apps/336668-Digg" target="_blank" rel="http://www.blippr.com/apps/336668-Digg.whtml"><img class="wp-smiley" style="border-right: rgb(201,214,221) 0px solid; padding-right: 1px! important; border-top: rgb(201,214,221) 0px solid; display: inline! important; padding-left: 1px! important; padding-bottom: 1px! important; margin: 0px 0px 0px 4px; vertical-align: middle; border-left: rgb(201,214,221) 0px solid; padding-top: 1px! important; border-bottom: rgb(201,214,221) 0px solid; background-color: rgb(255,255,255); webkit-background-clip: initial; webkit-background-origin: initial" alt="Digg reviews" src="http://static1.blippr.com/images/inline-face_05.png?1237798206" /></a>, Twitter<a class="blippr-inline-smiley blippr-inline-smiley-07" style="width: 12px; color: rgb(64,158,211); text-decoration: none! important" href="http://www.blippr.com/apps/336651-Twitter" target="_blank" rel="http://www.blippr.com/apps/336651-Twitter.whtml"><img class="wp-smiley" style="border-right: rgb(201,214,221) 0px solid; padding-right: 1px! important; border-top: rgb(201,214,221) 0px solid; display: inline! important; padding-left: 1px! important; padding-bottom: 1px! important; margin: 0px 0px 0px 4px; vertical-align: middle; border-left: rgb(201,214,221) 0px solid; padding-top: 1px! important; border-bottom: rgb(201,214,221) 0px solid; background-color: rgb(255,255,255); webkit-background-clip: initial; webkit-background-origin: initial" alt="Twitter reviews" src="http://static1.blippr.com/images/inline-face_07.png?1237798206" /></a>, and StumbleUpon<a class="blippr-inline-smiley blippr-inline-smiley-05" style="width: 12px; color: rgb(64,158,211); text-decoration: none! important" href="http://www.blippr.com/apps/336717-StumbleUpon" target="_blank" rel="http://www.blippr.com/apps/336717-StumbleUpon.whtml"><img class="wp-smiley" style="border-right: rgb(201,214,221) 0px solid; padding-right: 1px! important; border-top: rgb(201,214,221) 0px solid; display: inline! important; padding-left: 1px! important; padding-bottom: 1px! important; margin: 0px 0px 0px 4px; vertical-align: middle; border-left: rgb(201,214,221) 0px solid; padding-top: 1px! important; border-bottom: rgb(201,214,221) 0px solid; background-color: rgb(255,255,255); webkit-background-clip: initial; webkit-background-origin: initial" alt="StumbleUpon reviews" src="http://static1.blippr.com/images/inline-face_05.png?1237798206" /></a><span class="Apple-converted-space">&nbsp;</span>all converge on it at once, will it be able to handle the stress?<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://loadimpact.com/" target="_blank">Load Impact</a><span class="Apple-converted-space">&nbsp;</span>helps answer that question. It simulates large userload on web servers to determine whether or not they can handle the high traffic load. It comes with a free version and several paid versions.</p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">5. Safari Web Inspector</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img title="Safari Web Inspector Image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="Safari Web Inspector Image" src="http://ec.mashable.com/wp-content/uploads/2009/03/webinspector.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">One of the gems of Apple&#8217;s<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://www.apple.com/safari/" target="_blank">Safari web browser</a><span class="Apple-converted-space">&nbsp;</span>is its<span class="Apple-converted-space">&nbsp;</span><strong style="font-weight: bold; font-style: normal">Web Inspector</strong><span class="Apple-converted-space">&nbsp;</span>feature. Web Inspector, only available after turning on the development tab, displays stylesheets, images, and scripts on any webpage. However, the most useful part of Web Inspector is its Network feature, which shows in real-time the order and speed in which documents and scripts transfer from the server to the browser. Use it to find which scripts, files, or images are placing the most strain on browsers. Then fix it.</p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">6. Web Developer Firefox Extension</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img title="Website Developer Image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="Website Developer Image" src="http://ec.mashable.com/wp-content/uploads/2009/03/webdev.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"><a style="color: rgb(64,158,211); text-decoration: none" href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">Web Developer</a><span class="Apple-converted-space">&nbsp;</span>is a robust Firefox<a class="blippr-inline-smiley blippr-inline-smiley-07" style="width: 12px; color: rgb(64,158,211); text-decoration: none! important" href="http://www.blippr.com/apps/336679-Firefox" target="_blank" rel="http://www.blippr.com/apps/336679-Firefox.whtml"><img class="wp-smiley" style="border-right: rgb(201,214,221) 0px solid; padding-right: 1px! important; border-top: rgb(201,214,221) 0px solid; display: inline! important; padding-left: 1px! important; padding-bottom: 1px! important; margin: 0px 0px 0px 4px; vertical-align: middle; border-left: rgb(201,214,221) 0px solid; padding-top: 1px! important; border-bottom: rgb(201,214,221) 0px solid; background-color: rgb(255,255,255); webkit-background-clip: initial; webkit-background-origin: initial" alt="Firefox reviews" src="http://static1.blippr.com/images/inline-face_07.png?1237798206" /></a><span class="Apple-converted-space">&nbsp;</span>extension that no developer should be without when testing a website. It provides a wide range of tests, including testing for broken images, testing layouts in multiple screen sizes, viewing cookie information, and validating mark-up. It&#8217;s the ultimate testing companion for Firefox users.</p>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<h2 style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 8px; font: bold 1.8em tahoma, arial, sans-serif; color: rgb(128,128,128); padding-top: 0px">7. W3C Validation Services</h2>
<hr style="border-right: rgb(215,221,225) 1px solid; border-top: rgb(215,221,225) 1px solid; border-left: rgb(215,221,225) 1px solid; border-bottom: rgb(215,221,225) 1px solid" />

<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<center><br /><img title="W3C Validator Image" style="border-top-width: 0px; padding-right: 8px; padding-left: 8px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; padding-top: 0px; border-right-width: 0px" alt="W3C Validator Image" src="http://ec.mashable.com/wp-content/uploads/2009/03/wc3validator.jpg" /> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p></center>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">W3C is THE standard in all of web validation. The W3C Validator looks into the markup of any website and display errors based on industry standards. It comes in over a dozen languages and a dozen varieties. Here are some of the most important validators:</p>
<blockquote style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 12px 40px; padding-top: 0px">
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">-<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://validator.w3.org/" target="_blank">W3C Markup Validation</a><br />-<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://jigsaw.w3.org/css-validator/" target="_blank">W3C CSS Validation</a><br />-<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://validator.w3.org/mobile/" target="_blank">W3C mobileOK Checker</a><br />-<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://validator.w3.org/checklink" target="_blank">W3C Link Checker</a><br />-<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://validator.w3.org/feed/" target="_blank">W3C Feed Validation Service</a></p></blockquote>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify">These tools are designed to make websites as fast and bug-free as possible by detecting problems early. At the very least, they will let a developer know whether or not he or she needs to scream at Internet Explorer 6 for a while.</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; line-height: 1.5; padding-top: 0px; text-align: justify"><em style="font-weight: normal; font-style: italic">Image courtesy of<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://www.istockphoto.com/mashableoffer.php" target="_blank">iStockphoto</a>,<span class="Apple-converted-space">&nbsp;</span><a style="color: rgb(64,158,211); text-decoration: none" href="http://www.istockphoto.com/user_view.php?id=402646" target="_blank">karimhesham</a></em></p></div>
<p>&nbsp;</p>
<p><a href="http://mashable.com/2009/03/21/tools-web-testing/">http://mashable.com/2009/03/21/tools-web-testing/</a></span></p><img src ="http://www.cnblogs.com/oscarxie/aggbug/1442903.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47970/" target="_blank">19岁天才黑客发布首个iPhone 3GS破解软件</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>我所用到的Google产品</title><link>http://www.cnblogs.com/oscarxie/archive/2009/04/01/1427425.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 01 Apr 2009 10:09:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/04/01/1427425.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1427425.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/04/01/1427425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1427425.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1427425.html</trackback:ping><description><![CDATA[<p>虽然Google的产品众多，上次有提到Google常用的产品有50多个（<a href="http://www.cnblogs.com/oscarxie/archive/2008/06/22/1227566.html">57个常用GOOGLE 产品，你知道几个&#8230;&#8230; </a>），查看了下自己用了哪些产品，看来用到的还是很少啊。</p>
<p><img height="409" alt="" src="http://lh3.ggpht.com/_e6uoVHEz4PA/SdHNcz_WE4I/AAAAAAAAB9A/LZTJnRU2iI4/Google%20Account.png.jpg" width="1012" border="0" /></p>
 <img src ="http://www.cnblogs.com/oscarxie/aggbug/1427425.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47969/" target="_blank">新浪邮箱大本营粉墨登场！Sina.cn开放注册</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Google财经香港版上线，香港路演</title><link>http://www.cnblogs.com/oscarxie/archive/2009/04/01/1426557.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 01 Apr 2009 02:13:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/04/01/1426557.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1426557.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/04/01/1426557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1426557.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1426557.html</trackback:ping><description><![CDATA[也许是Google音乐上线太吸引人了，大家的目光都聚焦到了Google音乐上，谷歌音乐搜索在中国发布，是谷歌在全球范围唯一推出这一服务的国家。 
<p>(<a href="http://www.far2go.cn/blog/post/Google-music-Launch.html">http://www.far2go.cn/blog/post/Google-music-Launch.html</a>，<a href="http://googlechinablog.com/2009/03/blog-post_30.html">http://googlechinablog.com/2009/03/blog-post_30.html</a>)</p>
<p>其实在3月30号这一天，Google还发布了财经香港版，<a href="http://www.google.com.hk/finance">http://www.google.com.hk/finance</a>，</p>
<p><img border="0" alt="" src="http://lh5.ggpht.com/_e6uoVHEz4PA/SdIdM4v3lBI/AAAAAAAACA8/qFdBLGc0OLM/s640/Google%20Finance%20HK.jpg" width="616" height="640" /></p>
<p>我非常有幸全程参与了Google财经香港版的测试工作，与北京，台湾及NYC,MTV的同事们合作。</p>
<p><embed height="295" type="application/x-shockwave-flash" width="480" src="http://www.youtube.com/v/SzOJghaBYdQ&amp;hl=zh_CN&amp;fs=1" allowfullscreen="true" allowscriptaccess="always"></embed><br />谷歌财经官方介绍视频(ps:不过最近youtube被封了) 
<p><strong>Google财经香港版提供的功能如下:</strong></p>
<p>1.<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: collapse; font: 13px arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" class="Apple-style-span">HK<span class="Apple-converted-space">&nbsp;</span>stock listings in Traditional Chinese w/ 10-year price data</span>（香港繁体版股市信息包括10年历史数据）</p>
<p>2.<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: collapse; font: 13px arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" class="Apple-style-span">Interactive chart w/ related local Chinese news</span>（集成新闻香港版信息）</p>
<p>3.<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: collapse; font: 13px arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" class="Apple-style-span">Stock screener (股票篩選器) covering<span class="Apple-converted-space">&nbsp;</span>HK, China and US</span></p>
<p>4.<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: collapse; font: 13px arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" class="Apple-style-span">Portfolio (投資組合)</span></p>
<p>5.<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: collapse; font: 13px arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" class="Apple-style-span">Local sector classification (分類概覽)</span></p>
<p>6.<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: collapse; font: 13px arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" class="Apple-style-span">Financial statements of<span class="Apple-converted-space">&nbsp;</span>HK<span class="Apple-converted-space">&nbsp;</span>stocks (財務摘要)</span></p>
<p><strong>Google财经在香港的推广活动：</strong></p>
<p><img border="0" alt="" src="http://lh6.ggpht.com/_CJboq6YxomI/SdHKQ_il3-I/AAAAAAAADns/WpZm7jlTkMw/IMG_0046.JPG" width="427" height="640" />&nbsp;</p>
<p><img border="0" alt="" src="http://lh5.ggpht.com/_CJboq6YxomI/SdHKRHHLJFI/AAAAAAAADn0/Ze3w6eBnJWI/IMG_0049.JPG" width="640" height="427" /></p>
<p><img border="0" alt="" src="http://lh4.ggpht.com/_CJboq6YxomI/SdHKSDVGAvI/AAAAAAAADn8/rL6R8eo0yME/IMG_0050.JPG" width="640" height="427" /></p>
<p><img border="0" alt="" src="http://lh3.ggpht.com/_CJboq6YxomI/SdHKSEFlEMI/AAAAAAAADoE/61kIpiZDmic/IMG_0051.JPG" /></p>
<p><img border="0" alt="" src="http://lh4.ggpht.com/_CJboq6YxomI/SdHKS6x7xkI/AAAAAAAADoc/qbcMy_ooPiE/IMG_0207.JPG" /></p>
<p><img border="0" alt="" src="http://lh4.ggpht.com/_CJboq6YxomI/SdHKWx1328I/AAAAAAAADqE/isumDNTZMvI/IMG_0362.JPG" width="640" height="427" /></p>
<p><img border="0" alt="" src="http://lh4.ggpht.com/_CJboq6YxomI/SdHKXvAM2hI/AAAAAAAADqc/QbY33e1SO84/IMG_0430.JPG" width="640" height="427" /></p>
<p><img border="0" alt="" src="http://lh6.ggpht.com/_CJboq6YxomI/SdHKQOXEBAI/AAAAAAAADnc/totlbfErV08/IMG_0015.JPG" width="640" height="427" /></p>
<p><img border="0" alt="" src="http://lh3.ggpht.com/_e6uoVHEz4PA/SdLQZzz5MwI/AAAAAAAACB0/37rzOzyWcKU/s800/t-shirt.jpeg" width="800" height="317" /></p> <img src ="http://www.cnblogs.com/oscarxie/aggbug/1426557.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47969/" target="_blank">新浪邮箱大本营粉墨登场！Sina.cn开放注册</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>为装修奔波</title><link>http://www.cnblogs.com/oscarxie/archive/2009/03/19/1416785.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Thu, 19 Mar 2009 06:39:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/03/19/1416785.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1416785.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/03/19/1416785.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1416785.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1416785.html</trackback:ping><description><![CDATA[<p>自从去年11月底交房后，一直拖到过年后才考虑，还是住自己的窝好，那么就要赶紧装修了，平时除了周末，又没有其他时间，草草找了家号称口碑不错的装修公司，来回2次就定下来了，终于在3月开初装修新家了。之后每个周末奔波于各个团购会和建材市场，从最初的门外汉到逐渐对各种装修知识的了解，确实是丰富了人生的经历。抽空看了很多装修日记，从中也获知了家装建材的种种内幕，有时常常觉得，要是不做IT民工，也可以去卖建材。</p>
<p>发一张设计图以便回顾：</p>
<p><img height="600" alt="" src="http://lh6.ggpht.com/_e6uoVHEz4PA/SaKgYXQ610I/AAAAAAAAB4M/IodRFPnDjPU/s800/DSCF3052.JPG" width="800" border="0" /></p>
<p>&nbsp;</p>
 <img src ="http://www.cnblogs.com/oscarxie/aggbug/1416785.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]WatiN：在.NET中测试Web应用程序</title><link>http://www.cnblogs.com/oscarxie/archive/2009/02/27/1400013.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Fri, 27 Feb 2009 14:07:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/02/27/1400013.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1400013.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/02/27/1400013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1400013.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1400013.html</trackback:ping><description><![CDATA[<p class="info">作者 <strong>Al Tenhundfeld</strong>译者 <strong>赵劼</strong> 发布于 2009年2月19日 上午9时31分 </p>
<dl class="tags2">
<dt class="community">社区
<dd><a id="740" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/dotnet" name="dotnet">.NET</a>
<dt class="topics">主题
<dd><a id="837" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/software_testing" name="software_testing">软件测试</a>,
<dd><a id="845" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/unit_testing" name="unit_testing">单元测试</a>
<dt class="topics">标签
<dd><a id="3,704" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/acceptancetesting" name="acceptancetesting">验收测试</a> </dd></dl>
<p><a href="http://watin.sourceforge.net/">WatiN</a>是一个在.NET中自动控制浏览器的开源类库。WatiN从流行于Ruby社区的Watir项目中得到启发，通过与浏览器的交互简化了对Web应用程序的自动测试。WatiN使用C#编写，但是可以使用任何.NET语言编写测试。目前它只支持Windows平台。</p>
<p>与其它.NET平台上的解决方案相比，WatiN 1.0已经有足够丰富的功能，并逐渐成为流行的用户界面与用户验收测试工具，可惜它只能直接支持IE浏览器的自动操作。虽然仍处于开发阶段，WatiN 2.0已经支持对IE及FireFox 2.0/3.0的自动操作。作为最新的社区预览版本，<a href="http://sourceforge.net/project/showfiles.php?group_id=167632&amp;package_id=266951&amp;release_id=660423">WatiN 2.0 CTP 3，已于2月11日发布</a>。</p>
<p>CTP 3着重于对FireFox提供的更好支持，并包含以下的改进：</p>
<blockquote>
<ul>
    <li>为Mozilla.Frame实现了新的特性，可访问Frame中文档内部的元素。</li>
    <li>为Mozilla.Frame实现了新的特性，可访问IFrame中文档内部的元素。</li>
    <li>为Mozilla.Document（即FireFox和Frame）实现了Eval功能，并增加了IFrame接口。</li>
    <li>修补了一个bug：在某些情况下会导致Form.Submit方法不等待一个潜在PostBack及页面加载过程的完成。 </li>
</ul>
</blockquote>
<p>WatiN通过与浏览器的交互，以及对DOM结构的处理和验证来建立断言，不过WatiN 2.0引入了一个抽象层以便编写跨浏览器的测试。下面的代码示范了一种在Google中搜索WatiN，并判断&#8220;WatiN&#8221;字样出现在结果中的做法。可见，只需修改一点点代码，就能针对IE和FireFox进行相同的测试了。</p>
<p><img alt="" src="http://tenhundfeld.org/media/WatiNSample.PNG" /></p>
<p>手动编写WatiN测试有些令人厌烦，因此社区里又出现了另一个开源项目，能够从浏览器中记录并创建WatiN测试。<a href="http://watintestrecord.sourceforge.net/">WatiN Test Recorder</a>并没有发布新的版本，不过它的2.0版本正处于开发过程中，并已承诺会带来一些重大的增强。</p>
<p><strong>查看英文原文：</strong><a href="http://www.infoq.com/news/2009/02/watin">WatiN: Web Application Testing in .NET</a></p>
  <img src ="http://www.cnblogs.com/oscarxie/aggbug/1400013.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47965/" target="_blank">Google App Engine宕机6小时——云的安全在哪里？</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>iResearch_2008年度中国互联网经济及核心行业核心数据发布</title><link>http://www.cnblogs.com/oscarxie/archive/2009/02/18/1393532.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 18 Feb 2009 15:21:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/02/18/1393532.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1393532.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/02/18/1393532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1393532.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1393532.html</trackback:ping><description><![CDATA[<p><a href="http://www.iresearch.com.cn/pdf/2008_Q4.pdf" target="_blank">2008年度中国互联网经济及核心行业核心数据发布</a></p>
<div class="cd_caption">
<div class="more"><a href="http://www.iresearch.com.cn/pptshow/cd_081022.html" target="_blank">全屏播放</a> </div>
PPT演示 </div>
<div class="cd_content"><a href="http://www.iresearch.com.cn/coredata/2008q4.asp">http://www.iresearch.com.cn/coredata/2008q4.asp</a></div>  <img src ="http://www.cnblogs.com/oscarxie/aggbug/1393532.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47961/" target="_blank">微软新推社交网站Windows Live Planet</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]敏捷风险管理</title><link>http://www.cnblogs.com/oscarxie/archive/2009/02/18/1386389.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 18 Feb 2009 02:28:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/02/18/1386389.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1386389.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/02/18/1386389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1386389.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1386389.html</trackback:ping><description><![CDATA[<p class="info">作者 <strong>Vikas Hazrati</strong>译者 <strong>麦天志</strong> 发布于 2009年2月1日 下午7时22分 </p>
<dl class="tags2">
<dt class="community">社区
<dd><a id="743" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/agile" name="agile">Agile</a>
<dt class="topics">主题
<dd><a id="811" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/agile_enterprise" name="agile_enterprise">企业级敏捷</a>
<dt class="topics">标签
<dd><a id="799" onclick="try {CategoryPopup.showPopup(this);} catch(e) {}; return false;" href="http://www.infoq.com/cn/management" name="management">管理</a> </dd></dl>
<p><a id="i1jx" title="風險管理" href="http://zh.wikipedia.org/wiki/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86">风险管理</a>包括风险评估、舒缓风险影响以及监控风险。很多敏捷用家相信敏捷开发项目风险管理过程跟传统项目差不多，虽然这过程在敏捷的内容中较为轻盈，但是在找寻、过滤、优先化以及制造解决方案上的步骤跟传统项目中很接近。</p>
<p>Mike Cottmeyer提出以敏捷开发去识别和舒缓风险影响<a id="inp2" title="更為有效" href="http://www.leadingagile.com/2008/05/agile-is-risk-management.html">更为有效</a>，他指出：</p>
<blockquote>敏捷开发方式之所以能有效管理风险因为风险管理过程建立在我们执行项目的结构上，这隐含的意思就是风险在项目中无处不在，风险清单不能包括所有风险，也不 能透过团队会议和定期的风险评估来减轻风险，风险处理必须是不能抽离的思想，我们减轻风险的策略不是处于项目以外，而是影响着如何规划和安排工作的本质。<br />
</blockquote>
<p>他把<a id="nwte" title="风险分成三类" href="http://www.leadingagile.com/search/label/risk%20management">风险分成三类</a>：</p>
<ul>
    <li><strong>业务风险</strong> &#8211; 涉及项目付运能否带来它所预期的价值</li>
    <li><strong>技术风险</strong> &#8211; 涉及技术方案在若干时间及资金下的可行性</li>
    <li><strong>后勤风险</strong> &#8211; 涉及人与其他基建之间的假设 </li>
</ul>
<p>根据Mike所说，敏捷开发的本质就是要求频密的付运、定时的检察和调整，这本身已经是风险管理。<br />
<br />
但是也有人认为敏捷开发不是固有地处理风险。</p>
<p><a id="ktrj" title="Jurgen Appelo" href="http://profile.typepad.com/jurgenappelo">Jurgen Appelo</a>认为敏捷项目经常缺乏风险的关注。</p>
<p>他认为，</p>
<blockquote>Prince2、PMBOK、CMMI都有包含风险管理的部份，但敏捷方法的书本上就很少明确地看到风险管理的内容，对此我感到莫名其妙。<br />
</blockquote>
<p>他同時指出，<a id="pypx" title="項目經理經常埋首在項目裡" href="http://www.noop.nl/2008/06/agile-risk-management.html">项目经理经常埋头在项目里</a>，而忽略了整体宏观形势，这导致严重缺乏对风险管理的关注。</p>
<p>另外，<a id="i2gj" title="James Shore" href="http://jamesshore.com/">James Shore</a>认为有效的风险管理能帮助团队作出更实在的承诺，他建议使用<a id="i-q1" title="風險倍數（risk multiplier）和Burn-up圖" href="http://jamesshore.com/Blog/Use-Risk-Management-to-Make-Solid-Commitments.html">风险倍数（risk multiplier）和Burn-up图</a>来管理项目有关的风险。</p>
<blockquote>风险倍数包括常见的风险，例如人事变动、要求改变、工作上的障碍之类，这些风险倍数让你更准确地于设定日期和估计需要多少故事点数（story potints）。<br />
</blockquote>
<p>James建议在团队使用较为<a id="w3qz" title="精確的開發過程" href="http://jamesshore.com/Blog/Formality%20Is%20Not%20Rigor.html">精确的开发过程</a>（相对于风险较高的开发过程，可参考James网站上<a id="h2oy" title="這例子" href="http://jamesshore.com/Blog/Estimate-Inflation-A-Cautionary-Tale.html">这例子</a>），而且速度（velocity）固定、每个故事都在迭代完结时做到"Done Done"（不仅完成客户需要的功能，而且没留下支持团队的工作，原文出至于James的网站，亦可参考"<a id="e67i" title="The Power of Done" href="http://www.infoq.com/cn/news/2008/10/PowerOfDone">The Power of Done</a>"一文）的情况下使用以下的风险倍数。</p>
<p style="margin-left: 80px"><strong>风险倍数</strong><strong><br />
</strong></p>
<table border="1">
    <tr>
            <td><strong>机会率</strong></td>
            <td><strong>精确的开发过程所使用的倍数</strong></td>
            <td><strong>內容</strong></td>
        </tr>
        <tr>
            <td>10%</td>
            <td>1</td>
            <td>几乎没可能</td>
        </tr>
        <tr>
            <td>50%</td>
            <td>1.4</td>
            <td>伸延目标--只得一半机会，有机会再去完成</td>
        </tr>
        <tr>
            <td>90%</td>
            <td>1.8</td>
            <td>几乎可以成事的承诺</td>
        </tr>
    </table>
<p>（这些倍数来至DeMarco和Tim Lister的RISKOLOGY模拟器（详文可参考「与熊共舞」一书）以及<a id="omg6" title="Todd Little的分析数据" href="http://www.toddlittleweb.com/Papers/Agility,%20Uncertainty%20and%20Estimation.pdf">Todd Little的分析数据</a>）</p>
<p>这风险倍数使用方式如下：<br />
<br />
（假设团队的速度为14，十个迭代后发布的话，那么当前可运用的故事点数有140点）</p>
<table border="1">
    <tr>
            <td><strong>机会率</strong></td>
            <td><strong>能完成的故事点数</strong></td>
            <td><strong>內容</strong></td>
        </tr>
        <tr>
            <td>10%</td>
            <td>140 (140 &#247; 1)</td>
            <td>几乎没可能</td>
        </tr>
        <tr>
            <td>50%</td>
            <td>100 (140 &#247; 1.4)</td>
            <td>伸延目标--只得一半机会，有机会再去完成</td>
        </tr>
        <tr>
            <td>90%</td>
            <td>78 (140 &#247; 1.8)</td>
            <td>几乎可以成事的承诺</td>
        </tr>
    </table>
<p>从以上例子中：</p>
<blockquote>让你可以跟项目有关人士和管理人员说：「我们几乎肯定会在发布前完成当中的78点，所以我们先承诺完成功能A、B和C，我们有一半机会能完成总共100点，所以我们安排功能X、Y和Z作为伸延目标，完成好A、B和C之后再去完成他们的。」</blockquote>
<p>所以风险管理在敏捷项目中就如传统项目一样，都是核心部份，重点在于适当的重视、有效地处理而基于这里作出承诺。</p>
<p><strong id="n2fn0">查看英文原文</strong>：<a id="jby_" title="Agile Risk Management" href="http://www.infoq.com/news/2009/01/agile-risk-management">Agile Risk Management</a><br />
<br />
译者附注：<br />
<br />
James的网站有更多关于其风险倍数的内容，亦可参考他所写的"The Art of Agile Development"一书，特别是此文没有包括的Burn-up图。此外，风险倍数的使用还有其他注意的地方：</p>
<ul>
    <li>「承诺」背后的意义，值得思考的就是「承诺」到底是什么、管理人员如何理解和使用这里作出的「承诺」。要知道，这些还是机会率，如果最后变成合约，又或者客户拿来争议的「论点」，那么也是没有意思的。</li>
    <li>风险倍数的由来，这里的1、1.4和1.8是如何得出呢？到底又有多适合您的项目情况呢？就连<a id="rtnv" title="James自己的网页" href="http://jamesshore.com/Blog/Use-Risk-Management-to-Make-Solid-Commitments.html">James自己的网页</a>上 也有这样一句 "I'm guessing somewhat at how accurately they apply to XP. The most accurate approach is to calculate your own risk multipliers from past project history, but most companies don't track that data" （我在猜这些数字对极限编程的情况有多准确，最准确的方式还是根据过往项目纪录来计算您的风险倍数，但很多公司根本不会记下这些数据），所以千万不要把这 些数字看成什么魔幻数字。</li>
    <li>延续上面这点，如果公司为了提供「承诺」而去收集项目相关数据，这是否对容户有所得益呢？容户为什么要投资金钱给开发公司去收集数据？客户又如何可以知道投资金钱让公司收集这些数据可以有所回报呢？ </li>
</ul>
<p>其他方法如Prince2、PMBOK或CMMI等对风险管理都有值得参考之处，而跟敏捷有关的独特观点则是减少开发上浪费而没必要的过程和活动，之前在「<a id="c9g2" title="Scrum的風險管理" href="http://www.infoq.com/cn/news/2008/08/managing-risk-with-scrum">Scrum的风险管理</a>」也有相关的讨论。<br />
<br />
还有，要好好管理风险，评估形势的能力很重要，甚至比其方法更重要，例如如何猜量我们是否在"风险较高进行开发"呢？这里其实可以套用<a id="luzp" title="Stacey模型和Cynefin模型" href="http://www.infoq.com/cn/news/2008/11/agile-hongkang-200810">Stacey模型和Cynefin模型</a>来辅助。</p>
<p>PS:</p>
<p>&nbsp;</p>
<p><span id="quote_38511">《Rapid Development》一书中对Risk Management作出了详细讲解<br />
<br />
进度计划风险的完整列表：<br />
计划编制风险：<br />
1，计划、资源和产品定义全凭客户或上层领导口头指令，并且不完全一致<br />
2，计划是优化的，是&#8220;最佳状态&#8221;（但不现实，只能算是&#8220;期望状态&#8221;）<br />
3，计划忽略了必要的任务<br />
4，计划基于使用特定的小组成员，而那个小组成员其实指望不上<br />
5，在限定的时间内无法建成已定规模大小的产品<br />
6，产品规模比估计的要大<br />
7，工作量大于估算数<br />
8，进度已经延迟的项目在重新评估时过于优化或忽视项目历史<br />
9，过度的进度压力造成生产率下降<br />
10，目标日期提前，但没有相应地调整产品范围或可用资源<br />
11，一个任务的延迟导致相关任务的连锁反应<br />
12，涉足不熟悉的产品领域，花费在设计和实现上的时间比预期的要多<br />
组织和管理：<br />
1，项目缺乏一个有凝聚力的高层领导人<br />
2，由于前期乏力，项目长时间被搁置<br />
3，解雇和消减开支导致项目小组能力下降<br />
4，仅由管理层或市场人员进行技术决策，导致计划进度延长<br />
5，低效的项目组结构降低生产率<br />
6，管理层审查/决策的周期比预期时间长<br />
7，预算消减打乱项目计划<br />
8，管理层做出了打击项目组积极性的决定<br />
9，非技术的第三方的工作比预期长<br />
10，计划性太差，无法适应预期的开发速度<br />
11，项目计划由于压力而放弃，导致开发混乱、低效<br />
12，管理层强调英雄主义，而忽视客观确切的状态报告，这会降低发现和改正问题的能力<br />
开发环境：<br />
1，设施没有及时到位<br />
2，设施到位，但不配套<br />
3，设施拥挤、杂乱或者破损<br />
4，开发工具未能及时到位<br />
5，开发工具不如期望地那样有效，开发人员需要时间创建工作环境或者切换新的工具<br />
6，开发工具的选择不是基于技术需求，不能提供计划要求的性能<br />
7，新开发工具的学习期比预期的长，内容繁多<br />
最终用户<br />
1，最终用户坚持新的需求<br />
2，最终用户对于最后交付的产品不满意，要求重新设计和重做<br />
3，最终用户不买进项目产品，无法提供后续支持<br />
4，最终用户的意见未被采纳，造成产品最终无法满足用户期望，而必须重做<br />
客户<br />
1，客户坚持新的需求<br />
2，客户对规划、原型和规格的审核/决策周期比预期的要长<br />
3，客户没有或不能参与规划、原型和规格的审核，导致需求不稳定和耗时的变更<br />
4，客户答复的时间比预期长<br />
5，客户坚持技术决策而导致进度计划延长<br />
6，客户对开发进度管理过细，导致实际进展缓慢<br />
7，客户提供的组件无法与开发的产品匹配，导致额外的设计和集成工作<br />
8，客户提供的组件质量欠佳，导致额外的测试、设计和集成工作，以及额外的客户关系管理工作<br />
9，客户要求的支持工具和环境不兼容、性能差或者功能不完善，导致生产率降低<br />
10，客户不接受交付的软件，尽管它满足了所有的规格<br />
11，客户期望的开发速度是开发人员无法达到的<br />
承包商<br />
1，承包商没有按承诺交付组件<br />
2，承包商递交的组件质量低下无法接收，必须花时间改进质量<br />
3，承包商没有买进项目开发需要的工具，进而无法提供需要的性能水平<br />
需求<br />
1，需求已经成为项目基准，但变化还在继续<br />
2，需求定义欠佳，而进一步的定义会扩展项目范畴<br />
3，添加额外的需求<br />
4，产品定义含混的部分比期望需要更多的时间<br />
产品<br />
1，错误发生率高的模块需要比预期更多的测试、设计和实现工作<br />
2，校正质量低下不可接受的产品，需要比预期更多的测试、设计和实现工作<br />
3，在一个或多个新兴领域推广计算机技术使得计划进度的延长不可预期<br />
4，由于软件功能的错误，需要重新设计和实现<br />
5，开发额外不需要的功能（镀金）延长了计划进度<br />
6，要满足产品规模与速度要求，需要比预期更多的时间，包括重新设计和实现的时间<br />
7，严格要求与现有系统兼容，需要进行比预期更多的测试、设计和实现工作<br />
8，要求与其他系统、其他复杂系统或不受本项目组控制的系统相连，导致无法预料的设计、实现和测试工作<br />
9，要求在不同操作系统下运行将花费比预期更长的时间<br />
10，在不熟悉或未经检验的软件环境中运行产生未预料到的问题<br />
11，在不熟悉或未经检验的硬件环境中运行产生未预料到的问题<br />
12，开发一种对组织全新的模块将比预期花费更长时间<br />
13，依赖正在开发中的技术将延长计划进度<br />
外部环境<br />
1，产品依赖政府规章，而规章的改变将是不可预期的<br />
2，产品依赖草拟中的技术标准，而最后的标准将是不可预期的<br />
人员<br />
1，招聘人员所花时间比预期的长<br />
2，作为先决条件的任务不能按时完成<br />
3，开发人员和管理层之间关系不佳导致决策缓慢，影响全局<br />
4，项目组成员没有全身心投入项目，进而无法达到需要的产品性能水平<br />
5，缺乏激励措施，士气低下，降低了生产能力<br />
6，缺乏必要的规范，增加了工作失误与重复工作<br />
7，某些人需要更多时间适应不熟悉的软件工具和环境<br />
8，某些人需要更多时间适应不熟悉的硬件环境<br />
9，某些人需要更多时间适应不熟悉的编程语言<br />
10，项目结束前，合同制人员离开团队<br />
11，项目结束前，雇员辞职<br />
12，项目后期加入新的开发人员，额外的培训和沟通降低现有成员的效率<br />
13，项目组成员不能有效地一起工作<br />
14，由于项目组成员间的冲突，导致沟通不畅、设计欠佳、接口错误和额外的重复工作<br />
15，有问题的成员没有调离项目组，损害了项目组其他成员的积极性<br />
16，项目的最佳人选未能加入项目组<br />
17，项目的最佳人选已加入项目组，但因政治或其他原因未能合理使用<br />
18，没有找到项目急需的具有特定技能的人<br />
19，关键人物只能兼职参与<br />
20，项目人员不足<br />
21，任务的分配与人员技能不匹配<br />
22，人员工作的进展比预期的慢<br />
23，项目管理人员怠工导致计划和进度失效<br />
24，技术人员怠工导致工作遗漏或质量低下，工作需要重做<br />
设计和实现<br />
1，设计过于简单，无法确定主要事件，并导致重新设计和实现<br />
2，设计过于复杂，导致一些不必要的工作，影响实现效率<br />
3，设计质量低下，导致重复设计和实现<br />
4，使用不熟悉的方法，导致额外的培训时间，并重犯前期使用这种方法时导致的错误<br />
5，产品采用低级语言来实施，导致生产率比预期的低<br />
6，一些必要的功能无法使用现有的代码和库实现，开发人员必须使用新的库或者自行开发必要的功能<br />
7，代码和库质量低下，导致需要额外的测试、错误修正或重做<br />
8，过高妒忌了增强型工具对计划进度的节省量<br />
9，分别开发的模块无法有效集成，需要重新设计或重做<br />
过程<br />
1，大量的纸面工作导致进程比预期的慢<br />
2，进程跟踪不准确，导致无法预知项目是否已落后于计划进度<br />
3，前期的质量保证行为不真实，导致后期的重复工作<br />
4，质量跟踪不准确，导致无法得知影响进度的质量问题<br />
5，太不正规，导致沟通不足、质量问题和工作重做<br />
6，过于正规，导致过多耗时无用的工作<br />
7，向管理层撰写进程报告占用的开发人员的时间比预期的多<br />
8，风险管理粗心，导致没有发现重大的项目风险<br />
9，软件项目风险管理花费的时间比预期的多 </span></p>
  <img src ="http://www.cnblogs.com/oscarxie/aggbug/1386389.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47961/" target="_blank">微软新推社交网站Windows Live Planet</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]如何坚持TDD：使用者出现的问题以及解决方案</title><link>http://www.cnblogs.com/oscarxie/archive/2009/02/11/1386385.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 11 Feb 2009 13:37:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/02/11/1386385.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1386385.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/02/11/1386385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1386385.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1386385.html</trackback:ping><description><![CDATA[<p class="info">作者 <strong>Mark Levison</strong>译者 <strong>张晓庆</strong> 发布于 2009年2月3日 上午2时11分 </p>
<p>我们组织里曾有许多团队努力采用测试驱动开发（TDD）[1]。偶尔会有一两个开发者成功，但是大多数都失败了。为了更好地找出原因，我调查了团队 的一些成员，发现即使经过了课堂培训，还有更多的事情需要做。虽然这里介绍的问题和想法只适用于中大型的公司，但理解这一点能够帮我们在组织中更好地引入 TDD。</p>
<p>我对组员（他们全都接受过培训）的调查显示，以下问题影响了他们：</p>
<ul>
    <li>由于经验不足，大家发现自己直接TDD比较困难。<br />
    &nbsp;</li>
    <li>TDD培训的例子比实际应用简单得多。<br />
    &nbsp;</li>
    <li>需要更多的时间来实验和尝试，不要有赶紧发布软件的压力。<br />
    &nbsp;</li>
    <li>实际中应用的语言，比如Visual Basic和JavaScript，在单元测试文档或者课堂练习中从来不会用到。<br />
    &nbsp;</li>
    <li>常常会碰到很多遗留代码，而培训时不会介绍如何改进这些代码。<br />
    &nbsp;</li>
    <li>永远没有足够的时间用来学习──随时都有尽早交付产品的（人为的）压力，于是没有时间学习提高自己。 </li>
</ul>
<h3>隐藏的问题</h3>
<p>我们已经列举了这么多症状，那么冰山下面隐藏的问题是什么呢？</p>
<p>测试驱动开发并不是很难学。学习阶段（指形成根深蒂固的习惯的这段时间）一般会持续2到4个月，期间生产效率有所降低[2]。最终的<a href="http://www.notesfromatooluser.com/2008/10/advantages-of-tdd.html" target="_blank">好处</a>显而易见，开发者也能自己保持该项技术，但问题是：怎么才能做到这样？很多开发者仅仅几天之后就放弃了。</p>
<p>就我见过的方法而言，大多数依赖于课堂培训（或者e-learning）和一对一的辅导。如果做得好的话，这些方法当然不错，可以作为整个解决方案的一部分，但是我认为还需要更多的方法。</p>
<p>课程培训有两个主要的问题：例子太简单，与实际问题关系不大；给大家练习的机会不多。</p>
<p>在线培训（<a href="http://objectmentor.com/omTraining/agile_catalog.html" target="_blank">Object Mentor</a>和<a href="https://elearning.industriallogic.com/gh/submit?Action=AlbumContentsAction&amp;album=before&amp;devLanguage=Java" target="_blank">Industrial Logic</a>，以及其它机构提供的培训），其优点是更有深度。然而练习的机会仍然不多。而且在这些课程里，你与其他学生通常没有交互。听一听你同学和同事的问题，能够加深你的理解。</p>
<p>一对一的辅导只能用于团队中的几个人，很难推而广之。在大型企业里面，专家只有几个，而需要帮助的人有成千上万，所以一对一的辅导更是困难。</p>
<p>看书是个很好的方法，但是很少有开发者喜欢通过读书学习TDD技术，即使有些人发现看书可以缓慢提高其TDD水平。与其它在线教程类似，看书仍然是只能一个人学习。</p>
<p>最后：遗留代码使得TDD难上加难。开发者当然会问这样的问题：&#8220;这些对象紧密耦合，怎样才能测试它们？这些代码太复杂了，怎样才能测试这个算法？&#8221;</p>
<h4>一个解决方法</h4>
<p>那怎样才是好的解决办法呢？前面的方法主要有两个问题：没有深度、缺乏协作。一个完整的解决方案需要结合使用多种学习模式，并需要包含以下多种因素。</p>
<ul>
    <li><strong>课堂培训</strong>——开发者需要对TDD有个基本的理解，对<strong>多数人</strong>来说，课堂培训仍然是最好的方法。但是需要知道的是，培训本身并不能让人学会并使用TDD。<br />
    &nbsp;</li>
    <li><strong>在线培训——</strong>这有助于加深基本概念的了解。<strong>但在所有这些方法中，这一种是可选的。</strong><br />
    &nbsp;</li>
    <li><strong>耐心</strong>——学习并使用TDD需要花费一定的时间，这个时间可能比你计划的更多一些。<br />
    &nbsp;</li>
    <li><strong>衡量测试覆盖率</strong>——使用代码覆盖工具（比如<a href="http://emma.sourceforge.net/" target="_blank">Emma</a>、<a href="http://cobertura.sourceforge.net/" target="_blank">Cobetura</a>、<a href="http://ncover.sourceforge.net/" target="_blank">NCover</a>...）并向组员说明，衡量覆盖率可以让我们知道是否变得好些了，还是变得更糟了。很明显，这没法衡量测试的质量，因此只能用作参考。<br />
    &nbsp;</li>
    <li><strong>内心感到自豪</strong>——开发人员需要知道什么样的代码和测试才是简单的、干净的，并需要感到花时间那么做是值得的。Bob Martin刚刚写了一本新书《<a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" target="_blank">Clean Code</a>》，很好地回答了这个问题。<br />
    &nbsp;</li>
    <li><strong>管理层的支持</strong>—— 开发人员需要管理层明确表态，说他们知道转向TDD会花费一定时间，并会&#8220;降低&#8221;团队效率[3]。他们需要澄清相对于产出速度和不断累积的技术债，他们更 看中的是质量。当不断地生产、生产、生产时，多数开发人员会有压力，所以管理层需要不止一次地重复这句话。说这句话的人等级越高（最好是来自最高层的执行 官），就会有越多的人去听。 </li>
</ul>
<p>&nbsp;</p>
<ul>
    <li><strong>结对编程——</strong>如果你发现自己停滞不前、不知道下一步该做什么，与别人一块编程通常会有所帮助，即使他是个新手，也会使你受益颇多。<br />
    &nbsp;</li>
    <li><strong>社区</strong>——在你的组织里（或者城市里）组建社区，大家互相分享经验。社区可以让你与其他正在学习使用TDD的人通过网络保持联系，可以让大家互相学习成功的经验和失败的教训，社区还能够培养TDD需要的文化。此外，社区提供了一个机会，让大家能够分享新的想法。<br />
    &nbsp;</li>
    <li><strong>编程道场</strong>——是大家在一块练习解决小问题的地方。编程道场提供了一个安全、协作的环境，让大家作为团队一块研究问题，而没必要真正解决这些问题。<br />
    &nbsp;</li>
    <li><strong>阅读工坊</strong>——<strong> </strong>一组人（不超过8个人）定期聚在一起，讨论书中的某一章节。<br />
    &nbsp;</li>
    <li><strong>教练定期走访</strong>——当团队偏离轨道、终止实践TDD时，教练的定期走访能够帮助团队重回正轨。这时与一两个人配对编程，就能够重新感染整个团队。 </li>
</ul>
<p>这一计划的核心是：针对TDD创造交流机会、促进互相协作。以上方法中有3个是关注这一方面的：结对编程、<a href="http://www.notesfromatooluser.com/2008/10/tdd-randori-session.html" target="_blank">编程道场</a>和阅读工坊。</p>
<h4>编程道场</h4>
<p>编码道场（使用自由方式）指的是这样一种活动，一小组人（最多15个人）采用TDD一块解决问题（下述内容来自<a href="http://www.dtsato.com/blog/2008/08/12/coding-dojo-agile-2008/" target="_blank">Danilo Sato</a>）：</p>
<ul>
    <li>在一个电脑上工作，通过投影让所有人看到输出结果。</li>
    <li>采用配对编程的方式。</li>
    <li>配对中的一个人每5到10分钟交换（我们用的是7分钟，效果不错）。</li>
    <li>编码的人要解释他们正在干的事情，这样观众才能明白他们在干什么。</li>
    <li>只有当测试通过时观众才能够对设计给出评论，而测试失败时观众不能提问题。</li>
    <li>如果观众被搞糊涂了，编码的人应该停下来解释他们在干什么。 </li>
</ul>
<p>根据经验，我建议初次尝试要选择一个很小的问题。</p>
<h4>阅读工坊</h4>
<p>对阅读工坊来说，有很多好书可以选择：</p>
<ul>
    <li>如果是Java项目： Lasse Koskela的《<a href="http://www.amazon.com/gp/product/1932394850/ref=cm_arms_pdp_dp" target="_blank">Test Driven: TDD and Acceptance TDD for Java Developers</a>》；</li>
    <li>如果是.NET项目：Kent Beck的《<a href="http://www.amazon.com/Test-Driven-Development-Addison-Wesley-Signature/dp/0321146530/ref=pd_sim_b_32" target="_blank">Test Driven Development: By Example</a>》；</li>
    <li>如果你已经学习了很多：Gerard Meszaros的《<a href="http://www.amazon.com/xUnit-Test-Patterns-Refactoring-Addison-Wesley/dp/0131495054/ref=pd_sim_b_5" target="_blank">xUnit Test Patterns: Refactoring Test Code</a>》；</li>
    <li>如果你不使用TDD：Michael Feathers的《<a href="http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=pd_sim_b_12" target="_blank">Working Effectively with Legacy Code</a>》。 </li>
</ul>
<p>典型情况下，团队在一次会议上可以讨论一章或者两章的内容。节奏一定要慢，让大家能够在业余时间读完相关内容，而不是变成了负担。除此之外，要留够充足的时间，让大家对文中的一些条目做深入地探讨。</p>
<h3>一块学习的好处</h3>
<p>这两个工坊都需要提供皮萨（或者一顿健康午餐）──因为你要求大家在私人时间做工作相关的事情，所以要给他们适当的鼓励。这两个工坊可以每数周进行轮换，以防大家觉得陷入太深。最后，不要指望每个会议上人员都是相同的。</p>
<p>与以自己为导向的学习相比，工作坊和社区是个很大的提高，因为组员致力于交流和协作。其结果是我们能够学到一些根本想不到的事情。</p>
<h3>坚持TDD</h3>
<p>总结说来，要想成功采用TDD，下面几点是关键：</p>
<ul>
    <li>耐心、实践、深度</li>
    <li>管理层的支持</li>
    <li>采用多种方法</li>
    <li>开发者帮助开发者 </li>
</ul>
<p>某大型公司已经使用这种方法，着力提高TDD在其公司内的使用情况。</p>
<p><strong>非常感谢Lasse Koskela、Nat Pryce、Dave Nicolette和Dave Rooney花费时间审阅本稿。</strong></p>
<h3>注意</h3>
<p>[1] 本文中，TDD是指编码前首先编写测试用例，并采用增量的方法逐渐完成功能。而不是先写完代码，然后再生成大量的单元测试用例。</p>
<p>[2] <a href="http://tech.groups.yahoo.com/group/testdrivendevelopment/message/29461" target="_blank">http://tech.groups.yahoo.com/group/testdrivendevelopment/message/29461</a></p>
<p>[3] 能够感觉到生产效率会有所降低──比如，一个迭代中交付的故事数量会减少。然而由于一开始就能提高质量，所以这里说的降低并不像看上去那样会真正地降低效率。</p>
<h2>作者简介</h2>
<p><img alt="Mark Levison" src="http://www.infoq.com/styles/i/team/marklevison.jpg;jsessionid=9981458A96519CE46A18FBC843991EA2" align="left" /><font size="2"><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#97;&#114;&#107;&#64;&#112;&#117;&#114;&#101;&#97;&#103;&#105;&#108;&#101;&#46;&#99;&#111;&#109;" target="_blank"><strong>Mark Levison</strong></a>是Pure Agile Consulting公司的首席咨询师，该公司关注于敏捷和精益，致力于帮助客户每两个星期交付软件。从2001年起Mark就是一个敏捷实践者，曾在一个小团队内引入敏捷实践。过去三年中，作为一个大型独立软件开发商的雇员，他负责在组织里引入Scrum，并指导了多个团队-其内容包括设计TDD的策略，并引入了很多实践支持它。Mark是InfoQ敏捷社区的编辑，并且撰写了数十篇敏捷方面的文章。他还有一个blog：<a href="http://www.notesfromatooluser.com/" target="_blank">Notes from a Tool User</a>。业余时间，Mark与他的妻子和两个女儿一起享受天伦之乐。</font></p>
<p><strong>阅读英文原文</strong>：<a href="http://www.infoq.com/articles/levison-TDD-adoption-strategy;jsessionid=9981458A96519CE46A18FBC843991EA2" target="_blank">Making TDD Stick: Problems and Solutions for Adopters</a>。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
  <img src ="http://www.cnblogs.com/oscarxie/aggbug/1386385.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47960/" target="_blank">火狐3.5版被指推出太匆忙：存在50多个漏洞</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>An introduction to Google Analytics</title><link>http://www.cnblogs.com/oscarxie/archive/2009/02/05/1384586.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Thu, 05 Feb 2009 06:23:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/02/05/1384586.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1384586.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/02/05/1384586.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1384586.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1384586.html</trackback:ping><description><![CDATA[<h1 class="h-slideshow-title">An introduction to Google Analytics</h1>
<!-- google_ad_section_end() --><!-- First column begins here -->
<div class="span-29 column1">
<ul class="slideviewActions h-tools">
    <li class="action-share"><a class="iconShare" title="Email this presentation to your contacts" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#" rel="nofollow">Share</a></li>
    <li class="action-addfav" style="display: inline"><a class="iconFavOff" title="Save to favorites" href="http://www.slideshare.net/signup?from=favorite&amp;from_source=http%3A%2F%2Fwww.slideshare.net%2FJayAre%2Fan-introduction-to-google-analytics%3Fnocache%3D1614%26amp%3Btype%3Dpowerpoint" rel="nofollow">Favorite</a> </li>
    <li class="action-fav" style="display: none"><a class="iconFavOn" title="Saved to your favorites" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#">Favorited</a> <a class="ilink delete" title="Remove from favorites" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#">X</a></li>
    <li class="action-download"><a class="iconDownload" title="Download this presentation" href="http://www.slideshare.net/signup?from=download&amp;from_source=http%3A%2F%2Fwww.slideshare.net%2FJayAre%2Fan-introduction-to-google-analytics%3Fnocache%3D1614%26amp%3Btype%3Dpowerpoint" rel="nofollow">Download</a></li>
    <li class="action-addgrp"><a class="iconGroup" title="Add this presentation to a Group or Event" href="http://www.slideshare.net/signup?from=AddToCommunity&amp;from_source=http%3A%2F%2Fwww.slideshare.net%2FJayAre%2Fan-introduction-to-google-analytics%3Fnocache%3D1614%26amp%3Btype%3Dpowerpoint" rel="nofollow">+ Group/Event</a> <!-- <li class="current"><a href="#" class="iconGroup" title="Add this presentation to a Group or Event" rel="nofollow">+ Group / Event</a> </li> --></li>
    <li class="webex1 webex2 webex3 webex4" style="display: none"><a class="" title="Sponsored Link" href="http://altfarm.mediaplex.com/ad/ck/11810-70484-26079-6" rel="nofollow"><img alt="WebEx Share Live" src="http://public.slideshare.net/v3/images/webex_sharelive.png?1233798649" /> </a><!-- <li class="action-moretab">
          <a href="#" title="More..." rel="nofollow">More...</a>
        </li> --></li>
    <li class="expanded action-addfav-new" style="display: none"><!-- Favorites flyout -->
    <form accept-charset="utf-8" action="#" method="post">
        <fieldset><legend>Favorited! Add tags?</legend><input class="text hinted-inputfield" onblur="if (this.value == '') {this.value = 'E.g: tech palo alto';}" onfocus="if (this.value == 'E.g: tech palo alto') {this.value = '';}" value="E.g: tech palo alto"> <input class="save" type="submit" value="Save" /> <a class="ilink cancel" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#" rel="nofollow">Cancel</a> </fieldset>
    </form>
    </li>
    <li class="expanded action-addfav-edit" style="display: none"><!-- Favorites flyout -->
    <form accept-charset="utf-8" action="#" method="post">
        <fieldset><legend>Edit your favorites</legend><input class="text hinted-inputfield"  type="text" /> <input class="save" type="submit" value="Save" /> <a class="ilink cancel" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#" rel="nofollow">Cancel</a> </fieldset>
    </form>
    </li>
    <li class="expanded action-addgrp-new" style="display: none"><!-- Groups / Events flyout -->
    <form accept-charset="utf-8" action="#" method="post">
        <fieldset><legend>Send to your Group / Event</legend><select>
        <option value="0" selected>Select Group / Event</option>
        <optgroup label="Groups"></optgroup> <optgroup label="Events"></optgroup></select> <br />
<label>Add your message</label> <textarea class="hinted-inputfield" rows="3" cols="7"></textarea> <a class="ilink cancel" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#" rel="nofollow">Cancel</a> <input class="save" type="submit" value="Send" /> </fieldset>
</form>
</li>
    </ul>
    </div>
    <div class="player" id="svPlayerId" style="width: 510px; height: 415px"><embed id="player" name="player" src="http://static.slideshare.net/swf/player.swf" width="510" height="415" type="application/x-shockwave-flash" flashvars="sessid=null&amp;pvt=0&amp;inContest=0&amp;doc=an-introduction-to-google-analytics-1198701588721690-4&amp;version_no=1231920172&amp;presentationId=212860&amp;totalSlides=83&amp;startSlide=1&amp;preview=no&amp;stitle=an-introduction-to-google-analytics&amp;useHttp=1" allowfullscreen="true" allowscriptaccess="always" quality="high" bgcolor="#FFFFFF"></div>
    <script>
        (function(ele) {
          var sessionid = null;
          try {
            sessionid = encodeURIComponent(document.cookie.match(/_cookie_id=([^;]*)/)[1]);
          } catch (e) {
            //
          }
          var flashversion=deconcept.SWFObjectUtil.getPlayerVersion().major;
          if (flashversion<9) {
            document.getElementById('placeholder').style. display='none' ;
            document.getElementById('noflash').style. display='block' ;
          } else {
            var so="new" SWFObject(slideshare_object.player.url, "player", slideshare_object.player.width, slideshare_object.player.height, slideshare_object.player.version, slideshare_object.player.color);
            so.addVariable('sessid', sessionid);
            so.addVariable('pvt', slideshare_object.pvt);
            if (slideshare_object.key) so.addVariable('key', slideshare_object.key);
            so.addVariable('inContest', slideshare_object.inContest);
            so.addVariable('doc', slideshare_object.doc);
            so.addVariable('version_no', slideshare_object.version_no);
            so.addVariable('presentationId', slideshare_object.presentationId);
            so.addVariable('totalSlides', slideshare_object.totalSlides);
            so.addVariable('startSlide', slideshare_object.startSlide);
            so.addVariable('inContest', slideshare_object.inContest);
            so.addVariable('totalSlides', slideshare_object.totalSlides);
            so.addVariable('startSlide', slideshare_object.startSlide);
            so.addVariable('presentationId', slideshare_object.presentationId);
            so.addVariable('preview', slideshare_object.preview);
            so.addVariable('stitle', slideshare_object.stripped_title);  // for secret preso's
            so.addVariable('useHttp', '1');
            so.addParam("allowScriptAccess", 'always');
            so.addParam("allowFullScreen", 'true');
            so.write(ele);
            ele.style. height="slideshare_object.player.height" + 'px';
            ele.style. width="slideshare_object.player.width"  + 'px';
          }
        })(document.getElementById('svPlayerId'));
      </SCRIPT>
    <ul class="socialMedia h-other-share"><script>function blogspot_click(ele) {window.open(ele.href,'sharer','toolbar=0,status=0,width=525,height=700');return false;}</script></li>
        <li class="action-blogger"><a class="iconBlogger" title="Post to Blogger" onclick="return blogspot_click(this)" href="http://www.slideshare.net/share/blogspot/212860" target="_blank" rel="nofollow">Blogger</a></li>
        <li class="action-wordpress"><a class="iconWordpress" title="Post to Wordpress" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#" rel="nofollow">Wordpress</a> <script>function fbs_click(ele) {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436'); ele.href='#'; ele.target=''; return false;}</script></li>
        <li class="action-facebook"><a class="iconFacebook" title="Post to Facebook" onclick="return fbs_click(this)" href="http://www.facebook.com/sharer.php?u=http://www.slideshare.net/JayAre/an-introduction-to-google-analytics" target="_blank" rel="nofollow">Facebook</a> <!-- <li><a href="#" class="iconDelicious" title="Bookmark on Delicious" rel="nofollow">Delicious</a> </li> --><!-- <li><a href="#" class="iconLinkedIn" title="Post to your LinkedIn profile" rel="nofollow">LinkedIn</a> </li> --></li>
        <li class="action-twitter"><a class="iconTwitter" title="Post to Twitter" href="http://www.slideshare.net/share/tweet/212860/Check%20out%20this%20SlideShare%20Presentation%20:%20An%20introduction%20to%20Google%20Analytics" target="_blank" rel="nofollow">Twitter</a></li>
        <li class="action-sharemore"><a class="ilink" title="Post to More Networks" href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint#" rel="nofollow">more</a> </li>
    </ul>
    <p class="action-sharemore"><font face="Verdana"><a href="http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint">http://www.slideshare.net/JayAre/an-introduction-to-google-analytics?type=powerpoint</a></font></p>
    <p class="action-sharemore">&nbsp;</p>
 <img src ="http://www.cnblogs.com/oscarxie/aggbug/1384586.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47959/" target="_blank">Google对手机搜索进行优化升级</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>How to Recommender Systems?</title><link>http://www.cnblogs.com/oscarxie/archive/2009/02/04/1383882.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 04 Feb 2009 06:50:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/02/04/1383882.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1383882.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/02/04/1383882.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1383882.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1383882.html</trackback:ping><description><![CDATA[<p>有个新系统或是新技术，如何去作推荐呢，下面的文章也许会给我们一些思路。</p>
<ol style="list-style-type: upper-roman">
    <li><a href="http://www.readwriteweb.com/archives/recommender_systems.php">A <a href="http://www.readwriteweb.com/archives/recommender_systems.php">Guide to Recommender Systems</a></a> </li>
</ol>
<p><font face="Verdana"><a href="http://www.readwriteweb.com/archives/recommender_systems.php">http://www.readwriteweb.com/archives/recommender_systems.php</a></font></p>
<div id="wrapper">
<div id="content-column-left">
<div id="left_column_style">
<div class="entry-asset asset" id="entry-13528">
<div class="asset-header">
<div id="metadata_digg_box">
<div id="metadata_digg_left">
<h1 class="titlelink">A Guide to Recommender Systems</h1>
<div class="grey" id="submeta">Written by <a href="http://www.readwriteweb.com/about_RichardM.php">Richard MacManus</a> / January 26, 2009 12:01 AM </div>
</div>
</div>
<br class="clear" />
</div>
<div class="asset-content">
<div class="asset-body">
<p><img alt="" src="http://www.readwriteweb.com/images/amazon_richard2.jpg" />We're running a special series on <a href="http://www.readwriteweb.com/archives/recommendation/">recommendation technologies</a> and in this post we look at the different approaches - including a look at how Amazon and Google use recommendations. The <a href="http://en.wikipedia.org/wiki/Recommendation_system">Wikipedia entry</a> defines "recommender systems" as "a specific type of information filtering (IF) technique that attempts to present information items (movies, music, books, news, images, web pages, etc.) that are likely of interest to the user." That entry goes on to note that recommendations are generally based on an "information item (the content-based approach) or the user's social environment (the collaborative filtering approach)." We think there's also a personalization approach, which Google in particular is focused on. We explore some of these concepts below.</p>
</div>
<div class="asset-more" id="more">
<p>In a recent post, Xavier Vespa of the blog HyveUp <a href="http://hyveup.blogspot.com/2008/10/3-different-approaches-to-automated.html">analyzed 3 different approaches</a> to recommendation engines on the Web. He identified that Pandora used "deep structural analysis of an item" for its recommendations, Strands focused on "intensive social behavior analysis around an item" and Aggregate Knowledge did "structural analysis of an item, paired with behavioral analysis around the item".</p>
<p>A couple of years ago, Alex Iskold outlined what he saw as the <a href="http://www.readwriteweb.com/archives/recommendation_engines.php">4 main approaches to recommendations</a>:</p>
<ul>
    <li>Personalized recommendation - recommend things based on the individual's past behavior</li>
    <li>Social recommendation - recommend things based on the past behavior of similar users</li>
    <li>Item recommendation - recommend things based on the item itself</li>
    <li>A combination of the three approaches above </li>
</ul>
<h2>Amazon: King of Recommendations</h2>
<p>In that post, Alex analyzed what Amazon.com - probably the canonical example of recommendations technology on the Web - used to power it's recommendations. Unsurprisingly, he found that Amazon used all 3 approaches (personalized, social and item). Amazon's system is very sophisticated, but at heart all of its recommendations "are based on individual behavior, plus either the item itself or behavior of other people on Amazon." What's more, the aim of it all is to get you to add more things to your shopping cart.</p>
<p><img alt="" src="http://www.readwriteweb.com/images/recommendation_engines4.jpg" /></p>
<p>As Xavier identified, other newer Internet companies have tended to focus on specific methods of recommendation. For Pandora, it is a deeper analysis of the item (using its "gene" theory); Strands has taken a boatload of VC money to try and become the number 1 social recommendations provider on the planet; and Aggregate Knowledge is taking more of a behavioral approach.</p>
<h2>Google: Focus on Personalized Recommendations</h2>
<p>The most successful Internet company of this era has without a doubt been Google. It too has been using recommendation technologies to improve its core search product. There are two ways that Google does this:</p>
<ol>
    <li>Google customizes your search results "when possible" based on your location and/or recent search activity;</li>
    <li>When you're signed in to your Google Account, you "may see even more relevant, useful results based on your web history." </li>
</ol>
<p>So Google is using both your location and your personal search history to make its search results supposedly stronger. This is very much the 'personalized recommendation' approach - and indeed <a href="http://www.readwriteweb.com/archives/personalized_search_primer.php">personalization</a> has been <a href="http://www.readwriteweb.com/archives/personalizing_google_intro.php">a buzzword for Google</a> in recent years. However, the two <em>other</em> types of recommendation are also present in Google's core search product:</p>
<ol>
    <li>Google's search algorithm PageRank is basically dependent on social recommendations - i.e. who links to a webpage;</li>
    <li>Google also does item recommendations with its "Did you mean" feature. </li>
</ol>
<p>There are surely other ways recommendations technologies are being deployed in Google search - not to mention the range of other products Google has. <a href="http://blog.searchenginewatch.com/blog/060121-020025">Google News</a>, its <a href="http://googlesystem.blogspot.com/2006/09/google-recommendations.html">start page iGoogle</a>, and its ecommerce site <a href="http://www.informationweek.com/news/internet/showArticle.jhtml?articleID=199101888">Froogle</a> all have recommendation features.</p>
<h2>ReadWriteWeb Resources for Recommendation Technologies</h2>
<p>Let us know what types of recommendation technologies other companies are using. We also invite you to explore using our custom <strong>ReadWriteWeb Resources</strong>:</p>
<ul>
    <li><a href="http://www.readwriteweb.com/RWWRecommenderfeeds2.opml">RWW Recommendation Industry Feed Favorites OPML file</a> (save link)</li>
    <li><a href="http://feeds.feedburner.com/ReadwritewebRecommendationFeedFavs-Aiderssbest">RWW Recommendation Industry Feeds - Best of Feed</a> (copy and paste to your reader)</li>
    <li><a href="http://snipurl.com/1wcbs" target="_blank"><em>Click to preview the above feeds before subscribing</em></a> (pop-up window)</li>
    <li><a href="http://www.google.com/coop/cse?cx=000893276566003557773%3A5w3dmryrdru">RWW Recommendation Site Search</a> (Visit and Bookmark) </li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<ol style="list-style-type: upper-roman">
    <li><a href="http://www.readwriteweb.com/archives/5_problems_of_recommender_systems.php">5 Problems of Recommender Systems</a> </li>
</ol>
<p><font face="Verdana"><a href="http://www.readwriteweb.com/archives/5_problems_of_recommender_systems.php">http://www.readwriteweb.com/archives/5_problems_of_recommender_systems.php</a></font></p>
<div id="metadata_digg_box">
<div id="metadata_digg_left">
<h1 class="titlelink">5 Problems of Recommender Systems</h1>
<div class="grey" id="submeta">Written by <a href="http://www.readwriteweb.com/about_RichardM.php">Richard MacManus</a> / January 28, 2009 7:11 PM </div>
</div>
</div>
<p>&nbsp;</p>
<div class="asset-content">
<div class="asset-body">
<p><img alt="" src="http://www.readwriteweb.com/images/napoleon_150_jan09.jpg" />Earlier this week we posted a <a href="http://www.readwriteweb.com/archives/recommender_systems.php">Guide to Recommender Systems</a>, as part of our series on <a href="http://www.readwriteweb.com/archives/recommendation/">recommendation technologies</a>. In this post we look at some of the <em>challenges</em> in building or deploying a recommender system. And yes, Napoleon Dynamite is one of them. </p>
<p>This week an event called <a href="http://recked.org/">Recked</a> was held in Amsterdam, aimed at engineers interested in these systems. The event was hosted by Wakoopa and Strands (we've embedded the presentations below). In those presentations, there were some hints at the problems that these companies have to overcome to build an effective recommender system.</p>
</div>
<h2 class="asset-more">1. Lack of Data</h2>
<p class="asset-more">Perhaps the biggest issue facing recommender systems is that they need a lot of data to effectively make recommendations. It's no coincidence that the companies most identified with having excellent recommendations are those with a lot of consumer user data: Google, Amazon, Netflix, Last.fm. As illustrated in the slide below from Strands' presentation at Recked, a good recommender system firstly needs item data (from a catalog or other form), then it must capture and analyze user data (behavioral events), and then the magic algorithm does its work. The more item and user data a recommender system has to work with, the stronger the chances of getting good recommendations. But it can be a chicken and egg problem - to get good recommendations, you need a lot of users, so you can get a lot of data for the recommendations.</p>
<p class="asset-more"><img alt="" src="http://www.readwriteweb.com/images/strands_recked3.jpg" /></p>
<h2 class="asset-more">2. Changing Data</h2>
<p class="asset-more">This issue was <a href="http://www.readwriteweb.com/archives/recommender_systems.php#comment-124748">pointed out in ReadWriteWeb's comments</a> by Paul Edmunds, CEO of 'intelligent recommendations' company <a href="http://www.clicktorch.com/">Clicktorch</a>. Paul commented that systems are usually "biased towards the old and have difficulty showing new". </p>
<p class="asset-more">An example of this was <a href="http://www.stylehop.com/blog/2009/01/27/recommender-systems-and-why-fashion-social-shopping-hasnt-worked/">blogged by David Reinke</a> of <a href="http://www.stylehop.com/">StyleHop</a>, a resource and community for fashion enthusiasts. David noted that "past behavior [of users] is not a good tool because <strong>the trends are always changing</strong>" (emphasis ours). Clearly an algorithmic approach will find it difficult if not impossible to keep up with fashion trends. Most fashion-challenged people - I fall into that category - rely on trusted fashion-conscious friends and family to recommend new clothes to them. </p>
<p class="asset-more">David Reinke went on to say that "item recommendations don't work because there are simply too many product attributes in fashion and each attribute (think fit, price, color, style, fabric, brand, etc) has a different level of importance at different times for the same consumer." He did point out though that social recommenders may be able to 'solve' this problem.</p>
<h2 class="asset-more">3. Changing User Preferences</h2>
<p class="asset-more">Again suggested by Paul Edmunds, the issue here is that while today I have a particular intention when browsing e.g. Amazon - tomorrow I might have a different intention. A classic example is that one day I will be browsing Amazon for new books for myself, but the next day I'll be on Amazon searching for a birthday present for my sister (actually I got her a gift card, but that's beside the point).</p>
<p class="asset-more">On the topic of user preferences, recommender systems may also incorrectly label users - a la this classic Wall St Journal story from 2002, <a href="http://online.wsj.com/article_email/SB1038261936872356908.html">If TiVo Thinks You Are Gay, Here's How to Set It Straight</a>.</p>
<h2 class="asset-more">4. Unpredictable Items</h2>
<p class="asset-more">In our post on <a href="http://www.readwriteweb.com/archives/netflix_prize_2009.php">the Netflix Prize</a>, about the $1 Million prize offered by Netflix for a third party to deliver a collaborative filtering algorithm that will improve Netflix's own recommendations algorithm by 10%, we noted that there was an issue with eccentric movies. The type of movie that people either love or hate, such as Napoleon Dynamite. These type of items are difficult to make recommendations on, because the user reaction to them tends to be diverse and unpredictable.</p>
<p class="asset-more">Music is full of these items. Would you have guessed that this author is a fan of both Metallica and The Carpenters? I doubt Last.fm would make that recommendation.</p>
<h2 class="asset-more">5. This Stuff is Complex!</h2>
<p class="asset-more">We're stating the obvious here, but the below slide from Strands' presentation at Recked illustrates that it takes a lot of variables to do even the simplest recommendations (and we imagine the below variables only scratch the surface):</p>
<p class="asset-more"><img alt="" src="http://www.readwriteweb.com/images/strands_recked2.jpg" /></p>
<p class="asset-more">So far only a handful of companies have really gotten recommendations to a high level of user satisfaction - Amazon, Netflix (although of course they are looking for a 10% improvement on their algorithm), Google are some names that spring to mind. But for those select few success stories, there are hundreds of other websites and apps that are still struggling to find the magic formula for recommending new products or content to their users. Indeed we at ReadWriteWeb would love to get readers clicking around our site more to discover other content, and we've tried several plug-ins and methods to achieve this - but we're not satisfied yet.</p>
<h2 class="asset-more">What Have We Missed?</h2>
<p class="asset-more">There are many other issues that can happen with recommender systems - some offer up too many 'lowest common denominator' recommendations, some don't support The Long Tail enough and just recommend obvious items, outliers can be a problem, and so on. </p>
<p class="asset-more">Let us know your thoughts and what other problems recommendation technologies face as they continue to ramp up. </p>
<h2 class="asset-more">ReadWriteWeb Resources for Recommendation Technologies</h2>
<p class="asset-more">We also invite you to explore using our custom <strong>ReadWriteWeb Resources</strong>:</p>
<div class="asset-more">
<ul>
    <li><a href="http://www.readwriteweb.com/RWWRecommenderfeeds2.opml">RWW Recommendation Industry Feed Favorites OPML file</a> (save link)</li>
    <li><a href="http://feeds.feedburner.com/ReadwritewebRecommendationFeedFavs-Aiderssbest">RWW Recommendation Industry Feeds - Best of Feed</a> (copy and paste to your reader)</li>
    <li><a href="http://snipurl.com/1wcbs" target="_blank"><em>Click to preview the above feeds before subscribing</em></a> (pop-up window)</li>
    <li><a href="http://www.google.com/coop/cse?cx=000893276566003557773%3A5w3dmryrdru">RWW Recommendation Site Search</a> (Visit and Bookmark) </li>
</ul>
</div>
<p>Also, we've embedded the three presentations (Strands, Wakoopa and Reccoon) from Recked below:</p>
<p><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=strjsrecked-1233141346362526-1&amp;stripped_title=strands-presentation-at-recked-presentation" width="425" height="355" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=wakoopareckedbeatle-1233068294844031-3&amp;stripped_title=how-to-build-a-recommender-system-presentation" width="425" height="355" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=recked-amsterdam-january-26th-1233004821217678-3&amp;stripped_title=recked-amsterdam-january-26th-presentation" width="425" height="355" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p></embed></p>
</div>
<ol style="list-style-type: upper-roman">
    <li><a href="http://www.readwriteweb.com/archives/recommendation/">recommendation technologies</a>&nbsp;系列文章 </li>
</ol>
<p><font face="Verdana"><a href="http://www.readwriteweb.com/archives/recommendation/">http://www.readwriteweb.com/archives/recommendation/</a></font></p>
<p>&nbsp;</p>
 <img src ="http://www.cnblogs.com/oscarxie/aggbug/1383882.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47958/" target="_blank">风声又起 Windows 7 RTM版7月13日完成</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>[ZZ]关于网站导航的压力测试</title><link>http://www.cnblogs.com/oscarxie/archive/2009/01/21/1379328.html</link><dc:creator>oscarxie</dc:creator><author>oscarxie</author><pubDate>Wed, 21 Jan 2009 02:59:00 GMT</pubDate><guid>http://www.cnblogs.com/oscarxie/archive/2009/01/21/1379328.html</guid><wfw:comment>http://www.cnblogs.com/oscarxie/comments/1379328.html</wfw:comment><comments>http://www.cnblogs.com/oscarxie/archive/2009/01/21/1379328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/oscarxie/comments/commentRss/1379328.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/oscarxie/services/trackbacks/1379328.html</trackback:ping><description><![CDATA[<p>最近读了一篇关于导航的压力测试的文章，觉得挺有帮助的，所以想把里面的一些方法推荐给大家。当一个用户到达一个页面时，经常会遇到下面的问题：</p>
<p>&#8211;我在哪儿？<br />
&#8211;这是什么?<br />
&#8211;我可以去哪儿?</p>
<p>怎么样测试这个页面的导航能力呢?</p>
<p>（1） 随机的从你的网站上选择一个页面；<br />
（2） 把这个页面打印成黑白的，并把页面的头部去掉；<br />
（3） 假装你是第一次进入这个网站，并试图回答下面的问题(详见下列问题列表)；<br />
（4） 在一张纸上写下你所想的和答案；</p>
<p>让你们团队的其它成员或熟悉你网站的朋友也与你做同一试验，大家象跳伞一样的进入网站中的任意一个页面，然后把回答记在纸上，你就可以看到网站上什么是你同意的，什么是你不同意的。</p>
<p><strong>问题列表:</strong></p>
<table cellspacing="0" cellpadding="0" width="500" align="center" border="0">
    <tr>
            <td><strong>压力测试</strong></td>
            <td><strong>纸上记录</strong></td>
        </tr>
        <tr>
            <td width="50%">这个页面是写什么内容的？</td>
            <td>在页面的标题处画一个方形或在纸上写清楚；</td>
        </tr>
        <tr>
            <td>这是个什么样的网站?</td>
            <td>把网站的名字用圈圈起来，或者自己写在纸上；</td>
        </tr>
        <tr>
            <td>这个网站主要的版块是什么?</td>
            <td>用x标识；</td>
        </tr>
        <tr>
            <td>这个页面中主要的版块是什么？</td>
            <td>用三角形围着x来标识；</td>
        </tr>
        <tr>
            <td>我怎么样到达这个网站的首页？</td>
            <td>用H标识；</td>
        </tr>
        <tr>
            <td>我怎么样才能到达网站的顶部呢?</td>
            <td>T来标识；</td>
        </tr>
        <tr>
            <td>每一组链接分别代表什么?</td>
            <td>把页面上的主要链接圈出来，并写下标识；<br />
            D:用来标识更多，详细介绍及这个版块的子页面等；<br />
            N:在同一版块的其它相邻页面；<br />
            S:在同一网站上但不相邻的页面；<br />
            O:离开这个网站的页面；</td>
        </tr>
        <tr>
            <td>你是通过怎么样的路径到达这个页面的呢？</td>
            <td>请写出你到达这个页面的路径，选择1&gt;选择2&gt;选择3&#8230;</td>
        </tr>
    </table>
<p>作者提供了一些样例给大家参考:</p>
<table border="0">
    <tr>
            <td><a href="http://instone.org/files/example1-plain.gif">example1-plain.gif</a></td>
            <td>69.37 KB</td>
        </tr>
        <tr>
            <td><a href="http://instone.org/files/example1-markup.gif">example1-markup.gif</a></td>
            <td>93.35 KB</td>
        </tr>
        <tr>
            <td><a href="http://instone.org/files/example1.ppt">example1.ppt</a></td>
            <td>117.5 KB</td>
        </tr>
    </table>
<p><strong>原文链接：</strong><a href="http://instone.org/navstress" target="_blank">http://instone.org/navstress</a>,以上的文章是我翻译原文的，可能会有些用词生疏，请大家原谅!</p>
<p>我自已也用这种简单实用的方法测试过前一阵我所修改的淘宝礼物频道，发现了一些问题:</p>
<p>(1)礼物频道没有&#8220;回到顶部&#8221;的链接，也就是要标识为&#8220;T&#8221;的部份；我看了许多国内的网站，包括一些国外的大型网站包括yahoo,ebay等等，都没有这样的一个&#8220;回到顶部&#8221;的链接，但是Amazon有这样的一个链接，这点值得其它网站学习，当用户浏览一些过长的页面时，为用户提供一种便捷方式，重回到顶部的全局导航位置，以让用户重新开始他的网站漫游。</p>
<p>（2）礼物频道的页面url太长了，真的不是一般人能记住的&#8220;<a href="http://www.taobao.com/vertical/present/index.php?ad_id=&amp;am_id=&amp;cm_id=140011294184f97f7945&amp;pm_id">http://www.taobao.com/vertical/present/index.php?ad_id=&amp;am_id=&amp;cm_id=140011294184f97f7945&amp;pm_id</a>&#8221;,为什么不叫&#8220;<a href="http://gift.taobao.com/" target="_blank">http://gift.taobao.com/</a>&#8221;呢？这样方便用户对这个频道进行记忆，也方便用户将来不需要通过太多的&#8220;选择1&gt;选择2&gt;&#8230;&#8221;的方式进入网站，而是直接输入&#8220;<a href="http://gift.taobao.com/" target="_blank">http://gift.taobao.com/</a>&#8221;进入网站；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 建议大家也用上面的方法对自己的网站进行测试，看看自己的每个页面到底存在着哪些导航的问题！希望能对大家的网站有所改进。</p>
<p>&nbsp;&nbsp; 补充一下：我觉得象这样的测试，最好几个人一起做，然后按上面的问题列表去找到相应的部份，因为每个人到一个页面寻找到上面这些部份的能力与时间都不同，这样作为设计者就可以看看自己的设计有什么问题，比如：&#8220;是不是没有到首页的链接呀？&#8221;&#8220;是不是没有到顶部的链接呀？&#8221;页面的主要部份是不是不明显不够好找呀？&#8221;等等！</p>
<p><font face="Verdana"><a href="http://ued.taobao.com/blog/2009/01/19/navigation_pressure/">http://ued.taobao.com/blog/2009/01/19/navigation_pressure/</a></font></p>
<p>&nbsp;</p>
  <img src ="http://www.cnblogs.com/oscarxie/aggbug/1379328.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47957/" target="_blank">乔布斯和埃利森</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item></channel></rss>