<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>进化的测试 &#187; 软件测试</title>
	<atom:link href="http://magustest.com/blog/category/softwaretesting/feed/" rel="self" type="application/rss+xml" />
	<link>http://magustest.com/blog</link>
	<description>关注软件测试，白盒测试，自动化测试，性能测试</description>
	<lastBuildDate>Tue, 31 Aug 2010 16:19:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>内部自动化测试交流有感</title>
		<link>http://magustest.com/blog/automationtesting/test-automation-thought/</link>
		<comments>http://magustest.com/blog/automationtesting/test-automation-thought/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 03:55:07 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[自动化测试]]></category>
		<category><![CDATA[软件测试]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=669</guid>
		<description><![CDATA[上周公司组织了一个交流会，主题是关于自动化测试，这个已经在公司引起高层们足够重视的话题，说是交流会，其实我更觉得是个成果展示会，本人代表CORE QA跟大家分享了一下我们组内自动化测试的一些情况，并且在做的过程中的一些经验。我是第一个，下面是VI的自动化测试，VI主要是跟Video播放器结合的比较紧密，最后是UI同事的介绍。我从头到尾都参与，所以说说的我感受吧。 CORE这边测试的特点就是，针对MRM系统的后台进行测试，肩带来说就是模拟各种跟后台打交道的“程序”的工作，进行测试。我们测试有以下特点： 直接跟后台程序交互，基本没有现成的开源或者商业工具可以支持自动化测试快速开展 测试验证结果大多数是后台的输入，也就是前台或者是第三方系统的输入，所以验证的方法不能简单地观察输出结果，同时需要知道后台的输出拿到别的系统能否正常工作 牵涉到数据迁移或者数据重处理的时候，QA需要直接读取生产环境的数据进行校验 由于以上特点，所以我们的自动化测试85%都是自己开发工具来做，常用的脚本语言是Python，经常用到的一些模块包括读取MySQL的MySQLdb；csv模块；re模块；总得原则就是把重复性强，容易引入错误的工作都写成小工具。并且尽可能使用已有的成熟的库，而不是自己重复发明轮子。例如我们的前端页面使用了web.py轻量级框架，JSON库。到目前为止，我自己感觉我们的自动化测试还是做的不错的，主要是以下几点 简单。说起自动化测试，可能有部分人，或者说是外行的人吧，都觉得这个东西非常酷，人只要倒杯咖啡看着电脑执行测试就好了。但是其实实用有效的自动化测试并不是说看起来有多酷，而是这个东西能把人从重复劳动中解放出来。 强大。我刚到公司的时候，已经有600多个回归测试跑在自动化框架上，我当时就觉得已经挺不错的，因为这个自动化测试是由大概4~5个不同的人做的，我以前在MySpace的时候SOA大概有300个CASE，不过那都是我一个人做的，相比较而言FreeWheel应该是更好。 持续改进。虽然我刚到公司的时候自动化测试已经存在并且也算是行之有效，但是任何系统都是有可改进的空间的，我把前端UI改了一下，很高兴可以帮助大家缩短了找问题的时间 全面。基本上所有的模块都有自己的一堆自动化测试工具。 引用一句我非常喜欢的英语：So far so good。那下面我想做什么事情呢？ 自动化测试其实不是测试，只是重复运行测试用例而已。真正的测试用的是脑，而不是工具，工具只是辅助我们的工作的 自动化测试是危险的，不要看到所有回归测试都通过了，就高枕无忧 手动测试才是根本 希望能给大家灌输一些思想，如果发现自己在重复做一件事情，那么应该停下来，想想有什么办法能够让自己停止重复，尽可能自己解决问题，培养自己的动手能力 看看有没有一些开源工作能让现在的工作做的更加好 下面说说对VI TEAM自动化测试介绍的一点感觉吧，VI和CORE有点儿相似，就是都是用的自己开发的自动化工具，而没用应用了太多开源工具，我个人觉得这里面原因有2个 VI的测试面向Video播放器的SDK，也是一个后台，所以也没有太多现成的工具 用户怎么用我们的SDK？就是调用接口，跟CORE面对的问题相似 估计由于经常跟XML打交道，所以VI的自动化测试用到很多XML文件作为配置。由于隔行如隔山，所以没有看懂里面的一些玄机，总的来说就是跟我们CORE有点相似。 我们CORE和VI一样，这些工具如果跳出了这个公司，基本上就不能应用到其他地方，这也是对整个系统来说的底层部分做自动化测试的特点：高度定制化，通用性低，自己开发居多 最后就是UI的介绍，终于等到一个看得懂的啦。 UI那边就是大量使用开源工具，这个也是很有道理的 UI的自动化测试实施难度比后台程序的自动化要大 现有的UI自动化测试非常丰富 那我们的UI是怎么做的呢？首先UI的同事用了一个持续集成的工具hudson作为一个颗粒度比较粗的测试用例管理工具，hudson作为自动化测试的主心骨，QA们可以在hudson上触发自动化测试的运行，运行完了以后可以看到测试结果，并且，利用了hudson的分布式结构，由多个测试机来执行测试，达到了很好的资源调配。对浏览器的控制方面，用了Selenium，会上没有问UI是否利用了Selenium的多浏览器支持，从演示上来看应该只做的Firefox的。他们的分工很明确，分了专门做功能测试的QA和专门做自动化测试工具开发的SDET，SDET主要是负责写RUBY代码，封装并且暴露了一些通用的方法给QA使用，并且同时使用了Cucumber作为一个DSL，QA是用Cucumber来做自动化测试的一些描述，Cucumber的作用就是对功能测试的QA屏蔽了底层RUBY脚本，对上就是“翻译”功能测试QA的意图，“翻译”成RUBY。说一下我觉得的优点： 分开了自动化测试工具开发和自动化测试实施 使用了大量开源工具，提高效率 而且都是业界常用工具，对以后跳槽帮助不小（嘿嘿） One click automation (只需要点一下hudson） 一些工具带来的制约 一次只能运行一批测试，不能重跑单个测试 个人觉得使用XPATH作为对象的识别并不是一个好的选择 总得来说大家都各有特色，并且都做得挺好，并且都有不少可以提高的空间。多点交流的确能带来不少灵感。 Share and Enjoy: > No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>上周公司组织了一个交流会，主题是关于自动化测试，这个已经在公司引起高层们足够重视的话题，说是交流会，其实我更觉得是个成果展示会，本人代表CORE QA跟大家分享了一下我们组内自动化测试的一些情况，并且在做的过程中的一些经验。我是第一个，下面是VI的自动化测试，VI主要是跟Video播放器结合的比较紧密，最后是UI同事的介绍。我从头到尾都参与，所以说说的我感受吧。</p>
<p>CORE这边测试的特点就是，针对<a href="http://www.freewheel.tv/products/mrm/" target="_blank">MRM</a>系统的后台进行测试，肩带来说就是模拟各种跟后台打交道的“程序”的工作，进行测试。我们测试有以下特点：</p>
<ol>
<li>直接跟后台程序交互，基本没有现成的开源或者商业工具可以支持自动化测试快速开展</li>
<li>测试验证结果大多数是后台的输入，也就是前台或者是第三方系统的输入，所以验证的方法不能简单地观察输出结果，同时需要知道后台的输出拿到别的系统能否正常工作</li>
<li>牵涉到数据迁移或者数据重处理的时候，QA需要直接读取生产环境的数据进行校验</li>
</ol>
<p>由于以上特点，所以我们的自动化测试85%都是自己开发工具来做，常用的脚本语言是Python，经常用到的一些模块包括读取MySQL的MySQLdb；csv模块；re模块；总得原则就是把重复性强，容易引入错误的工作都写成小工具。并且尽可能使用已有的成熟的库，而不是自己重复发明轮子。例如我们的前端页面使用了<a href="http://webpy.org/" target="_blank">web.py</a>轻量级框架，JSON库。到目前为止，我自己感觉我们的自动化测试还是做的不错的，主要是以下几点</p>
<ol>
<li>简单。说起自动化测试，可能有部分人，或者说是外行的人吧，都觉得这个东西非常酷，人只要倒杯咖啡看着电脑执行测试就好了。但是其实实用有效的自动化测试并不是说看起来有多酷，而是这个东西能把人从重复劳动中解放出来。</li>
<li>强大。我刚到公司的时候，已经有600多个回归测试跑在自动化框架上，我当时就觉得已经挺不错的，因为这个自动化测试是由大概4~5个不同的人做的，我以前在<a href="http://www.myspace.cn/" target="_blank">MySpace</a>的时候SOA大概有300个CASE，不过那都是我一个人做的，相比较而言<a href="http://www.freewheel.tv/" target="_blank">FreeWheel</a>应该是更好。</li>
<li>持续改进。虽然我刚到公司的时候自动化测试已经存在并且也算是行之有效，但是任何系统都是有可改进的空间的，我把前端UI改了一下，很高兴可以帮助大家缩短了找问题的时间</li>
<li>全面。基本上所有的模块都有自己的一堆自动化测试工具。</li>
</ol>
<p>引用一句我非常喜欢的英语：So far so good。那下面我想做什么事情呢？</p>
<ol>
<li>自动化测试其实不是测试，只是重复运行测试用例而已。真正的测试用的是脑，而不是工具，工具只是辅助我们的工作的</li>
<li>自动化测试是危险的，不要看到所有回归测试都通过了，就高枕无忧</li>
<li>手动测试才是根本</li>
<li>希望能给大家灌输一些思想，如果发现自己在重复做一件事情，那么应该停下来，想想有什么办法能够让自己停止重复，尽可能自己解决问题，培养自己的动手能力</li>
<li>看看有没有一些开源工作能让现在的工作做的更加好</li>
</ol>
<p>下面说说对VI TEAM自动化测试介绍的一点感觉吧，VI和CORE有点儿相似，就是都是用的自己开发的自动化工具，而没用应用了太多开源工具，我个人觉得这里面原因有2个</p>
<ol>
<li>VI的测试面向Video播放器的SDK，也是一个后台，所以也没有太多现成的工具</li>
<li>用户怎么用我们的SDK？就是调用接口，跟CORE面对的问题相似</li>
</ol>
<p>估计由于经常跟XML打交道，所以VI的自动化测试用到很多XML文件作为配置。由于隔行如隔山，所以没有看懂里面的一些玄机，总的来说就是跟我们CORE有点相似。</p>
<p>我们CORE和VI一样，这些工具如果跳出了这个公司，基本上就不能应用到其他地方，这也是对整个系统来说的底层部分做自动化测试的特点：高度定制化，通用性低，自己开发居多</p>
<p>最后就是UI的介绍，终于等到一个看得懂的啦。</p>
<p>UI那边就是大量使用开源工具，这个也是很有道理的</p>
<ol>
<li>UI的自动化测试实施难度比后台程序的自动化要大</li>
<li>现有的UI自动化测试非常丰富</li>
</ol>
<p>那我们的UI是怎么做的呢？首先UI的同事用了一个持续集成的工具<a href="http://hudson-ci.org/" target="_blank">hudson</a>作为一个颗粒度比较粗的测试用例管理工具，hudson作为自动化测试的主心骨，QA们可以在hudson上触发自动化测试的运行，运行完了以后可以看到测试结果，并且，利用了hudson的分布式结构，由多个测试机来执行测试，达到了很好的资源调配。对浏览器的控制方面，用了<a href="http://seleniumhq.org/" target="_blank">Selenium</a>，会上没有问UI是否利用了Selenium的多浏览器支持，从演示上来看应该只做的Firefox的。他们的分工很明确，分了专门做功能测试的QA和专门做自动化测试工具开发的SDET，SDET主要是负责写<a href="http://www.ruby-lang.org/en/" target="_blank">RUBY</a>代码，封装并且暴露了一些通用的方法给QA使用，并且同时使用了Cucumber作为一个DSL，QA是用<a href="http://cukes.info/" target="_blank">Cucumber</a>来做自动化测试的一些描述，Cucumber的作用就是对功能测试的QA屏蔽了底层RUBY脚本，对上就是“翻译”功能测试QA的意图，“翻译”成RUBY。说一下我觉得的优点：</p>
<ol>
<li>分开了自动化测试工具开发和自动化测试实施</li>
<li>使用了大量开源工具，提高效率</li>
<li>而且都是业界常用工具，对以后跳槽帮助不小（嘿嘿）</li>
<li>One click automation (只需要点一下hudson）</li>
</ol>
<p>一些工具带来的制约</p>
<ol>
<li>一次只能运行一批测试，不能重跑单个测试</li>
<li>个人觉得使用<a href="http://www.w3.org/TR/xpath/" target="_blank">XPATH</a>作为对象的识别并不是一个好的选择</li>
</ol>
<p>总得来说大家都各有特色，并且都做得挺好，并且都有不少可以提高的空间。多点交流的确能带来不少灵感。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F&amp;t=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F&title=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F&title=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F&amp;title=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E5%86%85%E9%83%A8%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%BA%A4%E6%B5%81%E6%9C%89%E6%84%9F%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fautomationtesting%2Ftest-automation-thought%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/automationtesting/test-automation-thought/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TestLink不能连接BugZilla的解决办法</title>
		<link>http://magustest.com/blog/softwaretesting/testlink-integrate-bugzilla-failed/</link>
		<comments>http://magustest.com/blog/softwaretesting/testlink-integrate-bugzilla-failed/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:57:04 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>
		<category><![CDATA[BugZilla]]></category>
		<category><![CDATA[TestLink]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=652</guid>
		<description><![CDATA[TestLink是一个基于Web的PHP开源测试管理系统，虽然用起来跟QC那些商业软件比起来不是那么爽，但是由于是开源、免费，所以越来越多的公司在用TestLink。BugZilla作为老牌的bug管理工具，同样有着很大的用户群。 TestLink有一个BugTracking的接口模块，可以使得TestLink可以与其他BugTracking系统集成。在集成的过程中发现TestLink提示错误：Bug ID does not exist on BTS（中文的话是&#8217;bug的ID在BTS中不存在！&#8217;），找到TestLink的代码文件bugAdd.php，找到下面这段代码块 if&#40;$args-&#62;bug_id != &#34;&#34;&#41; &#123; $msg = lang_get&#40;&#34;error_wrong_BugID_format&#34;&#41;; if &#40;$g_bugInterface-&#62;checkBugID&#40;$args-&#62;bug_id&#41;&#41; &#123; $msg = lang_get&#40;&#34;error_bug_does_not_exist_on_bts&#34;&#41;; // 问题在这里 if &#40;$g_bugInterface-&#62;checkBugID_existence&#40;$args-&#62;bug_id&#41;&#41; &#123; if &#40;write_execution_bug&#40;$db,$args-&#62;exec_id, $args-&#62;bug_id&#41;&#41; &#123; $msg = lang_get&#40;&#34;bug_added&#34;&#41;; logAuditEvent&#40;TLS&#40;&#34;audit_executionbug_added&#34;,$args-&#62;bug_id&#41;,&#34;CREATE&#34;,$args-&#62;exec_id,&#34;executions&#34;&#41;; &#125; &#125; &#125; &#125; 问题出在$g_bugInterface->checkBugID_existence($args->bug_id)这个方法中。在、TestLink的int_bugzilla.php文件中，并没有overload这个checkBugID_existence的方法，所以这个方法就会按照int_bugtracking.php中的默认实现，返回false。TestLink就会出现error_bug_does_not_exist_on_bts这个ERROR 解决这个问题很简单，就是在int_bugzilla.php中自己实现checkBugID_existence方法，简单的实现如下： function checkBugID_existence&#40;$id&#41; &#123; $status_ok = 0; //关键是下面这个Query bug id的语句，大家自己看看数据库是哪个表，根据实际情况自己修改 $query = &#34;SELECT bug_id FROM bugs [...]


Related posts:<ol><li><a href='http://magustest.com/blog/computer/stringbuffer-in-lua/' rel='bookmark' title='Permanent Link: 在Lua中实现简单的StringBuffer'>在Lua中实现简单的StringBuffer</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>TestLink是一个基于Web的PHP开源测试管理系统，虽然用起来跟QC那些商业软件比起来不是那么爽，但是由于是开源、免费，所以越来越多的公司在用TestLink。BugZilla作为老牌的bug管理工具，同样有着很大的用户群。</p>
<p>TestLink有一个BugTracking的接口模块，可以使得TestLink可以与其他BugTracking系统集成。在集成的过程中发现TestLink提示错误：Bug ID does not exist on BTS（中文的话是&#8217;bug的ID在BTS中不存在！&#8217;），找到TestLink的代码文件bugAdd.php，找到下面这段代码块</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bug_id</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> lang_get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;error_wrong_BugID_format&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$g_bugInterface</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">checkBugID</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bug_id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> lang_get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;error_bug_does_not_exist_on_bts&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// 问题在这里</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$g_bugInterface</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">checkBugID_existence</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bug_id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span> 	  
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>write_execution_bug<span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #339933;">,</span><span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exec_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bug_id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> lang_get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bug_added&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				logAuditEvent<span style="color: #009900;">&#40;</span>TLS<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;audit_executionbug_added&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bug_id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;CREATE&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$args</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exec_id</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;executions&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>问题出在$g_bugInterface->checkBugID_existence($args->bug_id)这个方法中。在、TestLink的int_bugzilla.php文件中，并没有overload这个checkBugID_existence的方法，所以这个方法就会按照int_bugtracking.php中的默认实现，返回false。TestLink就会出现error_bug_does_not_exist_on_bts这个ERROR</p>
<p>解决这个问题很简单，就是在int_bugzilla.php中自己实现checkBugID_existence方法，简单的实现如下：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> checkBugID_existence<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$status_ok</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//关键是下面这个Query bug id的语句，大家自己看看数据库是哪个表，根据实际情况自己修改	</span>
	<span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT bug_id FROM bugs WHERE bug_id='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$id</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dbConnection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exec_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dbConnection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$status_ok</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>    
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$status_ok</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>OK。在int_bugzilla.php文件中添加了 checkBugID_existence() 方法后，就可以从TestLink中直接把BugZilla里面的BUG ID和某个测试关联起来了。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&amp;title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;annotation=TestLink%E6%98%AF%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8EWeb%E7%9A%84PHP%E5%BC%80%E6%BA%90%E6%B5%8B%E8%AF%95%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E8%99%BD%E7%84%B6%E7%94%A8%E8%B5%B7%E6%9D%A5%E8%B7%9FQC%E9%82%A3%E4%BA%9B%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6%E6%AF%94%E8%B5%B7%E6%9D%A5%E4%B8%8D%E6%98%AF%E9%82%A3%E4%B9%88%E7%88%BD%EF%BC%8C%E4%BD%86%E6%98%AF%E7%94%B1%E4%BA%8E%E6%98%AF%E5%BC%80%E6%BA%90%E3%80%81%E5%85%8D%E8%B4%B9%EF%BC%8C%E6%89%80%E4%BB%A5%E8%B6%8A%E6%9D%A5%E8%B6%8A%E5%A4%9A%E7%9A%84%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%94%A8TestLink%E3%80%82BugZilla%E4%BD%9C%E4%B8%BA%E8%80%81%E7%89%8C%E7%9A%84bug%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%90%8C%E6%A0%B7%E6%9C" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&amp;title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;bodytext=TestLink%E6%98%AF%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8EWeb%E7%9A%84PHP%E5%BC%80%E6%BA%90%E6%B5%8B%E8%AF%95%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E8%99%BD%E7%84%B6%E7%94%A8%E8%B5%B7%E6%9D%A5%E8%B7%9FQC%E9%82%A3%E4%BA%9B%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6%E6%AF%94%E8%B5%B7%E6%9D%A5%E4%B8%8D%E6%98%AF%E9%82%A3%E4%B9%88%E7%88%BD%EF%BC%8C%E4%BD%86%E6%98%AF%E7%94%B1%E4%BA%8E%E6%98%AF%E5%BC%80%E6%BA%90%E3%80%81%E5%85%8D%E8%B4%B9%EF%BC%8C%E6%89%80%E4%BB%A5%E8%B6%8A%E6%9D%A5%E8%B6%8A%E5%A4%9A%E7%9A%84%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%94%A8TestLink%E3%80%82BugZilla%E4%BD%9C%E4%B8%BA%E8%80%81%E7%89%8C%E7%9A%84bug%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%90%8C%E6%A0%B7%E6%9C" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&amp;title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;notes=TestLink%E6%98%AF%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8EWeb%E7%9A%84PHP%E5%BC%80%E6%BA%90%E6%B5%8B%E8%AF%95%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E8%99%BD%E7%84%B6%E7%94%A8%E8%B5%B7%E6%9D%A5%E8%B7%9FQC%E9%82%A3%E4%BA%9B%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6%E6%AF%94%E8%B5%B7%E6%9D%A5%E4%B8%8D%E6%98%AF%E9%82%A3%E4%B9%88%E7%88%BD%EF%BC%8C%E4%BD%86%E6%98%AF%E7%94%B1%E4%BA%8E%E6%98%AF%E5%BC%80%E6%BA%90%E3%80%81%E5%85%8D%E8%B4%B9%EF%BC%8C%E6%89%80%E4%BB%A5%E8%B6%8A%E6%9D%A5%E8%B6%8A%E5%A4%9A%E7%9A%84%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%94%A8TestLink%E3%80%82BugZilla%E4%BD%9C%E4%B8%BA%E8%80%81%E7%89%8C%E7%9A%84bug%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%90%8C%E6%A0%B7%E6%9C" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&amp;t=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&amp;title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F&amp;title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;body=TestLink%E6%98%AF%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8EWeb%E7%9A%84PHP%E5%BC%80%E6%BA%90%E6%B5%8B%E8%AF%95%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E8%99%BD%E7%84%B6%E7%94%A8%E8%B5%B7%E6%9D%A5%E8%B7%9FQC%E9%82%A3%E4%BA%9B%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6%E6%AF%94%E8%B5%B7%E6%9D%A5%E4%B8%8D%E6%98%AF%E9%82%A3%E4%B9%88%E7%88%BD%EF%BC%8C%E4%BD%86%E6%98%AF%E7%94%B1%E4%BA%8E%E6%98%AF%E5%BC%80%E6%BA%90%E3%80%81%E5%85%8D%E8%B4%B9%EF%BC%8C%E6%89%80%E4%BB%A5%E8%B6%8A%E6%9D%A5%E8%B6%8A%E5%A4%9A%E7%9A%84%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%94%A8TestLink%E3%80%82BugZilla%E4%BD%9C%E4%B8%BA%E8%80%81%E7%89%8C%E7%9A%84bug%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%90%8C%E6%A0%B7%E6%9C" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=TestLink%E4%B8%8D%E8%83%BD%E8%BF%9E%E6%8E%A5BugZilla%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ftestlink-integrate-bugzilla-failed%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/computer/stringbuffer-in-lua/' rel='bookmark' title='Permanent Link: 在Lua中实现简单的StringBuffer'>在Lua中实现简单的StringBuffer</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/testlink-integrate-bugzilla-failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>谁来保证测试工作的质量</title>
		<link>http://magustest.com/blog/softwaretesting/who-watches-the-watchers/</link>
		<comments>http://magustest.com/blog/softwaretesting/who-watches-the-watchers/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 14:25:15 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=644</guid>
		<description><![CDATA[在一个公司或者是某个组织里面，测试人员扮演的角色通常都会被认为是软件质量的保证者，把关者，仿佛经过测试的产品都是没有任何缺陷的。但事实大家都知道，即使经过多么“完美”测试的产品，总免不了在发布以后还会发现或多或少的问题。 以前在MySpace做测试的时候，主要是写代码来测试一些接口、模块等。这样就会出现一个问题，我用一段程序A去测试层序B，那么测试代码也是程序，如何保证程序A的正确性呢？OK，我们可以写一个程序C去测试程序A，由此来保障程序A的正确性，但是程序C的正确性又由谁来保证呢？who watches the watchers？当时只有我一个人负责白盒测试，最多也就是让开发帮忙看看。其实对于一段程序，只要写的足够简单，那么就可以认为这段简单的程序的正确性是能得到保证的。所以我一直都给自己强调，单元测试的代码不要写的复杂，尽可能不用判断，让测试代码顺序执行下去。 但是对于功能测试来说，怎么样才能尽可能地保证测试的方法，测试的数据，测试的覆盖率是能达到某项标准的呢？在这次MRM 2.9 Release的测试过程中，我们引入了peer review的做法，一个功能点一般会以ticket的形式存在，每个人拿到ticket的时候首先自己设计测试用例，包括测试数据的准备，用什么样的方法等等。然后找另外一个同事来review自己的用例。这样做的好处有： 强迫自己有一个较为系统的测试用例设计，因为这个是需要给同事看，并且让别人看懂的 同事之间的knowledge share在不知不觉中就达到 两个人的review总是比一大群人坐到会议室里面要有效，帮助提高测试覆盖率，尽可能避免测试盲点 互相监督 Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>在一个公司或者是某个组织里面，测试人员扮演的角色通常都会被认为是软件质量的保证者，把关者，仿佛经过测试的产品都是没有任何缺陷的。但事实大家都知道，即使经过多么“完美”测试的产品，总免不了在发布以后还会发现或多或少的问题。</p>
<p>以前在MySpace做测试的时候，主要是写代码来测试一些接口、模块等。这样就会出现一个问题，我用一段程序A去测试层序B，那么测试代码也是程序，如何保证程序A的正确性呢？OK，我们可以写一个程序C去测试程序A，由此来保障程序A的正确性，但是程序C的正确性又由谁来保证呢？who watches the watchers？当时只有我一个人负责白盒测试，最多也就是让开发帮忙看看。其实对于一段程序，只要写的足够简单，那么就可以认为这段简单的程序的正确性是能得到保证的。所以我一直都给自己强调，单元测试的代码不要写的复杂，尽可能不用判断，让测试代码顺序执行下去。</p>
<p>但是对于功能测试来说，怎么样才能尽可能地保证测试的方法，测试的数据，测试的覆盖率是能达到某项标准的呢？在这次MRM 2.9 Release的测试过程中，我们引入了peer review的做法，一个功能点一般会以ticket的形式存在，每个人拿到ticket的时候首先自己设计测试用例，包括测试数据的准备，用什么样的方法等等。然后找另外一个同事来review自己的用例。这样做的好处有：</p>
<ol>
<li>强迫自己有一个较为系统的测试用例设计，因为这个是需要给同事看，并且让别人看懂的</li>
<li>同事之间的knowledge share在不知不觉中就达到</li>
<li>两个人的review总是比一大群人坐到会议室里面要有效，帮助提高测试覆盖率，尽可能避免测试盲点</li>
<li>互相监督</li>
</ol>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F&amp;t=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F&title=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F&title=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F&amp;title=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E8%B0%81%E6%9D%A5%E4%BF%9D%E8%AF%81%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E8%B4%A8%E9%87%8F%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwho-watches-the-watchers%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/who-watches-the-watchers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>敏捷测试只是手段不是目的</title>
		<link>http://magustest.com/blog/softwaretesting/about-agile-testing/</link>
		<comments>http://magustest.com/blog/softwaretesting/about-agile-testing/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 10:09:18 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>
		<category><![CDATA[敏捷测试]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=592</guid>
		<description><![CDATA[首先我要声明：本人不懂敏捷测试。 敏捷开发在这两年一直很火，很多时候作为一个测试人员，经常会“被敏捷”。一些常见的现象有，当你所要文档的时候，相关人员可能会告诉你“我们是敏捷开发，没有文档”；当你索要进度表的时候，答案也是相似的。既然软件开发已经迈入了敏捷时代，那么软件测试还能原地踏步麽？那什么是敏捷测试？我不知道，不过我想说说我在“敏捷”组织里面进行软件测试的经历。 由于我不懂敏捷测试，所以我不知道它的定义，我只能通过“敏捷测试不是传统测试”这样的思路来开展工作。 首先，那种拿着各种需求文档设计文档来设计Test Case的日子是一去不复返了，因为敏捷开发强调的是能工作的软件比漂亮的文档要有用，人和人之间的沟通胜于文档。所以作为我，一个测试员，我对被测软件的知识的了解来源有2个方面，第一是代码，第二是开发人员。 其次，如果在测试过程中发现一个问题，第一件事情并不是把这个问题记录在Tracking system里面，而是找相关的开发和产品进行确认，究竟这是不是一个真的Defect。 然后，需要知道一个现在很流行的新玩意儿：探索性测试（Exploratory Testing）。每个人对Exploratory Testing的定义都不一样，最近两个大牛（James Bach, James Whittaker）也在掐架。我觉得如果简化这个定义的话，就是我们一边熟悉被测软件，一边进行测试，在测试进行的过程中，随着对软件的熟悉，继而设计出新的Test case来对被测软件进行测试，我个人觉得就像是一个小的迭代一样。 最后，忘记敏捷测试这个词。我觉得现在业界能说清楚这个概念的人很少，所以没有必要在这些定义上纠结。人们为什么要实施敏捷开发，是因为想交付更好的软件；我们为什么要实施敏捷测试，是想提高测试的质量以及生产力，从而帮助公司交付更加高质量的产品，至于是不是真正的敏捷，又有什么重要的呢 Share and Enjoy: Related posts:推荐阅读：5 Ways to Revolutionize Your QA


Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/5-ways-to-revolutionize-your-qa/' rel='bookmark' title='Permanent Link: 推荐阅读：5 Ways to Revolutionize Your QA'>推荐阅读：5 Ways to Revolutionize Your QA</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>首先我要声明：本人不懂敏捷测试。<br />
敏捷开发在这两年一直很火，很多时候作为一个测试人员，经常会“被敏捷”。一些常见的现象有，当你所要文档的时候，相关人员可能会告诉你“我们是敏捷开发，没有文档”；当你索要进度表的时候，答案也是相似的。既然软件开发已经迈入了敏捷时代，那么软件测试还能原地踏步麽？那什么是敏捷测试？我不知道，不过我想说说我在“敏捷”组织里面进行软件测试的经历。<br />
由于我不懂敏捷测试，所以我不知道它的定义，我只能通过“敏捷测试不是传统测试”这样的思路来开展工作。<br />
首先，那种拿着各种需求文档设计文档来设计Test Case的日子是一去不复返了，因为敏捷开发强调的是能工作的软件比漂亮的文档要有用，人和人之间的沟通胜于文档。所以作为我，一个测试员，我对被测软件的知识的了解来源有2个方面，第一是代码，第二是开发人员。<br />
其次，如果在测试过程中发现一个问题，第一件事情并不是把这个问题记录在Tracking system里面，而是找相关的开发和产品进行确认，究竟这是不是一个真的Defect。<br />
然后，需要知道一个现在很流行的新玩意儿：探索性测试（<a href="http://en.wikipedia.org/wiki/Exploratory_testing" target="_blank">Exploratory Testing</a>）。每个人对Exploratory Testing的定义都不一样，最近两个大牛（<a href="http://www.satisfice.com/" target="_blank">James Bach</a>, <a href="http://blogs.msdn.com/james_whittaker/default.aspx" target="_blank">James Whittaker</a>）也在掐架。我觉得如果简化这个定义的话，就是我们一边熟悉被测软件，一边进行测试，在测试进行的过程中，随着对软件的熟悉，继而设计出新的Test case来对被测软件进行测试，我个人觉得就像是一个小的迭代一样。<br />
最后，忘记敏捷测试这个词。我觉得现在业界能说清楚这个概念的人很少，所以没有必要在这些定义上纠结。人们为什么要实施敏捷开发，是因为想交付更好的软件；我们为什么要实施敏捷测试，是想提高测试的质量以及生产力，从而帮助公司交付更加高质量的产品，至于是不是真正的敏捷，又有什么重要的呢</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F&amp;t=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F&title=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F&title=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F&amp;title=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E6%95%8F%E6%8D%B7%E6%B5%8B%E8%AF%95%E5%8F%AA%E6%98%AF%E6%89%8B%E6%AE%B5%E4%B8%8D%E6%98%AF%E7%9B%AE%E7%9A%84%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fabout-agile-testing%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/5-ways-to-revolutionize-your-qa/' rel='bookmark' title='Permanent Link: 推荐阅读：5 Ways to Revolutionize Your QA'>推荐阅读：5 Ways to Revolutionize Your QA</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/about-agile-testing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>窥探云测试</title>
		<link>http://magustest.com/blog/softwaretesting/cloud-testing/</link>
		<comments>http://magustest.com/blog/softwaretesting/cloud-testing/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 03:05:34 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=574</guid>
		<description><![CDATA[云计算是当今的一个热点，也是一个潮流，那么软件测试能否借助云计算的威力而更上一层楼呢？最近看了几个号称云测试的网站，有感，记录一下。 第一个网站是Cloud Testing。这个公司能提供多种平台，多种浏览器的平台，一般的用户在本地用Selenium把自动化测试脚本编写好，然后上传到他们网站，然后就可以在他们的平台上运行Selenium脚本了。他们的优点是：平台和浏览器覆盖得广，按需付费。不过我自己对这样的服务有以下的疑问： 基于UI的自动化测试通常都会遇到一些不稳定的问题，本地编辑好的自动化脚本是否也能够在他们的平台上正常运行 如果出现错误，有没有办法进行调试。究竟这个错误是SUT的错误，还是测试脚本的错误，如何区分 用户自己开发的插件能否在这个云测试平台上使用（我觉得是不行的） 总得来说Cloud Testing是一个基于UI自动化测试的云测试平台，但是我认为这样的平台并没有太多的优势，一般做互联网的公司产品发布都是比较快的，根本是不可能有时间和资源去覆盖所有的浏览器和平台，根据80/20原则，在中国搞互联网，只要搞定Windows下的IE6和IE7基本上就万事大吉了，一般好一点的前端TEAM都是在Firefox下进行开发的，所以Firefox的兼容应该是不成问题，最后在Chrome和Safari上过一下关键流程，差不多了。再说，现在虚拟化技术日渐流行，自己搭建多个平台也不是非常耗费资源。 第二个是keynote公司的kite，这个感觉比Cloud Testing更加弱一点，kite有自己的浏览器，然后用户在这个浏览器上录制脚本，然后上传，然后可以在keynote公司不同的可用地点中运行测试，查看结果。这个平台给我的感觉更多的是关注终端用户性能，里面有一个页面元素下载的timeline，用户可以查看那些页面资源下载花费多少时间，DNS查询时间等等…… 这个平台的问题有： 可用的节点不多，现在为止只有北美地区的几个节点可用 专门的工具，可能对测试的结果有影响 估计是keynote公司的一个实验性产品。 第三个是SOASTA。这个公司不单只提供了功能测试，而且还有性能测试。感觉上性能测试应该是利用云计算的一个非常重要而且有意义的点。貌似这个公司不是那么开放，没有太多公开的资料，所以不知道他们是怎么运作的。看他们的网站的一些成功案例，说的挺好，不过这样相对于在公网做性能测试，不知道会不会有问题： 带宽问题，例如云那段设定的带宽是1Mb，那么云和端之间的带宽是否能真正达到1Mb呢 安全问题，这些性能测试的脚本不会日后成为攻击的工具吧 突然觉得，现在做CDN的公司，其实他们可以兼营性能测试，因为他们的服务器分布的跟真实情况最接近的，而且也有足够多的服务器资源和带宽。 Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>云计算是当今的一个热点，也是一个潮流，那么软件测试能否借助云计算的威力而更上一层楼呢？最近看了几个号称云测试的网站，有感，记录一下。</p>
<p>第一个网站是<a href="http://www.cloudtesting.com/" target="_blank">Cloud Testing</a>。这个公司能提供多种平台，多种浏览器的平台，一般的用户在本地用Selenium把自动化测试脚本编写好，然后上传到他们网站，然后就可以在他们的平台上运行Selenium脚本了。他们的优点是：平台和浏览器覆盖得广，按需付费。不过我自己对这样的服务有以下的疑问：</p>
<ol>
<li>基于UI的自动化测试通常都会遇到一些不稳定的问题，本地编辑好的自动化脚本是否也能够在他们的平台上正常运行</li>
<li>如果出现错误，有没有办法进行调试。究竟这个错误是SUT的错误，还是测试脚本的错误，如何区分</li>
<li>用户自己开发的插件能否在这个云测试平台上使用（我觉得是不行的）</li>
</ol>
<p>总得来说Cloud Testing是一个基于UI自动化测试的云测试平台，但是我认为这样的平台并没有太多的优势，一般做互联网的公司产品发布都是比较快的，根本是不可能有时间和资源去覆盖所有的浏览器和平台，根据80/20原则，在中国搞互联网，只要搞定Windows下的IE6和IE7基本上就万事大吉了，一般好一点的前端TEAM都是在Firefox下进行开发的，所以Firefox的兼容应该是不成问题，最后在Chrome和Safari上过一下关键流程，差不多了。再说，现在虚拟化技术日渐流行，自己搭建多个平台也不是非常耗费资源。</p>
<p>第二个是<a href="http://kite.keynote.com/" target="_blank">keynote公司的kite</a>，这个感觉比Cloud Testing更加弱一点，kite有自己的浏览器，然后用户在这个浏览器上录制脚本，然后上传，然后可以在keynote公司不同的可用地点中运行测试，查看结果。这个平台给我的感觉更多的是关注终端用户性能，里面有一个页面元素下载的timeline，用户可以查看那些页面资源下载花费多少时间，DNS查询时间等等……</p>
<p>这个平台的问题有：</p>
<ol>
<li>可用的节点不多，现在为止只有北美地区的几个节点可用</li>
<li>专门的工具，可能对测试的结果有影响</li>
</ol>
<p>估计是keynote公司的一个实验性产品。</p>
<p>第三个是<a href="http://www.soasta.com/index.html" target="_blank">SOASTA</a>。这个公司不单只提供了功能测试，而且还有性能测试。感觉上性能测试应该是利用云计算的一个非常重要而且有意义的点。貌似这个公司不是那么开放，没有太多公开的资料，所以不知道他们是怎么运作的。看他们的网站的一些成功案例，说的挺好，不过这样相对于在公网做性能测试，不知道会不会有问题：</p>
<ol>
<li>带宽问题，例如云那段设定的带宽是1Mb，那么云和端之间的带宽是否能真正达到1Mb呢</li>
<li>安全问题，这些性能测试的脚本不会日后成为攻击的工具吧</li>
</ol>
<p>突然觉得，现在做CDN的公司，其实他们可以兼营性能测试，因为他们的服务器分布的跟真实情况最接近的，而且也有足够多的服务器资源和带宽。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&amp;title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&amp;annotation=%E4%BA%91%E8%AE%A1%E7%AE%97%E6%98%AF%E5%BD%93%E4%BB%8A%E7%9A%84%E4%B8%80%E4%B8%AA%E7%83%AD%E7%82%B9%EF%BC%8C%E4%B9%9F%E6%98%AF%E4%B8%80%E4%B8%AA%E6%BD%AE%E6%B5%81%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E8%83%BD%E5%90%A6%E5%80%9F%E5%8A%A9%E4%BA%91%E8%AE%A1%E7%AE%97%E7%9A%84%E5%A8%81%E5%8A%9B%E8%80%8C%E6%9B%B4%E4%B8%8A%E4%B8%80%E5%B1%82%E6%A5%BC%E5%91%A2%EF%BC%9F%E6%9C%80%E8%BF%91%E7%9C%8B%E4%BA%86%E5%87%A0%E4%B8%AA%E5%8F%B7%E7%A7%B0%E4%BA%91%E6%B5%8B%E8%AF%95%E7%9A%84%E7%BD%91%E7%AB%99%EF%BC%8C%E6%9C%89%E6%84%9F%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%B8%80%E4%B8%8B%E3%80%82%0A%0A%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%BD%91%E7%AB%99%E6%98%AFCloud%20Testing%E3%80%82%E8%BF%99%E4%B8%AA%E5%85%AC%E5%8F%B8%E8%83%BD%E6" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&amp;title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&amp;bodytext=%E4%BA%91%E8%AE%A1%E7%AE%97%E6%98%AF%E5%BD%93%E4%BB%8A%E7%9A%84%E4%B8%80%E4%B8%AA%E7%83%AD%E7%82%B9%EF%BC%8C%E4%B9%9F%E6%98%AF%E4%B8%80%E4%B8%AA%E6%BD%AE%E6%B5%81%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E8%83%BD%E5%90%A6%E5%80%9F%E5%8A%A9%E4%BA%91%E8%AE%A1%E7%AE%97%E7%9A%84%E5%A8%81%E5%8A%9B%E8%80%8C%E6%9B%B4%E4%B8%8A%E4%B8%80%E5%B1%82%E6%A5%BC%E5%91%A2%EF%BC%9F%E6%9C%80%E8%BF%91%E7%9C%8B%E4%BA%86%E5%87%A0%E4%B8%AA%E5%8F%B7%E7%A7%B0%E4%BA%91%E6%B5%8B%E8%AF%95%E7%9A%84%E7%BD%91%E7%AB%99%EF%BC%8C%E6%9C%89%E6%84%9F%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%B8%80%E4%B8%8B%E3%80%82%0A%0A%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%BD%91%E7%AB%99%E6%98%AFCloud%20Testing%E3%80%82%E8%BF%99%E4%B8%AA%E5%85%AC%E5%8F%B8%E8%83%BD%E6" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&amp;title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&amp;notes=%E4%BA%91%E8%AE%A1%E7%AE%97%E6%98%AF%E5%BD%93%E4%BB%8A%E7%9A%84%E4%B8%80%E4%B8%AA%E7%83%AD%E7%82%B9%EF%BC%8C%E4%B9%9F%E6%98%AF%E4%B8%80%E4%B8%AA%E6%BD%AE%E6%B5%81%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E8%83%BD%E5%90%A6%E5%80%9F%E5%8A%A9%E4%BA%91%E8%AE%A1%E7%AE%97%E7%9A%84%E5%A8%81%E5%8A%9B%E8%80%8C%E6%9B%B4%E4%B8%8A%E4%B8%80%E5%B1%82%E6%A5%BC%E5%91%A2%EF%BC%9F%E6%9C%80%E8%BF%91%E7%9C%8B%E4%BA%86%E5%87%A0%E4%B8%AA%E5%8F%B7%E7%A7%B0%E4%BA%91%E6%B5%8B%E8%AF%95%E7%9A%84%E7%BD%91%E7%AB%99%EF%BC%8C%E6%9C%89%E6%84%9F%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%B8%80%E4%B8%8B%E3%80%82%0A%0A%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%BD%91%E7%AB%99%E6%98%AFCloud%20Testing%E3%80%82%E8%BF%99%E4%B8%AA%E5%85%AC%E5%8F%B8%E8%83%BD%E6" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&amp;t=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&amp;title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F&amp;title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&amp;body=%E4%BA%91%E8%AE%A1%E7%AE%97%E6%98%AF%E5%BD%93%E4%BB%8A%E7%9A%84%E4%B8%80%E4%B8%AA%E7%83%AD%E7%82%B9%EF%BC%8C%E4%B9%9F%E6%98%AF%E4%B8%80%E4%B8%AA%E6%BD%AE%E6%B5%81%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E8%83%BD%E5%90%A6%E5%80%9F%E5%8A%A9%E4%BA%91%E8%AE%A1%E7%AE%97%E7%9A%84%E5%A8%81%E5%8A%9B%E8%80%8C%E6%9B%B4%E4%B8%8A%E4%B8%80%E5%B1%82%E6%A5%BC%E5%91%A2%EF%BC%9F%E6%9C%80%E8%BF%91%E7%9C%8B%E4%BA%86%E5%87%A0%E4%B8%AA%E5%8F%B7%E7%A7%B0%E4%BA%91%E6%B5%8B%E8%AF%95%E7%9A%84%E7%BD%91%E7%AB%99%EF%BC%8C%E6%9C%89%E6%84%9F%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%B8%80%E4%B8%8B%E3%80%82%0A%0A%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%BD%91%E7%AB%99%E6%98%AFCloud%20Testing%E3%80%82%E8%BF%99%E4%B8%AA%E5%85%AC%E5%8F%B8%E8%83%BD%E6" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E7%AA%A5%E6%8E%A2%E4%BA%91%E6%B5%8B%E8%AF%95%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fcloud-testing%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/cloud-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>推荐阅读：5 Ways to Revolutionize Your QA</title>
		<link>http://magustest.com/blog/softwaretesting/5-ways-to-revolutionize-your-qa/</link>
		<comments>http://magustest.com/blog/softwaretesting/5-ways-to-revolutionize-your-qa/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 02:48:36 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=555</guid>
		<description><![CDATA[James Whittaker，两个月前还是微软Visual Studio的一个产品经理，好像是负责VSTS 2010的最新产品Lab Managment。现在已经跳槽到Google做测试总监了。 若干个月前他在utest有一个讲座，题目是《5 Ways to Revolutionize Your QA》，今天早上我又翻出这个文档仔细看了看，觉得真是受益匪浅，推荐推荐，在这里可以下载《5 Ways to Revolutionize Your QA》。 主要讲了5条： Insight 1:  There are two types of code and they require different types of tests Insight 2:  Take your testing down a level from features to capabilities Insight 3:  Take your testing up a level from test cases [...]


Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/how-to-become-a-good-software-testing-engineer/' rel='bookmark' title='Permanent Link: 如何成为一名优秀的测试工程师'>如何成为一名优秀的测试工程师</a></li>
<li><a href='http://magustest.com/blog/readingdaily/software-testing-note-part-twenty-one/' rel='bookmark' title='Permanent Link: 《Software Testing》第二十一章 &#8211; 软件质量保证'>《Software Testing》第二十一章 &#8211; 软件质量保证</a></li>
<li><a href='http://magustest.com/blog/softwaretesting/about-agile-testing/' rel='bookmark' title='Permanent Link: 敏捷测试只是手段不是目的'>敏捷测试只是手段不是目的</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>James Whittaker，两个月前还是微软Visual Studio的一个产品经理，好像是负责VSTS 2010的最新产品Lab Managment。现在已经跳槽到Google做测试总监了。</p>
<p>若干个月前他在<a href="http://www.utest.com/" target="_blank">utest</a>有一个讲座，题目是《<a href="http://www.utest.com/webinars/5-ways-revolutionize-your-qa" target="_blank">5 Ways to Revolutionize Your QA</a>》，今天早上我又翻出这个文档仔细看了看，觉得真是受益匪浅，推荐推荐，<a href="http://www.utest.com/sites/default/files/ebooks/uTest%20E-Book%20-%205%20Ways%20To%20Revolutionize%20Your%20QA.pdf" target="_blank">在这里可以下载《5 Ways to Revolutionize Your QA》</a>。</p>
<p>主要讲了5条：</p>
<blockquote><p>Insight 1:  There are two types of code and they require different types of tests<br />
Insight 2:  Take your testing down a level from features to capabilities<br />
Insight 3:  Take your testing up a level from test cases to techniques<br />
Insight 4:  Improving development is your top priority<br />
Insight 5:  Testing without innovation is a great way to lose talent</p></blockquote>
<p>其中我个人对第一条和最后一条感触比较深，第一条里面提到了当年Vista就是过分信任自动化测试，结果……大家都能看到；第五条就解释了为什么在测试这个行业，大牛那么少，而牛人又经常转做开发或者别的工作去了。</p>
<p><a href="http://blogs.msdn.com/james_whittaker/" target="_blank">James Whittaker在微软</a>的博客</p>
<p>James Whittaker现在偶然会在<a href="http://googletesting.blogspot.com/" target="_blank">Google Testing Blog</a>（哎，要翻墙才能看）发表文章</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&amp;title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&amp;annotation=James%20Whittaker%EF%BC%8C%E4%B8%A4%E4%B8%AA%E6%9C%88%E5%89%8D%E8%BF%98%E6%98%AF%E5%BE%AE%E8%BD%AFVisual%20Studio%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%98%AF%E8%B4%9F%E8%B4%A3VSTS%202010%E7%9A%84%E6%9C%80%E6%96%B0%E4%BA%A7%E5%93%81Lab%20Managment%E3%80%82%E7%8E%B0%E5%9C%A8%E5%B7%B2%E7%BB%8F%E8%B7%B3%E6%A7%BD%E5%88%B0Google%E5%81%9A%E6%B5%8B%E8%AF%95%E6%80%BB%E7%9B%91%E4%BA%86%E3%80%82%0A%0A%E8%8B%A5%E5%B9%B2%E4%B8%AA%E6%9C%88%E5%89%8D%E4%BB%96%E5%9C%A8utest%E6%9C%89%E4%B8%80%E4%B8%AA%E8%AE%B2%E5%BA%A7%EF%BC%8C%E9%A2%98%E7%9B%AE%E6%98%AF%E3%80%8A5%20Ways%20to%20" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&amp;title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&amp;bodytext=James%20Whittaker%EF%BC%8C%E4%B8%A4%E4%B8%AA%E6%9C%88%E5%89%8D%E8%BF%98%E6%98%AF%E5%BE%AE%E8%BD%AFVisual%20Studio%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%98%AF%E8%B4%9F%E8%B4%A3VSTS%202010%E7%9A%84%E6%9C%80%E6%96%B0%E4%BA%A7%E5%93%81Lab%20Managment%E3%80%82%E7%8E%B0%E5%9C%A8%E5%B7%B2%E7%BB%8F%E8%B7%B3%E6%A7%BD%E5%88%B0Google%E5%81%9A%E6%B5%8B%E8%AF%95%E6%80%BB%E7%9B%91%E4%BA%86%E3%80%82%0A%0A%E8%8B%A5%E5%B9%B2%E4%B8%AA%E6%9C%88%E5%89%8D%E4%BB%96%E5%9C%A8utest%E6%9C%89%E4%B8%80%E4%B8%AA%E8%AE%B2%E5%BA%A7%EF%BC%8C%E9%A2%98%E7%9B%AE%E6%98%AF%E3%80%8A5%20Ways%20to%20" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&amp;title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&amp;notes=James%20Whittaker%EF%BC%8C%E4%B8%A4%E4%B8%AA%E6%9C%88%E5%89%8D%E8%BF%98%E6%98%AF%E5%BE%AE%E8%BD%AFVisual%20Studio%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%98%AF%E8%B4%9F%E8%B4%A3VSTS%202010%E7%9A%84%E6%9C%80%E6%96%B0%E4%BA%A7%E5%93%81Lab%20Managment%E3%80%82%E7%8E%B0%E5%9C%A8%E5%B7%B2%E7%BB%8F%E8%B7%B3%E6%A7%BD%E5%88%B0Google%E5%81%9A%E6%B5%8B%E8%AF%95%E6%80%BB%E7%9B%91%E4%BA%86%E3%80%82%0A%0A%E8%8B%A5%E5%B9%B2%E4%B8%AA%E6%9C%88%E5%89%8D%E4%BB%96%E5%9C%A8utest%E6%9C%89%E4%B8%80%E4%B8%AA%E8%AE%B2%E5%BA%A7%EF%BC%8C%E9%A2%98%E7%9B%AE%E6%98%AF%E3%80%8A5%20Ways%20to%20" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&amp;t=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&amp;title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F&amp;title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&amp;body=James%20Whittaker%EF%BC%8C%E4%B8%A4%E4%B8%AA%E6%9C%88%E5%89%8D%E8%BF%98%E6%98%AF%E5%BE%AE%E8%BD%AFVisual%20Studio%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%EF%BC%8C%E5%A5%BD%E5%83%8F%E6%98%AF%E8%B4%9F%E8%B4%A3VSTS%202010%E7%9A%84%E6%9C%80%E6%96%B0%E4%BA%A7%E5%93%81Lab%20Managment%E3%80%82%E7%8E%B0%E5%9C%A8%E5%B7%B2%E7%BB%8F%E8%B7%B3%E6%A7%BD%E5%88%B0Google%E5%81%9A%E6%B5%8B%E8%AF%95%E6%80%BB%E7%9B%91%E4%BA%86%E3%80%82%0A%0A%E8%8B%A5%E5%B9%B2%E4%B8%AA%E6%9C%88%E5%89%8D%E4%BB%96%E5%9C%A8utest%E6%9C%89%E4%B8%80%E4%B8%AA%E8%AE%B2%E5%BA%A7%EF%BC%8C%E9%A2%98%E7%9B%AE%E6%98%AF%E3%80%8A5%20Ways%20to%20" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB%EF%BC%9A5%20Ways%20to%20Revolutionize%20Your%20QA%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2F5-ways-to-revolutionize-your-qa%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/how-to-become-a-good-software-testing-engineer/' rel='bookmark' title='Permanent Link: 如何成为一名优秀的测试工程师'>如何成为一名优秀的测试工程师</a></li>
<li><a href='http://magustest.com/blog/readingdaily/software-testing-note-part-twenty-one/' rel='bookmark' title='Permanent Link: 《Software Testing》第二十一章 &#8211; 软件质量保证'>《Software Testing》第二十一章 &#8211; 软件质量保证</a></li>
<li><a href='http://magustest.com/blog/softwaretesting/about-agile-testing/' rel='bookmark' title='Permanent Link: 敏捷测试只是手段不是目的'>敏捷测试只是手段不是目的</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/5-ways-to-revolutionize-your-qa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Python脚本对ASP.NET站点进行预热</title>
		<link>http://magustest.com/blog/softwaretesting/warmup-asp-net-website/</link>
		<comments>http://magustest.com/blog/softwaretesting/warmup-asp-net-website/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:33:02 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=550</guid>
		<description><![CDATA[很多人可能都会注意到，当一些新的代码部署到一个ASP.NET的站点后，第一次访问的时候是非常慢的，有可能需要等待超过一分钟；如果我们更新了站点的bin目录下的一些dll文件，那么这种情况会变得更加明显。当第一个页面请求到达服务器的时候，IIS会重新编译文件，这时候可以观察到w3wp.exe和csc.exe都会占用很多CPU。我们不希望用户是IIS重启之后第一个访问者，所以每台服务器在上线之前，都需要做预热处理。所谓预热处理，原理很简单，就是向目标服务器发送一些HTTP请求，从而触发服务器对文件进行编译，实现预热。 为什么用Python？一位大师曾经说过，程序员要每6个月就要学习一门新的语言（这个要求还真苛刻），所以决定学习一下Python。 需求：其实这个需求特别简单 1. 发送HTTP请求，Python自带的httplib库就能满足这个需求了 2. 多线程访问不同的站点，现在MySpace常用站点至少有4个 3. 指定服务器的IP，因为测试的服务器也有多台 4. 获取HTTP请求的状态 5. 需要在登录状态下进行预热 这个方法做了大部分的事情，Http请求，带登录状态的，能够指定IP的，指定站点的，指定页面的 1 2 3 4 5 6 7 8 9 def warmwww&#40;inputServer,inputHost,inputPage&#41;: conn = httplib.HTTPConnection&#40;inputServer&#41; headers = &#123;&#34;Host&#34;:inputHost,&#34;Cookie&#34;: &#34;MYUSERINFO=MIIxxx%3d&#34;&#125; conn.request&#40;&#34;GET&#34;, inputPage,&#34;&#34;,headers&#41; r1 = conn.getresponse&#40;&#41; data = r1.read&#40;&#41; conn.close&#40;&#41; global results results.append&#40;&#40;inputHost,r1.status&#41;&#41; 主要用到了httplib.HTTPConnection类，获得一个httplib.HTTPConnection的对象；登录就是在Headers里面加一个标志登录的Cookie；由于要支持多个服务器，所以在初始化httplib.HTTPConnection对象的时候，指定的是IP，然后在Headers里面的Host中指定需要预热的站点；最后GET某个站点下的某个页面作为预热；最后获取response的状态码。这里需要import httplib。 接下来要做的就是用多进程来访问需要预热的站点 1 2 3 4 5 6 7 8 [...]


Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/using-httpcontext-in-unittest/' rel='bookmark' title='Permanent Link: 在C#单元测试中使用HttpContext的简单解决办法'>在C#单元测试中使用HttpContext的简单解决办法</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>很多人可能都会注意到，当一些新的代码部署到一个ASP.NET的站点后，第一次访问的时候是非常慢的，有可能需要等待超过一分钟；如果我们更新了站点的bin目录下的一些dll文件，那么这种情况会变得更加明显。当第一个页面请求到达服务器的时候，IIS会重新编译文件，这时候可以观察到w3wp.exe和csc.exe都会占用很多CPU。我们不希望用户是IIS重启之后第一个访问者，所以每台服务器在上线之前，都需要做预热处理。所谓预热处理，原理很简单，就是向目标服务器发送一些HTTP请求，从而触发服务器对文件进行编译，实现预热。</p>
<p>为什么用Python？一位大师曾经说过，程序员要每6个月就要学习一门新的语言（这个要求还真苛刻），所以决定学习一下Python。</p>
<p>需求：其实这个需求特别简单<br />
1. 发送HTTP请求，Python自带的httplib库就能满足这个需求了<br />
2. 多线程访问不同的站点，现在MySpace常用站点至少有4个<br />
3. 指定服务器的IP，因为测试的服务器也有多台<br />
4. 获取HTTP请求的状态<br />
5. 需要在登录状态下进行预热<br />
<span id="more-550"></span></p>
<p>这个方法做了大部分的事情，Http请求，带登录状态的，能够指定IP的，指定站点的，指定页面的</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> warmwww<span style="color: black;">&#40;</span>inputServer,inputHost,inputPage<span style="color: black;">&#41;</span>:
	conn = <span style="color: #dc143c;">httplib</span>.<span style="color: black;">HTTPConnection</span><span style="color: black;">&#40;</span>inputServer<span style="color: black;">&#41;</span>
	headers = <span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;Host&quot;</span>:inputHost,<span style="color: #483d8b;">&quot;Cookie&quot;</span>: <span style="color: #483d8b;">&quot;MYUSERINFO=MIIxxx%3d&quot;</span><span style="color: black;">&#125;</span>
	conn.<span style="color: black;">request</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;GET&quot;</span>, inputPage,<span style="color: #483d8b;">&quot;&quot;</span>,headers<span style="color: black;">&#41;</span>
	r1 = conn.<span style="color: black;">getresponse</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	data = r1.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	conn.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">global</span> results
	results.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>inputHost,r1.<span style="color: black;">status</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>主要用到了httplib.HTTPConnection类，获得一个httplib.HTTPConnection的对象；登录就是在Headers里面加一个标志登录的Cookie；由于要支持多个服务器，所以在初始化httplib.HTTPConnection对象的时候，指定的是IP，然后在Headers里面的Host中指定需要预热的站点；最后GET某个站点下的某个页面作为预热；最后获取response的状态码。这里需要import httplib。</p>
<p>接下来要做的就是用多进程来访问需要预热的站点</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> run<span style="color: black;">&#40;</span>server,paras<span style="color: black;">&#41;</span>:
	threadcount = <span style="color: #ff4500;">0</span><span style="color: #66cc66;">;</span>
	threadList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> pa <span style="color: #ff7700;font-weight:bold;">in</span> paras:
		rm = <span style="color: #dc143c;">threading</span>.<span style="color: black;">Thread</span><span style="color: black;">&#40;</span>target = warmwww, args=<span style="color: black;">&#40;</span>server,pa<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>,pa<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		rm.<span style="color: black;">start</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		threadList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>rm<span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> rt <span style="color: #ff7700;font-weight:bold;">in</span> threadList:
		rt.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		threadcount = threadcount + <span style="color: #ff4500;">1</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> threadcount,<span style="color: #483d8b;">&quot;Threads started. Run on server&quot;</span>, server</pre></td></tr></table></div>

<p>threading.Thread()可以实例化一个Thread对象，参数target就是需要运行的方法，在Python里面，方法也是一个对象；如果target是带有参数的，那么就要通过args把参数传递进去。这里需要import threading。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
	successFlag = <span style="color: #008000;">True</span><span style="color: #66cc66;">;</span>
	begintime = <span style="color: #dc143c;">time</span>.<span style="color: #dc143c;">time</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	run<span style="color: black;">&#40;</span>server,paras<span style="color: black;">&#41;</span>
	endtime = <span style="color: #dc143c;">time</span>.<span style="color: #dc143c;">time</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Finish the task in&quot;</span>, endtime-begintime, <span style="color: #483d8b;">&quot;seconds&quot;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> sr <span style="color: #ff7700;font-weight:bold;">in</span> results:
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span>sr<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">!</span>=<span style="color: #ff4500;">200</span><span style="color: black;">&#41;</span>:
			<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Warm up&quot;</span>,sr<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>, <span style="color: #483d8b;">&quot;failed.&quot;</span>, <span style="color: #483d8b;">&quot;status code:&quot;</span>,sr<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
			successFlag = <span style="color: #008000;">False</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> successFlag:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;all warm up script run successfully.&quot;</span></pre></td></tr></table></div>

<p>paras是一个预先定义好的列表。results是一个全局变量，每个预热的结果都会存到results中，等预热程序执行完毕以后，检查其返回的状态码，如果等于200，就算通过；否则，就认为预热失败，并且打印出返回状态码。</p>
<p>经常会看有有人在论坛上提问，例如如何在XXX工具中发送带有cookie的请求，如果在YYY工具中模拟已经登录的用户做操作。其实这当中最根本的问题应该是，登录的原理是什么，知道这个原理以后，就很容易找到实现的方法，不管用的是C#还是Python。工具是手段，原理是根本。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F&amp;title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD&amp;notes=%E5%BE%88%E5%A4%9A%E4%BA%BA%E5%8F%AF%E8%83%BD%E9%83%BD%E4%BC%9A%E6%B3%A8%E6%84%8F%E5%88%B0%EF%BC%8C%E5%BD%93%E4%B8%80%E4%BA%9B%E6%96%B0%E7%9A%84%E4%BB%A3%E7%A0%81%E9%83%A8%E7%BD%B2%E5%88%B0%E4%B8%80%E4%B8%AAASP.NET%E7%9A%84%E7%AB%99%E7%82%B9%E5%90%8E%EF%BC%8C%E7%AC%AC%E4%B8%80%E6%AC%A1%E8%AE%BF%E9%97%AE%E7%9A%84%E6%97%B6%E5%80%99%E6%98%AF%E9%9D%9E%E5%B8%B8%E6%85%A2%E7%9A%84%EF%BC%8C%E6%9C%89%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E7%AD%89%E5%BE%85%E8%B6%85%E8%BF%87%E4%B8%80%E5%88%86%E9%92%9F%EF%BC%9B%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E6%9B%B4%E6%96%B0%E4%BA%86%E7%AB%99%E7%82%B9%E7%9A%84bin%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E4%B8%80%E4%BA%9Bdll%E6%96%87%E4%BB%B6%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BF%99%E7%A7%8D%E6%83%85" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F&amp;t=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F&title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F&title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F&amp;title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F&amp;title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD&amp;body=%E5%BE%88%E5%A4%9A%E4%BA%BA%E5%8F%AF%E8%83%BD%E9%83%BD%E4%BC%9A%E6%B3%A8%E6%84%8F%E5%88%B0%EF%BC%8C%E5%BD%93%E4%B8%80%E4%BA%9B%E6%96%B0%E7%9A%84%E4%BB%A3%E7%A0%81%E9%83%A8%E7%BD%B2%E5%88%B0%E4%B8%80%E4%B8%AAASP.NET%E7%9A%84%E7%AB%99%E7%82%B9%E5%90%8E%EF%BC%8C%E7%AC%AC%E4%B8%80%E6%AC%A1%E8%AE%BF%E9%97%AE%E7%9A%84%E6%97%B6%E5%80%99%E6%98%AF%E9%9D%9E%E5%B8%B8%E6%85%A2%E7%9A%84%EF%BC%8C%E6%9C%89%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E7%AD%89%E5%BE%85%E8%B6%85%E8%BF%87%E4%B8%80%E5%88%86%E9%92%9F%EF%BC%9B%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E6%9B%B4%E6%96%B0%E4%BA%86%E7%AB%99%E7%82%B9%E7%9A%84bin%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E4%B8%80%E4%BA%9Bdll%E6%96%87%E4%BB%B6%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BF%99%E7%A7%8D%E6%83%85" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E7%94%A8Python%E8%84%9A%E6%9C%AC%E5%AF%B9ASP.NET%E7%AB%99%E7%82%B9%E8%BF%9B%E8%A1%8C%E9%A2%84%E7%83%AD%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fwarmup-asp-net-website%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/using-httpcontext-in-unittest/' rel='bookmark' title='Permanent Link: 在C#单元测试中使用HttpContext的简单解决办法'>在C#单元测试中使用HttpContext的简单解决办法</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/warmup-asp-net-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>刷新并且观察主机IP地址的好工具&#8211;Firefox DNS Flusher</title>
		<link>http://magustest.com/blog/softwaretesting/firefox-dns-flusher/</link>
		<comments>http://magustest.com/blog/softwaretesting/firefox-dns-flusher/#comments</comments>
		<pubDate>Wed, 27 May 2009 09:59:31 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=531</guid>
		<description><![CDATA[首先祝大家端午节快乐。 前一段时间写了篇文章介绍了一个在Firefox下查看主机IP的插件，那个插件虽然不错，但是还是有点麻烦，要把鼠标挪过去才能看，最近发现一个更加好用方便的插件：Firefox DNS Flusher。这个插件使用起来很简单，安装完毕以后在Firefox的状态栏的右侧，会有一个显示当前主机IP的地方，如果修改完了HOSTS文件，想要刷新一下DNS，那么可以左键或者右键单击那个IP地址栏就可以了，实现了不重启浏览器也能使得最新的HOSTS文件生效！不错吧！不过测试的时候建议还是要重启一下浏览器，因为当前的域名的IP指向是刷新了，但是其他域名的呢？例如专门存放css或者js文件的子域名，他们不一定能被刷新哦。抓个图： Share and Enjoy: Related posts:Web测试中三个好用的Firefox插件


Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/web-testing-using-flagfox-screengrab-removecookie/' rel='bookmark' title='Permanent Link: Web测试中三个好用的Firefox插件'>Web测试中三个好用的Firefox插件</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>首先祝大家端午节快乐。</p>
<p>前一段时间写了篇文章介绍了一个<a href="http://magustest.com/blog/softwaretesting/web-testing-using-flagfox-screengrab-removecookie/" target="_blank">在Firefox下查看主机IP的插件</a>，那个插件虽然不错，但是还是有点麻烦，要把鼠标挪过去才能看，最近发现一个更加好用方便的插件：<a href="https://addons.mozilla.org/en-US/firefox/addon/7408" target="_blank">Firefox DNS Flusher</a>。这个插件使用起来很简单，安装完毕以后在Firefox的状态栏的右侧，会有一个显示当前主机IP的地方，如果修改完了HOSTS文件，想要刷新一下DNS，那么可以左键或者右键单击那个IP地址栏就可以了，实现了不重启浏览器也能使得最新的HOSTS文件生效！不错吧！不过测试的时候建议还是要重启一下浏览器，因为当前的域名的IP指向是刷新了，但是其他域名的呢？例如专门存放css或者js文件的子域名，他们不一定能被刷新哦。抓个图：</p>
<p><img class="alignnone size-full wp-image-532" title="flusher" src="http://magustest.com/blog/wp-content/uploads/2009/05/flusher1.png" alt="flusher" width="418" height="230" /></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F&amp;t=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F&title=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F&title=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F&amp;title=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E5%88%B7%E6%96%B0%E5%B9%B6%E4%B8%94%E8%A7%82%E5%AF%9F%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%A5%BD%E5%B7%A5%E5%85%B7--Firefox%20DNS%20Flusher%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Ffirefox-dns-flusher%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/softwaretesting/web-testing-using-flagfox-screengrab-removecookie/' rel='bookmark' title='Permanent Link: Web测试中三个好用的Firefox插件'>Web测试中三个好用的Firefox插件</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/firefox-dns-flusher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VSTS 2010 Test Edition文章收集</title>
		<link>http://magustest.com/blog/softwaretesting/vsts2010-test-edition-article-collection/</link>
		<comments>http://magustest.com/blog/softwaretesting/vsts2010-test-edition-article-collection/#comments</comments>
		<pubDate>Thu, 21 May 2009 01:45:38 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[性能测试]]></category>
		<category><![CDATA[软件测试]]></category>
		<category><![CDATA[CodedUI Test]]></category>
		<category><![CDATA[VSTS]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=495</guid>
		<description><![CDATA[STS 2010 BETA 1在近期已经开始发布了，各路高手纷纷出动，在这里我就把我看到的一些不错的关于VSTS2010测试人员版本的文章收集一下，希望对其他人有帮助，也便于我以后复习用 文章： 《Automated User Interface Testing with Coded UI Test》VSTT官方博客出品，Coded UI Test入门 《VSTS 2010 Load Test Feature: Saving Test Logs》如何在VS的负载测试中记录日志，帮助定位问题 《VSTS 2010 Feature: Load test virtual user activity visualization》如果在用VSTS进行性能测试进行的过程中，CPU突然有一个不寻常的峰值出现，在以前是比较难找到原因的，此文给我们介绍了VSTS 2010的最新功能virtual user activity visualization 是如何帮助测试工程师找到问题的根源 《VSTS 2010 Feature: Web Test Recorder Plugins》如何在VSTS 2010中利用Web Test Recorder Plugins来做自定义的关联 《VSTS 2010: Enabling Test Impact Analysis》文章介绍了如何使用Test Impact [...]


Related posts:<ol><li><a href='http://magustest.com/blog/loadtest/vsts-load-controller-and-load-agent-installation/' rel='bookmark' title='Permanent Link: 图解微软性能测试工具VSTS2008 Load Test Agent安装'>图解微软性能测试工具VSTS2008 Load Test Agent安装</a></li>
<li><a href='http://magustest.com/blog/automationtesting/vsts2010-new-feature-codedui-test/' rel='bookmark' title='Permanent Link: VSTS2010的一个新功能&#8211;CodedUI Test简介'>VSTS2010的一个新功能&#8211;CodedUI Test简介</a></li>
<li><a href='http://magustest.com/blog/readingdaily/software-testing-note-part-sixteen/' rel='bookmark' title='Permanent Link: 《Software Testing》（软件测试）读书笔记系列 &#8211; 第十六章'>《Software Testing》（软件测试）读书笔记系列 &#8211; 第十六章</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>STS 2010 BETA 1在近期已经开始发布了，各路高手纷纷出动，在这里我就把我看到的一些不错的关于VSTS2010测试人员版本的文章收集一下，希望对其他人有帮助，也便于我以后复习用 <img src='http://magustest.com/blog/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> </p>
<p><strong>文章：</strong></p>
<p>《<a href="http://blogs.msdn.com/vstsqualitytools/archive/2009/06/12/automated-user-interface-testing-with-coded-ui-test.aspx" target="_blank">Automated User Interface Testing with Coded UI Test</a>》VSTT官方博客出品，Coded UI Test入门</p>
<p>《<a href="http://blogs.msdn.com/billbar/archive/2009/06/09/vsts-2010-load-test-feature-saving-test-logs.aspx" target="_blank">VSTS 2010 Load Test Feature: Saving Test Logs</a>》如何在VS的负载测试中记录日志，帮助定位问题</p>
<p>《<a href="http://blogs.msdn.com/slumley/archive/2009/06/09/vsts-2010-feature-load-test-virtual-user-activity-visualization.aspx" target="_blank">VSTS 2010 Feature: Load test virtual user activity visualization</a>》如果在用VSTS进行性能测试进行的过程中，CPU突然有一个不寻常的峰值出现，在以前是比较难找到原因的，此文给我们介绍了VSTS 2010的最新功能virtual user activity visualization 是如何帮助测试工程师找到问题的根源</p>
<p>《<a href="http://blogs.msdn.com/slumley/pages/vsts-2010-feature-web-test-recorder-plugins.aspx" target="_blank">VSTS 2010 Feature: Web Test Recorder Plugins</a>》如何在VSTS 2010中利用Web Test Recorder Plugins来做自定义的关联</p>
<p>《<a href="http://geekswithblogs.net/jakob/archive/2009/06/04/vsts-2010-enabling-test-impact-analysis.aspx" target="_blank">VSTS 2010: Enabling Test Impact Analysis</a>》文章介绍了如何使用Test Impact Analysis</p>
<p>《<a href="http://blogs.msdn.com/vstsqualitytools/archive/2009/05/29/the-evolution-of-the-ui-design-of-test-and-lab-manager.aspx" target="_blank">The Evolution of the UI Design of Test and Lab Manager</a>》一篇概要介绍 Lab Manager的文章</p>
<p>《<a href="http://msdn.microsoft.com/zh-cn/library/dd380763(en-us,VS.100).aspx" target="_blank">Quick Start Guide for Manual Testing</a>》MSDN上一篇讲述手动测试工程师如何用Lab Manager开展工作的文章</p>
<p>《<a href="http://blogs.msdn.com/jasonz/archive/2009/05/26/vs2010-tutorial-testing-tutorial-step-2.aspx" target="_blank">VS2010 Tutorial: Testing Tutorial (Step 2)</a>》文章极其详细地讲述了如何用VSTS 2010来提交一个BUG，并且展示一系列的新功能，来说明VSTS 2010如何帮助消除开发和测试之间的隔阂，减少那些不可重现的BUG。</p>
<p>《<a href="http://www.clemensreijnen.nl/post/Testing-in-the-Application-Lifecycle-with-Visual-Studio-2010-Test-Edition.aspx" target="_blank">Testing in the Application Lifecycle with Visual Studio 2010 Test Edition</a>》此文详细介绍了在VSTS2010中，测试工程师在整个应用开发生命周期中如何利用VSTS来帮助开展工作</p>
<p>《<a href="http://blogs.msdn.com/ratnaditya/archive/2009/06/01/running-automated-tests-in-manual-test-and-lab-manager-vsts-2010.aspx" target="_blank">Running automated tests in Manual Test and Lab Manager</a>》此文介绍了在Lab Manger中如何运行各种测试的方法</p>
<p>《<a href="http://blogs.msdn.com/slumley/pages/vs-2010-feature-web-test-playback-enhancements.aspx" target="_blank">VSTS 2010 Feature: Web Test Playback Enhancements</a>》文章介绍Web Test在UI方面的更新</p>
<p>《<a href="http://blogs.msdn.com/edglas/archive/2009/05/24/read-this-before-running-a-load-test-with-dev10-beta-1.aspx" target="_blank">Read this Before Running a Load Test with Dev10 Beta 1</a>》如果你的VSTS2010和2008是安装在同一台机器上，并且你又实用了VS的负载测试，那么这篇文章会告诉你如果对数据库进行设置，使得两个版本的负载测试数据能够共存互不影响</p>
<p>《<a href="http://blogs.infosupport.com/blogs/marcelv/archive/2009/05/22/how-to-enable-code-coverage-in-visual-studio-2010-unit-tests.aspx" target="_blank">How to enable code coverage in Visual Studio 2010 Unit tests</a>》，由于VSTS2010对于测试运行的一些改变，所以要打开代码覆盖率的操作与VS2008有所不同，这篇文章给我们讲述了操作细节</p>
<p>《<a href="http://blogs.msdn.com/mathew_aniyan/archive/2009/05/26/coded-ui-test-from-microsoft-test-lab-manager.aspx" target="_blank">Coded UI Test from Microsoft Test &amp; Lab Manager</a>》如何在VSTS的最新的Lab Manager中运行CodedUI Test</p>
<p>《<a href="http://blogs.msdn.com/mathew_aniyan/archive/2009/05/26/coded-ui-test-in-a-team-build.aspx" target="_blank">Coded UI Test in a Team Build</a>》这篇文章讲述了如何把一个CodedUI Test加到TEAM BUILD里面</p>
<p>《<a href="http://blogs.msdn.com/amit_chatterjee/archive/2009/05/24/the-lab-management-product-an-overview.aspx" target="_blank">The Lab Management Product – An Overview</a>》 Lab Management产品介绍。</p>
<p>《<a href="http://blogs.msdn.com/amit_chatterjee/archive/2009/05/14/official-names-for-the-2010-test-products-now-announced.aspx" target="_blank">Official Names for the 2010 Test Products now announced!</a> 》介绍了VSTS2010中，3个不同版本所包含的不同功能。</p>
<p>《<a href="http://blogs.msdn.com/slumley/pages/dev-10-feature-creating-excel-reports-for-load-test-data.aspx" target="_blank">VSTS 2010 Feature: Creating excel reports for Load Test Data</a>》，一篇介绍在VSTS2010中，如何创建一个Excel格式的性能报告的文章。</p>
<p>《<a href="http://blogs.msdn.com/edglas/archive/2009/05/24/read-this-before-running-a-load-test-with-dev10-beta-1.aspx" target="_blank">Rename load test database name before running a long test with VSTS2010 beta1</a>》，这篇文章告诉我们，如果VSTS2008和2010都安装在同一台机子上，那么在2010中运行负载测试的时候会更新数据库的schema，为了让VSTS2008的负载测试数据库和VS2010的共存，需要修改数据库的名字。</p>
<p>《<a href="http://blog.dynatrace.com/2009/05/20/how-to-extend-visual-studio-2010-web-and-load-testing-with-transactional-tracing/" target="_blank">How to extend Visual Studio 2010 Web- and Load-Testing with Transactional Tracing</a>》这篇文章讲述了如何给WEB测试做扩展。图文并茂！</p>
<p>《<a href="http://blogs.msdn.com/edglas/archive/2009/05/19/elevating-the-role-of-the-tester-with-visual-studio-2010.aspx" target="_blank">Elevating the Role of the Tester with Visual Studio 2010</a>》这篇文章详细讲述了各种各样测试工程师可以利用VSTS2010做什么样的东西，作者是VSTS测试人员版本的经理</p>
<p>《<a href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx" target="_blank">Dev10 Beta 1 Available!</a>》这篇文章详细列出了VSTS2010 BETA1中，有关测试部分的更新。</p>
<p><strong>视频：</strong></p>
<p><a href="http://videos.visitmix.com/MIX09/T83M" target="_blank">Automated User Interface (UI) Testing with Microsoft Visual Studio Team System 2010</a>。一个微软的人介绍CodedUI Test，还有Test Impact，17分钟。</p>
<p><a href="http://channel9.msdn.com/shows/10-4/10-4-Episode-23-An-Introduction-to-Manual-Testing/" target="_blank">An Introduction to Manual Testing</a>。</p>
<p><strong>博客：</strong></p>
<p><a href="http://blogs.msdn.com/amit_chatterjee/default.aspx" target="_blank">Amit Chatterjee&#8217;s Blog</a>，VSTS的一个产品经理，这里经常会有关于VSTS测试部分的更新介绍</p>
<p><a href="http://blogs.msdn.com/edglas/default.aspx" target="_blank">Ed Glas&#8217;s blog on VSTS load testing</a>，也是VSTS的一个经理，他的博客主要关注Load Test和Web Test</p>
<p><a href="http://blogs.msdn.com/mathew_aniyan/" target="_blank">Mathew Aniyan&#8217;s Blog</a>，来路不明，Coded UI Test之霸！</p>
<p><a href="http://blogs.gotdotnet.com/lab_management/default.aspx" target="_blank">VSTS Lab Management team blog</a>，Lab Management官方博客</p>
<p><a href="http://blogs.msdn.com/vstsqualitytools/default.aspx" target="_blank">VS Team System Test</a>，VSTT官方博客</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&amp;title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&amp;annotation=STS%202010%20BETA%201%E5%9C%A8%E8%BF%91%E6%9C%9F%E5%B7%B2%E7%BB%8F%E5%BC%80%E5%A7%8B%E5%8F%91%E5%B8%83%E4%BA%86%EF%BC%8C%E5%90%84%E8%B7%AF%E9%AB%98%E6%89%8B%E7%BA%B7%E7%BA%B7%E5%87%BA%E5%8A%A8%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E5%B0%B1%E6%8A%8A%E6%88%91%E7%9C%8B%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%8D%E9%94%99%E7%9A%84%E5%85%B3%E4%BA%8EVSTS2010%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E7%89%88%E6%9C%AC%E7%9A%84%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%B8%8C%E6%9C%9B%E5%AF%B9%E5%85%B6%E4%BB%96%E4%BA%BA%E6%9C%89%E5%B8%AE%E5%8A%A9%EF%BC%8C%E4%B9%9F%E4%BE%BF%E4%BA%8E%E6%88%91%E4%BB%A5%E5%90%8E%E5%A4%8D%E4%B9%A0%E7%94%A8%20%3Alol%3A%0A%0A%E6%96%87%E7%AB%A0%EF%BC%9A" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&amp;title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&amp;bodytext=STS%202010%20BETA%201%E5%9C%A8%E8%BF%91%E6%9C%9F%E5%B7%B2%E7%BB%8F%E5%BC%80%E5%A7%8B%E5%8F%91%E5%B8%83%E4%BA%86%EF%BC%8C%E5%90%84%E8%B7%AF%E9%AB%98%E6%89%8B%E7%BA%B7%E7%BA%B7%E5%87%BA%E5%8A%A8%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E5%B0%B1%E6%8A%8A%E6%88%91%E7%9C%8B%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%8D%E9%94%99%E7%9A%84%E5%85%B3%E4%BA%8EVSTS2010%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E7%89%88%E6%9C%AC%E7%9A%84%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%B8%8C%E6%9C%9B%E5%AF%B9%E5%85%B6%E4%BB%96%E4%BA%BA%E6%9C%89%E5%B8%AE%E5%8A%A9%EF%BC%8C%E4%B9%9F%E4%BE%BF%E4%BA%8E%E6%88%91%E4%BB%A5%E5%90%8E%E5%A4%8D%E4%B9%A0%E7%94%A8%20%3Alol%3A%0A%0A%E6%96%87%E7%AB%A0%EF%BC%9A" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&amp;title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&amp;notes=STS%202010%20BETA%201%E5%9C%A8%E8%BF%91%E6%9C%9F%E5%B7%B2%E7%BB%8F%E5%BC%80%E5%A7%8B%E5%8F%91%E5%B8%83%E4%BA%86%EF%BC%8C%E5%90%84%E8%B7%AF%E9%AB%98%E6%89%8B%E7%BA%B7%E7%BA%B7%E5%87%BA%E5%8A%A8%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E5%B0%B1%E6%8A%8A%E6%88%91%E7%9C%8B%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%8D%E9%94%99%E7%9A%84%E5%85%B3%E4%BA%8EVSTS2010%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E7%89%88%E6%9C%AC%E7%9A%84%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%B8%8C%E6%9C%9B%E5%AF%B9%E5%85%B6%E4%BB%96%E4%BA%BA%E6%9C%89%E5%B8%AE%E5%8A%A9%EF%BC%8C%E4%B9%9F%E4%BE%BF%E4%BA%8E%E6%88%91%E4%BB%A5%E5%90%8E%E5%A4%8D%E4%B9%A0%E7%94%A8%20%3Alol%3A%0A%0A%E6%96%87%E7%AB%A0%EF%BC%9A" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&amp;t=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&amp;title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F&amp;title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&amp;body=STS%202010%20BETA%201%E5%9C%A8%E8%BF%91%E6%9C%9F%E5%B7%B2%E7%BB%8F%E5%BC%80%E5%A7%8B%E5%8F%91%E5%B8%83%E4%BA%86%EF%BC%8C%E5%90%84%E8%B7%AF%E9%AB%98%E6%89%8B%E7%BA%B7%E7%BA%B7%E5%87%BA%E5%8A%A8%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E5%B0%B1%E6%8A%8A%E6%88%91%E7%9C%8B%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%8D%E9%94%99%E7%9A%84%E5%85%B3%E4%BA%8EVSTS2010%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E7%89%88%E6%9C%AC%E7%9A%84%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%B8%8C%E6%9C%9B%E5%AF%B9%E5%85%B6%E4%BB%96%E4%BA%BA%E6%9C%89%E5%B8%AE%E5%8A%A9%EF%BC%8C%E4%B9%9F%E4%BE%BF%E4%BA%8E%E6%88%91%E4%BB%A5%E5%90%8E%E5%A4%8D%E4%B9%A0%E7%94%A8%20%3Alol%3A%0A%0A%E6%96%87%E7%AB%A0%EF%BC%9A" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=VSTS%202010%20Test%20Edition%E6%96%87%E7%AB%A0%E6%94%B6%E9%9B%86%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fvsts2010-test-edition-article-collection%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/loadtest/vsts-load-controller-and-load-agent-installation/' rel='bookmark' title='Permanent Link: 图解微软性能测试工具VSTS2008 Load Test Agent安装'>图解微软性能测试工具VSTS2008 Load Test Agent安装</a></li>
<li><a href='http://magustest.com/blog/automationtesting/vsts2010-new-feature-codedui-test/' rel='bookmark' title='Permanent Link: VSTS2010的一个新功能&#8211;CodedUI Test简介'>VSTS2010的一个新功能&#8211;CodedUI Test简介</a></li>
<li><a href='http://magustest.com/blog/readingdaily/software-testing-note-part-sixteen/' rel='bookmark' title='Permanent Link: 《Software Testing》（软件测试）读书笔记系列 &#8211; 第十六章'>《Software Testing》（软件测试）读书笔记系列 &#8211; 第十六章</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/vsts2010-test-edition-article-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firebug网络监视详解</title>
		<link>http://magustest.com/blog/softwaretesting/introduction-to-firebug-network-monitoring/</link>
		<comments>http://magustest.com/blog/softwaretesting/introduction-to-firebug-network-monitoring/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 05:35:45 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[软件测试]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=460</guid>
		<description><![CDATA[Firebug是一个非常强大的Firefox附加组件，可以查看、编辑HTML，CSS，JavaScript，Cookies，是开发者必不可少的工具，现在Firebug的发行版本是1.3.3。 Firebug中有一个叫“网络”的面板，在这里我们可以看到各个元素的详细信息。 从左往右分别是 请求部分 http状态码 域名 文件大小 timeline 请求部分 这个地方是可以展开的，里面包括了请求的地址，请求的方法（是GET还是POST），请求的参数，Headers等等。 http状态码 如果是成功，就是200，404就是请求资源部存在，具体可以看这里 域名 查看该资源所属的域名，其实在请求部分中已经有这个信息了，不过在这里列出来会方便查找某些域名下在资源 文件大小 没什么可解释的 timeline 这里是重点。在Firebug 1.3.3中，timeline如下图所示： 有2个时间信息是让人比较迷惑的。 Queuing：这个Queuing一开始我以为是从浏览器发送请求，到服务器返回第一个字节的时间；后来我发现我的瞎猜是错的，Queuing是Firefox浏览器的一种机制，就例如如果一个页面上有很多个图片元素，那么其中一些图片元素的请求就被放到队列里面。 Receiving Data：接收数据的时间 在Firebug 1.3.3中，这两个数据让人很迷惑，而且实用价值很小。后来我发现了现在Firebug有 1.4 alpha版本，在1.4中，会把请求的时间细分，具体如下图所示： 分别是： 1) DNS Lookup （DNS查找时间） 2) Connecting （这个我没搞清楚是什么连接时间） 3) Queuing (Firefox内部的队列) 4) Waiting for the response (请求发出去以后，等待服务端响应的时间) 5) Receiving Data (接受到服务端响应以后，下载数据所用的时间) 有了这些时间，可以帮助对页面进行优化，例如如果发现接受数据时间很长，那是不是因为图片文件太大，或者没有用GZIP压缩；如果等待响应时间很长，是不是程序设计有性能问题，导致响应时间很长。 最后推荐大家一个WEB工具，Cuzillion，这个工具可让用户在线创建一个他们想要的页面，例如可以放一个引用的JS到HEAD里面，或者在BODY中放几个图片，IFRAME等。通过创建不同的页面，可以对一些前端最佳实践进行验证。例如把JS放在页面的底部，CSS放在页面的顶部等等。 Share and Enjoy: No related [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://getfirebug.com/" target="_blank">Firebug</a>是一个非常强大的Firefox附加组件，可以查看、编辑HTML，CSS，JavaScript，Cookies，是开发者必不可少的工具，现在Firebug的发行版本是1.3.3。</p>
<p>Firebug中有一个叫“网络”的面板，在这里我们可以看到各个元素的详细信息。</p>
<p>从左往右分别是</p>
<ul>
<li>请求部分</li>
<li>http状态码</li>
<li>域名</li>
<li>文件大小</li>
<li>timeline</li>
</ul>
<p><strong><a name="request_part"></a>请求部分</strong></p>
<p><img class="alignnone size-full wp-image-461" title="firebug_headers" src="http://magustest.com/blog/wp-content/uploads/2009/04/firebug_headers1.png" alt="firebug_headers" width="613" height="274" /></p>
<p>这个地方是可以展开的，里面包括了请求的地址，请求的方法（是GET还是POST），请求的参数，Headers等等。</p>
<p><strong>http状态码</strong></p>
<p>如果是成功，就是200，404就是请求资源部存在，<a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes" target="_blank">具体可以看这里</a></p>
<p><strong>域名</strong></p>
<p>查看该资源所属的域名，其实在<a href="#request_part">请求部分</a>中已经有这个信息了，不过在这里列出来会方便查找某些域名下在资源</p>
<p><strong>文件大小</strong></p>
<p>没什么可解释的</p>
<p><strong>timeline</strong></p>
<p>这里是重点。在Firebug 1.3.3中，timeline如下图所示：<br />
<span id="more-460"></span><br />
<img class="alignnone size-full wp-image-462" title="firebug_13" src="http://magustest.com/blog/wp-content/uploads/2009/04/firebug_131.png" alt="firebug_13" width="393" height="190" /></p>
<p>有2个时间信息是让人比较迷惑的。</p>
<p><strong><span style="text-decoration: underline;">Queuing</span></strong>：这个Queuing一开始我以为是从浏览器发送请求，到服务器返回第一个字节的时间；后来我发现我的瞎猜是错的，Queuing是Firefox浏览器的一种机制，就例如如果一个页面上有很多个图片元素，那么其中一些图片元素的请求就被放到队列里面。</p>
<p><span style="text-decoration: underline;"><strong>Receiving Data</strong></span>：接收数据的时间</p>
<p>在Firebug 1.3.3中，这两个数据让人很迷惑，而且实用价值很小。后来我发现了现在Firebug有 <a href="http://getfirebug.com/releases/firebug/1.4/" target="_blank">1.4 alpha版本</a>，在1.4中，会把请求的时间细分，具体如下图所示：</p>
<p><img class="alignnone size-full wp-image-464" title="firebug_14_withdns" src="http://magustest.com/blog/wp-content/uploads/2009/04/firebug_14_withdns1.png" alt="firebug_14_withdns" width="385" height="233" /></p>
<p>分别是：</p>
<p>1) <strong>DNS Lookup</strong> （DNS查找时间）<br />
2) <strong>Connecting</strong> （这个我没搞清楚是什么连接时间）<br />
3) <strong>Queuing </strong>(Firefox内部的队列)<br />
4) <strong>Waiting for the response </strong>(请求发出去以后，等待服务端响应的时间)<br />
5) <strong>Receiving Data</strong> (接受到服务端响应以后，下载数据所用的时间)</p>
<p>有了这些时间，可以帮助对页面进行优化，例如如果发现接受数据时间很长，那是不是因为图片文件太大，或者没有用GZIP压缩；如果等待响应时间很长，是不是程序设计有性能问题，导致响应时间很长。</p>
<p>最后推荐大家一个WEB工具，<a href="http://stevesouders.com/cuzillion/" target="_blank">Cuzillion</a>，这个工具可让用户在线创建一个他们想要的页面，例如可以放一个引用的JS到HEAD里面，或者在BODY中放几个图片，IFRAME等。通过创建不同的页面，可以对一些前端最佳实践进行验证。例如把JS放在页面的底部，CSS放在页面的顶部等等。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&amp;title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&amp;annotation=Firebug%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E5%BC%BA%E5%A4%A7%E7%9A%84Firefox%E9%99%84%E5%8A%A0%E7%BB%84%E4%BB%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E3%80%81%E7%BC%96%E8%BE%91HTML%EF%BC%8CCSS%EF%BC%8CJavaScript%EF%BC%8CCookies%EF%BC%8C%E6%98%AF%E5%BC%80%E5%8F%91%E8%80%85%E5%BF%85%E4%B8%8D%E5%8F%AF%E5%B0%91%E7%9A%84%E5%B7%A5%E5%85%B7%EF%BC%8C%E7%8E%B0%E5%9C%A8Firebug%E7%9A%84%E5%8F%91%E8%A1%8C%E7%89%88%E6%9C%AC%E6%98%AF1.3.3%E3%80%82%0A%0AFirebug%E4%B8%AD%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AB%E2%80%9C%E7%BD%91%E7%BB%9C%E2%80%9D%E7%9A%84%E9%9D%A2%E6%9D%BF%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E4%BB%AC%E5%8F" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&amp;title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&amp;bodytext=Firebug%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E5%BC%BA%E5%A4%A7%E7%9A%84Firefox%E9%99%84%E5%8A%A0%E7%BB%84%E4%BB%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E3%80%81%E7%BC%96%E8%BE%91HTML%EF%BC%8CCSS%EF%BC%8CJavaScript%EF%BC%8CCookies%EF%BC%8C%E6%98%AF%E5%BC%80%E5%8F%91%E8%80%85%E5%BF%85%E4%B8%8D%E5%8F%AF%E5%B0%91%E7%9A%84%E5%B7%A5%E5%85%B7%EF%BC%8C%E7%8E%B0%E5%9C%A8Firebug%E7%9A%84%E5%8F%91%E8%A1%8C%E7%89%88%E6%9C%AC%E6%98%AF1.3.3%E3%80%82%0A%0AFirebug%E4%B8%AD%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AB%E2%80%9C%E7%BD%91%E7%BB%9C%E2%80%9D%E7%9A%84%E9%9D%A2%E6%9D%BF%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E4%BB%AC%E5%8F" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&amp;title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&amp;notes=Firebug%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E5%BC%BA%E5%A4%A7%E7%9A%84Firefox%E9%99%84%E5%8A%A0%E7%BB%84%E4%BB%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E3%80%81%E7%BC%96%E8%BE%91HTML%EF%BC%8CCSS%EF%BC%8CJavaScript%EF%BC%8CCookies%EF%BC%8C%E6%98%AF%E5%BC%80%E5%8F%91%E8%80%85%E5%BF%85%E4%B8%8D%E5%8F%AF%E5%B0%91%E7%9A%84%E5%B7%A5%E5%85%B7%EF%BC%8C%E7%8E%B0%E5%9C%A8Firebug%E7%9A%84%E5%8F%91%E8%A1%8C%E7%89%88%E6%9C%AC%E6%98%AF1.3.3%E3%80%82%0A%0AFirebug%E4%B8%AD%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AB%E2%80%9C%E7%BD%91%E7%BB%9C%E2%80%9D%E7%9A%84%E9%9D%A2%E6%9D%BF%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E4%BB%AC%E5%8F" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&amp;t=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&amp;title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F&amp;title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&amp;body=Firebug%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E5%BC%BA%E5%A4%A7%E7%9A%84Firefox%E9%99%84%E5%8A%A0%E7%BB%84%E4%BB%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E3%80%81%E7%BC%96%E8%BE%91HTML%EF%BC%8CCSS%EF%BC%8CJavaScript%EF%BC%8CCookies%EF%BC%8C%E6%98%AF%E5%BC%80%E5%8F%91%E8%80%85%E5%BF%85%E4%B8%8D%E5%8F%AF%E5%B0%91%E7%9A%84%E5%B7%A5%E5%85%B7%EF%BC%8C%E7%8E%B0%E5%9C%A8Firebug%E7%9A%84%E5%8F%91%E8%A1%8C%E7%89%88%E6%9C%AC%E6%98%AF1.3.3%E3%80%82%0A%0AFirebug%E4%B8%AD%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8F%AB%E2%80%9C%E7%BD%91%E7%BB%9C%E2%80%9D%E7%9A%84%E9%9D%A2%E6%9D%BF%EF%BC%8C%E5%9C%A8%E8%BF%99%E9%87%8C%E6%88%91%E4%BB%AC%E5%8F" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Firebug%E7%BD%91%E7%BB%9C%E7%9B%91%E8%A7%86%E8%AF%A6%E8%A7%A3%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fsoftwaretesting%2Fintroduction-to-firebug-network-monitoring%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/softwaretesting/introduction-to-firebug-network-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
