﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-finer</title><link>http://www.blogjava.net/zouhui/</link><description /><language>zh-cn</language><lastBuildDate>Sat, 02 May 2026 14:38:01 GMT</lastBuildDate><pubDate>Sat, 02 May 2026 14:38:01 GMT</pubDate><ttl>60</ttl><item><title>《自动化平台测试开发-Python测试开发实战》出版啦</title><link>http://www.blogjava.net/zouhui/archive/2018/06/15/433281.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 14 Jun 2018 23:51:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2018/06/15/433281.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/433281.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2018/06/15/433281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/433281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/433281.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
测试开发大神打造，<a href="http://www.autotestplat.com">Autotestplat</a>一站式自动化集成平台及解决方案 &nbsp;
<div><br />
<div>
<div><br />
<div><a href="https://item.jd.com/29201171634.html">京东 《自动化平台测试开发》</a>&nbsp;</div>
<div><br />
</div>
<div><a href="https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.141.42c5451ctOyWPL&amp;id=571390236954&amp;areaId=440300&amp;user_id=2130152348&amp;cat_id=2&amp;is_b=1&amp;rn=a0e94ff8676577c3054f52269a30f375">天猫 《自动化平台测试开发》&nbsp;</a></div>
<div><br />
</div>
<div><img src="http://www.blogjava.net/images/blogjava_net/zouhui/34290.jpg" border="0" alt="" width="591" height="763" /><br />
</div>
<div><br />
</div>
<div>微信公众号：</div>
<div><img src="http://www.blogjava.net/images/blogjava_net/zouhui/qrcode_for_gh_d8c719f5ee0c_258-7.jpg" border="0" alt="" width="258" height="258" /><br />
</div>
<div><br />
</div>
</div>
</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/433281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2018-06-15 07:51 <a href="http://www.blogjava.net/zouhui/archive/2018/06/15/433281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《软件自动化测试开发》作者微信号：zouhui1003it</title><link>http://www.blogjava.net/zouhui/archive/2016/07/14/autotest.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 14 Jul 2016 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2016/07/14/autotest.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/431188.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2016/07/14/autotest.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/431188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/431188.html</trackback:ping><description><![CDATA[由专业测试开发倾情打造，<a href="http://www.autotestplat.com/"><span style="color: #3366ff;">Autotestplat</span></a>一站式自动化集成平台及解决方案<br />
<div><br />
</div>
<div><a href="https://item.jd.com/12080762.html">京东 《软件自动化测试开发》</a></div>
<div><br />
</div>
<div><a href="https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.56.BDf9Mf&amp;id=543318665304&amp;areaId=440300&amp;user_id=217042976&amp;cat_id=2&amp;is_b=1&amp;rn=dff57af6ebc113ae88db56e4eac0d49c">天猫 《软件自动化测试开发》</a><br />
&nbsp;&nbsp;
<div>
&nbsp;
<div>
<div>
<div><img src="http://www.blogjava.net/images/blogjava_net/zouhui/IMG_3733.JPG" border="0" alt="" width="481" height="640" /><br />
</div>
<div>微信公众号：</div>
<div><img src="http://www.blogjava.net/images/blogjava_net/zouhui/qrcode_for_gh_d8c719f5ee0c_258-7.jpg" width="258" height="258" alt="" /><br />
</div>
</div>
</div>
</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/431188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2016-07-14 14:57 <a href="http://www.blogjava.net/zouhui/archive/2016/07/14/autotest.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何进行Web服务的性能测试</title><link>http://www.blogjava.net/zouhui/archive/2015/04/23/424619.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 23 Apr 2015 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/23/424619.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424619.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/23/424619.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424619.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424619.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: @import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);@import url(http://www.blogjava.net/CuteSoft_Client/C...&nbsp;&nbsp;<a href='http://www.blogjava.net/zouhui/archive/2015/04/23/424619.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/424619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-23 14:13 <a href="http://www.blogjava.net/zouhui/archive/2015/04/23/424619.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android自动化测试框架</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424025.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424025.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&amp;file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 1.安装jdk&nbsp; 配置jdk环境变量<br /><br />2.安装eclipes&nbsp; 火狐Selenium IDE<br /><br />3.加入jxl，log4j，selenium，gson，java-client包<br /><br />4.加入JUnit包，创建JUnit测试类 <br /><br />5.加入TestNG包，创建testng测试类 testng.xml<br /><br />6.安装ant，配置ant环境变量&nbsp; build.xml<br /><br />7.安装jenkins，tomcat 配置tomcat环境变量<br /><br />8.安装android-sdk-windows<br /><br />9.安装appium<br /><br />10.配置android环境变量<br /><br />
<p>&nbsp;</p>
<p>1</p>
<p>android-sdk-windows\tools&gt;uiautomatorviewer.bat&nbsp;<span style="font-family: 宋体">抓取页面控件元素</span></p>
<p>&nbsp;</p>
<p>2</p>
<p>android-sdk-windows\platform-tools&gt;adb install Aolaigo.apk <span style="font-family: 宋体">安装</span>app<span style="font-family: 宋体">软件</span></p>
<p>&nbsp;</p>
<p>3</p>
<p>android-sdk-windows\tools&nbsp;aapt dump badging E:\apk\es3.apk&nbsp;<span style="font-family: 宋体">获取</span>app<span style="font-family: 宋体">入口</span></p>
<p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">capabilities.setCapability(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"appPackage"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, </span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"com.csc.aolaigo"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">capabilities.<u>setCapability</u>(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"appActivity"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">, </span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">".ui.StartActivity"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">)</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">4</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">eclipse Macketplace&nbsp;&nbsp; </span><span style="font-family: 宋体; font-size: 10pt; courier: ">安装</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">android</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">5</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">appium</span></p>
<p><img alt="" src="data:image/png;base64,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" /></p>
<p>&nbsp;</p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">6</span></p>
<p><span style="font-family: 宋体; font-size: 10pt; courier: ">真机上测试时，</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">android4.2</span><span style="font-family: 宋体; font-size: 10pt; courier: ">不支持</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">resources id</span><span style="font-family: 宋体; font-size: 10pt; courier: ">；需要</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">android4.4</span><span style="font-family: 宋体; font-size: 10pt; courier: ">等以上<br /><br />7<br />root安卓手机，adbWireless;adb connect 192.168.XX.XX;即可安装无线运行</span></p><img src ="http://www.blogjava.net/zouhui/aggbug/424025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 13:13 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>功能自动化文件清单</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 05:09:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424024.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424024.html</trackback:ping><description><![CDATA[1.安装jdk&nbsp; 配置jdk环境变量<br /><br />2.安装eclipes&nbsp; 火狐Selenium IDE<br /><br />3.加入jxl，log4j，selenium包<br /><br />4.加入JUnit包，创建JUnit测试类 <br /><br />5.加入TestNG包，创建testng测试类 testng.xml<br /><br />6.安装ant，配置ant环境变量&nbsp; build.xml<br /><br />7.安装jenkins，tomcat 配置tomcat环境变量<br /><br />8.节点slave配置及连接<br /><br />9.启动节点自动化测试<br /><br /><div>shopping<br />&nbsp;&nbsp;&nbsp;&nbsp; ---src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --java类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --日志类<br />&nbsp;&nbsp;&nbsp;&nbsp; -------------- SelLogger<br />&nbsp;&nbsp;&nbsp;&nbsp; -------------- log4j.properties<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --模块公共类<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- BrowserDriver<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- FileExcel<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- Login<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- PublicModule<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- Search<br />&nbsp;&nbsp;&nbsp;&nbsp; ---------------- SiteUrl<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.cart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --购物车测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- CartTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- CartTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.login&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --登录测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- LoginTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- LoginTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --订单测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- OrderTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- OrderTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.payment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --支付测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- PaymentTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- PaymentTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.product&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --商品测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- ProductTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- ProductTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------logo.testsuite.search&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --搜索测试类<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- SearchTestSuiteJunit<br />&nbsp;&nbsp;&nbsp;&nbsp; ------------------------- SearchTestSuiteTestng<br />&nbsp;&nbsp;&nbsp;&nbsp; ------testng.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --运行测试用例配置文件<br />&nbsp;&nbsp;&nbsp;&nbsp; JUnit4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --JUnit4组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; TestNG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --TestNG组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; ---ant&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --ant组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; classes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --编译类<br />&nbsp;&nbsp;&nbsp;&nbsp; ---lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --环境依赖包<br />&nbsp;&nbsp;&nbsp;&nbsp; --logs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --日志生成文件<br />&nbsp;&nbsp;&nbsp;&nbsp; test-output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --测试结果报告<br />&nbsp;&nbsp;&nbsp;&nbsp; tomcat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --jenkins运行环境<br />&nbsp;&nbsp;&nbsp;&nbsp; build.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --ant构建运行配置文件<br />&nbsp;&nbsp;&nbsp;&nbsp; jxl.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --excel组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; selenium-java-2.43.1-srcs.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --selenium组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; selenium-java-2.43.1.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --selenium组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; selenium-server-standalone-2.39.0.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --selenium组件包<br />&nbsp;&nbsp;&nbsp;&nbsp; test.xls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --参数数据excel文件</div><img src ="http://www.blogjava.net/zouhui/aggbug/424024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 13:09 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>功能自动化框架概念</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424017.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424017.html</trackback:ping><description><![CDATA[<p style="text-align:center" align="center"><strong><span style="font-size:22.0pt;font-family:宋体;">功能自动化</span></strong></p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">一</span></strong><strong><span style="font-size:14.0pt; font-family:宋体;">&#8226;</span></strong><strong><span style="font-size:14.0pt;font-family: 宋体;">介绍</span></strong></p>  <p style="margin-bottom:4.45pt"><span style="font-size:10.5pt;color:windowtext">自动化的本质----就是用程序来测试程序</span></p>  <p style="margin-bottom:4.45pt"><span style="font-size:10.5pt;color:windowtext">随着Web项目的日益庞大，自动化测试技术的重要性日益突出 </span></p>  <p style="margin-bottom:4.45pt">&nbsp;</p>  <p style="margin-bottom:4.45pt"><strong><span style="font-size:14.0pt;color:windowtext">二&#8226;手工 vs 自动化 </span></strong></p>  <p style="margin-bottom:4.45pt"><span style="font-size:10.5pt;color:windowtext">手工：不可替代、发现更多</span><span style="font-size:10.5pt;color:windowtext">bug</span><span style="font-size:10.5pt;color:windowtext">、人的想象力与理解力 </span></p>  <p><span style="font-size:10.5pt; color:windowtext">自动化：可重复、效率高，增加软件信任度 </span></p>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-size: 14.0pt;color:windowtext">三&#8226;自动化测试<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong></p>  <p><strong>1</strong><strong><span style="font-family:宋体;">自动化测试分类</span></strong><span style="font-family:宋体;">：</span></p>  <p><span style="font-family:宋体;">对</span>web UI<span style="font-family:宋体;">的自动化测试程序</span></p>  <p><span style="font-family:宋体;">对</span>windows<span style="font-family:宋体;">窗体</span>c/s&nbsp;UI<span style="font-family:宋体;">的自动化测试程序</span></p>  <p>API<span style="font-family:宋体;">测试</span> <span style="font-family:宋体;">比如</span> <span style="font-family:宋体;">测试</span>WCF service<span style="font-family:宋体;">，</span>Web API<span style="font-family:宋体;">等</span></p>  <p><span style="font-family:宋体;">数据库测试，比如测试存储过程</span></p>  <p><span style="font-family:宋体;">接口测试，</span></p>  <p><span style="font-family:宋体;">单元测试</span></p>  <p><span style="font-family:宋体;">性能测试，性能测试都需要自动化</span></p>  <p>&nbsp;</p>  <p><strong>2</strong><strong><span style="font-family:宋体;">自动化测试驱动</span></strong></p>  <p><span style="font-family:宋体;">测试驱动是一个自动化测试框架的核心，其决定整个自动化脚本设计。当前比较流行的测试驱动有数据驱动和关键字驱动，使用不同的测试驱动，关系到脚本重用率，以及后期的可维护性。</span></p>  <p><span style="font-family:宋体;">（</span>1<span style="font-family:宋体;">）数据驱动</span></p>  <p><span style="font-family:宋体;">基于数据驱动的自动化测试框架是指测试驱动引擎从数据源获取测试数据，然后将将数据以参数的形式传递给测试脚本，最后通过执行测试脚本，验证测试结果，并将测试结果输出。</span></p>  <p><span style="font-family:宋体;">一般数据源与测试结果存储在数据库、</span>Excel<span style="font-family:宋体;">文件、</span>Csv<span style="font-family:宋体;">文件等。数据驱动主要优点是：</span></p>  <p><span style="font-family:宋体;">测试脚本与测试数据的分离，当应用功能变更时，只需要修改该功能部分的脚本；执行测试用例的人员不需要了解测试脚本的实现，只关注测试数据表与测试报告表。而且测试脚本的执行是离散的，即非线性的，测试人员可以有选择的执行测试用例。</span></p>  <p><span style="font-family:宋体;">（</span>2<span style="font-family:宋体;">）关键字驱动</span></p>  <p><span style="font-family:宋体;">关键字驱动的自动化测试框架是在数据驱动的基础上进行改进，数据源里包含的不只是数据，还有关键字，一个测试用例由一个或若干个关键字组成。每个关键字对应个不同的业务逻辑，例如，登录、注销等。数据表通过关键字，查找映射表，执行相关的脚本。</span></p>  <p><span style="font-family:宋体;">（</span>3<span style="font-family:宋体;">）驱动引擎</span></p>  <p><span style="font-family:宋体;">驱动引擎是对数据表的数据进行分析，根据不同的测试数据或关键字调用相应测试脚本。驱动引擎还需完成一些测试环境初始化、全局参数设置、测试用例是否执行的判断，以及测试报告的处理等。</span></p>  <p>&nbsp;</p>  <p><strong>3</strong><strong><span style="font-family:宋体;">自动化测试用例设计</span>&nbsp;</strong></p>  <p><span style="font-family:宋体;">分三步走：初始化，输入准备；</span></p>  <p><span style="font-family:宋体;">执行（方法调用），结果验证（断言）；</span></p>  <p><span style="font-family:宋体;">清理环境</span></p>  <p>&nbsp;</p>  <p><strong>4</strong><strong><span style="font-family:宋体;">自动化测试脚本开发</span></strong></p>  <p><span style="font-family:宋体;">测试脚本开发必须通过详细、合理的设计，要对脚本代码进行划分，脚本文件或数据文件分层管理。这样有利于自动化脚本的开发与维护，从而节省自动化测试的投入成本，也使得不同测试人员或开发人员可以协调开发脚本。</span></p>  <p><span style="font-family:宋体;">（</span>1<span style="font-family:宋体;">）脚本规范</span></p>  <p><span style="font-family:宋体;">测试脚本的开发也要遵循编程的规则与标准，应该统一规划，所有开发脚本的人员按照</span></p>  <p><span style="font-family:宋体;">统一的规定进行编码。除了编程本身规范，还考虑测试用例与库函数名的命名，测试用例需要加上项目名称，但公共的库函数却不需要，因为公共的库函数是独立于项目的。例如，项目</span>M4.1<span style="font-family:宋体;">客户端登录测试用例可命名为：</span>TC_M4.1_client_login<span style="font-family:宋体;">；读取</span>excel<span style="font-family:宋体;">表的函数可命名为：</span>read_excel<span style="font-family:宋体;">。</span></p>  <p><span style="font-family:宋体;">（</span>2<span style="font-family:宋体;">）脚本划分</span></p>  <p><span style="font-family:宋体;">测试脚本的划分，如何定义公共的脚本库，不同模块特有的脚本库，以及直接构建测试用例的脚本。为了方便以后脚本的维护问题，必须对脚本进行有效的分层，同时，提高了脚本的复用率。</span></p>  <p><span style="font-family:宋体;">&#9312;公共类库</span></p>  <p><span style="font-family:宋体;">公共类库包括所有模块都可能用户的操作方法，其抽象了不同模块同性，比如操作</span>excel<span style="font-family:宋体;">表的方法、读写测试报告、驱动引擎等。</span></p>  <p><span style="font-family:宋体;">&#9313;模块特定类库</span></p>  <p><span style="font-family:宋体;">在模块内部将可以为该模块共享使用的方法抽象出来，作为一个公共类。它可以是一个单的逻辑操作，也比较独立。比如客户端登录操作、控制台登录操作、控制台更新操作等。</span></p>  <p><span style="font-family:宋体;">&#9314;测试用例脚本</span></p>  <p><span style="font-family:宋体;">测试用例脚在最上层，它根据测试点进行设计，面向具体的应用。它可直接调用公共类库或模块特定类库的方法，即调单个逻辑操作。它是单个或多个逻辑操作的集合，即一个测试用户脚本。比如，在客户端访问资源的测试用例，它调用了客户端登录方法和访问资源方法。</span></p>  <p><span style="font-family:宋体;">（</span>3<span style="font-family:宋体;">）测试用例</span></p>  <p><span style="font-family:宋体;">&#9312;测试用例粒度</span></p>  <p><span style="font-family:宋体;">测试用例的粒度决定了用例模型级的复杂度，也决定了每一个用例内部的复杂度。</span></p>  <p><span style="font-family:宋体;">应该根据每个系统的具体情况来把握各个层次的复杂度，在尽可能保证整个用例模型的易理解性前提下决定用例的大小和数目。用例不能太大，这样一旦出执行测试用例出错，不利于定位问题；但也不能太细化，太小则不方便执行。</span></p>  <p><span style="font-family:宋体;">&#9313;测试用例与测试套件</span></p>  <p><span style="font-family:宋体;">一个大型的项目有许功能模块，必然会产生大量的测试用例，怎样才能有效的管理这些测试用例呢？这就需要创建测试套件，通过测试套件将测试某一个模块或功能点的测试用例集合起来，方便运行与管理。例如，只验证&#8220;用户管理&#8221;模块功能，则只需要执行&#8220;用户管理&#8221;模块套件即可。</span></p>  <p><span style="font-family:宋体;">（</span>4<span style="font-family:宋体;">）脚本与</span>html<span style="font-family:宋体;">标记分离脚本与</span>html<span style="font-family:宋体;">标记分离使得在一定程度上脚本独立于</span>WEB<span style="font-family:宋体;">页面，脚本没有直接的处理</span>html<span style="font-family:宋体;">标记，脚本代码通过</span>html<span style="font-family:宋体;">映射表获取赋有</span>WEB<span style="font-family:宋体;">页面标记值的变量。</span>WEB<span style="font-family:宋体;">页面标记包括</span>html<span style="font-family:宋体;">标记和页面内容（文本或图片等，这些都可能是判断用例是否成功能的检查点），当</span>WEB<span style="font-family:宋体;">页面标记变更后，不需要在范围的修改脚本。</span></p>  <p><span style="font-family:宋体;">（</span>5<span style="font-family:宋体;">）选择适合自动化测试的用例</span></p>  <p><span style="font-family:宋体;">在编写自动化测试脚本前，首先要确定哪些用例适合做自动化测试，因为自化测试不像手工测试，它不能那么智能，也没有发发散思维。通常适合自动化测试的用例有：</span></p>  <p><span style="font-family:宋体;">产品型项目。产品型的项目，新版本是在旧版本的基础上进行改进，功能变不大的项目，但项目的新老功能都必须重复的测试。</span></p>  <p><span style="font-family:宋体;">回归测试。回归测试是自动化测试的强项，它能够很好的验证你是否引入了新的缺陷，老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。</span></p>  <p><span style="font-family:宋体;">机械并频繁的测试。每次需要输入相同、大量的一些数据，并且在一个项目中运行的周期比较长。</span></p>  <p><span style="font-family:宋体;">有一些交互性比较强，需要人工干预的操作，就不要指望通过自动化测试来完成了。</span></p>  <p><span style="font-family:宋体;">例如，用户使用</span>DKEY<span style="font-family:宋体;">登录。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-size: 14.0pt;color:windowtext">四&#8226;测试自动化</span></strong><span style="font-size:10.5pt;color:windowtext">&nbsp;&nbsp; </span><span style="font-size:10.5pt;color:windowtext">偏向于开发岗位 </span></p>  <p><span style="font-size:10.5pt; color:windowtext">自动化系统平台开发，自动化框架工具开发；提供给自动化测试或业务人员等执行自动化测试，结果收集，结果判断，结果通告</span></p>  <p>&nbsp;</p>  <p><span style="font-size:10.5pt; color:windowtext">自动化框架<span><span>&nbsp;&nbsp;&nbsp; </span></span>分上下两个层次</span></p>  <p>&nbsp;</p>  <p><span style="font-size:10.5pt; color:windowtext">上层是管理整个自动化测试的开发，执行以及维护，在比较庞大的项目中，它体现重要的作用，它可以管理整个自动测试，包括自动化测试用例执行的次序、测试脚本的维护、以及集中管理测试用例、测试报告和测试任务等。</span></p>  <p>&nbsp;</p>  <p><span style="font-size:10.5pt; color:windowtext">下层主要是测试脚本的开发，充分的使用相关的测试工具，构建测试驱动，并完成测试业务逻辑</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">五</span></strong><strong><span style="font-size:14.0pt; font-family:宋体;">&#8226;</span></strong><strong><span style="font-size:14.0pt;font-family: 宋体;">开源自动化框架</span></strong></p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">PC</span></strong><strong><span style="font-size:14.0pt;font-family: 宋体;">端Web：Jenkins+ant+selenium+testing+tomcat</span></strong></p>  <p><span style="font-family:宋体;">自动构建</span>+<span style="font-family:宋体;">脚本开发</span>+<span style="font-family:宋体;">测试结果</span></p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">移动app：Jenkins+Appium+ant+selenium+testng+tomcat</span></strong></p>  <p><span style="font-family:宋体;">自动构建</span>+<span style="font-family:宋体;">脚本开发</span>+<span style="font-family:宋体;">测试结果</span></p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p><span style="font-size:12.0pt;font-family:宋体;">做什么不深入，就看表面，浅尝辄止</span></p>  <p>&nbsp;</p><img src ="http://www.blogjava.net/zouhui/aggbug/424017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 11:57 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMeter连接mysql成功</title><link>http://www.blogjava.net/zouhui/archive/2015/04/01/424016.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 01 Apr 2015 03:36:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/04/01/424016.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/424016.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/04/01/424016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/424016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/424016.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: @import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);1 下载，mysql-connector-odbc-5.3.4-winx64.msi&nbsp;进行安装 ...&nbsp;&nbsp;<a href='http://www.blogjava.net/zouhui/archive/2015/04/01/424016.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/424016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-04-01 11:36 <a href="http://www.blogjava.net/zouhui/archive/2015/04/01/424016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMeter网站自动测试与性能测评</title><link>http://www.blogjava.net/zouhui/archive/2015/03/31/423973.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 31 Mar 2015 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2015/03/31/423973.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/423973.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2015/03/31/423973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/423973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/423973.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div>出于学习热情，翻译总结Emily H. Halili的《Apache JMeter》一书的部分内容。《转载》
<p>&nbsp;</p>
<p><strong>JMeter的简介</strong></p>
<p>可以肯定的是，JMeter至少符合以下几条自动测试标准：</p>
<ul>
    <li>零购置成本－－直接从<a href="http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi"><span style="color:#108ac6">http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi</span></a>下载得到。 </li>
    <li>学习曲线平滑－－只需要基本的html和正则表达式知识。 </li>
    <li>功能全面－－不仅只能测试web应用。 </li>
    <li>架构可伸缩－－其组件被设计为可通过合并完成大规模测试。测试可以在多台主机上同时运行。 </li>
    <li>API可扩展－－API开放，并可由用户扩展编程。 </li>
    <li>技术支持良好－－在线用户指南、用户论坛、网络文章也包括这本书。 </li>
</ul>
<p>本章引导您开始第一次的JMeter试用。将向您介绍JMeterm同时使您对它的能力有一个整体的认识。除此之外，还会带您认识JMeter的操作界面，让你亲身感受到几个重要的JMeter组件。</p>
<p>&nbsp;</p>
<p><strong>&nbsp;让我们开始...</strong><br />
JMeter是一个桌面应用，被设计为用于测试c/s结构的应用程序，如web应用或FTP应用。是到目前为止，一个使用得最广泛的开源测试工具。它是由 纯java编写的，通过其API可以对它进行扩展。JMeter位于c/s中的客户端工作，它可以测试服务器的响应时间，CPU负载，内存占用和资源的使 用。</p>
<p>&nbsp;</p>
<p>&nbsp;绝大多数的JMeter测试脚本或测试计划都涉及到创建一个循环，按照预先定义的时间间隔和线程组来模拟向服务器发出请求。这些测试脚本可以定制和扩展。一个基本的JMeter测试计划应该至少包括三个部分：线程组，监听器，采样器。<br />
线程组用来模拟一组用户（用户数至少一个）。<br />
采样器使请求发往目标服务器。<br />
监听器捕获每个请求后收到的响应数据。</p>
<p>&nbsp;</p>
<p><strong>通过界面认识它</strong><br />
一个典型的测试计划由一个或多个线程组，逻辑控制器，监听器，定时器，断言和配置等元素组成。<br />
线程组：一个线程模拟一个用户。所有的测试计划的元素都必须放在一个线程组元素下。<br />
监听器：监视JMeter运行测试用例时接收到的数据。<br />
控制器：其逻辑可以自定义，如让检验员告诉JMeter向服务器发出请求。<br />
定时器：设定一个线程发出的两次请求间的间隔时长。<br />
断言：测试返回的结果是否是期望的值。<br />
配置：与检验员相关，可以增加和修改请求。</p>
<p>&nbsp;</p>
<p>以下为界面截屏图。<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59203/710397c5-1daa-3573-a120-224b579008eb.jpg" /><br />
&nbsp;</p>
<p>&nbsp;</p>
<p><br />
JMeter界面上有两个面板，一旦JMeter投入运行，你可以看到它们。测试计划和工作区面板，如下图所示。一个测试计划描述了JMeter投入运行后的测试步骤。工作区提供临时的数据存放空间。工作区数据与测试计划分开存放。</p>
<p><img alt="" src="http://writeblog.csdn.net/upload/attachment/59205/6a2063d7-1516-35fa-9f7e-9cb294bb12c8.jpg" /><br />
&nbsp;</p>
<p>&nbsp;</p>
<p>左边的面板以树形显示了我们测试计划，其中节点的添加和删除可以通过右击节点进行。右边的面板显示了每个节点的详细配置。</p>
<p><img alt="" src="http://writeblog.csdn.net/upload/attachment/59207/f9fa4b5a-c528-3e16-8deb-92fc7a4884da.jpg" /><br />
&nbsp;<br />
&nbsp;</p>
<p>下面是由一个线程组和其它一些元素组成的一个测试计划例子。</p>
<p>&nbsp;<img alt="" src="http://writeblog.csdn.net/upload/attachment/59209/934721d2-3c38-343a-a5b2-1db2abd3882b.jpg" /><br />
&nbsp;<br />
&nbsp;</p>
<p>在我们使用JMeter进行性能测试时，线程组是必选元素。这个元素可以通过模拟多个用户对服务器进行压力测试。你甚至可以对测试进行的时间进行预设，下图是线程组的详细显示。</p>
<p><img alt="" src="http://writeblog.csdn.net/upload/attachment/59211/9c14f695-acb1-3604-b758-97569bfed226.jpg" /><br />
&nbsp;<br />
&nbsp;</p>
<p>另一方面，同样一个测试计划可以扩展成为包括功能或回归测试。如下图所示添加Assertion（断言）元素。</p>
<p><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59213/f1285b4b-3fa8-357c-a1f8-9b249d4ad3ec.jpg" /><br />
&nbsp;<br />
&nbsp;</p>
<p><br />
<strong>&nbsp;正式开始使用...</strong></p>
<p><strong></strong></p>
<p><strong>&nbsp;安装JMeter</strong><br />
你需要首先从以下网址下载最新发布的版本<a href="http://jakarta.apache.org/site/downloads/index.html"><span style="color:#108ac6">http://jakarta.apache.org/site/downloads/index.html</span></a>，下载完成后，解压缩到你想要的目录就完成了安装。<br />
提醒：为了进行远程测试请避免在压缩时使用带空格的目录名。</p>
<p>设置环境变量<br />
首先机器上建议安装jdk1.4或更高版本。并设置JAVA_HOME环境变量。</p>
<p>&nbsp;</p>
<p><strong>运行JMeter</strong><br />
在你的JMeter的安装目录下有bin目录。在windows系统中，运行jmeter.bat。如果你运行在unix系统中，你需要运行jmeter。<br />
在这个过程中，JMeter会自动在它的lib目录或lib/ext目录中找所需要的jar包。因此，如果将来您自己开发了JMeter的组件，你也需要把它们拷贝到JMeter的lib/exit目录中。<br />
如果你运行JMeter在代理或防火墙的后面，你需要提供服务器名和端口号，用命令行的参数指定。<br />
例如<br />
jmeter -H 129.198.1.1 -P 8000 -u someusername -a someuserpassword -N localhost</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>测试计划</strong></p>
<p>&nbsp;JMeter的测试计划封装了你需要手动编写的测试脚本。<br />
<strong>什么是测试计划？<br />
</strong>测试计划定义了如何进行测试的框架。最简单的测试计划包括以下元素：<br />
线程组：用于指定运行线程的个数和坡道期，循环次数。每个线程模拟一个用户，坡道期指定创建所有线程的时间。例如指定5个线程和10秒的坡道期，表示每个线程的创建时间为2秒。循环次数定义了测试重复的次数。而且可以指定开始和结束的具体时间。</p>
<p>采样器：用于发出http/ftp/soap/xml/jdbc/ldap请求到服务器。</p>
<p>监听器：用于后处理请求数据。例如你可以保存数据到文件或者以图表显示。</p>
<p>&nbsp;</p>
<p>开始运行JMeter,测试计划就会出现工作区左边的面板窗口中。</p>
<p><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59215/8d100953-301d-3023-a820-de657984fc52.jpg" /><br />
&nbsp;&nbsp;</p>
<p>具体描述如下：<br />
User Defined Variables:你可以定义静态变量，它们是允许你在测试中重复提取的值，如服务器名，端口号等。例如你要测试一个<a href="http://www.example-jmeter.net/"><span style="color:#108ac6">www.example-jmeter.net</span></a>的应用，你可以定义一个"server"变量，那么测试脚本中的"${server}"就会该值替代。</p>
<p>Functional Test Mode:它会记录下从服务器返回的数据。如果你要进行压力测试，请不要选择它因为它会影响结果。<br />
Run each Thread Group separately：单独运行每个线程组。如果您有二个或更多的线程组在你的测试计划中。选中该项，表示JMeter会顺序地运行它们，否则会并发运行它们。</p>
<p>Add directory or jar to  classpath:如果你自己扩展了JMeter组件，可以使用该项添加jar包。记住需要重启后才能生效。另外，你也可以直接把jar包拷贝到 JMeter/lib目录下。或者通过编辑JMeter.properties文件来包含额外的jar，如"#user.classpath=.. /classes;../jars/jar1.jar,这样可以避免出现路径中包含空格引发的问题。</p>
<p>&nbsp;</p>
<p><strong>测试计划的组成</strong><br />
测试计划必须由至少一个线程组组成。每个线程组中都可以包含一个或多个以下组合：<br />
采样器，逻辑控制器，配置，监听器和定时器。每个采样器能够关联一个或多个预处理元素，后处理元素和断言元素。让我们更进一步了解它们。</p>
<p>&nbsp;</p>
<p><strong>线程组<br />
</strong>线程组是测试计划的入口，它包含所有其它的JMeter元素，一个线程组控制所有由JMeter创建的仿真线程，它们模拟多用户请求。<br />
线程组代表着一组执行特定测试用例的用户，在线程组的控制面板里，显示在下图。如果有多个线程组那么它们会彼此独立地执行。</p>
<p><img alt="" src="http://writeblog.csdn.net/upload/attachment/59221/5677f07f-ba2c-3953-a658-ee629e63c10c.jpg" /></p>
<p>&nbsp;</p>
<p>详细描述如下：<br />
Action to be taken after a Sampler  error:一旦采样器在测试过程中报错，你可以作出以下的选择：Continue继续进行下测试，stop Thread停止当前测试的线程，Stop  Test完成停止测试，便于进行错误原因的查看。<br />
Number of Threads:模拟用户的人数或者是web应用的连接数。<br />
Ramp-Up  Period:定义JMeter创建所有测试线程的时长。例如设定线程数为10，坡道期为60秒，那么每个线程会以6秒/个的速度连续创建。在60秒以 后，所有的线程将会投入运行。比较好的策略是将你的坡道期设置得足够长以避免在测试一开始就造成很大的工作负载，但不要过长，你可以一开始将坡道期设置为 等于要创建的线程数，稍后根据情况进行调整。<br />
Loop Count:定义测试执行的次数，默认情况下，测试仅执行一次。点击Forever选项框那么测试会一直重复执行直到你手动停止它。<br />
Scheduler  Configuration:1.9之后的版本具有该项，允许你设定测试的开始和结束时间。只有时间到达开始时间，测试才会真正开始。在每个测试循环之 后，除非结束时间到了，测试将会继续下去一直到达loop count的上限。startup  delay用于设定JMeter在第一个测试线程启动前的开始等待时间，duration用于设定整个测试的进行时间。前者用于覆盖start  time的设定，后者覆盖end time的设定。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>控制器</strong><br />
JMeter有两类控制器：<br />
1.Samplers:允许发送特定类型的请求给服务器。稍后我们会发送http请求给服务器，所以我们会选用Http Rquest采集器。可以通过Configuration元素给采集器进行设定。</p>
<p>2.Logic Controllers:允许自定义何时发出请求的逻辑。例如你可以用Random Controllers来向服务器随机发出http请求。</p>
<p>&nbsp;</p>
<p><strong>采集器</strong><br />
JMeter采集器允许你定义发往服务器的请求，模拟一个用户通过网页向服务器发出的请求。每个采集器生成结果包含以下一些，如性能、延迟时间、呑吐量 等。默认情况下，JMeter会按照采样器出现在测试计划树中的顺序发送请求命令。当然，为了处理的采样的顺序可以使用逻辑控制器进一步定制。这将在后面 的&#8220;逻辑控制器&#8221;中进一步解释 。</p>
<p>您可以自定义每个采样器通过设置其属性，或者您也可以添加配置元素。在这本书中，因为我们将发出许多HTTP请求到相同的服务器，我们可以使用默认配置元素，它预先定义了发送的http请求。</p>
<p><br />
一个http请求的采样器面板显示如下：</p>
<p><img alt="" src="http://writeblog.csdn.net/upload/attachment/59224/ef2e4e25-6d2c-35ac-af55-eef64ee45b1e.jpg" /><br />
&nbsp;</p>
<p>&nbsp;<br />
如果你希望JMeter进行验证，你可以添加Assertion元素，关于Assertion的更多内容，后面再详细介绍。<br />
在一个Http请求采样器面板中的响应Assertion显示如下：</p>
<p>&nbsp;<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59226/e74cc95c-c404-3ed7-b0b6-182d1dbb31c5.jpg" /><br />
&nbsp;</p>
<p>&nbsp;以下是JMeter提供的所有采样器列表：</p>
<p>HTTP Request<br />
FTP Request<br />
JDBC Request<br />
Java Request<br />
SOAP/XML-RPC Request<br />
WebService (SOAP) Request<br />
LDAP Request<br />
LDAP Extended Request<br />
Access Log Sampler<br />
BeanShell Sampler<br />
BSF Sampler<br />
TCP Sampler<br />
JMS Publisher<br />
JMS Subscriber<br />
JMS Point-to-Point<br />
JUnit Request<br />
Mail Reader Sampler<br />
Test Action</p>
<p>&nbsp;</p>
<p><br />
逻辑控制器：用于定义采样器的执行顺序。一个逻辑控制器的子元素有：采样器、配置，其它逻辑控制器。JMeter可能会随机选取（使用随机控制器） ，重复（使用回路控制器） ，交换（使用交错控制器）等。</p>
<div dir="ltr" id="result_box" style="text-align:left">几个逻辑控制器可以结合起来，实现不同的结果。</div>
<div dir="ltr" style="text-align:left">一个循环控制器的面板显示如下：</div>
<div dir="ltr" style="text-align:left"><img alt="" src="http://writeblog.csdn.net/upload/attachment/59228/0938ba81-36a2-3cf7-939b-c1f3def2956e.jpg" /></div>
<div dir="ltr" style="text-align:left">以下列出JMeter提供的所有的逻辑控制器：</div>
<div dir="ltr" style="text-align:left">Simple Controller<br />
Loop Controller<br />
Once Only Controller<br />
Interleave Controller<br />
Random Controller<br />
Random Order Controller<br />
Throughput Controller<br />
Runtime Controller<br />
If Controller<br />
While Controller<br />
Switch Controller<br />
ForEach Controller<br />
Module Controller<br />
Include Controller<br />
Transaction Controller<br />
Recording Controller<br />
</div>
<div dir="ltr" style="text-align:left"><strong>监听器</strong><br />
显示采集器的结果为表、图、树或者日志文本。仅显示定义在监听器下的元素的数据。<br />
每种监听器以自己的方式来显示数据，例如为了显示图，可以使用"Aggregate Report"监听器。"Aggregate Report"或"Summary Report"监听器显示表。所有的监听器都会把数据写到输出文件，扩展名为jtl。<br />
一个Aggregate Graph监听器的面板显示如下：</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59256/e0884473-0162-30ca-9418-c16345958d6a.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">所有监听器的公共属性：<br />
Configure button：用于选择写到文件中的信息，保存为xml或cvs格式，扩展名为jtl，其中cvs格式使得文件较小。一旦选择，Save Configuration Window将会出现。</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59258/77a6ffe3-caac-304e-b731-c8697280940d.jpg" /><br />
</div>
<div dir="ltr" style="text-align:left">Browser button:如果你想读或者显示以前保存的结果。<br />
一个监听器会耗费相当多的内存，如果它关联多少个采集器。JMeter会变慢，如果你选择激活多个监听器。因此尽量选择合适的监听器来使用。<br />
一个减少内存占用的方法是用CSV默认的格式来保存数据，并且使用Simple data Writer监听器。<br />
你可以改变默认的格式为xml，通过编辑jmeter.properties。将jmeter.save.saveservice.output_format＝csv，改为xml即可。</div>
<div dir="ltr" style="text-align:left">以下为所有的监听器列表：</div>
<div dir="ltr" style="text-align:left">Sample Result Save Configuration<br />
Graph Full Results<br />
Graph Results<br />
Spline Visualizer<br />
Assertion Results<br />
View Results Tree<br />
Aggregate Report<br />
View Results in Table<br />
Simple Data Writer<br />
Monitor Results<br />
Distribution Graph (alpha)<br />
Aggregate Graph<br />
Mailer Visualizer<br />
BeanShell Listener<br />
Summary Report</div>
<div dir="ltr" style="text-align:left"><strong>定时器<br />
</strong>定时器组件是可选组件，它会引起JMeter暂停，因为默认情况下JMeter会在一个请求结束后马上发出下一个请求，这样能会造成服务器过载。通过添加定时器会降低服务器崩溃的危险。这项功能在进行功能性测试时非常有用。<br />
不管怎样，你需要小心在一个测试计划中添加了过多的定时器。JMeter会在两次请求间暂停可使用的所有定时器指定时间的总和。</div>
<div dir="ltr" style="text-align:left">Constant Timer控制面板如下：</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59261/dfc785b9-ae08-399f-9db3-e0b07c2f6806.jpg" /><br />
&nbsp;<br />
以下是所有JMeter提供的定时器列表：<br />
Constant Timer<br />
Gaussian Random Timer<br />
Uniform Random Timer<br />
Constant Throughput Timer<br />
Synchronizing Timer<br />
BeanShell Timer</div>
<div dir="ltr" style="text-align:left">Assertions断言：允许你针对响应添加验证条件。它们被添加为采集器的子元素。在进行功能性测试时特别有用。在性能测试中可以用它来保证你收到了响应数据。不包含内容的错误或遗失的部分，因为这可能会影响有效性的测试。<br />
你可以利用类似Perl的正则表达式来创建断言。用这来判断应用返回的值是否是你所期望的。</div>
<div dir="ltr" style="text-align:left">让我们来看一下这样的场景，在一个Http请求的采样器中，你请求一个页面，如果返回"Login Successful"字符串表示访问成功，你可使用Response Assertion来判断响应中是否具有该字符串。如下图所示：</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59276/81fb521d-be5a-3fcc-8b53-d47ee6f82502.jpg" /><br />
</div>
<div dir="ltr" style="text-align:left">与Assertions相关的监听器有"View Result in  Table", "View Result Tree", "Aggregate Report"，"Summary  Report"监听器，前三种监听器将会详细显示Assertions结果，而后者只是简要显示失败的比例。<br />
以下是一个Assertion Results面板显示：</div>
<div dir="ltr" style="text-align:left"><img alt="" src="http://writeblog.csdn.net/upload/attachment/59295/8ec740da-4d16-3160-9f85-17cec44ed467.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">以下是所有JMeter提供的Assertion的列表：</div>
<div dir="ltr" style="text-align:left">Response Assertion<br />
Duration Assertion<br />
Size Assertion<br />
XML Assertion<br />
BeanShell Assertion<br />
MD5Hex Assertion<br />
HTML Assertion<br />
XPath Assertion<br />
XML Schema Assertion</div>
<div dir="ltr" style="text-align:left">配置元素<br />
配置元素允许你创建默认的变量在采样器中使用。用于修改采样器发出的请求内容。<br />
它们只能被同一范围内的采样器访问，并且先于采样器被执行。<br />
以下是HTTP Request Defaults 面板，如图：<br />
<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59299/7d3cac2f-e21f-3dab-98b2-d8dbd45e5409.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">Request Default 1可以被Request1和Request3采样器访问，因为它是父节点，而Request Default2只能被Request1访问，Request Default3只能被Request3访问。<br />
以下是JMeter提供的所有配置元素列表：<br />
CSV Data Set Config<br />
FTP Request Defaults<br />
HTTP Authorization Manager<br />
HTTP Cookie Manager<br />
HTTP Proxy Server<br />
HTTP Request Defaults<br />
HTTP Header Manager<br />
Java Request Defaults<br />
JDBC Connection Configuration<br />
Login Config Element<br />
LDAP Request Defaults<br />
LDAP Extended Request Defaults<br />
TCP Sampler Config<br />
User Defined Variables<br />
Simple Config Element</div>
<div dir="ltr" style="text-align:left">Pre-Processor Elements<br />
预先处理允许你修改范围内的采样器。他们经常用于在运行之前修改请求的设置，或者更新不能从响应文本中获取的变量。<br />
以下是JMeter提供的预先处理元素。<br />
HTML Link Parser<br />
HTTP URL Re-writing Modifier<br />
HTML Parameter Mask<br />
HTTP User Parameter Modifier<br />
User Parameters<br />
Counter<br />
BeanShell PreProcessor</div>
<div dir="ltr" style="text-align:left">Post-Processor Elements<br />
后处理元素在采样器发出请求后执行。一种好的做法是将其做为采样器的子元素，以保证它只在特定的采样器运行后执行，而不是全部的采样器。该元素一般用于处理响应数据，例如，提取稍后要用到的变量值。<br />
以下是JMeter提供的全部后处理元素。<br />
Regular Expression Extractor<br />
XPath Extractor<br />
Result Status Action Handler<br />
Save Responses to a file<br />
Generate Summary Results<br />
BeanShell PostProcessor</div>
<div dir="ltr" style="text-align:left">构建一个用于测试web站点的测试计划<br />
本节描述如何创建一个基本的网站测试计划。我们稍后会对该计划进行扩展以进行性能测试（第5章）和功能测试（第6章）。<br />
以下是基本的测试计划所需要的元素:<br />
Thread Group<br />
HTTP Request (Sampler)<br />
HTTP Request Default (Configuration Element)<br />
Summary Report (Listener)<br />
</div>
<div dir="ltr" style="text-align:left">我们可以按照以下的步骤来进行：</div>
<ul dir="ltr">
    <li>
    <div style="text-align:left">添加用户</div>
    </li>
    <li>
    <div style="text-align:left">添加和配置默认的HTTP Request</div>
    </li>
    <li>
    <div style="text-align:left">添加HTTP Request</div>
    </li>
    <li>
    <div style="text-align:left">添加监听器显示、存放测试结果</div>
    </li>
    <li>
    <div style="text-align:left">保存和运行测试计划</div>
    </li>
</ul>
<div dir="ltr" style="text-align:left">&nbsp;</div>
<div dir="ltr" style="text-align:left">首先，运行JMeter(双击JMeter.bat在jmeter/bin目录中)，你可以看到默认的界面，包括测试计划和工作区。</div>
<div dir="ltr" style="text-align:left">添加用户<br />
1.右击Test Plan图标在左边窗格，然后选择add|Thread Group。<br />
<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59301/ad9a6a97-92a1-305d-9883-68c280726d6c.jpg" /><br />
&nbsp;右边的将显示Thread Group的控制面板。</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59303/ae07b296-75a2-3294-ad2b-e87820199f0f.jpg" /><br />
2.将Thread Group更名为My Users.<br />
3.设定为一次连接和一个用户。<br />
4.更变Ramp-Up Period(坡道期)为0,意味着用户将会马上开始测试。如果还有其他的用户，那就意味着所有的用户立即开始测试。<br />
</div>
<div dir="ltr" style="text-align:left">设定之后图如下：</div>
<div dir="ltr" style="text-align:left"><img alt="" src="http://writeblog.csdn.net/upload/attachment/59305/b9e801d2-b6fc-3125-852c-63d29957d2b8.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">接下来做其它的步骤。<br />
添加默认的HTTP Request<br />
1.右击My Users元素，选择Add | Config Element | HTTP Request Defaults。<br />
2.选择后显示它的控制台界面。<br />
3.重命名为My URL。<br />
4.在服务器名或IP地址栏中输入<a href="http://www.mocksite.net/"><span style="color:#108ac6">www.mocksite.net</span></a>或其它你想用的网址。其余不动。设置HTTP Request Default Element会引起在My Users中的所有请求采样器访问同一个服务器。<br />
显示如下：<br />
<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59307/bf5cd71c-e1dd-37cd-9156-cf37a7298451.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">添加HTTP Requests<br />
在这一步，我们将向服务做两个模拟的请求：默认的页面和另一个页面。JMeter会以它们在测试计划树中出现的次序来执行，我们首先添加默认页面的请求。<br />
1.右击My Users线程元素，选择Add | Sampler | HTTP Request.<br />
2.选择HTTP Request从左边窗格，并做以下修改：<br />
a. Name栏：Home Page<br />
b. Web Server：这个信息已经在HTTP Request Defaults中设置。在这里不需要修改，除非你需要重定向到另一个不同的路径。<br />
c. Path栏：/<br />
因为我们已经在HTTP Request Default元素中指定Server name，我们就不必再指定其它内容。<br />
完成后如图：</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59311/9fed07ab-22d9-3361-ab06-14c5288be2bb.jpg" /><br />
</div>
<div dir="ltr" style="text-align:left">3.添加其它HTTP Request元素在Home Page元素之下。<br />
a. Name栏：Sample Page<br />
b. Path栏：/sample.html(或你自己知道的url)<br />
因为我们已经在HTTP Request Default element指定了服务器名<a href="http://www.mocksite.com/"><span style="color:#108ac6">www.mocksite.com</span></a>,该path就会添加在其后形成完整路径。<br />
以下为完成图：</div>
<div dir="ltr" style="text-align:left"><img alt="" src="http://writeblog.csdn.net/upload/attachment/59313/8694f4e5-12bf-3d13-8fe5-d579938e93e7.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">添加监听器<br />
最后，我们添加一个简单的监听器，Aggregate Report。这个元素将存放所有http请求的结果，并以表格形式输出。<br />
1.选择My Users元素并Add | Listener | Aggregate Report。<br />
2.在Write All Data to a File：在Filename栏中输出目录名或用browse按钮选择，并输入输出文件名。<br />
以下为完成图：<br />
<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59315/5cc34101-931e-356e-9adb-7a439e0cb5d4.jpg" /><br />
&nbsp;</div>
<div dir="ltr" style="text-align:left">保存和运行测试计划<br />
JMeter要求我们在运行之前保存测试计划。<br />
1.选择Save Test Plan从File菜单。JMeter允许你只保存一部分，通过选择分支。<br />
2.在Save as中输入文件名，例如输入My Users。扩展名为.jmx。<br />
3.从run 菜单选择运行。<br />
以下为Aggregate Report Element和Control Panel运行结果。注意右上角有小的方框，旁边的数字显示激活的线程数和总线程数。<br />
<br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59317/057a26dc-4cfb-37c5-9872-ebf1e1440179.jpg" /><br />
&nbsp;<br />
以下为运行测试计划之后的界面。右上角方框为灰色，只显示总线程数，你也可以手动停止测试，通过选择Stop从Run菜单。</div>
<div dir="ltr" style="text-align:left"><br />
<img alt="" src="http://writeblog.csdn.net/upload/attachment/59319/060d45b1-af40-3728-b379-0294d6569ade.jpg" /><br />
&nbsp;</div>
报表列解释如下：<br />
Label&#8212;例子的标签<br />
# Samples&#8212;URL的样本数量<br />
Average&#8212;平均时间<br />
Median&#8212;The time in the middle of a set of results<br />
90% Line&#8212;The maximum time taken for the fastest 90% of the samples<br />
Min&#8212;The lowest time for the samples<br />
Max&#8212;The longest time for the samples<br />
Error %&#8212;Percent of requests with errors or failures<br />
Throughput&#8212;Throughput measured in requests per unit of time<br />
Kb/sec&#8212;The throughput measured in Kilobytes per second</div><img src ="http://www.blogjava.net/zouhui/aggbug/423973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2015-03-31 09:46 <a href="http://www.blogjava.net/zouhui/archive/2015/03/31/423973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>yum安装配置lnmp服务器(Nginx+PHP+MySQL CentOS 6.5)</title><link>http://www.blogjava.net/zouhui/archive/2014/11/04/419476.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 04 Nov 2014 02:48:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/11/04/419476.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/419476.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/11/04/419476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/419476.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/419476.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/zouhui/archive/2014/11/04/419476.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/419476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-11-04 10:48 <a href="http://www.blogjava.net/zouhui/archive/2014/11/04/419476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用户体验三要素：别让我等！想！烦！</title><link>http://www.blogjava.net/zouhui/archive/2014/09/12/417868.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Fri, 12 Sep 2014 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/09/12/417868.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/417868.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/09/12/417868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/417868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/417868.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/zouhui/archive/2014/09/12/417868.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/417868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-09-12 11:10 <a href="http://www.blogjava.net/zouhui/archive/2014/09/12/417868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>qc配置发送邮件</title><link>http://www.blogjava.net/zouhui/archive/2014/09/10/417803.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 10 Sep 2014 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/09/10/417803.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/417803.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/09/10/417803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/417803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/417803.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/zouhui/archive/2014/09/10/417803.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/417803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-09-10 16:08 <a href="http://www.blogjava.net/zouhui/archive/2014/09/10/417803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 如何衡量测试效率，如何提高测试效率</title><link>http://www.blogjava.net/zouhui/archive/2014/09/05/417728.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Fri, 05 Sep 2014 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/09/05/417728.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/417728.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/09/05/417728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/417728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/417728.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div>
<div>
<h2>对于如何衡量测试效率，如何提高测试效率&nbsp;《转载》<span sg_txtc"=""></span></h2>
</div>
<div id="sina_keyword_ad_area">
<table>
    <tbody>
        <tr>
            <td><br />
            </td>
            <td><br />
            </td>
        </tr>
    </tbody>
</table>
</div>
<div id="postmessage_1028603">如何衡量测试效率？<br />
个人认为可以从软件测试的活动中的以下指标综合考评，去评估衡量测试效率，每项指标都高，自然能够说明一些问题：<br />
<br />
1.发现缺陷的质量：<br />
同一个项目组内，我们一般运用测试管理工具TD, 按优先级和严重等级，把每个人的缺陷做成柱状图和饼图，放到一个文档中，邮件发给大家，让组内成员了解自己的工作情况和其他人的工作情况。同时也让开发人员，对每个测试人员的工作，做出评估，供绩效考核时参考。特别是发现非常隐蔽缺陷的测试人员，一定要重赏。<br />
<br />
2. 测试的有效性：<br />
一般来说，递交Bug的有效性，体现了测试员是否能够正确理解系统，并发现问题，是否能够发现有效的问题。很多时候，测试人员没有弄准确需求，或者是没搞 清楚设计，一旦出现异常，就提交Bug。不是和前面的缺陷相同，重复递交相同类型的缺陷，就是递交无效的Bug，导致后来很多缺陷，都被项目评审时拒绝， 既耽误了时间，效率自然不高。<br />
<br />
3.测试组员交叉测试，发现漏测问题数量：<br />
经常是这样，一个测试人员测试结束，修复了全部的缺陷。这个时候，测试的模块和测试人员交叉一下，再测试，很有可能又发现很多问题。这样我们可以对测试发现问题数量，进行统计。这样做，就迫使测试人员认真执行每一轮测试，每次测试都不敢懈怠。<br />
<br />
4.遗漏到客户缺陷的比例：<br />
一旦版本测试通过，发布给客户以后，客户要对发布的版本进行验收测试。同样会发现一些问题，我们也会对测试过程中发现的Bug分配到每个模块和具体的人。 但是，如果缺陷在测试环境中不能重现，只能在实际工作环境中出现，则不属于遗漏给客户的Bug，不计入漏测统计里面。有时候，客户系统在使用中也会发现缺 陷，我们同样做好记录。<br />
<br />
5.递交的缺陷数量：<br />
在同一个项目组内，每天递交的Bug数量，每周递交的Bug数量，每个版本测试结束，总共递交的Bug数量。最终测试结束，算出每个人递交有效缺陷的百分比。<br />
<br />
6.执行用例的数量：<br />
同一天，每个测试人员，执行用例的数量。但是一定要去除那些不能够测试的功能模块，或者是被阻塞的模块，这些一定要考虑到。否则大家意见就大了呢！<br />
<br />
7.编写测试文档的速度和质量：<br />
每次编写测试用例时，大家都要编写部分模块的测试用例，我们也可以通过单位时间内编写case的数量、速度和质量，来区分每个人的效率，我觉得也是一种好方法。<br />
<br />
8.评审发现问题的效率：<br />
在组织部门内部的case评审时，同一个测试文档的评审，如果提出的修改建议比较多，并且很有参考价值。这样的测试人员，效率应该比较高，得考虑考虑加薪，呵呵。<br />
<br />
9.测试工具使用的熟练程度：<br />
当然，一个测试人员，对测试工具的熟练程度越高，使用技巧越强，一般来说，测试的效率就越高。按常理来说，每个人不可能了解全部的自动化测试工具，我们只 对常用的测试工具进行考核就可以了，还算人性化吧。并且后面懂得较多的同事，给组内成员集体培训，使大家迅速掌握测试工具的基本使用，这才是我们的真正目 的。<br />
<br />
10.测试结果的分析水平：<br />
对自动化的测试工具来说，特别是性能测试结束之后，我们要分析部分测试结果，如果你都不熟悉测试工具的分析，何谈效率呢？所以测试结果的分析水平，也可以作为衡量测试效率的一个指标。<br />
<br />
如何提高测试效率？<br />
<br />
1.首先要有一个合理的详细的测试计划：<br />
没有详细的测试计划，测试部的每个成员都在那儿盲无目的测试，何谈提高测试效率？当然测试计划也不能够太细，太细了，编写测试计划同样浪费时间，做到时可而止。最好是测试任务尽量能细化到测试的功能和测试的case这个级别去监控进度，较为理想。<br />
<br />
2.测试尽早介入项目详细了解项目的业务需求，做好测试的前期准备：<br />
目前来说，可能大家都有类似的感受，接触到的大多数的项目，都是测试周期比较短，开发人员耽误了时间，为了不拖延项目进度，留给测试人员做测试的时间都非 常紧张。如果项目测试的前期了解业务需求、了解产品属性和准备测试数据不充分，往往测试效率很低，测试时间变长，测试效率急剧下降。<br />
<br />
3.对测试项目前景充满信心，调整最佳心态，保持愉悦的工作心情：<br />
一般来说，如果大家认为测试的项目没什么发展前景，当然测试也不会很卖命，测试效率不用说。如果某个测试人员碰到什么不顺心的事，当天的工作效率肯定比平 常低。所以，要保证测试效率，测试负责人要察言观色，及时找不开心的下属谈心，了解并帮忙消除部分员工的不良情绪，让员工有更好的心情投入到测试工作中 去。<br />
<br />
4.提高测试接受的标准，减少测试版本送测次数：<br />
大部分公司的开发人员都有一种惰性，一旦公司成了测试部，他们自己测试时，都不会那么认真，以为有了测试人员，就自己就解放了。很多时候都是调试编译通 过，实际上开发人员没有做完整的自测，就拿到测试部进行测试。如果测试部门有严格的测试接受标准，一旦发现有重大问题，立即拒绝测试，送回开发人员修改。 可以减少很多次反复测试，重复测试，明显提高了测试效率。<br />
<br />
5.测试负责人认真做好测试文档的评审：<br />
测试经理一定要认真做好测试用例的评审，尽量使用较少的测试用例，发现较多的Bug，无疑是最佳提高效率的一种方式。很多时候，经验较少的测试人员在设计 测试用例的时候，写了很多的测试用例，测试时几乎没有发现缺陷。还有一种：比如说等价类的测试，只要具备代表性就可以了，如果写了很多测试用例，执行了半 天，臃肿的测试用例，未发现任何问题，也很不值。这些主要是靠测试用例评审的时候，测试Leader去把握了。尽量做到在满足需求的情况下，精简测试用例 数量，提高测试覆盖率。很多时候，测试人员写好用例就自己测试,根本没人评审,有些地方理解有偏差,测试点没测试到,导致发给客户版本被退回，给公司也会 带来巨大经济损失。<br />
<br />
6.加强项目组成员的相互沟通工作和项目信息收集工作：<br />
测试工作是一项沟通要求比较高的工作，一般需要同项目经理、产品经理、开发人员、业务人员、客户沟通。很多时候，由于测试介入较晚，测试时间短，测试初期测试人员了解需求不及开发人员，为了迅速熟悉需求，需要项目组成员之间相互培训和沟通。<br />
测试人员为了利于测试工作，平时也需要主动和开发团队沟通项目的进度、项目存在的问题、项目的需求变更等等情况。与团队成员沟通得越充分、对项目的信息收集和把握得越及时、越准确，我们的测试工作才可能做得越顺利，才可能提高测试效率。<br />
<br />
7.积极配合开发人员工作，努力赢得开发人员的尊重和支持：<br />
作为测试人员，我们绝不能消极等待或一味埋怨开发人员的不理解和不重视。我们首先需要正视自己、改进自己，通过自身的不断努力让开发人员，真正体会到测试 的价值。同时，也需要理解并配合开发人员的工作。只有这样，才能赢得开发人员的支持。互相配合、互相促进，项目成员之间形成良性循环，彼此感情加深了、配 合默契了、工作效率和工作质量也就自然提高了。<br />
<br />
8.按照项目的大小不同，必要的情况下引入自动化测试工具：<br />
是否引入自动化的测试工具，主要取决于测试的时间长短和测试的轮次。一般来说，测试周期较长、版本升级平凡和回归测试次数较多的项目，引用测试工具可以提 高测试效率。如果测试周期较短，本来测试周期只有两三个月，开发测试脚步就要花费大量时间，引入自动化测试工具，用的次数较少，结果得不丧失，劳民伤财， 呵呵！<br />
<br />
9.测试部门内部成员的工作业绩数据化：<br />
具体的做法如下：每天给每个人分配的任务非常具体，并且随时关注他们的进展情况，完成百分比，不断督促他们。并且，把每个人每天的工作成果（发现缺陷的数 量和工作的质量）数据化，通过邮件的形式发给组内的成员，让大家有个比较。大家都有自尊心，看到自己落后，后面就加油赶工，形成一种良好的测试氛围。每周 周例会的时候，对表现突出的给予表扬，对每次都比较差的下属，单独谈心，问问具体原因。<br />
<br />
10.提高测试人员的专业技能和工作能力：<br />
由于测试技术的不断成熟和完善，许多的新技术陈出不穷，作为测试人员需要不断提高自己的专业技能和工作技能。不断的给自己充电，补充测试理论知识，让自己 工作技能力去弥补专业技能的不足。这样，你的工作同样可以做到最棒，效率自然很高。一段时间过去，回过头来一看，自己确实进步不少，没有虚度光阴呀！<br />
<br />
只是我个人的想法，希望同行批评指正！！</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/417728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-09-05 17:10 <a href="http://www.blogjava.net/zouhui/archive/2014/09/05/417728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PV计算公式</title><link>http://www.blogjava.net/zouhui/archive/2014/08/28/417451.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 28 Aug 2014 05:38:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/08/28/417451.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/417451.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/08/28/417451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/417451.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/417451.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/zouhui/archive/2014/08/28/417451.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/417451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-08-28 13:38 <a href="http://www.blogjava.net/zouhui/archive/2014/08/28/417451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微软成功360度之读书笔记</title><link>http://www.blogjava.net/zouhui/archive/2014/04/01/411804.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 01 Apr 2014 07:54:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/04/01/411804.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411804.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/04/01/411804.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411804.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411804.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/zouhui/archive/2014/04/01/411804.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/411804.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-04-01 15:54 <a href="http://www.blogjava.net/zouhui/archive/2014/04/01/411804.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>项目测试工作流程</title><link>http://www.blogjava.net/zouhui/archive/2014/04/01/411789.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 01 Apr 2014 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/04/01/411789.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411789.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/04/01/411789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411789.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
现淘宝项目测试执行的主要流程简单的说： &nbsp;《转载》
<div><br />
<div>
<div cssbase"="">第一轮测试，第二轮测试，第三轮测试，日常测试，预发测试，线上测试 <br />
<br />
由于为新起项目，日常测试部分可以忽略，不用上日常测试环境，项目测试环境即是日常测试环境，该部分在第一次做项目时，容易忽视。 <br />
<br />
各个阶段测试负责人需要进行的工作主要如下：<br />
<br />
1.&nbsp;&nbsp; 正式评审之前，对项目需求和项目的功能介绍，产品介绍进行了解和答疑，可以采用的方法，使用UML图形的方式来梳理PRD的业务流程，需要申请QC空间，申请Twork空间，申请相关的测试资源(例如：性能，安全，前期沟通, PRD邀请和提供PRD文档) <br />
<br />
2.&nbsp;&nbsp; PRD评审完成后，在1到2个工作日，形成项目需求分解功能表 <br />
<br />
3.&nbsp;&nbsp; 前台原型评审，对页面布局和功能点入口，功能说明的初审，修改确定下前台的原型，形成前台原型评审记录， 对前台和后台模型进行检查，确定各个功能点和页面入口，比对PRD的功能说明，提出对应的问题，协助完善原型设计。 <br />
<br />
4.&nbsp; 技术方案评审， 帮助开发检查相关的技术方案，提出相关的疑问，可重点针对数据库的结构，字段，表的关联等，对初步的系统结构和使用技术有基本了解。需要提前考虑有否数据迁移，现在很多项目会出现数据的迁移，可通知性能测试人员及早的沟通或者参与到技术方案的评审 <br />
<br />
5. 项目立项：进行立项会议,&nbsp; 该会议召开的较晚，该部分的顺序可忽略，但测试人员需要对 测试进行时间估算，对项目各个阶段的时间点进行规划，形成测试计划文档。稍后在2-3天内形成测试设计文档。 <br />
<br />
6. 项目UC评审，测试人员针对UC中的校验点的细节，实现方式提出各种有疑问的地方，确定问题，为编写TC做预期结果填写的准备 <br />
<br />
7. 项目TC评审，测试人员可分为内审和外审，内审有测试组其他人员帮助检查和发现可能遗漏的测试点，不清晰的功能和业务规则进行补充，外审，主要针对PD,PM等其他项目人员，说明测试用例的覆盖功能，测试的范围，测试点，已经测试用例的粒度。形成测试评审的checklist，稍后再进行用例的P级别划分。个人建议，在编写用例的时候，不用去考虑用例的级别定义，可以分开为编写用例，编写完成后再进行用例检查时进行P级别的划分，或者在执行中进行设置划分 <br />
<br />
8. 进入测试执行阶段，主要进行用例的执行，根据具体项目进行测试时间和进度的安排，在完成第一轮测试时，程序系统相对稳定，进入第二轮可以开始性能测试和安全测试人员的介入，前期第一轮可提前进行安全测试白盒测试. 主要任务和精力集中在测试执行和缺陷追踪上，进入该阶段，测试人员需要进行项目测试日报的发送，测试投入日报的记录，使用twork进行汇报工作 <br />
<br />
9. 进入预发测试，如果有数据迁移的项目，可在上预发后开始校验迁移的正确性和完整性的检查，重新对所有的用例进行执行，保证产品质量。 <br />
<br />
10. 完成上线后，可进行线上测试的验证，然后开始整理测试相关的沉淀。 <br />
<br />
由于项目还在进行中，后期的具体沉淀工作的整理，测试报告，项目报告，项目上线存在的风险说明的情况有待完善</div>
</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/411789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-04-01 14:07 <a href="http://www.blogjava.net/zouhui/archive/2014/04/01/411789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件上传攻击</title><link>http://www.blogjava.net/zouhui/archive/2014/04/01/411785.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 01 Apr 2014 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/04/01/411785.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411785.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/04/01/411785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411785.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div>
<h3>文件上传攻击&nbsp;《转载》</h3>
<div cssbase"="">文件上传类应用的范围还是很广泛的，利用这个应用同样也可以进行攻击。文件上传的方式有多种，可以通过FTP也可以通过HTTP等，对比起来，FTP的上传需要管理大量的用户帐号，并且无法进行SSL编码，安全上稍逊一筹，并且无法对不同类型的文件进行批量分类上传处理，同时在对上传文件大小、类型上无法很好的控制，因此，通过HTTP方式上传是现在很普遍的WEB用法。 <br />
在标签中，需要将type设置为file，如input标签。<br />
现在假设说，我们先制作一个待上传的文件，如：<br />
<br />
&nbsp;example.php <br />
&lt;?<br />
php echo "success" <br />
?&gt; <br />
<br />
完成后，在有漏洞的页面上传该可以文件，成功后，可以查看它的路径地址（或者之前可以通过上传一张正常图片文件，来探测上传后文件们的存放地址），然后通过"http://....../example.php"就可以执行刚上传的这个文件，如果这个文件中不像我们刚刚设置的那样，只是执行打印功能，而是进行删除，覆盖、修改、或者是上传超量大小的文件、连续上传文件等，都会导致站点的无法访问。 <br />
<br />
那么对应这个情况，如何去进行防范呢？ <br />
1、不开放上传功能（如果可以的话） <br />
2、限制上传文件的类型 <br />
3、限制上传文件的大小 <br />
4、隐藏文件路径 <br />
5、检查上传文件中是否含有恶意信息（如检查图片文件是否正常编码开头结尾） <br />
<br />
但是对于如EXCEL类宏病毒的攻击，好象这几个方法就无效了，后续将研究宏病毒的检查和防范。</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/411785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-04-01 11:49 <a href="http://www.blogjava.net/zouhui/archive/2014/04/01/411785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>拆掉思维里的墙</title><link>http://www.blogjava.net/zouhui/archive/2014/04/01/411779.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 01 Apr 2014 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/04/01/411779.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411779.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/04/01/411779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411779.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div>
<h3>《拆掉思维里的墙》读后感 &nbsp;《转载》</h3>
<div cssbase"="">读完《拆掉思维里的墙》后，发人深省，受益非浅，有霍然开朗之感。自己原来是在自己设想好的心智模式中去判断外界的事物，以下是我看了此书后的感想与总结。<br />
&nbsp;一、心智模式驱动 我们戴着不同的镜片过滤世界的大部分信息，我们还用我们不同的经验与记忆解释这些信息，搭建起我们内心世界，并且以为那就是世界的真实情况。镜片+思维定势就形成了我们的心智模式。其实我们看到的全是自己内心想看到的，有些并非真实的场景。 &nbsp;我们每个人的内心中，都有一些根深蒂固的思维模式。比如缺乏安全感、缺乏勇气、缺乏热情、患得患失、渴望成功，却又不知道什么是真正的成功。这些固定的思维方式，在我们脑海中处于相当强势的地位，它们驾驭我们，操纵我们，束缚我们的思想和行为，剥夺我们的热情和希望，让我们在碌碌无为的平庸状态中变得心安理得，在浑浑噩噩的麻木生活中变得浑然不觉。这种可怕的固有的思维模式，就是我们脑子中的墙，挡住了我们的视眼。真正限制我们的是这堵看不见的墙。让我们有一个健康的心智模式，将照亮我们前进的道路。先做正确的事，再正确的做事。 <br />
二、换个角度看生活 这本书给了我一些意想不到的转变，甚至颠覆了过去的一些思维模式。换个角度看生活（即换一套心智模式），让我联想到了淘宝的倒立文化，其实生活也一样，还可以以另外一种方式呈现。比如：&#8220;一套房子消灭一个梦想&#8221;，&#8220;这个世界没有了谁都能活下去，你一个人也能好好的活下去。&#8221;，&#8220;无趣之人，往往是无胆之人。&#8221;，&#8220;进入这个职业我才发现，原来我以前知道的版本，是艺术照！&#8221;，&#8220;不要表演父母为我们写好的剧本，自己才是生活的导演&#8221;，&#8220;与其在等待中枯萎，不如在行动中绽放&#8221;。<br />
三、重新定义成功 成功并不是你达到了某个等级或赚到一定数值的钱来衡量的，而是成为一个能担当责任的人，只要你勇于承担自己可以承担的，你就越走越近，就一直很成功。成功就是越来越近。成功也是心智模式不断优化、转换后，从自我认可到别人也认可的一个过程。 马云说&#8220;有一天你就是成功者，你讲任何话都是对的。&#8221;成功学的故事只是传奇，很多东西是无法模仿的，本身就是生活的逻辑。<br />
四、受害者与掌控者 受害者心理的人擅长的事情： <br />
1．这不关我事，那不关我事，总是在推荐责任，保住面子。 <br />
2．安心的做坏事 <br />
3．用受害来轻松获得同情与帮助。 <br />
受害者深深的坚信，自己的快乐与否、成功与否掌握在别人手中。<br />
拆除自己内心痛苦的按钮，成为一个自我掌控的人。 <br />
不管你跑到哪里，世界都是不公平的，我们既无法让这个世界永远公平，也找不到一个永远公平的地方，我们去适应它，拥抱不公平</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/411779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-04-01 11:21 <a href="http://www.blogjava.net/zouhui/archive/2014/04/01/411779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>赢在执行力</title><link>http://www.blogjava.net/zouhui/archive/2014/04/01/411772.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 01 Apr 2014 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/04/01/411772.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411772.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/04/01/411772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411772.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411772.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div cssbase"="">《赢在执行力》这本书以前就看过，但只是看了个大概，这次终于正本看完了，还是感触颇多。《转载》<br />
&nbsp;<br />
最有感触的一句话：在行动中思考，在流程中改善。<br />
&nbsp;<br />
1.缺乏执行力的四种表现 <br />
<br />
&#8220;差不多&#8221; <br />
<br />
不注重细节，不追求完美 <br />
<br />
标准只是挂在墙上的废纸 <br />
<br />
可以做好分内的事儿，但不够积极主动。<br />
<br />
如果有以上的各种现象，那就说明缺乏一定的执行力。 <br />
<br />
2.没有达成就是失败，实现目标关键在执行 ，不需要任何的推脱或者说词。<br />
<br />
为了有效的达成，体现在执行力上可以从以下方面着手：<br />
<br />
&#178;&nbsp; 量化目标 量化时间，提高效率 量化成本，提高利润 产能分析，提高效益 <br />
<br />
&#178;&nbsp; 细节化目标 规范动作，省工省力 规范步骤，严格要求， 规范做法，提高效率 <br />
<br />
&#178;&nbsp; 每天进步一点点 多走一步 做好一点 多赢一点 <br />
<br />
3. 有沟通才会有执行 <br />
<br />
主动回报执行过程 <br />
<br />
勤与上级沟通，<br />
<br />
确保正确执行 <br />
<br />
主动提出改善计划 <br />
<br />
4. 简化语言，提高效率 <br />
<br />
讲的永远是重点 <br />
<br />
复杂的问题用简单的比喻 <br />
<br />
5. 提高职业化，提速执行力 <br />
<br />
完善自己的资料库 <br />
<br />
模仿加改良等于创新 <br />
<br />
经常与他人探讨 <br />
<br />
定期优化自己的工作流程<br />
<br />
6. 要切记犯以下几点非职业化错误。 <br />
<br />
对业务只懂一点点<br />
<br />
屡次犯同样的错误 <br />
<br />
不思考是否有更好的办法 <br />
<br />
只想到自己，对任何事情不主动链接 <br />
<br />
缺乏危机意识</div><img src ="http://www.blogjava.net/zouhui/aggbug/411772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-04-01 10:43 <a href="http://www.blogjava.net/zouhui/archive/2014/04/01/411772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发自测</title><link>http://www.blogjava.net/zouhui/archive/2014/04/01/411770.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 01 Apr 2014 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/04/01/411770.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411770.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/04/01/411770.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411770.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411770.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
《转载》开发自测一：掩月在房产项目中的试点
luoqing 发表于：2012-01-19 浏览：3238次 评论：0次 所属分类： 系列活动  专题：开发自测
罗青：开发自测对开发团队有什么优点？
掩月：在项目前期提升质量，在项目后期缩短周期，减少开发测试之间的沟通成本(bug, 需求，code， TC)，减少bug修复成本，减少回归次数（回归多， bug多，会打散开发的时间，碎隙时间难以利用）
罗青：开发自测对测试团队有什么优点？
掩月：让有限的测试同学能做更多的项目和日常，能做更重要的事情
罗青：开发自测效率如何?
掩月：有时候并行3个项目， 1个测试，7个开发，1个前端，20多个运营，一个项目100个TC，平均开发测试比为8:1，平均发布周期2周
罗青：开发自测质量如何?
掩月：房产这个产品从6月份开始，没有任何线上故障，预发时发现的也是建议性bug
罗青：开发自测的形式有哪些?
掩月：小日常（活动类为主）开发自测直接上线，项目中部分模块开发自测直接上线，其余模块开发自测+测试验收，目前开发自测直接上线的占比40%
罗青：开发自测在团队中是怎么合作的?
掩月：从建立代码分支就开始白盒扫描自测（包括安全），当天bug当天修复，中间开发根据UC, TC进行自测，daily, 预发，20多个运营一起进行验收自测。
罗青：房产的开发自测有做过哪些类型的项目？
掩月：两种类型；数据准备型的最难开展开发自测，都需要测试准备好数据，才能进行测试；操作繁琐型的容易开展开发自测，但是异常场景的校验还是需要测试介入
罗青：2012年房产团队的开发自测可以提高的点在哪里？
掩月：
1. 需要建立自动的回归体系-目前做的都是新的独立功能，不涉及回归，后续功能多了以后就会有大量的回归工作，不可能依靠测试或者开发的手工回归
2. 需要提升开发同学的测试思维，扩展开发自测的范围从主流程到P3, P4&#8212;目前局限于活动页面，开发同学的测试思维较狭窄，后续扩展范围后，不可能仅仅做主流程的开发自测
3. 需要更适合的流程和工具支撑整个开发自测体系
罗青：开发自测对开发团队有要求吗?
掩月：房产团队的开发有一半是新来的，很愿意接受新的思维，在测试给予建议和培训后，质量意识提升很快，特别是有一个新女开发，0bug很强
岁晚：目前的自测对于开发团队成员的成熟度依赖性比较高，就是说开发人员如果对于质量有比较强的意识，对于自己的code能用比较专业的角度去看（比如，站在测试的角度，愿意发现bug提高质量），那么这个团队做开发自测就比较顺畅，自测的质量也会比较好。如何在开发经验少，质量意识薄弱的开发新人团队进行开发自测？
罗青：
我会持续的把各个团队的开发自测情况进行分析，总结，建议和推进，这是第一份战报
有任何团队想开展开发自测的，已经开发自测的欢迎找我<br />
<br />
<p><span style="font-family: 宋体;">和</span>list&amp;<span style="font-family: 宋体;">非标类团队的开发同学合作了将近</span>1<span style="font-family: 宋体;">年了，自己在这个阶段看到了一些自测效果提升的情况，分享出来。下表是</span>xlist&amp;<span style="font-family: 宋体;">非标类团队中</span>15<span style="font-family: 宋体;">名开发同学</span>2012<span style="font-family: 宋体;">年上半年和下半年的</span>bug reopen<span style="font-family: 宋体;">率和低级</span>bug<span style="font-family: 宋体;">率的统计。可以看到</span>2<span style="font-family: 宋体;">项指标均有不同程度的下降。经过这半年的实践，小谈一下我接口的开发团队的自测情况。</span></p>
<p align="center"><span style="font-family: 宋体;">表一</span>&nbsp;list&amp;<span style="font-family: 宋体;">非标类团队中</span>15<span style="font-family: 宋体;">名开发同学的</span>bug<span style="font-family: 宋体;">统计</span></p>
<table ke-zeroborder"="" style="width: 100%;" border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td style="background-color: #595959; padding: 0cm 5.4pt; width: 20.54%; background-position: initial initial; background-repeat: initial initial;" width="20%">
            <p><span style="color: white; font-family: 宋体;timesnewroman&quot;;Timesnewroman&quot;;">时间</span></p>
            </td>
            <td style="background-color: #595959; padding: 0cm 5.4pt; width: 10.1%; background-position: initial initial; background-repeat: initial initial;" width="10%">
            <p><span style="color: white; font-family: 宋体;timesnewroman&quot;;Timesnewroman&quot;;">总</span><span style="color: white; font-family: &quot;timesnewroman&quot;,&quot;serif&quot;;">bug</span><span style="color: white; font-family: 宋体;Timesnewroman&quot;;Timesnewroman&quot;;">数</span></p>
            </td>
            <td style="background-color: #595959; padding: 0cm 5.4pt; width: 15.32%; background-position: initial initial; background-repeat: initial initial;" width="15%">
            <p><span style="color: white; font-family: 宋体;timesnewroman&quot;;Timesnewroman&quot;;">月均</span><span style="color: white; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">reopen</span><span style="color: white; font-family: 宋体;Timesnewroman&quot;;Timesnewroman&quot;;">率</span></p>
            </td>
            <td style="background-color: #595959; padding: 0cm 5.4pt; width: 19.7%; background-position: initial initial; background-repeat: initial initial;" width="19%">
            <p><span style="color: white; font-family: 宋体;timesnewroman&quot;;Timesnewroman&quot;;">月均低级</span><span style="color: white; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">bug</span><span style="color: white; font-family: 宋体;Timesnewroman&quot;;Timesnewroman&quot;;">率</span></p>
            </td>
            <td style="background-color: #595959; padding: 0cm 5.4pt; width: 34.32%; background-position: initial initial; background-repeat: initial initial;" width="34%">
            <p><span style="color: white; font-family: 宋体;timesnewroman&quot;;Timesnewroman&quot;;">备注</span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; width: 20.54%;" width="20%">
            <p><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">2012-02-01</span><span style="font-family: 宋体;Times New Roman&quot;;Timesnewroman&quot;;">至</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">2012-06-30</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 10.1%;" width="10%">
            <p><span style="color: red; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">204</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 15.32%;" width="15%">
            <p><span style="color: red; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">20.56%</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 19.7%;" width="19%">
            <p><span style="color: red; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">10.53%</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 34.32%;" width="34%">
            <p><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">1.</span><span style="font-family: 宋体;Times New Roman&quot;;Timesnewroman&quot;;">共计算</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">5</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">个月；</span></p>
            <p><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">2.</span><span style="font-family: 宋体;Times New Roman&quot;;Timesnewroman&quot;;">月均低级</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">bug</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">只有</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">6</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">月份有数据，因此这里算的是</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">6</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">月份</span></p>
            <p><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">3.</span><span style="font-family: 宋体;Times New Roman&quot;;Timesnewroman&quot;;">这个阶段大家都没有记录低级</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">bug</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">，我估计是大家还没有意识到低级</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">bug</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">的标记</span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; width: 20.54%;" width="20%">
            <p><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">2012-07-01</span><span style="font-family: 宋体;Times New Roman&quot;;Timesnewroman&quot;;">至</span><span style="font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">2012-11-30</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 10.1%;" width="10%">
            <p><span style="color: red; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">212</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 15.32%;" width="15%">
            <p><span style="color: red; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">0.83%</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 19.7%;" width="19%">
            <p><span style="color: red; font-family: &quot;Timesnewroman&quot;,&quot;serif&quot;;">5.33%</span></p>
            </td>
            <td style="padding: 0cm 5.4pt; width: 34.32%;" width="34%">
            <p><span style="font-family: 宋体;Times New Roman&quot;;Timesnewroman&quot;;">共计算</span><span style="font-family: &quot;timesnewroman&quot;,&quot;serif&quot;;">5</span><span style="font-family: 宋体;Times New Roman&quot;;timesnewroman&quot;;">个月</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p style="text-indent: -21pt; margin-left: 21pt;">一、<span style="font-family: 宋体;">自测水平和代码水平有关系么？</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">我认为，自测水平和代码水平是弱关联的。虽然编码能力强，有助于自测的效率，但是并非编码能力决定自测水平。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">我觉得自测的觉悟和人本身的责任心是息息相关的，有些开发同学从始至终自测精神都非常好。例如，我一个对口产品线的开发同学：盈轩，我最早测试她的产品，她才开始</span>coding<span style="font-family: 宋体;">，那个时候她让我印象最深刻的就是，写出来的业务逻辑，几乎无</span>bug<span style="font-family: 宋体;">。后来随着她编码能力越来越棒，自测也一直坚持做的非常好。</span></p>
<p style="text-indent: -21pt; margin-left: 21pt;">二、<span style="font-family: 宋体;">关于自测精神</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">我觉得自测精神是一个好开发应该具备的基本素质之一。假如我们比较代码，在某个项目、某个日常里面碰到不那么靠谱的开发怎么办？我觉得，他不重视，他的老大一定要重视。例如，我们对口开发组的主管索尼，非常重视开发自测的情况，每次质量团队的</span>bug<span style="font-family: 宋体;">统计数据出炉之后，索尼都会强调下自测的重要性。我想这样是我们开发组自测风气略有提升的原因之一。万一主管也不重视呢？我也没办法了。</span></p>
<p style="text-indent: -21pt; margin-left: 21pt;">三、<span style="font-family: 宋体;">如何提升自测水平？</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">这一点，我本身是没有经历的。我只能分享给大家，我观察到的。给大家分享几个案例。女士优先，先来说说女生吧。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">盈轩，一个开发经验不到</span>2<span style="font-family: 宋体;">年的美女，但是代码质量非常好。每次产品完成开发之后，盈轩几乎自己会完整的测试一遍业务逻辑，还会关注下不同浏览器下的页面表征。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">临意，如果你接口开发是临意，那我只能说，你走运了，因为你确实可以少操心好多。我也曾问过临意关于自测的看法，聊过单元测试之类的，他提到，单元测试还是功能自测都不重要，关键是开发要清楚业务逻辑，要分析记录好自测点，然后再开始自测，不能一顿乱点。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">少符，非常了解业务的开发，他自测的优势在于非常了解所负责的产品逻辑，并且设计测试主流程和分支流去自测。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">本相，通过完整而详细的</span>UC<span style="font-family: 宋体;">指导自己的开发思路，完成开发只会会在本地自测业务逻辑。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">通过他们的共性，可以总结出开发自测的要点：</span>(1)<span style="font-family: 宋体;">理清楚业务逻辑，最好配以</span>UC<span style="font-family: 宋体;">或思维导图；</span>(2)<span style="font-family: 宋体;">编码完成后代码部署到本地进行一遍完整的功能执行，验证数据输入和输出；</span>(3)<span style="font-family: 宋体;">主管要重视；</span></p>
<p style="text-indent: -21pt; margin-left: 21pt;">四、<span style="font-family: 宋体;">哪些日常可以完全让开发自测，测试不参与？</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">评估点：</span>(1)<span style="font-family: 宋体;">日常的重要性。</span>(2)<span style="font-family: 宋体;">开发对此业务的了解程度。如果开发新接手该业务，那么不管这个开发的代码质量有多好，建议都不要完全自测；如果通过日常合作了解该开发清楚业务主流程，那么可考虑开发自测即可。</span>(3)<span style="font-family: 宋体;">开发过往的代码质量。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">有时候日常感觉开发自测不完全放心的时候，可以考虑和开发一起评估</span>UC<span style="font-family: 宋体;">，然后让其自测。如果</span>UC<span style="font-family: 宋体;">依然不放心，可以自己写完</span>TC<span style="font-family: 宋体;">，请开发同学执行</span>TC<span style="font-family: 宋体;">，全部通过才算自测通过。</span></p><img src ="http://www.blogjava.net/zouhui/aggbug/411770.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-04-01 10:32 <a href="http://www.blogjava.net/zouhui/archive/2014/04/01/411770.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>说话之道</title><link>http://www.blogjava.net/zouhui/archive/2014/03/31/411750.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Mon, 31 Mar 2014 10:46:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/31/411750.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411750.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/31/411750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411750.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411750.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div>
<div cssbase"="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近看了《蔡康永的说话之道》这本书，发现里面说的几个观点对我们平时工作和生活中与其他人沟通交流过程中挺有用的，分享给大家。 <strong><br />
<br />
你说什么样的话，你就是什么样的人</strong> <strong>&nbsp; &nbsp; &nbsp;&nbsp;</strong>《转载》<br />
<br />
You are what you say！！，很多人任务，你说什么样的话，透露出你是什么样的人，作者认为不值如此，你说什么样的话。就是什么样的人。工作中，我们每天都要和各式各样的人打交道。你会发现有些人说话你会感觉到很愉快，交谈中你会发现对方是一个很专业，很严谨、很友善的人，也或许你从对方的谈话语气中看出对方是一个目中无人、很傲慢的人。这些我们都可以从对方的语气、措辞等中看出来。你和交谈者谈话过程中就决定了你想要在对方眼里扮演什么样的人。你如果想要成为一个很专业的人，那么你在回答和讲解他人的问题的时候，你就不会敷衍了事，严谨对待。如果你想让自己成为一个友善的人，在交谈过程中可以多微笑，多用礼貌用语，多站在对方的立场去考虑问题。我很难接受一些人所谓的人很友善，只是不太会讲话的人。既然你真的是友善的，那么自然而热就不会出口伤人。既然你是专业的职业人，就不可能在谈话处事上很业余，甚至会错误百出。<br />
&nbsp;<strong><br />
把无谓的胜利留给对方，懂得认输的人很懂说话</strong> <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong><br />
<br />
你是否身边有这样的人，辩才纵横、逻辑清晰、学富五车、口若悬河。每次开会，他都能侃侃而谈，很有想法。但是大家都觉得他很讨厌。需要协调事情的时候，别人都很少愿意配合他。同部门的人也不太愿意陪他一起冲锋陷阵。他怎么啦？他也没什么，他只是跟别人意见不同的时候，老是把对方讲到哑口无言而已。厉害是厉害，但讨人厌。口头上败给他的人，心里都期待他出洋相。其实上司们叶都算欣赏这位同学，但当他们发现此人人缘太差，事情做不成，没法打团队战的时候，对他的评价也大大降低。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
智者说过，每个人，都是自己那片小领土的国王。每个人都喜欢别人同意自己，但是每个人都是自己的国王，不可能都刚好同意彼此的想法。当你不同意他人看法的时候，你没必要硬要对方认错认输。这对事情的进展没有任何好处。你可以语带保留，可以迂回的提醒。如果对方不是过于白痴，应该听得出你的立场。当你遇到一个非常强势的对方，如果认个错不会伤害你的原则的时候，建议你一笑了之，把那个所谓的胜利让给对方。这会显得你很大度。对方也会很离异跟你进一步合作。<br />
<strong><br />
聊天的时候，每个人都想聊自己</strong> <br />
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong><br />
工作生活中每个人都有自己很&#8220;上道&#8220;的朋友。当你在废话连篇或者是需要倾诉的时候，对面的人认真的看着你，专注而关心。你会发现他是你最上道的朋友。反过来，当你想要被别人喜欢的时候，那就轮到你扮演这个&#8221;最上道&#8220;的朋友。要扮演这样的朋友，其实原则很简单，&#8221;尽量别让自己说出&#8220;我&#8221;字&#8220;每次想要说&#8220;我&#8221;字的时候都改成&#8220;你&#8221;或者&#8220;他&#8221;。你会发现原本不断说着&#8220;我昨天&#8230;.&#8221;,&#8220;我觉得&#8230;.&#8221;,&#8221;我买了&#8230;.&#8221;这些句子句子的自己，忽然变成一个不断把话题丢给对方、让对方畅所欲言的、超级上道的朋友。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
也许你会说，你有不适陪酒的，为什么要让对方畅所欲言，厄尔不适让自己畅所欲言。答案很简单，你的朋友们，也不是陪酒的，他们凭什么要永远让你畅所欲言？</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/411750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-31 18:46 <a href="http://www.blogjava.net/zouhui/archive/2014/03/31/411750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试管理那些事儿</title><link>http://www.blogjava.net/zouhui/archive/2014/03/31/411749.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Mon, 31 Mar 2014 10:24:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/31/411749.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411749.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/31/411749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411749.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411749.html</trackback:ping><description><![CDATA[<div><div><div cssbase"="">测试管理FAQ二。 <strong><br />1、 </strong><strong>人员流动好吗？</strong> 首先注意人员流动和人才流失的区别。人才流失是一定要控制的，当然如何评判是不是人才这是门学问，有道是千里马常有而伯乐不常有，本文不展开此问题。而正常的人员流动是很有必要的，吐故纳新并不一定是坏事，所以我们才有轮岗才有末位淘汰。我想任何老板都不希望自己团队成为养老部门。 测试工程师有别于其他技术人员的一个明显点是对于技术广度的掌握，这是工作性质所决定，必须先了解待测产品的各种背景才能正常开展测试活动。有鉴于此，我们应该多鼓励测试人员的流动，也可以进行更多的虚线管理。核心思想，我们不用过多关注工作到底是由谁来完成，应更关注我们有哪些工作这些工作有没有被完成。<br />用个简单的图形描述下，看着有点像工单系统： &nbsp;<a href="http://www.taobaotest.com/files/attachments/qa_2074_1.jpg"><img alt="" src="http://www.taobaotest.com/files/attachments/qa_2074_1.jpg" height="205" width="360" /></a> <br />对于测试团队来说，人员流动除了传统的轮岗、转岗等等之外，更需要的是模糊开发与测试的界限，也就是说不仅仅是人的流动，更多的是工作内容的流动。我们不能只着眼于传统测试工作的范围，更要站在整个质量管理的角度看待问题。我们并非鼓动测试去做开发的工作去和开发比拼技能，而是测试本就具备这样的能力，说白了就是复合型，反之开发也亦然。个人认为未来技术团队里不会专门区分开发、测试的工作，或许在某一领域有偏重，但整体上的职位名称应该是&#8212;&#8212;开发测试工程师。&nbsp; <br /><strong><br />2、 </strong><strong>何种团队氛围最好？</strong> 很多主管喜欢打感情牌，喜欢把团队氛围营造成亲人朋友一般，吃饭要在一起活动要在一起差点上厕所也要在一起，大家一起放声歌唱我们是相亲相爱的一家人。我想问一句，你真的想传递公司就是我的家这种思想吗？你真的想把团队氛围打造成家庭氛围吗？先不说能否做到，做到之后会有什么弊端考虑过吗？家人之间的相处之道和同事之间的有何不同？这还用问吗？ 顺带说下腐败。组织活动是难，众口难调，在一定程度上强制所有人服从命令听指挥我觉得一点问题没有。但是，一面强制他人一面还要求他人能发自内心的支持并且玩的兴高采烈，你觉得可能吗？ 不少人认为高凝聚力团队的氛围是最好的，这点大致没错。高凝聚力可以解决很多问题，什么战斗力影响力学习氛围互帮互助，特别是脏活累活苦活有人干，关键时刻也有人挺身而出。但高凝聚力的形成有个充要条件，主管一定是核心。换言之，主管离开会对团队的损伤很大，这点风险太高。如何弥补呢？在此之上应该是什么呢？ 团队中30％的骨干人员有丰富的工作经验，较强的工作能力，并对团队有极高的忠诚度；团队中有正常的人员流动，不断的有新鲜血液补充保持团队活力，有发泄负面情绪的正常渠道，在工作中能持续保持激情；团队中上行下效，令行禁止，谋议资于众人，决断归于一将，信息及时共享并尽可能透明，保证较高的公平公正；还有最最重要的，测试人员一般都有点自卑感，认为测试不如开发，某种程度上讲这话没错，团队能让测试人员直视此问题，不用委曲求全自怨自艾，更不用做过多的事情来刻意表明测试并不比开发差，自谦过头就是自傲，自傲过头就是自卑，牢记这点。 这是一种什么团队？这是一种什么氛围？成熟的团队，成熟的氛围。我们需要为团队打造一种绵绵然而富有激情的氛围，真的勇士敢于直面惨淡的人生敢于正视淋漓的鲜血，心里素质不过硬内心不够强大能指望着打硬仗吗？遇到点挫折就怨天尤人摔倒了就爬不起来，即使能力再强要你何用？这世界天才是少，但大家就更少，有多少天才在成为大家的路上就早早夭折了？我们需要心智成熟的团员，组成素质过硬的团队，简单讲，我们要组建熟男熟女的团队，而不是幼齿团队。注意，这与年龄无关，白活几十年的人多了去了。在互联网企业，在年青人较多的团队，活力肯定有，同时浮躁也难免，所以营造成熟的团队氛围就显得更加重要。至于如何一步步的建立并最终达到此目标，因篇幅所限故本文不做探讨，有兴趣的可私下找我。最后，现在知道为什么很多人叫我大叔了吗？还不知道开扁的啊。&nbsp; <br /><strong><br />3、 </strong><strong>如何考核测试人员？</strong> 这问题有太多人探讨，网上随便一搜一大把。大致汇总有以下几点： l&nbsp; 按业绩：又可分为按结果和按过程。按结果就是待测产品最终质量如何，上线有多少故障；按过程就是针对测试过程中的各项产出进行评判，什么有多少测试用例多少缺陷多少脚本用了多少资源多长时间等等等等。 l&nbsp; 按能力：会不会编码写脚本会不会开发测试工具会不会各种类型的测试会不会写文章会不会演讲反正上天入地电光霹雳有你不会的没。 简单粗暴点的按结果居多，管你三七二十一线上有多少故障，超出预订目标就砍你。复杂点的把各种指标放一起加减乘除还要加上各种权重。 无论哪种都有个核心问题，如何收集数据？特别是准确的收集？所以想要公平客观的考核测试人员首先必须拿到准确的评估数据，这也是为什么我一直强调测试数据报表重要性的原因。当然，测试报表的作用远远不止用于考核，更多是为制定未来测试发展方向所用，最近我一直在整理我们需要哪些报表怎样的算法才更精准，本文不做深入探讨，有兴趣的单独找我。 有些数据可以收集但有些数据需要主观判断，尤其是综合素质方面，难以量化。所以我认为考核的思路应该是一个中心两个基本点，以产品建设的最终结果为中心，坚持高效的研发过程，坚持小规模作战的思想。 产品发布后是否达到预订目标甚至超过预期，这是我们最关注的，你测试做的再好任你说的天花乱坠，最终产品目标没达成那就是扯淡。所以我反复强调不要仅站在测试的角度看问题，要不得。 互联网产品出故障不可怕，可怕的是故障迟迟得不到修复。出个P1故障我一秒甚至是一毫秒就修复了，影响能有多大？此观点很多人论述过了在这我不重复。所以在产品建设的过程中，我们第一考虑的是高效，如何才能高效，凡是阻挡高效的一律扫除。天下武功无坚不摧唯快不破，测试工作如何能更快的进行完，这是我们优先考虑的。 不要把团队无限制的扩大，更不要认为人多就好办事。咱们国家为啥要搞计划生育？用最少的人办更多的事，这才是王道。当然，出于某些个人利益考虑而做出的选择请无视我说的。 综上所述，考核测试人员就三条：产品建设最终结果如何，测试过程有没有更快，测试资源有没有更少。 &nbsp; <strong><br /><br />4、 </strong><strong>测试人员如何才能晋升？</strong> 这问题太敏感，不适合公开讲，我做过几次试验，还算有点心得，改天单独写个攻略，私下传阅。不过有一点是可以说的，想想你所在的企业，所在的团队，你的老板，过去现在将来需要什么样的测试人员，你可以列个表格一一对比，如果看不清未来那就不必费力了，模仿别人的道路往前走吧。&nbsp; <br /><strong><br />5、 </strong><strong>垂直团队与传统团队有何区别？</strong> 垂直化的测试团队与传统结构的测试团队有何区别？看完这么多FAQ你还不清楚那我也没办法了，传统结构的测试团队基本不会这么做。 垂直化测试团队有个瓶颈，资源较少，测试人员的发展空间容易受限，特别是往管理方向发展的测试人员。所以不管是纵向还是横向发展，最好是走技术与业务相结合这条路，这也是我们一直说的，跳出测试的条条框框，站在垂直的层面看问题。 至于是垂直结构好，还是传统结构好，仁者见仁智者见智吧。</div></div></div><img src ="http://www.blogjava.net/zouhui/aggbug/411749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-31 18:24 <a href="http://www.blogjava.net/zouhui/archive/2014/03/31/411749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>性能压测在活动测试中的应用</title><link>http://www.blogjava.net/zouhui/archive/2014/03/31/411747.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Mon, 31 Mar 2014 10:07:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/31/411747.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411747.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/31/411747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411747.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411747.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<h3>性能压测在活动测试中的应用 &nbsp;《转载》</h3>
<div cssbase"="">
<p><span style="font-family: 宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第四季度运营</span><span style="font-family: 宋体;">活动频频，双</span>11<span style="font-family: 宋体;">双</span> 12<span style="font-family: 宋体;">等等，在这几次活动测试中，感触比较深刻的还是在抽奖活动的送奖问题上。曾经出现过一次尴尬的事故：红包送多了，假设每天本来限量</span>100W<span style="font-family: 宋体;">，结果送出去了</span>150W<span style="font-family: 宋体;">，多送了</span>50W<span style="font-family: 宋体;">。且抛开该活动是否有带来多大的宣传效果，牵扯到支损，还是一件需要引起重视的事，得想些方法来避免这种故障发生。</span> </p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">下面是某活动中在统计剩余奖池数量截取的一段代码：</span></p>
<img alt="" src="http://www.taobaotest.com/files/attachments/619.JPG" border="0" /><br />
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">实现的是更新剩余二等奖奖数，及时统计到</span>tair<span style="font-family: 宋体;">的工作，低流量下一般不会有问题，但是并发量大的时候，若同时有</span>2<span style="font-family: 宋体;">个用户抽到二等奖均取到同个</span>SECOND_PRIZE_AMOUNT<span style="font-family: 宋体;">值，均需对其进行减</span>1<span style="font-family: 宋体;">的工作，上次未操作完毕，后一次已经取到开始处理，两次操作后，只让</span>SECOND_PRIZE_AMOUNT<span style="font-family: 宋体;">值减了</span>1<span style="font-family: 宋体;">，</span> <span style="font-family: 宋体;">但应该是要减</span>2<span style="font-family: 宋体;">，这样累积多个用户并发操作后，便会出现少算剩余奖数而多送奖的事故了。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">通过类似这种事故启发，并发的问题我们可以通过性能压测模拟来测试这个问题，防止此类事故发生。以我们曾经一活动为例，来说下如何通过简单的性能压测来验证是否多送奖的问题。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">活动的内容大概是这样：购买一本电子书，将有机会获得单笔购买的电子书价的</span>1<span style="font-family: 宋体;">倍、或</span>10<span style="font-family: 宋体;">倍、或</span>100<span style="font-family: 宋体;">倍的红包。活动开始前，在后台配好中奖的概率和不中奖的概率，再包括中奖概率中分别中</span>1<span style="font-family: 宋体;">倍、中</span>10<span style="font-family: 宋体;">倍、中</span>100<span style="font-family: 宋体;">倍的概率，每天限制总金额</span>M<span style="font-family: 宋体;">，不限数量，总金额一到，后面一律不中奖。</span></p>
<p><span style="font-family: 宋体;">测试目标：</span></p>
<p style="text-indent: -18pt; margin-left: 18pt;">1.<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体;">保证全部奖项抽完后，实际中</span>1<span style="font-family: 宋体;">倍、</span>10<span style="font-family: 宋体;">、</span>100<span style="font-family: 宋体;">的概率与后台配置一致；</span></p>
<p style="text-indent: -18pt; margin-left: 18pt;">2.<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体;">保证实际送出去的红包总金额不超过每天限制总金额；</span></p>
<p style="text-indent: -18pt; margin-left: 18pt;"><span style="font-family: 宋体;"><br />
</span></p>
<p><span style="font-family: 宋体;">按照做数学题的方式，</span></p>
<blockquote>
<p><span style="font-family: 宋体;">设后台配置中奖的概率为</span>p<sub><span style="font-family: 宋体;">中</span></sub><span style="font-family: 宋体;">，中奖机会中中</span>1<span style="font-family: 宋体;">倍概率为</span>P<sub>1</sub><span style="font-family: 宋体;">，中</span>10<span style="font-family: 宋体;">倍、</span>100<span style="font-family: 宋体;">倍分别为</span>P<sub>10</sub>,P<sub>100</sub>,</p>
<p><span style="font-family: 宋体;">实际中奖概率为</span>p&#8217;<sub><span style="font-family: 宋体;">中</span></sub><span style="font-family: 宋体;">，中</span>1<span style="font-family: 宋体;">倍概率为</span>P&#8217;<sub>1</sub><span style="font-family: 宋体;">，中</span>10<span style="font-family: 宋体;">倍、</span>100<span style="font-family: 宋体;">倍分别为</span>P&#8217;<sub>10</sub>,P&#8217;<sub>100</sub>,</p>
<p><span style="font-family: 宋体;">第</span>n<span style="font-family: 宋体;">个中</span>1<span style="font-family: 宋体;">倍红包的金额为</span>y<sub>1n</sub>,</p>
<p><span style="font-family: 宋体;">第</span>n<span style="font-family: 宋体;">个中</span>10<span style="font-family: 宋体;">倍红包的金额为</span>y<sub>10n</sub>,</p>
<p><span style="font-family: 宋体;">第</span>n<span style="font-family: 宋体;">个中</span>100<span style="font-family: 宋体;">倍红包的金额为</span>y<sub>100n</sub>,</p>
<p><span style="font-family: 宋体;">中</span>1<span style="font-family: 宋体;">倍红包个数为</span>c<sub>1,</sub></p>
<p><span style="font-family: 宋体;">中</span>10<span style="font-family: 宋体;">倍红包个数为</span>c<sub>10,</sub></p>
<p><span style="font-family: 宋体;">中</span>100<span style="font-family: 宋体;">倍红包个数为</span>c<sub>100,</sub></p>
<p><span style="font-family: 宋体;">实际中红包总个数为</span>C ,</p>
<p><span style="font-family: 宋体;">每天限制总金额为</span>M</p>
<p><span style="font-family: 宋体;">实际发送红包总金额为</span>M&#8217;;</p>
</blockquote>
<p><br />
</p>
<p><span style="font-family: 宋体;">开始进行抽奖接口的压测工作（具体性能测试方法与普通的接口性能压测一样），但需要注意：</span></p>
<p style="text-indent: -18pt; margin-left: 18pt;">1.<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体;">并发用户数尽量多些，让每个队列数至少有</span>2<span style="font-family: 宋体;">到3个用户（并发用户数如果太少，上面提到的计数器统计故障可能无法测试出来）；</span></p>
<p style="text-indent: -18pt; margin-left: 18pt;">2.<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-family: 宋体;">压测时间尽量长，目的是让总</span>transactions <span style="font-family: 宋体;">个数尽量把所有奖覆盖到，让奖尽量全部抽完；</span></p>
<p><span style="font-family: 宋体;">压测结束后，中奖的金额与个数情况均可通过埋点日志记录统计得到，再由活动内容可得：</span></p>
<blockquote>
<p><img alt="" src="http://www.taobaotest.com/files/attachments/620.JPG" border="0" /><br />
</p>
<p>P&#8217;<sub>1 </sub>= c<sub>1&nbsp;</sub>/ C&nbsp;,&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>P&#8217;<sub>10 </sub>= c<sub>10&nbsp;</sub>/ C&nbsp;</p>
<p>P&#8217;<sub>100&nbsp;</sub>= c<sub>100 </sub>/ C<span style="font-family: 宋体;"><br />
</span></p>
</blockquote>
<p><span style="font-family: 宋体;">结果比对下</span>M&#8217;-&gt;M, P&#8217;<sub>1 </sub>-&gt;P<sub>1</sub>, P&#8217;<sub>10 </sub>-&gt; P<sub>10,&nbsp;</sub>P&#8217;<sub>100 </sub>-&gt; P<sub>100&nbsp;</sub><span style="font-family: 宋体;">。</span> </p>
<p><span style="font-family: 宋体;">如果统计结果出来，几个实际概率值与配置的概率值仍有所偏差，可以再尝试加长压测时间，以努力将所有奖项全部抽完，多尝试几次压测，记录每次的抽奖情况。</span></p>
<p><span style="font-family: 宋体;">正常情况下，最后一个奖抽到的时间点之前所有事务数假设为T1,</span><span style="font-family: 宋体;">p&#8217;<sub><span style="font-family: 宋体;">中&nbsp; = C/</span></sub></span><span style="font-family: 宋体;"><sub><span style="font-family: 宋体;"><span style="font-family: 宋体;">T1,&nbsp;</span></span></sub></span><span style="font-family: 宋体;"><sub><span style="font-family: 宋体;">p&#8217;<sub><span style="font-family: 宋体;">中 -&gt;</span></sub> </span></sub></span><span style="font-family: 宋体;"><sub><span style="font-family: 宋体;">p<sub><span style="font-family: 宋体;">中</span></sub> </span></sub>; 压测时间够长，当</span>M&#8217;<span style="font-family: 宋体;">无限趋近</span>M<span style="font-family: 宋体;">，此时统计出来的各倍数概率正常会无限逼近配置值，若相差太大，便可能是问题了。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;"><span style="font-family: 宋体;">后面以上述的这个性能压测方法测试了几个类似活动的抽奖概率和发奖情况，均有些帮助，也希望对大家有所启发。</span>每次的大型活动结束后，总是会留下一些可以对后续工作有所帮助的教训，目前在活动测试中，除了送多的问题外，还有许多值得思考的问题，例如如何防恶意刷奖，这块的测试与风险预防感觉做得还不是很到位，也许也是个值得深究的方向</span></p>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/411747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-31 18:07 <a href="http://www.blogjava.net/zouhui/archive/2014/03/31/411747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>性能测试实践分享</title><link>http://www.blogjava.net/zouhui/archive/2014/03/31/411738.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Mon, 31 Mar 2014 08:38:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/31/411738.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411738.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/31/411738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411738.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411738.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 性能点：营销招商活动，提交报名&nbsp;前言：&nbsp;&nbsp;&nbsp;&nbsp;以下是我在项目中完成的另一次性能测试实践，对性能测试还处于摸索阶段，如果有不准确的地方欢迎指点。  一、简介     批量提交报名，libra2manager应用处理请求，调用libra2center服务进行相关商品和卖家信息的判断，调用qc服务进行卖家商品资质判断是否可报名、成功后插入到数据库。  系...&nbsp;&nbsp;<a href='http://www.blogjava.net/zouhui/archive/2014/03/31/411738.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/411738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-31 16:38 <a href="http://www.blogjava.net/zouhui/archive/2014/03/31/411738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BWM-NG 监控网络带宽和磁盘IO的小利器 </title><link>http://www.blogjava.net/zouhui/archive/2014/03/26/411513.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 26 Mar 2014 07:33:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/26/411513.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411513.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/26/411513.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411513.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411513.html</trackback:ping><description><![CDATA[<h1><a id="cb_post_title_url" href="http://www.cnblogs.com/jankie/archive/2011/06/14/2080623.html">BWM-NG 监控网络带宽和磁盘IO的小利器</a>		 </h1><div><div id="cnblogs_post_body"><span style="color: #000080;" color="#000080">安装 bwm-ng </span><br /><br />官网： <strong><a href="http://www.gropp.org/bwm-ng/" target="_blank">http://www.gropp.org/</a></strong><br /><ul><li><span style="color: #333333;" color="#333333"><strong>cd /usr/src<br />wget <a href="http://www.gropp.org/bwm-ng/bwm-ng-0.6.tar.gz" target="_blank">http://www.gropp.org/bwm-ng/bwm-ng-0.6.tar.gz</a><br />tar zxvf bwm-ng-0.6.tar.gz<br />cd bwm-ng-0.6<br />./configure &amp;&amp; make &amp;&amp; make install</strong></span></li></ul>1.监控网络：<br /><div id="code0"><li>bwm-ng -u bits -d</li><li>bwm-ng -u bytes -d</li></div><br /><br />2.监控磁盘IO<br /><div><div id="code1">bwm-ng -u bytes&nbsp;&nbsp;-i disk</div></div><a title="2011-5-11 9-39-24.png 下载次数:0" href="http://bbs.linuxtone.org/forum-attachment-aid-MjU0M3w1Nzc2MTY3OXwxMzA4MDMxMjAxfDk0NTU%3D-nothumb-yes.html" target="_blank"><strong>下载附件</strong> (21.76 KB)</a> </div></div><br /><br /># bwm-ng --help&nbsp; &nbsp;//更详细的使用大家一起挖掘<br />Bandwidth Monitor NG (bwm-ng) v0.6<br />Copyright (C) 2004-2007 Volker Gropp &lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#98;&#119;&#109;&#110;&#103;&#64;&#103;&#114;&#111;&#112;&#112;&#46;&#111;&#114;&#103;">bwmng@gropp.org</a>&gt;<br />USAGE: bwm-ng [OPTION] ... [CONFIGFILE]<br />displays current ethernet interfaces stats<br /><br />Options:<br />&nbsp;&nbsp;-t, --timeout &lt;msec&gt;&nbsp; &nbsp; displays stats every &lt;msec&gt; (1msec = 1/1000sec)<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;default: 500<br />&nbsp;&nbsp;-d, --dynamic [value]&nbsp; &nbsp;show values dynamicly (Byte KB or MB)<br />&nbsp;&nbsp;-a, --allif [mode]&nbsp; &nbsp;&nbsp; &nbsp;where mode is one of:<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;0=show only up (and selected) interfaces<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;1=show all up interfaces (default)<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;2=show all and down interfaces<br />&nbsp;&nbsp;-I, --interfaces &lt;list&gt; show only interfaces in &lt;list&gt; (comma seperated), or<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;if list is prefaced with % show all but interfaces<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;in list<br />&nbsp;&nbsp;-S, --sumhidden [value] count hidden interfaces for total<br />&nbsp;&nbsp;-A, --avglength &lt;sec&gt;&nbsp; &nbsp;sets the span of average stats (Default 30s)<br />&nbsp;&nbsp;-D, --daemon [value]&nbsp; &nbsp; fork into background and daemonize<br />&nbsp;&nbsp;-h, --help&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;displays this help<br />&nbsp;&nbsp;-V, --version&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;print version info<br /><br />Input:<br />&nbsp;&nbsp;-i, --input &lt;method&gt;&nbsp; &nbsp; input method, one of: proc netstat disk<br />&nbsp;&nbsp;-f, --procfile &lt;file&gt;&nbsp; &nbsp;filename to read raw data from. (/proc/net/dev)<br />&nbsp; &nbsp;&nbsp; &nbsp;--diskstatsfile &lt;file&gt; filename to read diskstats (Linux 2.6+) from. (/proc/diskstats)<br />&nbsp; &nbsp;&nbsp; &nbsp;--partitionsfile &lt;file&gt; filename to read diskstats (Linux 2.4) from. (/proc/partitions)<br /><br />Output:<br />&nbsp;&nbsp;-o, --output &lt;method&gt;&nbsp; &nbsp;output method, one of: <br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;plain, curses, curses2, csv, html<br />&nbsp;&nbsp;-u, --unit &lt;value&gt;&nbsp; &nbsp;&nbsp; &nbsp;unit to show. one of bytes, bits, packets, errors<br />&nbsp;&nbsp;-T, --type &lt;value&gt;&nbsp; &nbsp;&nbsp; &nbsp;type of stats. one of rate, max, sum, avg<br />&nbsp;&nbsp;-C, --csvchar &lt;char&gt;&nbsp; &nbsp; delimiter for csv<br />&nbsp;&nbsp;-F, --outfile &lt;file&gt;&nbsp; &nbsp; output file for csv and html (default stdout)<br />&nbsp;&nbsp;-R, --htmlrefresh &lt;num&gt; meta refresh for html output<br />&nbsp;&nbsp;-H, --htmlheader&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;show &lt;html&gt; and &lt;meta&gt; frame for html output<br />&nbsp;&nbsp;-c, --count &lt;num&gt;&nbsp; &nbsp;&nbsp; &nbsp; number of query/output for plain &amp; csv<br />&nbsp;&nbsp;-N, --ansiout&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;disable ansi codes for plain output<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;(ie 1 for one single output)<img src ="http://www.blogjava.net/zouhui/aggbug/411513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-26 15:33 <a href="http://www.blogjava.net/zouhui/archive/2014/03/26/411513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LoadRunner中对图表的分析说明</title><link>http://www.blogjava.net/zouhui/archive/2014/03/26/411499.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 26 Mar 2014 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/26/411499.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411499.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/26/411499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411499.html</trackback:ping><description><![CDATA[<p>（一）在Vusers（虚拟用户状态）中</p><p>　　1.Running Vusers（负载过程中的虚拟用户运行情况）</p><p>　　说明&#8212;&#8212;系统形成负载的过程，随着时间的推移，虚拟用户数量是如何变化的，描述为（用户在几分钟左右到达了组在峰值多少个虚拟用户，负载的生成是大约每分钟增加几个用户，峰值负载持续为几分几秒）。</p><p>　　2.Rendezvous（负载过程中集合点下的虚拟用户数）</p><p>　　说明&#8212;&#8212;脚本中一般要设置集合点才会产生并发，随着时间的推移各个时间点上并发用户的数目，方便我们了解并发用户数的变化情况。描述（刚开始的几分钟内，负载的并发用户都是几个，而后面变化为几个用户并发）。</p><p>　　（二）在Transactions（事务）中</p><p>　　这里给出了所有和事务相关的数据统计，方便了解被测试系统业务处理的响应时间和吞吐量。</p><p>　　1.Average Transaction Response Time（平均事务响应时间）</p><p>　　说明&#8212;&#8212;反映随着时间的变化事务响应时间的变化情况，时间越小说明处理的速度越快。如果和前面的用户负载生成图合并在一起看，就可以发现用户负载增加对系统事务响应时间的影响规律。描述（看到响应时间是如何增长的，随着时间的推移响应时间逐渐变长，并且在不到多少时间的时候突然出现响应时间大幅下降的情况）另外事务的响应时间也不应该超过用户的最大接受范围，否则会出现系统响应过慢的问题。</p><p>　　2.Transactions per Second（每秒事务数）</p><p>　　说明&#8212;&#8212;数据反映了系统在同一时间内能处理业务的最大能力，这个数据越高，说明系统处理能力越强。描述（看到系统的TPS随着时间的变化逐渐变大，而在不到多少分钟的时候系统每秒可以处理多少个事务。这里的最高值并不一定代表系统的最大处理能力，TPS会受到负载的影响，也会随着负载的增加而逐渐增加，当系统进入繁忙期后，TPS会有所下降。而在几分钟以后开始出现少量的失败事务）</p><p>　　3.Transaction Summary（事务概要说明）</p><p>　　说明&#8212;&#8212;通过的事务数越多，说明系统的处理能力越强；失败的事务越少，说明系统越可靠。描述（对于注册操作一共有对少次操作成功，有几次失败。可以开率结合前面的每秒错误数进一步分析为什么会出现几个注册错误，以及错误发生的时间和该时间产生错误的原因）</p><p>　　4.Transaction Performance Summary（事务性能概要）</p><p>　　说明&#8212;&#8212;给出事务的平均时间、最大时间、最小时间柱状图，方便分析事务响应时间的情况。描述（看到这个事务最大时间为多少S，最小时间为多少S，平均时间为多少S。柱状图的落差越小说明响应时间的波动较小，那么说明系统不够稳定。）</p><p>　　5.Transaction Response Time Under Load（在用户负载下事务响应时间）</p><p>　　说明&#8212;&#8212;在负载用户增长的过程中响应时间的变化情况，起始这张图也是将Vusers和Average Transaction Response Time图做了一个Correlate Merge得到的，该图的线条越平稳，说明系统越稳定。描述（看到负载逐渐增加到几个用户时，事务的响应时间基本没有变化，而用户增加到几个开始，随着用户负载的增加响应时间也有较大的波动）</p><p>　　6.Transaction Response Time（Percentile）（事务响应时间的百分比）</p><p>　　说明&#8212;&#8212;有多少比例的事务发生在某个时间内，也可以发现响应时间的分布规律，数据越平稳说明响应时间变化越小。描述（看到百分几%的事务是在几秒内）</p><p>　　7.Transaction Response Time （Distribution）（每个时间段上的事务数）</p><p>　　说明&#8212;&#8212;在每个时间段上的事务个数，响应时间较小的分类下的事务数越多越好。描述（看到在所有的事务中，有多少个事务的响应时间最接近几秒，而有几个事务的响应时间最接近几秒）</p><p>　　（三）在Web Resources（网页资源信息）中</p><p>　　当Controller的Run Time Setting中Preferences下的Generated Web performance graphs选项处于开启状态时，该图表才会出现。</p><p>　　1.Hits per Second（每秒点击数）</p><p>　　说明&#8212;&#8212;每秒点击数提供了当前负载重对系统所产生的点击量记录。每一次点击相当于对服务器发出了一次请求，一般点击数会随着负载的增加而增加，该数据越大越好。描述（随着时间的增加，每秒点击数在上升，最高达到了多少次/s）。</p><p>　　2.Throughput（带宽使用）</p><p>　　说明&#8212;&#8212;当前系统负载下所使用的带宽，该数据越小说明系统的贷款依赖越小，通过这个数据能确定是否出现了网络带宽的瓶颈。描述（得到醉倒的带宽峰值是多少B，远远低于100Mb的局域网带宽上限，所以系统不存在带宽瓶颈）。</p><p>　　3.HTTP Responses per Second（每秒HTTP响应数）</p><p>　　说明&#8212;&#8212;每秒钟服务器返回各种状态的数目，该数值一般和每秒点击量相同。点击量是指客户端发出的请求数，而HTTP响应数是指服务器返回的响应数。如果服务器返回的响应数小于发出的请求数，那么说明服务器无法应答超出负载的连接请求。描述（最高峰时服务器每秒能返回接近多少个HTTP _ 200 OK的状态）。</p><p>　　4.Connections Per Second（每秒连接数）</p><p>　　说明&#8212;&#8212;两种不同状态的连接数，即中断的连接和新建的连接，方便用户了解当前每秒对服务器产生连接的数量。描述（随着时间的推移，系统的连接数逐步上升，最高达到每秒几个连接）同时的连接数越多，说明服务器的连接池越大，当连接数随着负载上升而停止上升时，说明系统的连接池已满，无法连接更多的用户，通常这个时候服务器会返回504错误。可以通过修改服务器的最大连接数来解决问题。</p><p>　　（四）在Web Page Diagnostics（网页分析）中</p><p>　　当在场景中打开Diagnostics菜单下的Web Page Diagnostics功能，就能得到网页分析组图。通过这个图，可以对事务的组成进行抽丝剥茧的分析，得到组成这个页面的每一个请求时间分析，进一步了解响应时间中有关网络和服务器处理时间的分配关系。通过这个功能，可以实现对网站的前端性能分析，明确系统响应时间较长时由服务器端（后端）处理能力不足还是短连接到服务器的网络（前端）消耗导致的。</p><p>　　1、 Web Page Diagnostics（网页分析）</p><p>　　说明&#8212;&#8212;添加该图先会得到整个场景运行后虚拟用户访问的Page列表，也就是所有页面下载时间列表。描述（在注册用户事务进行分析，整个负载由三个页面请求组成，其中有一个请求始终在多少秒以内，而另外几个请求时间较长并且有上升趋势，然后通过Select Page to Break Down命令选择具体的Page来获得每个请求的相关详细信息&#8212;&#8212;分析如下：</p><p>　　1.Download Time下载时间分析&#8212;&#8212;组成页面的每个请求下载时间&#8212;&#8212;可以看到创建用户的操作由4个请求组成，其中导致注册用户较慢的主要原因是注册完成后需要等待两秒钟再刷新至论坛首页，而非注册用户本身需要消耗的时间，首页刷新慢也只是因为Client（客户端）需要消耗较多时间，同时Receive（接收）的时间也有一定的影响。</p><p>　　2.Component（Over time）各模块的时间变化&#8212;&#8212;通过这个功能可以分析响应时间变长是因为页面生成慢，还是因为图片资源下载慢。随着时间的增加，首页的处理时间（最上面的一根线）从多少秒上升到了最大值多少秒，而注册英护响应时间几乎没有上升。</p><p>　　3.Download Time（Over time）模块下载时间&#8212;&#8212;针对每个组成页面元素的时间组成部分分析，方便确认该元素的处理时间组成部分。发现首页请求的下载时间主要消耗在Client上，而多少分多少秒之前Recevie所消耗的时间在逐渐变长。</p><p>　　4.Time to Buffer（Over time）模块时间分类&#8212;&#8212;列出该元素所使用的时间分配比例，是受Network Time影响的多还是Server Time影响的多。对于首页刷新的响应时间来说，主要是Network Time网络上消耗的时间，而Server Time服务器端的处理时非常优秀的。Server Time是服务器对该页面的处理时间；Network Time是指网络上的时间开销。）</p><p>　　2、 Page Download Time Breakdown（页面响应时间组成分析）</p><p>　　说明&#8212;&#8212;显示每个页面响应时间的组成分析，一个页面的响应时间一般由以下内容组成：</p><p>　　Client Time客户端浏览接收所需要使用的时间，可以不用考虑。</p><p>　　Connections Time连接服务器所需要的时间，越小越好。</p><p>　　DNS Resolution Time通过DNS服务器解析域名所需要的时间，解析受到DNS服务器的影响，越小越好。</p><p>　　Error Time服务器返回错误响应时间，这个时间反映了服务器处理错误的速度，一般是Web服务器直接返回的，包含了网络时间和Web服务器返回错误的时间，该时间越小越好。</p><p>　　First Buffer Time连接到服务器，服务器返回第一个字节所需要的时间，反映了系统对于正常请求的处理时间开销，包含网络时间和服务器正常处理的时间，该时间越小越好。</p><p>　　FTP Authentication Time FTP认证时间，这是进行FTP登录等操作所需要消耗的认证时间，越短越好。</p><p>　　Receive Time接受数据的时间，这个时间反映了带宽的大小，带宽越大，下载时间越短。</p><p>　　SSL Handshaking Time SSL加密握手的时间，而Analysis在这里会分析得到页面请求的组成比例图，便于分析页面时间浪费在哪些过程中。</p><p>　　3、 Page Download Time Breakdown（Over time）（页面组成部分时间）</p><p>　　说明&#8212;&#8212;随着时间的变化所有请求的响应时间变化过程。这里会将整个负载过程中每个页面的每个时间组成部分都做成单独的时间线，以便分析再不同的时间点上组成该页面的各个请求时间是如何变化的。描述（看到大多数页面的响应时间是比较稳定的，其中首页刷新变动较大&#8212;&#8212;首先找到变化最明显或者响应时间最高的页面，随后在针对这个页面进行进一步的分析了解时间偏长或者变化较快的原因。）</p><p>　　4、 Time to First Buffer Breakdown（页面请求组成时间）</p><p>　　说明&#8212;&#8212;组成页面时间请求的比例说明（客户端时间/服务器时间），通过这个图，我们可以直接地了解到整个页面的处理是在服务器端消耗的时间长，还是在客户端消耗的时间长，从而分析得到系统的性能问题是在前段还是在后端。描述（网络或客户端的时间开销占了绝大多数）</p><p>　　5、 Time to First Buffer Breakdown（Over time）（基于时间的页面请求组成分析）</p><p>　　说明&#8212;&#8212;在整个负载过程中，每一个请求的Server Time和Client Time随着时间变化的趋势，可以方便定位响应时间随着时间变化的原因到底是由于客户端变化导致的还是由于服务器端变化导致的。描述（对于用户注册操作，望楼上的时间变化比服务器上的时间变化要剧烈）</p><p>　　（五）在Network Monitor（网络监控）中</p><p>　　在 Controller中添加了Network Delay Time监控后会出现该数据图。这个功能很好但并不是非常直观和方便，建议使用第三方专门的路由分析工具进行网络延迟和路径分析。</p><p>　　1、Network Delay Time（网络延迟时间）</p><p>　　说明&#8212;&#8212;从监控机至目标主机的平均网络延迟变化情况。描述（看到网络延迟从多少毫秒逐渐减少到多少毫秒，最后上升到多少毫秒）。</p><p>　　2、Network Sub-Path Time（网络Sub-Path时间）</p><p>　　说明&#8212;&#8212;当客户端在连接一个远程服务器时，路径并不是唯一的，收到路由器的路由选择，可能会选择不同的路径最终访问到服务器。描述（从监控服务区至目标服务器所经历的路径，以及每个路径上的网络延迟）</p><p>　　3、Network Segment Delay Time(网段延迟时间)</p><p>　　说明&#8212;&#8212;各个路径上的各个节点网络延迟情况。描述（路由器和路由器之间的网络延迟变化情况，以便于分析影响整个网络时间的原因及节点）。</p><p>　　（六）在Resources（资源监控）中</p><p>　　资源包括很多种，在Analysis中监控的都市各种系统的计数器，这些计数器反映了系统中硬件或者软件的运行情况，通过它可以发现系统的瓶颈。</p><p>　　1、 System Resources（系统资源）列出了再负载过程中系统的各种资源数据是如何变化的，该图需要在场景中设置了对应系统的监控后才出现：</p><p>　　1.Database Server Resources（数据库资源）</p><p>　　说明&#8212;&#8212;数据库的相关资源在负载过程中的变化情况。</p><p>　　2.Web Server Resources（Web服务器资源）</p><p>　　说明&#8212;&#8212;Web服务器资源在负载过程中的变化情况。</p><p>　　（七）在Error（错误统计）中</p><p>　　当场景在运行中出现错误时，错误信息将会被保存在该计数器组中，通过Error信息可以了解错误产生的时间和错误的类型，帮助我们定位产生错误的原因。</p><p>　　Error per Second（每秒错误数）</p><p>　　说明&#8212;&#8212;每秒错误数可以了解在每个时间点上错误产生的数目，该数据越小越好。通过这个图可以了解错误随负载的变化情况，定位何时系统在负载下开始不稳定甚至出错，配合系统日志可以定位产生错误的原因。描述(看到场景在多少的时候出现了一次错误)。</p><p>　　Service Level Agreement Legend（SLA图标说明）</p><p>　　1、图标为灰色带减号的为No Data，说明在SLA中未对这个数据项进行监控，没有数据；</p><p>　　2、图标为红色带叉的为Fail，说明在SLA中定义了该项的数据监控，但该数据未能达到期望的阀值；</p><p>　　3、图标为绿色带钩的为Pass，说明在SLA中定义了该项的数据监控，该数据达到了期望阀值。</p><p>-----------------------------------------------------------------------------------------------------------------------------------------------------------<br /></p><p>Vusers (虚拟用状态)</p><p>　　Vusers　用户状态计数器组提供了产生负载的虚拟用户运行状态的相关信息，可以帮助了解负载生成的过程。</p><p>　　Running Vusers(负载过程中的虚拟用户运行情况)</p><p>　　此图反映系统形成负载的过程，随着时间的推移，虚拟用户数是如何变化的。</p><p>　　Rendezvous(负载过程中集合点下的虚拟用户)</p><p>　　当场景中设置了集合点后会出现该图，反映了随着时间的推移各个时间点上并发用户的数目，方便了解并发用户数的变化情况。</p><p>　　Errors(错误统计)</p><p>　　当场景在运行中出现错误时，错误信息将会保存在该计数器组中，通过 Error 信息可以了解错误产生的时间和错误的类型，帮助定位产生错误的原因。</p><p>　　Errors per Second(每秒错误数)</p><p>　　可以了解在每个时间点上错误产生的数目，该数据越小越好，通过该图可以了解错误随负载的变化情况，定位何时系统在负载下开始不稳定甚至出错，配合系统日志可以定位产生错误的原因。</p><p>　　Transactions(事务)</p><p>　　给出所有和事务相关的数据统计，方便了解被测系统业务处理的响应时间和吞吐量。</p><p>　　事务默认状态：PASS、FAIL、STOP，如果是手工事务那么状态会有 PASS 和 FAIL 两种。</p><p>　　Average Transaction Response Time(平均事务响应时间)</p><p>　　反映了随着时间的变化事务响应时间的变化情况，时间越小说明处理的速度越快。</p><p>　　结合负载生成图合并一起看，可以发现用户负载增加对系统事务响应时间的影响规律。</p><p>　　Transactions per Second(每秒事务数)</p><p>　　另一个关键数据是 TPS 吞吐量，该数据反映了系统在同一时间内能处理业务的最大能力，这个数据越高，说明系统处理能力越强。</p><p>　　TPS 会受到负载的影响，也会随着负载的增加而逐渐增加，当系统进入繁忙期后，TPS 会有所下降。</p><p>　　Transaction Summary(事务概要说明)</p><p>　　说明事务的 Pass 个数和 Fail 个数，了解负载的事务完成情况。通过的事务越多，说明系统的处理能力越强，失败的事务越少，说明系统越可靠。</p><p>　　结合每秒错误数图进一步分析错误产生的原因。</p><p>　　Transaction Performance Summary(事务性能概要)</p><p>　　事务的平均时间、最大时间、最小时间柱状图，方便分析事务响应时间的情况。</p><p>　　柱状图的落差越小说明系统响应时间的波动较小，如果落差很大，说明系统不够稳定。</p><p>　　Transaction Response Time Under Load(在用户负载下事务响应时间)</p><p>　　在负载用户增长的过程中响应时间的变化情况，改图的线条越平稳，说明系统越稳定。</p><p>　　Transaction Response Time(Percentile)(事务响应时间的百分比)</p><p>　　不同百分比下的事务响应时间范围，可以了解有多少比例的事务发送在某个时间内，也可以发现响应时间的分布规律，数据越平稳说明响应时间变化越小。</p><p>　　Transaction Response Time(Distribution)(每个时间段上的事务数)</p><p>　　每个时间段上的事务个数，响应时间较小的分类下的事务数越多越好。</p><p>　　Web Resources(网页资源信息)</p><p>　　给出的是对于 Web 操作的一些基本信息，这些信息在服务器端也能获得，当 Controller 的 RunTime Setting 中 Preferences 下的 Generated Web performance graphs 选相处于开启状态时，才会得到该图。</p><p>　　Hits per Second(每秒点击数)</p><p>　　每秒点击数提供了当前负载中对系统所产生的点击量记录。每一次点击相当于对服务器发出了一次请求，一般点击数会随着负载的增加而增加，该数据越大越好。</p><p>　　Throughput(宽带使用)</p><p>　　在当前系统下所使用的带宽，该数据越小说明系统的带宽依赖越小，通过这个数据能确定是否出现了网络带宽的瓶颈(注意使用单位为字节)。</p><p>　　HTTP Responses per Second(每秒 HTTP 响应数)</p><p>　　每秒钟服务器返回各种状态的数目，该数值一般和每秒点击量相同。点击量是指客户端发出的请求数，而 HTTP 响应数是指服务器返回的响应数。如果服务器返回的响应数小于客户端发出的点击数，那么说明服务器无法应答超出负载的连接请求。</p><p>　　结合每秒点击数看，如吻合，则说明服务器能够对每一个客户端请求进行应答。</p><p>　　Connections Per Second(每秒连接数)</p><p>　　给出两种不同状态的连接数，即中断的连接和新建的连接，方便了解当前每秒对服务器产生连接的数量。</p><p>　　同时的连接数越多，说明服务器的连接池越大，当连接数随着负载上升而停止上升时，说明系统的连接池已满，无法连接更多的用户，通常服务器会返回504错误。</p><p>　　可以通过修改服务器的最大连接数来解决该问题。</p><p>　　Web Page Diagnostics(网页分析)</p><p>　　当在场景中打开 Diagnostics 菜单下的 Web Page Diagnostics 功能，就能得到网页分析组图。</p><p>　　通过该图，可以对事务的组成进行抽丝剥茧的分析，得到组成这个页面的每一个请求时间的分析，进一步了解响应时间中有关网络和服务器处理时间的分配关系。通过该功能，可以实现对网站前端的性能分析，明确系统响应时间较长是由服务器端处理能力不足还是客户端连接到服务器的网络消耗导致的。</p><p>　　Web Page Diagnostics(网页分析)</p><p>　　添加改图先会得到真个个场景运行后虚拟用户访问 Page 列表，也就是所有页面下载时间列表。</p><p>　　通过 Select Page to Break Down 命令选择具体的 Page 来获得每个请求的相关详细信息。</p><p>　　Diagnostics options 选项提供四大块功能。</p><p>　　Download Time(下载时间分析)</p><p>　　可以得到组成页面的每个请求下载时间。</p><p>　　Component(Over time)(各模块的时间变化)</p><p>　　列出组成页面的每个元素，以及随着时间的变化所带来的响应时间变化。</p><p>　　通过该功能可以分析响应时间变长是因为页面生成慢，还是因为图片资源下载慢。</p><p>　　Download Time(Over time)(模块下载时间)</p><p>　　提供了针对每个组成页面元素的时间组成部分分析，方便确认该元素的处理时间组成部分。</p><p>　　Time to First Buffer(Over time)(模块时间分类)</p><p>　　这里会列出该元素所使用的时间分配比例，是受 Network Time 影响的多还是 Server Time 影响的多。</p><p>　　Network Time：指网络上的时间开销。</p><p>　　Server Time：服务器对该页面的处理时间。</p><p>　　Page Download Time Breakdown(页面响应时间组成分析)</p><p>　　这张图显示了每个页面响应时间的组成分析，一个页面的响应时间一般由以下内容组成：</p><p>　　Client Time</p><p>　　客户端浏览器接收所需要使用的时间，可以不考虑。</p><p>　　Connections Time</p><p>　　连接服务器所需要时间，越小越好。</p><p>　　DNS Resolution Time</p><p>　　通过 DNS 服务器解析域名所需要的时间，解析受到 DNS 服务器的影响，越小越好。</p><p>　　Error Time</p><p>　　服务器返回错误响应时间，这个时间反映了服务器处理错误的速度，一般是 Web 服务器直接返回的，包含了网络时间和 Web 服务器返回错误的时间，该时间越小越好。</p><p>　　First Buffer Time</p><p>　　连接到服务器，服务器返回第一个字节所需要的时间，反映了系统对于正常请求的处理时间开销，包含了网络时间和服务器正常处理的时间，该时间越小越好。</p><p>　　FTP Authentication Time</p><p>　　FTP 认证时间，这是进行 FTP 登录等操作所需要消耗的认证时间，越短越好。</p><p>　　Receive Time</p><p>　　接受数据的时间，这个时间反映了带宽的大小，带宽越大，下载时间越短。</p><p>　　SSL Handshaking Time</p><p>　　SSL加密握手时间</p><p>　　得到页面请求的组成比例图，便于分析页面时间浪费在那些过程中。</p><p>　　Page Download Time Breakdown(Over Time)(页面组成部分时间)</p><p>　　提供了随着时间的变化所有请求的响应时间变化过程。将整个负载过程中每个页面的每个时间组成部分都做成单独的时间线，以便分析在不同的时间点上组成该页面的各个请求时间是如何变化的。</p><p>　　首先找到变化最明显或者响应时间最高的页面，随后再针对这个页面进行进一步的分析了解时间偏长或者变化快的原因。</p><p>　　Time to First Buffer Breakdown(页面请求组成时间)</p><p>　　提供了组成页面时间请求的比列说明(客户端时间/服务器时间)，通过这个图，可以直观的了解到整个页面的处理是在服务器端消耗的时间长，还是在客户端消耗的时间长。从而分析得到系统的性能问题是在前端还是后端。</p><p>　　Time to First Buffer Breakdown(Over Time)(基于时间的页面请求组成分析)</p><p>　　给出了整个负载过程中，每一个请求的 Server Time 和 Client Time 随着时间变化的趋势，可以方便定位响应时间随着时间变化的原因到底是由于客户端变化导致的还是由于服务器端变化导致的。</p><img src ="http://www.blogjava.net/zouhui/aggbug/411499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-26 13:57 <a href="http://www.blogjava.net/zouhui/archive/2014/03/26/411499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>loadrunner通过web的post请求方法测接口</title><link>http://www.blogjava.net/zouhui/archive/2014/03/23/411386.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Sun, 23 Mar 2014 10:20:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/23/411386.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411386.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/23/411386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411386.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411386.html</trackback:ping><description><![CDATA[<div>loginapi()<br />{<br />&nbsp;&nbsp; &nbsp;web_url("rest", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"URL=http://192.168.117.154/router/rest", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Resource=0", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"RecContentType=text/html", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Referer=", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Snapshot=t1.inf", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Mode=HTML", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;LAST);<br /><br />&nbsp;&nbsp; &nbsp;web_url("favicon.ico", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"URL=http://192.168.117.154/favicon.ico", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Resource=0", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"RecContentType=text/html", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Referer=", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Snapshot=t2.inf", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;"Mode=HTML", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;LAST);<br /><br />&nbsp;&nbsp; &nbsp;lr_rendezvous("loginapi");<br /><br />&nbsp;&nbsp; &nbsp;lr_start_transaction("loginapi");<br /><br />&nbsp;&nbsp; &nbsp;lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_RESULT_DATA, LR_SWITCH_ON );<br /><br />&nbsp;&nbsp; &nbsp;web_reg_find("Text=操作成功", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;LAST);<br /><br />&nbsp;&nbsp; &nbsp;web_submit_data("testpost", <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Action=http://192.168.117.154/router/rest",<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Method=POST",<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "RecContentType=text/html",<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Mode=HTML",<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ITEMDATA, <br />&nbsp;&nbsp; &nbsp;"Name=method","Value=test.user.UserService.userInfoByTicket",ENDITEM,<br />&nbsp;&nbsp; &nbsp;"Name=v","Value=1.0",ENDITEM,<br />&nbsp;&nbsp; &nbsp;"Name=app_key","Value=120",ENDITEM,<br />&nbsp;&nbsp;&nbsp; "Name=ticket","Value=1111111111111111111111111111111",ENDITEM, <br />&nbsp;&nbsp; &nbsp;"Name=sign","Value=22222222222222222222222222222222",ENDITEM,<br />&nbsp;&nbsp; &nbsp;LAST);<br /><br />&nbsp;&nbsp; &nbsp;lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_RESULT_DATA, LR_SWITCH_OFF);<br /><br />&nbsp;&nbsp; &nbsp;lr_end_transaction("loginapi", LR_AUTO);<br /><br /><br />&nbsp;&nbsp; &nbsp;return 0;<br />}<br /><br /><br /><!--StartFragment -->

<div>模拟APP发送请求给Cloud，<br />一般都是用户登录后。cloud会返回登录成功的消息并且返回一个cookie给app，<br />app下次要做一些例如设置名称之类的工作，在请求消息里面会携带返回的cookie，而且cloud也会校验这个cookie&nbsp; <br />1、第一次请求登录，获取cookie，<br />2、使用第一次请求获取的cookie进行第二次请求</div><br /><!--StartFragment -->

<div>Action()<br />{<br /><br />web_reg_save_param("par1",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"LB=auth_key\":\"",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"RB=\"",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST);<br />web_reg_save_param("par3",<br />&nbsp;"LB=Set-Cookie:&nbsp;",<br />&nbsp;"RB=;",<br />&nbsp;"ORD=2",<br />&nbsp;LAST);<br /><br />web_reg_save_param("par4",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"LB=Set-Cookie:&nbsp;",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"RB=;",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"ORD=3",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST); <br /><br /><br />web_custom_request("login",<br />&nbsp;&nbsp;&nbsp;"URL=<img src="file:///C:/Users/lenovo/AppData/Local/Temp/%25W@GJ$ACOF(TYDYECOKVDYB.png" alt="" />http://192.168.1.102/api/user/login",<br />&nbsp;&nbsp;&nbsp;"Method=POST",<br />&nbsp;&nbsp;&nbsp;"Resource=0",<br />&nbsp;&nbsp;&nbsp;"Referer=",<br />&nbsp;&nbsp;&nbsp;"mode=HTTP",<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;"Body=email=t993@163.com&amp;password=8c2b2f9cd3431be8a7bf64a33e81b371",<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST);<br /><br /><br />lr_message&nbsp;("par1:%s",&nbsp;lr_eval_string("{par1}"));<br /><br />lr_message&nbsp;("par3:%s",&nbsp;lr_eval_string("{par3}"));<br />lr_message&nbsp;("par4:%s",&nbsp;lr_eval_string("{par4}"));<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br />Action2()<br />{<br /><br />web_cleanup_cookies();<br /><br />web_add_header("cookie",<br />&nbsp;&nbsp;&nbsp;"{par3};{par4};{par1}");<br /><br /><br />web_custom_request("info",<br />&nbsp;&nbsp;&nbsp;"URL=<img src="file:///C:/Users/lenovo/AppData/Local/Temp/%25W@GJ$ACOF(TYDYECOKVDYB.png" alt="" />http://192.168.1.102/api/app/set/device",<br />&nbsp;&nbsp;&nbsp;"Method=POST",<br />&nbsp;&nbsp;&nbsp;"Resource=0",<br />&nbsp;&nbsp;&nbsp;"Referer=",<br />&nbsp;&nbsp;&nbsp;"mode=HTTP",<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;"Body=camid=4026aabz&amp;auth_key={par1}",<br />&nbsp;&nbsp;&nbsp;LAST);<br />return&nbsp;0;<br />}<br /><br /><br />传json数据时引号前加转义字符\<br /><div><div>&nbsp;"Name=input","Value={\"mobile\":\"15280288286\",\"password\":\"6f96c57e306923c7\"}",ENDITEM,</div></div></div></div><img src ="http://www.blogjava.net/zouhui/aggbug/411386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-23 18:20 <a href="http://www.blogjava.net/zouhui/archive/2014/03/23/411386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>loadrunner通过socket测接口</title><link>http://www.blogjava.net/zouhui/archive/2014/03/23/411385.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Sun, 23 Mar 2014 10:08:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/23/411385.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411385.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/23/411385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411385.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411385.html</trackback:ping><description><![CDATA[&nbsp; <p1><p1><p2><p3><method>#include "lrs.h"<br /><br />Action()<br />{<br />&nbsp;&nbsp;&nbsp; //建立到服务端的连接<br />&nbsp;&nbsp;&nbsp; lrs_create_socket("socket1","TCP","RemoteHost=10.66.68.1:21230",LrsLastArg);<br /><br />&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; &nbsp;lrs_save_param_ex("socket1","user",p1,0,strlen(p1),NULL,"&lt;p1&gt;");<br />&nbsp;&nbsp;&nbsp; //发送第1个参数$p1=a<br />&nbsp;&nbsp;&nbsp; lrs_send("socket1", "buf0", LrsLastArg);<br />&nbsp;&nbsp; &nbsp;lr_output_message("%s",lr_eval_string("&lt;p1&gt;"));<br />&nbsp;&nbsp;&nbsp; lrs_receive("socket1", "buf5", LrsLastArg);<br />&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //发送第2个参数$p2=array()[10,20]<br />&nbsp;&nbsp;&nbsp; lrs_send("socket1", "buf1", LrsLastArg);<br />&nbsp;&nbsp; &nbsp;lr_output_message("%s",lr_eval_string("&lt;p2&gt;"));<br />&nbsp;&nbsp;&nbsp; lrs_receive("socket1", "buf6", LrsLastArg);<br /><br />&nbsp;&nbsp; &nbsp;//发送第3个参数$p3=new cn_com_ail_test_Bean (v1,v2)<br />&nbsp;&nbsp;&nbsp; lrs_send("socket1", "buf2", LrsLastArg);<br />&nbsp;&nbsp; &nbsp;lr_output_message("%s",lr_eval_string("&lt;p3&gt;"));<br />&nbsp;&nbsp;&nbsp; lrs_receive("socket1", "buf7", LrsLastArg);<br /><br />&nbsp;&nbsp;&nbsp; //发送method方法及3个参数$ret=cn.com.ail.test.Objtest::method1, $p1, $p2, $p3<br />&nbsp;&nbsp; &nbsp;lrs_send("socket1", "buf3", LrsLastArg);<br />&nbsp;&nbsp; &nbsp;lr_output_message("%s",lr_eval_string("&lt;method&gt;"));<br />&nbsp;&nbsp;&nbsp; lrs_receive("socket1", "buf8", LrsLastArg);<br /><br />&nbsp;&nbsp;&nbsp; //关闭连接<br />&nbsp;&nbsp;&nbsp; lrs_close_socket("socket1");<br />}<br /><br /><br />;WSRData 2 1<br /><br />send buf0 10<br />&nbsp;&nbsp; &nbsp; "p1"&nbsp; 参数化p1=a 值<br /><br />send buf1 50<br />&nbsp;&nbsp; &nbsp; "p2"&nbsp; 参数化p2=array()[10,20] 数组<br /><br />send buf2 50<br />&nbsp;&nbsp; &nbsp; "p3"&nbsp; 参数化p3=new cn_com_ail_test_Bean 对象<br /><br />send buf3 50<br />&nbsp;&nbsp; &nbsp;"method" 参数化method= lajp_call("cn.com.ail.test.Objtest::method1", $p1, $p2, $p3) 方法<br /><br />recv buf5 *<br /><br />recv buf6 *<br /><br />recv buf7 *<br /><br />recv buf8 *<br /><br />-1<br />----------------------------------------------------------------------------------------------------------------------------<br />/* require_once("php_java.php"); //LAJP提供的程序脚本<br /><br />&nbsp; //php类，映射到JavaBean类：cn.com.ail.test.Bean<br />&nbsp; class cn_com_ail_test_Bean<br />&nbsp; {<br />&nbsp;&nbsp;&nbsp; var $a = "v1";<br />&nbsp;&nbsp;&nbsp; var $b = "v2";<br />&nbsp; }<br /><br />&nbsp; $p1 = "a";&nbsp;&nbsp;&nbsp;&nbsp; //字符串，传给Java方法的第一个参数<br /><br />&nbsp; $p2 = array(); //数组，传给Java方法的第二个参数<br />&nbsp; $p2[] = 10;<br />&nbsp; $p2[] = 20;<br /><br />&nbsp; $p3 = new cn_com_ail_test_Bean; //php对象，传给Java方法的第三个参数<br /><br />&nbsp; //"lajp_call"是LAJP提供的函数，用来调用java端服务<br />&nbsp; //"cn.com.ail.test.Objtest::method1"表示调用java的cn.com.ail.test.Objtest类中的method1方法<br />&nbsp; //"$p1,$p2,$p3"是向method1方法传递的3个参数。<br />&nbsp; $ret = lajp_call("cn.com.ail.test.Objtest::method1", $p1, $p2, $p3);<br /><br />&nbsp; echo "返回信息：".$ret;&nbsp;&nbsp;&nbsp; //打印"OK,收到并返回字符串应答"<br />&nbsp; */<br /><br />&nbsp;</method></p3></p2></p1></p1><img src ="http://www.blogjava.net/zouhui/aggbug/411385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-23 18:08 <a href="http://www.blogjava.net/zouhui/archive/2014/03/23/411385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>loadrunner通过odbc测mysql数据库语句</title><link>http://www.blogjava.net/zouhui/archive/2014/03/23/411384.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Sun, 23 Mar 2014 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/23/411384.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411384.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/23/411384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411384.html</trackback:ping><description><![CDATA[#include "lrd.h"<br />&nbsp;Action()<br />&nbsp;{<br />double trans_time;&nbsp; //定义一个double型变量用来保存事务执行时间<br /><br />&nbsp;static LRD_INIT_INFO InitInfo = {LRD_INIT_INFO_EYECAT};<br />&nbsp;static LRD_DEFAULT_DB_VERSION DBTypeVersion[] =<br />&nbsp;{<br />&nbsp;&nbsp; {LRD_DBTYPE_ODBC, LRD_DBVERSION_ODBC_30},<br />&nbsp;&nbsp; {LRD_DBTYPE_NONE, LRD_DBVERSION_NONE}<br />&nbsp;};<br />&nbsp;static LRD_CONTEXT FAR * Ctx1;<br />&nbsp;static LRD_CONNECTION FAR * Con1;<br />&nbsp;static LRD_CURSOR FAR *&nbsp;&nbsp;&nbsp;&nbsp; Csr1;<br />&nbsp;//上面的定义的代码如果录制脚本，在vdf.h中就有定义，同时还有一些其他文件<br />//如果手写脚本，则需要手工添加，主要是定义各种变量<br />//查询行数<br />unsigned long count=0;<br /><br /><br />&nbsp;//初始<br />lrd_init(&amp;InitInfo, DBTypeVersion);<br />&nbsp;//打开上下文<br />lrd_open_context(&amp;Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);<br />&nbsp;//申请连接的内存<br />lrd_alloc_connection(&amp;Con1, LRD_DBTYPE_ODBC, Ctx1, 0 /*Unused*/, 0);<br />&nbsp;//打开连接，注意DRIVER就是上面安装的<br />lrd_open_connection(&amp;Con1, LRD_DBTYPE_ODBC, "", "","", "DRIVER=MySQL ODBC 3.51 Driver;UID=bydapp;PWD=Rootuser;SERVER=10.66.64.20;DATABASE=bydfans; PORT=3306", Ctx1, 1, 0);<br />&nbsp;//打开游标<br />lrd_open_cursor(&amp;Csr1, Con1, 0); <br /><br /><br />lr_rendezvous("selectmysql");<br />lr_start_transaction("selectmysql");<br /><br />&nbsp;//Sql语句，注意1代表的意思是，立马执行<br />lrd_stmt(Csr1, "select n_user_id, c_user_accounts, c_user_password, c_user_name, c_user_phone, c_user_mail, c_user_status, c_user_reg, c_user_second, c_phone_token, c_account_weight_value, c_user_no "<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "from t_user_account "<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "WHERE ( c_user_accounts = 'wuguo' and c_user_password = 'e10adc3949ba59abbe56e057f20f883e' and c_user_status = '1' )",<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; -1, 1, 0 /*None*/, 0);<br /><br /><br />lrd_stmt(Csr1, "select * from t_user_account", -1, 1, 0 /*None*/, 0);<br /><br />trans_time=lr_get_transaction_duration( "selectmysql" ); //获得该SQL的执行时间<br /><br />lr_output_message("start_select事务耗时 %f 秒", trans_time); //输出该时间<br />lr_end_transaction("selectmysql", LR_AUTO);<br /><br /><br />&nbsp;//统计行数到count变量中<br />lrd_row_count(Csr1, &amp;count, 0); <br />&nbsp;//打印消息<br />lr_message("count= %d",count);<br />&nbsp;//先关闭游标<br />lrd_close_cursor(&amp;Csr1, 0);<br />&nbsp;//再关闭连接<br />lrd_close_connection(&amp;Con1, 0, 0);<br />&nbsp;//释放连接，和alloc相呼应，否则有内存泄露<br />lrd_free_connection(&amp;Con1, 0 /*Unused*/, 0);<br />&nbsp;//再关闭上下文<br />lrd_close_context(&amp;Ctx1, 0, 0);<br />&nbsp;//完毕，返回0<br /><br />&nbsp;return 0;<br />&nbsp;} <br />&nbsp;<br /><br />&nbsp;<img src ="http://www.blogjava.net/zouhui/aggbug/411384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-23 18:02 <a href="http://www.blogjava.net/zouhui/archive/2014/03/23/411384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spotlight 监控工具使用</title><link>http://www.blogjava.net/zouhui/archive/2014/03/19/411227.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Wed, 19 Mar 2014 08:26:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/19/411227.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/411227.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/19/411227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/411227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/411227.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/zouhui/archive/2014/03/19/411227.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/411227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-19 16:26 <a href="http://www.blogjava.net/zouhui/archive/2014/03/19/411227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LoadRunner测试SQL语句性能</title><link>http://www.blogjava.net/zouhui/archive/2014/03/13/410992.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 13 Mar 2014 13:12:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/13/410992.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/410992.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/13/410992.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/410992.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/410992.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/zouhui/archive/2014/03/13/410992.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/410992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-13 21:12 <a href="http://www.blogjava.net/zouhui/archive/2014/03/13/410992.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LoadRunner没有告诉你的</title><link>http://www.blogjava.net/zouhui/archive/2014/03/08/410771.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Sat, 08 Mar 2014 09:40:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2014/03/08/410771.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/410771.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2014/03/08/410771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/410771.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/410771.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: @import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);《LoadRunner没有告诉你的》&nbsp;《转载》1.&nbsp;&nbsp;&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/zouhui/archive/2014/03/08/410771.html'>阅读全文</a><img src ="http://www.blogjava.net/zouhui/aggbug/410771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2014-03-08 17:40 <a href="http://www.blogjava.net/zouhui/archive/2014/03/08/410771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈谈我理解的测试的核心价值</title><link>http://www.blogjava.net/zouhui/archive/2013/10/26/405665.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Sat, 26 Oct 2013 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/26/405665.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/405665.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/26/405665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/405665.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/405665.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<p><span style="font-family: 宋体; font-size: 16px;">测试人员的核心价值 &nbsp;</span>《转载》</p>
<p><span style="font-family: 宋体; font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;随着公司组织架构的调整，战略调整，产品的实现技术不断变化，现在的测试人员可以说是什么都可以干。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;有些人做产品，有些人做平台，有些人做工具......</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;有些人有点象专职开发，有些人有点象专职运营......</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Facebook,google</span><span style="font-family: 宋体; font-size: 16px;">的一些敏捷测试理念中，测试人员应该致力于提出测试解决方案，研究各种测试工具为主，具体的测试执行工作，由</span><span lang="EN-US" style="font-size: 16px;">coding</span><span style="font-family: 宋体; font-size: 16px;">的开发同学去做。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;变化后面也有很多不变的，测试手段无外呼白盒测试，黑盒测试，静态测试，动态测试，单元测试，集成测试，系统测试，安全测试，性能测试等等。那些奋斗在一线的测试工程师的工作内容实则没有什么大的变化，访谈的结果是大家觉得自己也没有成就感，工作很累。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;这一切都让我迷惑了，很多人象我一样也迷惑了，测试人员的核心价值到底是什么？</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; font-size: 16px;">&nbsp;&nbsp;&nbsp;&nbsp;测试人员的职业发展是什么？</span><span style="font-family: 宋体; font-size: 16px;">特别是</span><span lang="EN-US" style="font-size: 16px;">focus</span><span style="font-family: 宋体; font-size: 16px;">在业务上的测试人员的核心价值是什么？在这里仅表达下我个人的观点，欢迎大家一起拍砖。</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 21pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo1;"><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;">&#216;<span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp; </span></span></span><span style="font-family: 宋体; font-size: 16px;">核心价值一：测试设计能力</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: 宋体; font-size: 16px;">最基本的也是最重要的价值就是测试设计</span></strong><span style="font-family: 宋体; font-size: 16px;">。无论是采用白盒，黑盒，手工还是自动化等不同的方式，精华都在测试设计中。测试设计能力入门容易，做深难，需要耐得住寂寞，不断的学习积累，同时需要的知识面非常广。</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">下面几点可以提升测试设计能力：</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">1.对产品的熟知程度</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">2.对用户的了解程度</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">3.技术实现/依赖产品/中间件/DB设计/缓存机制/安全机制等技术的深入了解程度</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">4.产品运行环境（包括服务端，客户端，浏览器，系统并发量，吞吐量等）</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-size: 16px;">5.bug回溯（定位/分析）</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 16px;"><br />
</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">非常值得一提的是</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">回溯，是一项非常有意义的活动。很多公司特别重视线上</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">的预防，分析，却忽略了线下</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">的回溯。而实际上，大家都有这样的印象，发现</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">的不一定是你设计的</span><span lang="EN-US" style="font-size: 16px;">TC</span><span style="font-family: 宋体; font-size: 16px;">，而是在执行</span><span lang="EN-US" style="font-size: 16px;">TC</span><span style="font-family: 宋体; font-size: 16px;">时发散的其他测试场景。通过</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">原因分析，可以更精准的帮助你识别易出问题的点。而且现在的技术，环境都是多样性的，总会出现一些你意想不到的</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">，它的存在一定是有原因的。这些东西需要通过</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">回溯不断的积累。</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0; mso-outline-level: 1;"><span lang="EN-US" style="font-size: 16px;">Bug</span><span style="font-family: 宋体; font-size: 16px;">回溯</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">与测试设计形成良性循环</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><img width="319" height="256" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/test1.png" border="0" /></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 21pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo1;"><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;">&#216;<span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp; </span></span></span><span style="font-family: 宋体; font-size: 16px;">核心价值二：制定测试策略</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">大家都知道测试是不能穷举的。在有限的人力、时间、资源情况下，如何更快，更全面的覆盖被测对象，是需要策略的。</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">我记得以前天彤说过，专家级的测试工程师可以对被测对象进行&#8220;精准爆破&#8221;，非常认同。对于象淘宝这么庞大复杂的系统来说，如果不能做到精确设计，精确测试，为了保障大用户量大数据量的并发下，想最大程度的规避可能出现的风险，让测试同学以眉毛胡子一起抓的方式进行测试就是在劳民伤财。</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">不同产品，不同的团队，产品成熟度，人员的成熟度，所采用技术的成熟度等等，都可能导致测试策略的不同。制定测试策略的过程，就是对当前的项目、团队进行量体裁衣。</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span lang="EN-US" style="font-size: 16px;">&nbsp;</span></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">影响测试策略的因素：</span></p>
<ul>
    <li>
    <p><span style="font-family: 宋体; font-size: 16px;">项目类型</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">如：新产品，完善功能，重构型的，底层升级，数据库升级，不同的项目类型，测试重点也不同，采用的测试工具和测试类型也不尽相同</span></p>
    </li>
    <li>
    <p><span style="font-family: 宋体; font-size: 16px;">产品成熟度</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">主要考虑产品的业务是否稳定，成熟。是属于创新型，试水产品，是否是成熟行业，需求明确稳定等等？</span> </p>
    </li>
</ul>
<ul>
    <li><span style="font-family: 宋体; font-size: 16px;">使用研发技术和研发平台</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">采用新的研发工具，新的研发技术，还是公司成熟的技术，工具，使用什么样的数据库设计，包括产品的设计思想，产品架构等</span></li>
</ul>
<ul>
    <li><span style="font-family: 宋体; font-size: 16px;">团队能力及默契度</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">稳定型团队？新团队？半新半旧，人员技术能力如何？人员特点如何？（特别需要说明的是，通过</span><span lang="EN-US" style="font-size: 16px;">bug</span><span style="font-family: 宋体; font-size: 16px;">回溯可以发现团队开发或测试人员的技术能力，代码质量，业务掌握情况，逻辑清晰等这些个人特质，针对不同的人可以在测试时做不同的重点验证）</span></li>
</ul>
<ul>
    <li><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;"><span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp;</span></span></span><span style="font-family: 宋体; font-size: 16px;">研发模式</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">采用什么研发模式，传统的瀑布，还是敏捷，迭代等。这种研发模式以往常出现的问题是什么？该模式在该团队的运行是否成熟，稳定？</span></li>
</ul>
<ul>
    <li><span style="font-family: 宋体; font-size: 16px;">产品线上运行环境</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">包括服务端和客户端的运行环境，负载机制，缓存机制，服务器分布等</span></li>
</ul>
<ul>
    <li><span style="font-family: 宋体; font-size: 16px;">产品线上并发量，吞吐量等指标</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">关注目前指标及增长趋势</span></li>
</ul>
<ul>
    <li><span style="font-family: 宋体; font-size: 16px;">产品使用用户</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">使用产品的用户人群众分布？目前的使用满意度如何？用户的计算机使用水平如何？用户反馈的最大问题是什么？用户的使用习惯是什么？竞争产品在用户中的优势是什么？</span></li>
</ul>
<ul>
    <li><span style="font-family: 宋体; font-size: 16px;">测试过程保障</span><span lang="EN-US"><span style="font-size: 16px;">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 16px;">上线前测试依赖的环境、数据、技术、平台、工具保障，有现成的，还是需要开发？</span></li>
</ul>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo3;"></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo3;"></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo3;"></p>
<p class="MsoListParagraph" style="text-indent: 0cm; margin-left: 21pt; mso-char-indent-count: 0;"><span style="font-family: 宋体; font-size: 16px;">测试策略的方面</span></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1;"><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;">&#178;<span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp; </span></span></span><span style="font-family: 宋体; font-size: 16px;">测试类型</span></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1;"><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;">&#178;<span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp; </span></span></span><span style="font-family: 宋体; font-size: 16px;">各种测试类型的测试程度、测试通过</span><span lang="EN-US" style="font-size: 16px;">/</span><span style="font-family: 宋体; font-size: 16px;">停止标准</span></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1;"><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;">&#178;<span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp; </span></span></span><span style="font-family: 宋体; font-size: 16px;">使用测试技术</span></p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1;"><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;"><span style="font-size: 16px;">&#178;<span style="font: 16px/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&nbsp; </span></span></span><span style="font-family: 宋体; font-size: 16px;">依赖平台、工具</span></p>
<p>&nbsp;</p>
<p class="MsoListParagraph" style="text-indent: -21pt; margin-left: 42pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo3;"></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体; font-size: 16px;">在工作中，大家对一些事情存在一些误区：</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体; font-size: 16px;">1.编码能力&nbsp;&nbsp; 我们不盲目崇拜编码能力，而是随着测试手段不同，测试深入程度不同，需要我们有能力去识别代码中存在的风险，对产品的技术实现有更深入全面的掌握，才能更有针对性的进行测试，所以，我们必须具备编码能力。<br />
</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体; font-size: 16px;">2.创新&nbsp;&nbsp;&nbsp;&nbsp; 我们不能为了创新而创新，而是在工作过程中，技术结合业务，为解决实际的问题自然而然的生长出来的新东西。这个创新一定是解决我们工作中的问题或用户的问题的。<br />
</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体; font-size: 16px;">3.工具&nbsp;&nbsp;&nbsp;&nbsp; 工欲善其事，必先利其器，随着我们被测试对象的复杂化，多样化，使用技术的差异化，一些常规手段无法测试的内容，一些重复的劳动密集性的事务，需要让工具代替手工去做，自然而然的就会产生工具。所以，我们不是迷信工具，也不是崇拜工具，工具是为我们服务，带来价值的。如果这个工具不能给我们带来价值，就算做一个工具，没有人使用，又有什么意义呢？<br />
</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体; font-size: 16px;"><br />
</span></p>
<p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体; font-size: 16px;"><strong><span style="font-size: 16px;">在实现测试设计与测试策略制定过程中，我们为解决实际问题自然会生出一些工具，平台，我们要鼓励大家用创新的思维去思考和解决问题</span></strong>，这样的产出是非常有价值的。</span></p><img src ="http://www.blogjava.net/zouhui/aggbug/405665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-26 09:49 <a href="http://www.blogjava.net/zouhui/archive/2013/10/26/405665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试价值观-SMBT新理念</title><link>http://www.blogjava.net/zouhui/archive/2013/10/14/404976.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Mon, 14 Oct 2013 07:17:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/14/404976.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404976.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/14/404976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404976.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404976.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div style="layout-grid:  15.6pt none" class="Section0">
<p style="margin-top: 0pt; margin-bottom: 7.5pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">软件测试价值观<font face="Verdana">-SMBT</font><font face="宋体">新理念 &nbsp;</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span>《转载》</p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　近年来有不少</span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">软件测试</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">同行不少有些困惑<font face="Verdana">-</font><font face="宋体">软件测试人员的价值在哪里？我们怎么才能做好软件测试？怎么才能让自己的价值在团队中得到最佳的体现？在这里</font><font face="Verdana">SMBT</font><font face="宋体">理念会给你答案，你所有的困惑将会迎刃而解。&nbsp;</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　一、<font face="Verdana">SMBT</font><font face="宋体">是什么？</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">SMBT</font><font face="宋体">是</font><font face="Verdana">Shortest&nbsp;time</font><font face="宋体">、</font><font face="Verdana">Most&nbsp;</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">bug</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">、<font face="Verdana">Best&nbsp;bug</font><font face="宋体">、</font><font face="Verdana">Track&nbsp;bug</font><font face="宋体">这几个单词的缩写，其含义就是</font><font face="Times New Roman">&#8220;</font><font face="宋体">测试人员要在最短的时间内发现最多最有价值的</font><font face="Verdana">Bug</font><font face="宋体">，并将</font><font face="Verdana">Bug</font><font face="宋体">跟踪到底</font><font face="Times New Roman">&#8221;</font><font face="宋体">，这就是我们测试人员追求的最高价值。其核心包括：</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">一个宗旨、四个关键域</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/ce13.jpg" width="359" height="273" /><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">附：<font face="Verdana">SMBT</font><font face="宋体">图示</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　二、<font face="Verdana">SMBT</font><font face="宋体">宗旨</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　以产品成败为出发点，站在整个项目团队的立场上思考问题、解决问题，而不是单一的从测试团队或者个人为出发点。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　&nbsp;　在这点我想说明的是：在一些企业里面的某些产品团队因为或多或少的原因导致产品失败，最后影响整个产品团队的考核，这个时候必然会有一部分测试人员跳出&nbsp;来说我们测试做的挺好的，产品失败和我们没什么关系，为什么给我们也考核得那么差。这时我想对那些测试人员或者主管测试的负责人说，你们真的错了，你们是&nbsp;为整个产品团队服务的，虽然产品失败的因素可能会很多、可能和你没直接关系，试想一下难道真的和你一点关系都没有么？如果现在用<font face="Verdana">SMBT</font><font face="宋体">的宗旨来看待这个&nbsp;问题，你势必会找到你错在了哪里！我们不能有本位主义的思想来禁锢自己，我们一切要为整个产品团队出发，只有这样你才能在整个产品研发过程中充分发挥你的&nbsp;才能为整个产品服务，而不是单单的测试活动，因为单单的测试活动是远远不够的，这是传统的测试理念和思维给我们带来的弊端，也是</font><font face="Verdana">SMBT</font><font face="宋体">产生的根本。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　三、<font face="Verdana">SMBT</font><font face="宋体">关键域</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">1</font><font face="宋体">、</font><font face="Verdana">Shortest&nbsp;time</font><font face="宋体">：最短时间、尽早、尽快</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　一方面<font face="Verdana">Bug</font><font face="宋体">无限，时间有限，这个道理大家都知道，我们在测试</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">工作</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">中测试的时间是有限的，我们的每一项测试的时间都不可能很充足，随着</span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">互联网</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">行&nbsp;业的竞争越来越大，产品更新换代的周期日益缩小，企业稍微慢一步，整个产品就完全没有竞争优势，势必会被竞争对手抢占先机，即使你有创新的想法，但没有最&nbsp;快的速度上市，也难得商机。不管是互联网行业还是其他行业，现在都是快鱼吃慢鱼的时代，在这种环境下，对我们的研发团队、我们的测试人员提出更高的要求，&nbsp;那就是快<font face="Verdana">-</font><font face="宋体">快</font><font face="Verdana">-</font><font face="宋体">快，一点都不能慢。测试时间长了即使你产品的质量再好，因为时间关系错失商机、流失用户，我们所有的付出都将白费。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　另一方面从研发模式来讲，现在很多企业都比较推崇</span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">敏捷</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">研&nbsp;发模式，这也是追求快速响应的一个途径，然而对于测试来讲，我们一定要尽早的发现<font face="Verdana">Bug</font><font face="宋体">，让开发人员尽早的修改，或者让产品人员调整需求，而不是到了产品&nbsp;最后某些本应该前期发现的</font><font face="Verdana">Bug</font><font face="宋体">结果到了产品快上线的时候才发现，一旦这个时间出现比较严重的</font><font face="Verdana">Bug</font><font face="宋体">，这将会对整个产品的研发进度造成严重的影响，同时因&nbsp;为这个</font><font face="Verdana">Bug</font><font face="宋体">的修复势必会对本来感觉已经稳定的系统带来重大的质量干扰，因为修复</font><font face="Verdana">Bug</font><font face="宋体">在很大程度上必然会带来新的</font><font face="Verdana">Bug</font><font face="宋体">，至于修复</font><font face="Verdana">Bug</font><font face="宋体">的难度那就更不&nbsp;用说了。特别是在产品研发的后期发现需求流程上的问题，这将是灾难性的后果！</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　<font face="Verdana">2</font><font face="宋体">、</font><font face="Verdana">Most&nbsp;bug</font><font face="宋体">：最多</font><font face="Verdana">Bug</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　量变到质变是事物的变化规律，测试也如此，只有<font face="Verdana">Bug</font><font face="宋体">的量上去了，产品的质量才能有所改观，如果</font><font face="Verdana">Bug</font><font face="宋体">在数量上上不去，这对测试活动有信心谈何&nbsp;容易，一旦遇到这种情况测试经理们就头痛起来了，因为这必定是一个危险的信号，我们的信心将会荡然无存，除非系统质量足够的好，测试手段足够的高超，否则&nbsp;我们将会面临产品上市后的最大危机。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">3</font><font face="宋体">、</font><font face="Verdana">Best&nbsp;bug</font><font face="宋体">：最有价值</font><font face="Verdana">Bug</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　之前谈到我们尽早发现<font face="Verdana">Bug</font><font face="宋体">、发现最多的</font><font face="Verdana">Bug</font><font face="宋体">，难道这样就可以了么，很显然特别的片面，进一步的说我们还要发现有价值的</font><font face="Verdana">Bug</font><font face="宋体">。那么什么样的&nbsp;</font><font face="Verdana">Bug</font><font face="宋体">才算有价值呢？直白一点就是最影响系统使用、对系统功能模块有严重影响或者破坏作用的</font><font face="Verdana">Bug</font><font face="宋体">，最能决定研发周期的</font><font face="Verdana">Bug</font><font face="宋体">，比如说如果事先能把需求类&nbsp;的</font><font face="Verdana">Bug</font><font face="宋体">在需求阶段提出来解决而不是等研发末期提出来，还有就是影响系统架构的</font><font face="Verdana">Bug</font><font face="宋体">以及一些隐藏很深修复难度及波及面广的</font><font face="Verdana">Bug</font><font face="宋体">，所有这些都是从量变到&nbsp;质变的过程。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">4</font><font face="宋体">、</font><font face="Verdana">Track&nbsp;bug</font><font face="宋体">：跟踪</font><font face="Verdana">Bug</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　经常会遇到一些项目在项目末期了才去关注以前提交的<font face="Verdana">Bug</font><font face="宋体">，测试人员尽管很早就提出了很多严重的</font><font face="Verdana">Bug</font><font face="宋体">，没有引起开发人员的注意或者测试人员跟&nbsp;进不给力，在这个时候需求类</font><font face="Verdana">Bug</font><font face="宋体">提交的早、也提交的多、并且也很有价值，甚至有些直到产品发布上线运营了有客户投诉或者在运营过程中再次暴露的时候才引&nbsp;起关注，此类情况的发生直接说明前期所做的测试工作算是白做了，根本没有对产品质量做保证和提升嘛。也就是说我们测试人员缺乏明显的跟进，只发现</font><font face="Verdana">Bug</font><font face="宋体">而&nbsp;不跟进</font><font face="Verdana">Bug</font><font face="宋体">修改这是测试人员最大的悲哀，反之如果测试人员做到了这点也是测试人员的最大价值体现，我们找到</font><font face="Verdana">Bug</font><font face="宋体">不算什么，关键还是要让</font><font face="Verdana">Bug</font><font face="宋体">得到解&nbsp;决，这样才能对整个产品负责，也只有这样测试人员的价值才能得到真正的发挥和体现。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　四、<font face="Verdana">SMBT</font><font face="宋体">运用</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">1</font><font face="宋体">、领会</font><font face="Verdana">SMBT</font><font face="宋体">的宗旨，建立良好的心态，做一个有责任心的测试人员，明确自己的工作不仅仅是测试工作，而是为整个产品团队服务的工作，当然这得根据自己的精力和能力来限定范围，不能什么都抓什么都做。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">2</font><font face="宋体">、如何实现</font><font face="Verdana">Shortest&nbsp;time</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">1</font><font face="宋体">）尽早介入到产品研发活动中，特别是产品需求阶段是很容易被忽略的，有问题尽早发现；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">2</font><font face="宋体">）对测试活动及相关的安排进行合理的部署，测试策略、测试方法及测试工具的选择对测试效率的影响至关重要。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">3</font><font face="宋体">、如何实现</font><font face="Verdana">Most&nbsp;bug</font><font face="宋体">、</font><font face="Verdana">Best&nbsp;bug</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">1</font><font face="宋体">）加强测试设计的能力，提升测试技术基础势在必行，剖析被测对象的内在，而不仅是表象。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">2</font><font face="宋体">）站在产品用户的立场思考问题做好测试设计、深入挖掘用户行为和心理、深入理解系统运行机制及实现原理，这些都做到了，还做不到</font><font face="Verdana">Most&nbsp;bug</font><font face="宋体">、</font><font face="Verdana">Best&nbsp;bug</font><font face="宋体">真的很难。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">3</font><font face="宋体">）不能单一的追求</font><font face="Verdana">Most&nbsp;bug</font><font face="宋体">或</font><font face="Verdana">Best&nbsp;bug</font><font face="宋体">，要两者兼顾，要在</font><font face="Verdana">Most</font><font face="宋体">的基础上</font><font face="Verdana">Best</font><font face="宋体">。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">4</font><font face="宋体">、如何实现</font><font face="Verdana">Track&nbsp;bug</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">1</font><font face="宋体">）以主人翁的心态对待每一个</font><font face="Verdana">Bug</font><font face="宋体">，我们不仅负责测试出</font><font face="Verdana">Bug</font><font face="宋体">，还要将这个</font><font face="Verdana">Bug</font><font face="宋体">的修改情况负责跟踪到底，直到最终解决不再复现为此，也只有这样我们的测试工作才算完成。另外还要以积极的心态高效的跟进，不能有半点耽误和延迟。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　　　<font face="Verdana">2</font><font face="宋体">）不光要配合</font><font face="Verdana">Bug</font><font face="宋体">修改，更重要的是要起到督促的作用，测试人员的行为要为整个项目负责。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　领会<font face="Verdana">SMBT</font><font face="宋体">宗旨，将</font><font face="Verdana">SMBT</font><font face="宋体">四个关键域融会贯通、运用自如，此乃测试最高境界也！</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">PS</font><font face="宋体">：坦诚的讲，鄙人自知对</font><font face="Verdana">SMBT</font><font face="宋体">的理解或许存在一些不完善的地方，在此也算是起到抛砖引玉的作用吧。希望测试界的广大同仁及读者能够对&nbsp;</font><font face="Verdana">SMBT</font><font face="宋体">进行完美的补充，让</font><font face="Verdana">SMBT</font><font face="宋体">更加完善，理念更加深入透彻。也希望测试工作者能够灵活运用到企业中，更好的改进测试工作，提升测试价值，保持测试行&nbsp;业的绝对竞争优势！</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt;background: #ffffff" class="p0"><span style="font-style: italic; font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　本文转载自：<font face="Verdana">http://blog.csdn.net/vincetest/article/details/8330303</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<!--EndFragment--><img src ="http://www.blogjava.net/zouhui/aggbug/404976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-14 15:17 <a href="http://www.blogjava.net/zouhui/archive/2013/10/14/404976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>10种使测试人员陷入困境的行为趋势</title><link>http://www.blogjava.net/zouhui/archive/2013/10/10/404845.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 10 Oct 2013 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/10/404845.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404845.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/10/404845.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404845.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404845.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div style="layout-grid:  15.6pt none" class="Section0">
<p style="margin-top: 0pt; margin-bottom: 7.5pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">10<font face="宋体">种使测试人员陷入困境的行为趋势 &nbsp;&nbsp;</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span>《转载》</p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">这篇</span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">文章</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">的作者是著名软件与网络</span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">测试</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">实验室<font face="Arial">Quardev</font><font face="宋体">的高级顾问，做过测试经理、测试承包商、为</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">微软</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">等公司做过顾问，并为很多杂志写过文章，且时常在各种测试大会中做演讲。在<font face="Arial">10</font><font face="宋体">年的时间中作者组织、管理了超过</font><font face="Arial">400</font><font face="宋体">次的测试岗位</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">面试</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">，这些面试都是以项目模拟的形式进行的，从对这些面试中面试者的表现，作者总结了限制测试人员发挥其测试技能的<font face="Arial">10</font><font face="宋体">种倾向，并提出了如何避免这些倾向的建议。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　作者组织这些面试的目的是让面试者们暴露他们的优势与不足，从而决定他们是否适合在<font face="Arial">Quardev</font><font face="宋体">的</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">工作</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">。面试的流程如下：先是通过电话面试了解求职者的工作经历，然后通过邮件提供给求职者一个产品，并要求在<font face="Arial">20</font><font face="宋体">分钟之类对其进行测试写出至少一个</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">bug</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">。接下来，会邀请求职者去实验室，对他们的工作经历进行一次面对面的深入调查。项目模拟是最后一步，项目模拟的过程如下：</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　作者在白板前介绍测试任务，然后在白板上写下<font face="Arial">Bugs</font><font face="宋体">和</font><font face="Arial">Issues/Questions</font><font face="宋体">。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　求职者在<font face="Arial">Bugs</font><font face="宋体">下记录他们发现的问题，每条记录必须少于</font><font face="Arial">20</font><font face="宋体">个单词。</font><font face="Arial">Issues</font><font face="宋体">和</font><font face="Arial">Bugs</font><font face="宋体">的区别在于，测试人员可能不是很确认这是否是一个</font><font face="Arial">bug</font><font face="宋体">，他们不确定是否原本就是这么设计的。比如</font><font face="Arial">"</font><font face="宋体">在主目录下没有</font><font face="Arial">setup.exe"</font><font face="宋体">，事实上可能是一个</font><font face="Arial">bug</font><font face="宋体">。这与求职者对于程序设计原理的了解程度和自信心等级有关。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果求职者过于谨慎，在测试过程中没有在<font face="Arial">Bugs</font><font face="宋体">下有任何记录，或者过于自信，不认真考虑具体的实际情况，将自己发现的问题都记</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　录为<font face="Arial">bug</font><font face="宋体">，我都会特别关注。我希望在谨慎和自信直接找到一个平衡点。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　作者告诉求职者，当他们发现一个问题的时候有三个选择：<font face="Arial">1</font><font face="宋体">）记录为一个</font><font face="Arial">bug</font><font face="宋体">；</font><font face="Arial">2</font><font face="宋体">）记录为一个</font><font face="Arial">issue</font><font face="宋体">；</font><font face="Arial">3</font><font face="宋体">）提一个问题。然后作者写下</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">Test</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;Ideas<font face="宋体">和</font><font face="Arial">Tests&nbsp;Run</font><font face="宋体">。</font><font face="Arial">Tests&nbsp;Ideas</font><font face="宋体">是由于执行时间过长而不当场执行的测试，</font><font face="Arial">Tests&nbsp;Run</font><font face="宋体">则是求职者当场执行的测试。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　白板上的内容如下图：</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/ce10.jpg" width="387" height="306" /><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　然后作者给求职者一台笔记本电脑，上面有一个目录存放着被测软件，软件目录如下：</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/ce11.jpg" width="564" height="229" /><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　这是一个检查三角形类型的程序，输入用逗号隔开的<font face="Arial">3</font><font face="宋体">个数字，点击</font><font face="Arial">Check</font><font face="宋体">按钮后，会有</font><font face="Arial">5</font><font face="宋体">种可能的输出：</font><font face="Times New Roman">&#8220;</font><font face="Arial">scalene</font><font face="Times New Roman">&#8221;&nbsp;</font><font face="Arial">(three&nbsp;unequal&nbsp;sides),&nbsp;</font><font face="Times New Roman">&#8220;</font><font face="Arial">equilateral</font><font face="Times New Roman">&#8221;&nbsp;</font><font face="Arial">(three&nbsp;equal&nbsp;sides),&nbsp;</font><font face="Times New Roman">&#8220;</font><font face="Arial">isosceles</font><font face="Times New Roman">&#8221;&nbsp;</font><font face="Arial">(two&nbsp;equal&nbsp;sides),&nbsp;</font><font face="Times New Roman">&#8220;</font><font face="Arial">invalid</font><font face="Times New Roman">&#8221;</font><font face="Arial">,&nbsp;and&nbsp;</font><font face="Times New Roman">&#8220;</font><font face="Arial">Not&nbsp;a&nbsp;Triangle.</font><font face="Times New Roman">&#8221;</font><font face="宋体">。软件的</font><font face="Arial">UI</font><font face="宋体">如下：</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/ce12.jpg" /><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><br />
</span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><br />
</span><a href="http://www.51testing.com/batch.download.php?aid=40415"></a><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">作者让求职者开始进行测试，并在进行过程中接受求职者的提问。在项目模拟过程中，作者关注求职者的以下一些能力：</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">Questioning</font><font face="宋体">：他们是否通过提问来构建他们的测试，还是直接进行测试</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">Resourcing</font><font face="宋体">：他们是否索要项目相关的文档、用例、邮件的资源</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">Modeling</font><font face="宋体">：他们如何关注提供测试的目录？是否打开每一个文件夹？并对每一个进行提问，并围绕他们设计测试</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">Recording</font><font face="宋体">：测试过程中是否进行记录</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">Conjecturing</font><font face="宋体">：推断，如果他们没有向我进行提问，他们对产品的设想是如何的？并且如何进行测试？</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　作者在求职者的测试过程中寻找所谓的<font face="Times New Roman">&#8220;</font><font face="Verdana">The&nbsp;3&nbsp;C</font><font face="Times New Roman">&#8217;</font><font face="Verdana">s</font><font face="Times New Roman">&#8221;</font><font face="宋体">：</font><font face="Verdana">caution</font><font face="宋体">，&nbsp;</font><font face="Verdana">critical&nbsp;thinking</font><font face="宋体">，&nbsp;</font><font face="Verdana">and&nbsp;curiosity</font><font face="宋体">。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果他们向我进行提问，我们会以开发、项目经理、测试<font face="Verdana">lead</font><font face="宋体">、</font><font face="Verdana">CEO</font><font face="宋体">等角色中的一个对他们进行回答。有时作者会给以善意但是误传消息的回答，有时回答又会自相矛盾，这些都是真实项目中会出现的情况。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　作者的目标是观察求职者的技能，并使他们陷入作者自己或者身边的人曾经遇到过的困境。</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">通过这些面试，作者总结了最常见的<font face="Verdana">10</font><font face="宋体">种使测试人员陷入困境的行为趋势：</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">10</font><font face="宋体">、</font><font face="Verdana">Stakeholder&nbsp;Trust</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试人员对利益相关者过分的信任，认为他们拥有所有必须的信息，并且所有他们提供的信息都是正确和中肯的。</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">尽可能多的形式收集信息：阅读、提问、交谈、测试<font face="Verdana">...</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">9</font><font face="宋体">、</font><font face="Verdana">Compartmental&nbsp;Thinking</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　思维局限性，测试人员仅从自己的或者近似的视角出发考虑问题，而没有用其他的、对立的或者正交纬度的视角出发，这样会导致漏掉一些</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　系统级的<font face="Verdana">bug</font><font face="宋体">，或者漏测某个完整的特性。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">尝试<font face="Verdana">Brute&nbsp;Cause&nbsp;Analysis</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">8</font><font face="宋体">、</font><font face="Verdana">Definition&nbsp;Faith</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试人员没有意识到诸如<font face="Times New Roman">&#8220;</font><font face="宋体">回归测试</font><font face="Times New Roman">&#8221;</font><font face="宋体">、</font><font face="Verdana">"</font><font face="宋体">测试用例</font><font face="Verdana">"</font><font face="宋体">、</font><font face="Verdana">"</font><font face="宋体">功能</font><font face="Verdana">"</font><font face="宋体">、</font><font face="Verdana">"</font><font face="宋体">特性</font><font face="Verdana">"</font><font face="宋体">等对不同的人来说意味着不同的事情。结果会导致，测试人员自认为测</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　试已经完整了，而实际上测试却还没开始。</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">牢记相同的单词可能有不同的含义，使用与你作为测试人员所服务的合作伙伴角度出发最合适的定义来理解。</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">7</font><font face="宋体">、</font><font face="Verdana">Inattentional&nbsp;Blindness</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　非注意盲视，和思维局限性有所不同，测试人员以自己的视角发现了某些事情，但是却没有处理这些信息，而是直接忽略了。</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">全面获取信息，而不是指关注自己认为会引起问题的那部分。<font face="Verdana">situational&nbsp;awareness</font><font face="宋体">态势感知，在大规模系统环境中，对能够引起系统态势发生变化的安全要素进行获取、理解、显示以及预测未来的发展趋势。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><br />
</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">6</font><font face="宋体">、</font><font face="Verdana">Dismissed&nbsp;Confusion</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　由于困惑而驳回自己的意见，测试人员不自信，认为开发软件的人员比自己更聪明，导致问题的不是软件本身的<font face="Verdana">bug</font><font face="宋体">。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">增加自信，遇到困惑的时候提出问题或者记录下来</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">5</font><font face="宋体">、</font><font face="Verdana">Performance&nbsp;Paralysis</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　面临选择的时候害怕犯错而迟疑不定。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">尝试<font face="Verdana">P.I.Q.cycle</font><font face="宋体">：</font><font face="Verdana">Plunge-In-and-Quit</font><font face="宋体">，从某处开始考虑一个问题，当思考的过于复杂或者抽象而让你头疼的时候，退出来休息下，然后回来以新的视角考虑这个问题</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">4</font><font face="宋体">、</font><font face="Verdana">Function&nbsp;Fanaticism</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　功能狂热，只通过对<font face="Verdana">UI</font><font face="宋体">判断，程序能做什么、不能做什么，以此来直接进行测试。而不考虑程序的构成、如何运行、如何被使用及有哪些依赖项。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">使用启发式思考或者<font face="Verdana">checklist</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">3</font><font face="宋体">、</font><font face="Verdana">Yourself</font><font face="宋体">，&nbsp;</font><font face="Verdana">untested</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试人员没有从合作伙伴的角度评估自己的工作。给合作伙伴提供了不准确的信息：<font face="Verdana">bug</font><font face="宋体">报告、测试说明等。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">test&nbsp;your&nbsp;testing<font face="宋体">，评估自己的测试技术、策略、计划、风险等</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">2</font><font face="宋体">、</font><font face="Verdana">Bad&nbsp;Oracles</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">Oracles&nbsp;</font><font face="宋体">指识别问题的原理和机制。这里相当于用例是否通过的标准。测试人员使用了错误的标准或者不知道使用什么标准来评判一个用例是否通过。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">听取其他合作伙伴的已经，以判断问题是否为<font face="Verdana">bug</font><font face="宋体">。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">1</font><font face="宋体">、&nbsp;</font><font face="Verdana">Premature&nbsp;Celebration</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　提前庆祝，发现问题后不深入寻找原因，而是提前抛出问题。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">如何避免：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">遇到问题立即进行分析推断，而不是马上下定论。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<!--EndFragment--><img src ="http://www.blogjava.net/zouhui/aggbug/404845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-10 17:34 <a href="http://www.blogjava.net/zouhui/archive/2013/10/10/404845.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新时代的测试工程师</title><link>http://www.blogjava.net/zouhui/archive/2013/10/10/404820.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Thu, 10 Oct 2013 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/10/404820.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404820.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/10/404820.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404820.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404820.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div class="postTitle">新时代的测试工程师 &nbsp;&nbsp;《转载》</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　<u style="word-break: break-all"><strong style="word-break: break-all">测试</strong></u>工程师在软件项目中把握着项目产品质量，具有最终项目能否发布的生杀大权，就这样一个重要的角色在实际情况中往往不受待见，却是为何？</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　纵观国内测试工程师发展的过程来看，主要有以下几个原因：</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　（1）起步晚：在国内软件行业发展的初期，没有专职测试的人员，所以测试工程师比开发工程师以及其产品等岗位的起步晚，在初期是可以没有的岗位。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　（2）起点低：发展到一定阶段以后，发现有一部分手工测试可以由单独的人员完成，但是对人员的要求没有开发那么高，所以最开始的测试人员的门槛低。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　（3）技术发展慢：测试技术的发展相对开发的技术发展要落后一个节拍，导致测试技术的发展比较慢，最开始都是<u style="word-break: break-all"><strong style="word-break: break-all">功能测试</strong></u>，最近几年才开始性能，安全，大数据的测试。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　那么如何赢得众人尊重，重新树立新时达的测试工程师形象，个人认为得做到以下几点：</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　1.写得了代码</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　2.抓得住bug</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　3.看得了产品</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　4.懂得了用户</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　<strong style="line-height: normal !important; word-break: break-all">写得了代码：</strong></div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　这里所说的写得了代码，不仅仅是狭义上的编码，而是对于开发的技术的了解，能写得了代码，可以大大提高和测试人员最亲密的合作伙伴开发同学的相互理解，同时可以有更多的共同语言，能获得开发同学尊重，并且写得了代码就能够发现最深层次的bug。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　<strong style="line-height: normal !important; word-break: break-all">抓得住bug</strong></div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　发现bug是测试人员的天职，但是功能的bug只是众多的bug中的冰山一角，而且发现bug应该是贯穿整个项目过程中，而不仅仅局限于测试阶段的bug，例如在设计阶段，可以发现系统设计的缺陷，如可能引起的性能，安全，或者可扩展性的问题。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　抓bug的技术手段和方法可以努力做到以下几点：</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　自动化：自动化可以提高效率，减少人工的误差，另外自动化比较高端大气上档次。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　服务化：服务化可以让其他人使用，例如开发，产品；</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　持续集成：持续集成可以提高利用率，减少再创造的成本。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　<strong style="line-height: normal !important; word-break: break-all">看得了产品</strong></div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　看得了产品就是说可以看得见产品的发展趋势和产品的核心价值，这样可以理解产品的根本需求，把握测试的重点，在理解产品经理的基础上可以获得产品的更大的支持和尊重。</div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　<strong style="line-height: normal !important; word-break: break-all">懂得了用户</strong></div>
<div style="line-height: 23px; background-color: #ffffff; margin: 10px 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 13px; word-break: break-all">　　这是个终极的目标，因为测试人员是用户在使用前最原始的用户，如果不能准确把握用户需求，那往往会在测试过程中因小失大，往往会因为某个小细节的纠结而失去产品推出的最好时机，没能够抓住用户。</div><img src ="http://www.blogjava.net/zouhui/aggbug/404820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-10 09:29 <a href="http://www.blogjava.net/zouhui/archive/2013/10/10/404820.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PDCA理念融入软件测试</title><link>http://www.blogjava.net/zouhui/archive/2013/10/08/404757.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 08 Oct 2013 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/08/404757.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404757.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/08/404757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404757.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404757.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div style="layout-grid:  15.6pt none" class="Section0">
<p style="margin-top: 0pt; margin-bottom: 7.5pt;background: #ffffff" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">PDCA<font face="宋体">理念融入软件测试 &nbsp;&nbsp;</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span>《转载》</p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">摘要：</span><span style="font-family: 'Arial';background: #ffffff; color: #1a8bc8; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">软件测试</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">作为软件质量保障的重要手段，<font face="Arial">PDCA</font><font face="宋体">循环是全面</font></span><span style="font-family: 'Arial';background: #ffffff; color: #1a8bc8; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">质量管理</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">所应遵循的科学程序。本文结合软件测试</span><span style="font-family: 'Arial';background: #ffffff; color: #1a8bc8; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">工作</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">的特点，通过文档规范的方式，将<font face="Arial">PDCA</font><font face="宋体">的理念融入软件测试，提出一套软件测试工作的流程。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">关键字：</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">软件测试、<font face="Arial">PDCA</font><font face="宋体">、测试流程</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">1</font><font face="宋体">、引言</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">PDCA</font><font face="宋体">循环又叫戴明环，是美国质量管理专家戴明博士提出的，它是全面质量管理所应遵循的科学程序。全面质量管理活动的全部过程，就是质量计划的制订和组织实现的过程，这个过程就是按照</font><font face="Arial">PDCA</font><font face="宋体">循环，不停顿地周而复始地运转的。</font><font face="Arial">PDCA&nbsp;</font><font face="宋体">描述如下，</font><font face="Arial">PLAN</font><font face="宋体">：活动、控制、资源、目标；</font><font face="Arial">DO</font><font face="宋体">：按计划实施；</font><font face="Arial">CHECK</font><font face="宋体">：监控和测量一致性和有效性；</font><font face="Arial">ACTION</font><font face="宋体">：分析</font><font face="Arial">/</font><font face="宋体">回顾</font><font face="Arial">/</font><font face="宋体">改进</font><font face="Arial">/</font><font face="宋体">提高有效性。软件测试是有计划、有组织和有系统的软件质量保证活动，是软件工程的重要组成部分。本文结合</font><font face="Arial">PDCA</font><font face="宋体">循环对于质量改进的作用，依靠文档管理，将</font><font face="Arial">PDCA&nbsp;</font><font face="宋体">理念融入软件测试。在软件测试流程中，结合</font><font face="Arial">PDCA&nbsp;</font><font face="宋体">理念，各个阶段进行如此诠释，</font><font face="Arial">PLAN</font><font face="宋体">：编写测试计划；</font><font face="Arial">DO</font><font face="宋体">：按计划开展测试工作；</font><font face="Arial">DO</font><font face="宋体">：按计划开展测试工作；</font><font face="Arial">ACTION</font><font face="宋体">：维护测试文档。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">2</font><font face="宋体">、</font><font face="Arial">PLAN</font><font face="宋体">：编写测试计划</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　软件测试组接到测试项目后，测试工程师首先编写《</span><span style="font-family: 'Arial';background: #ffffff; color: #1a8bc8; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">系统测试</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">计划》，为本次测试工作做好安排。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　根据研发部门提交的《项目总体需求说明书》《项目模块需求说明书》《项目概要设计说明书》《项目详细设计说明书》及《</span><span style="font-family: 'Arial';background: #ffffff; color: #1a8bc8; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">数据库</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">设计说明书》等内容，测试工程师编写《系统测试计划》。测试计划中包含编写目的、参考资料、测试内容、测试环境、测试方案、测试通过标准、风险评估、测试组织和时间安排等内容，包括了<font face="Arial">PLAN</font><font face="宋体">中应该进行活动、控制、资源、目标等全部内容，实现了做测试工作的计划性。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">3</font><font face="宋体">、</font><font face="Arial">DO</font><font face="宋体">：按计划开展测试工作</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　完成测试计划后，即按照计划的时间要求进行测试工作。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试工程师依据《总体需求说明书》、《模块需求说明书》、《概要设计说明书》和《验收测试计划》分析测试需求，撰写该项目的《测试需求说明书》。软件测试的核心文件《系统测试需求说明书》是列出项目所有的测试点，保证了软件测试的有据可依。测试工程师根据《测试需求说明书》编写《</span><span style="font-family: 'Arial';background: #ffffff; color: #1a8bc8; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">测试用例</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">》。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试负责人依据《系统测试计划》及项目进度向测试工程师分配测试任务；测试工程师向测试负责人领取测试资料，执行测试。本轮测试结束后，测试工程师编写《系统测试报告》。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/qa1.jpg" width="610" height="367" /><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">图<font face="Arial">1&nbsp;</font><font face="宋体">测试设计工作流程</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><br />
</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><br />
</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 14.25pt; margin-top: 5.25pt; margin-bottom: 15.75pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">字体<font face="Verdana">:&nbsp;&nbsp;</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">小</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">中</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">大</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;&nbsp;|&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">上一篇</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">下一篇</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;|&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #1a8bc8; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">打印</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;&nbsp;|&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #333333; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">我要投稿</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&nbsp;</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">4</font><font face="宋体">、</font><font face="Verdana">CHECK</font><font face="宋体">：审核和评审测试文档</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　审核和评审是<font face="Verdana">PDCA</font><font face="宋体">方法中最重要的组成部分，在软件测试中主要是依靠对测试文档的审核和评审，来保证测试工作的质量。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　《系统测试计划》是测试工作的纲领性文件，是对整个系统测试的工作安排。测试工程师完成后，需要由测试负责人进行审核，审核通过后由研发和测试人员组成的评审小组进行评审，保证了测试计划的合理性。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　《测试需求说明书》是整个测试工作的核心文件，列出项目的所有测试点。首先由测试负责人进行审核，审核通过后组织评审，项目经理和评审小组参与进行评审，要求有测试记录。从研发和测试的角度保证了尽可能不遗漏测试点，也能有效减少测试组与研发部门的分歧。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　《系统测试用例》是根据《测试需求说明书》的测试点扩展而来，测试工程师完成后，由测试负责人审核《系统测试用例》，并提出修改意见。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　《系统测试报告》是每轮测试结束后，测试工程师编写《系统测试报告》，然后测试负责人审核《系统测试总结报告》。审核通过后，将《系统测试报告》交给测试负责人、项目经理、评审小组成员进行审批；审批不通过，则测试人员进行修改；审批通过，更新系统测试用例后，一轮测试结束。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zouhui/qa2.jpg" width="610" height="364" /><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: center; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">图<font face="Verdana">2&nbsp;</font><font face="宋体">系统测试工作流程</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">5</font><font face="宋体">、</font><font face="Verdana">ACTION</font><font face="宋体">：维护测试文档</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　文档《系统测试计划》和《测试需求说明书》都需要经过测试负责人的审核和评审小组的评审，《系统测试用例》要由测试负责人进行审核，《系统测试总结报告》由测试负责人审核外，还要进行项目经理、评审小组成员进行审批和会签，在此过程中，会有很多测试工程师要按照评审意见进行修改，达到了分析改进提高的效果，保证测试工作的质量。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">6</font><font face="宋体">、总结：提高测试工作效率</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="text-align: left; line-height: 18.9pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　将<font face="Verdana">PDCA</font><font face="宋体">方法融入软件测试工作流程中，使得测试流程更加规范，提高了测试工作效率。编写测试计划，使得测试工作按部就班；规范的工作内容，在各个阶段都明确的产出物，方便领导对测试工作的检查；增加测试文档的评审机制，既降低测试组与研发部门沟通成本，减少分歧，又提高了软件测试的质量。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<!--EndFragment--><img src ="http://www.blogjava.net/zouhui/aggbug/404757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-08 16:36 <a href="http://www.blogjava.net/zouhui/archive/2013/10/08/404757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件质量控制</title><link>http://www.blogjava.net/zouhui/archive/2013/10/08/404756.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 08 Oct 2013 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/08/404756.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404756.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/08/404756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404756.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div class="postTitle">软件质量控制 &nbsp;《转载》</div>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px"><strong style="line-height: normal !important; word-break: break-all">1、质量控制</strong></p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　软件质量控制对开发过程中的软件产品的质量特性进行连续的收集和反馈，通过<u style="word-break: break-all"><strong style="word-break: break-all">质量管理</strong></u>和<u style="word-break: break-all"><strong style="word-break: break-all">配置管理</strong></u>等机制，使<u style="word-break: break-all"><strong style="word-break: break-all">软件开发</strong></u>过程向着既定的质量目标发展。质量控制是质量管理的的路标和动力，质量管理是质量控制的执行机制。</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题1：软件质量控制应该注意哪些方面？</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）在整个软件生命周期中都该进行质量控制；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）不同阶段活动不同，应采用不同的技术；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）综合使用&#8220;预防性&#8221;和&#8220;检测性&#8221;技术。</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题2：软件质量控制技术有哪些类型？</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）预防性技术：通过为过程、产品和资源设立标准等途径，来避免在产品开发过程中产生缺陷；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）检查性技术：用于发现和纠正缺陷，甚至分析产生缺陷的原因。</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题3：软件质量控制一般有哪些方法？</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）目标问题度量法：通过确定软件质量目标并连续监视这些目标是否达到来控制软件质量；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）风险管理法：设别和控制软件开发过程中对软件质量危害最大的因素；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）PDCA质量控制法：PDCA是一个基于统计方法的迭代过程，已被作为国际标准。</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题4：软件质量控制的准则有哪些？</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）制定明确的改进质量目标，满足客户需要；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）持续改进过程以提高质量和生产率，降低成本；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）消除恐惧，让员工更有效地<u style="word-break: break-all"><strong style="word-break: break-all">工作</strong></u>；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）消除领域障碍，建立团队精神；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）不以口号要求零缺陷、高效率；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（6）进行培训，为所有人建立<u style="word-break: break-all"><strong style="word-break: break-all">学习</strong></u>和自我提高机制。</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px"><strong style="line-height: normal !important; word-break: break-all">　　2、质量目标</strong></p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　为了达到质量控制，<u style="word-break: break-all"><strong style="word-break: break-all">测试</strong></u>团队不但需要明确软件的功能，还要明确软件应达到什么样的质量标准，即制定软件的质量目标。为了达到这些目标，在开发过程的各个阶段进行检查和评价。在质量评价时，需要有对质量进行度量的准则和方法，但更重要的是，需要在软件生存期中如何使用这些准则和方法的质量保证步骤及提高该项作业生产率的工具。</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题1：制定合理的质量目标需要从哪些方面考虑？</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）适应性：必须制定能适应各种用户要求、软件类型和规模的质量标准，并能够度量；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）易学性：不需要特殊技术，软件技术人员人人都容易掌握；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）可靠性：对同一个软件的评价，评价的人或场合可能不同，但评价结果必须一致；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）针对性：不是在检查时才改进质量，而必须从设计阶段起就确立质量目标，在各个阶段实施落实；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）客观性：要从各种不同角度加以评价，并将评价结果定量地表示，使得人人都能理解；</p>
<p style="padding-bottom: 0px; line-height: 21px; background-color: #ffffff; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; color: #333333; font-size: 12px; word-break: break-all; padding-top: 0px">　　（6）经济性：考虑如何才能把质量度量和保证所需要的费用控制在适当的范围内。<br />
</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题2：测试团队，需要重点关注哪些质量指标？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）测试设计覆盖率</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）测试执行覆盖率</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）各阶段缺陷密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题3：测试过程中，需要关注哪些测试缺陷密度？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）测试计划评审缺陷发现密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）测试策略/方案评审缺陷发现密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）测试用例评审缺陷发现密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）系统测试缺陷发现密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）集成测试缺陷发现密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（6）验收测试缺陷密度</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px"><strong style="line-height: normal !important; word-break: break-all">　　3、同行评审</strong></p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　在软件开发过程中邀请同行对工作产品进行审查，以图尽早查找出工作产品缺陷，进行质量控制的一种质量活动。需要前期准备、计划，安排好时间进度表，而且越早开展对项目越有价值。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题1：常见的评审有哪些形式？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）审查：由公正的、接受过正式评审技术培训的组织者引导进行的同行检查；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）走查：又称走读，由产品的设计者或开发人员引导开发组成员和其它相关组成员浏览软件工作产品；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）分发：又称轮查，产品的设计者或开发人员将要评审的工作产品共享或分发，评审人员以修订标记或批注的方式将意见直接添加到工作产品或其复件上。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题2：评审过程中常见的问题？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）项目进度紧张，开发人员没有时间进行评审；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）评审力度不够，评审发现的有效问题太少；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）评审会议中过多争论占用大量时间；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）评审专家与作者，或者多位评审专家之间的评审意见不一致；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）评审发现问题修改后，评审人员跟踪不充分。<br />
</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　问题3：项目进度紧张，专家没有时间进行评审怎么办？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）将评审活动的时间、需要的评审专家写入项目计划；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）通过&#8220;正式渠道&#8221;协调评审专家资源，并得到承诺；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）评审开始前提前1-2天通知评审专家。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题4：如何可以提高测试评审的效果，达到预期的效果？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）评审前可以使用Checklist、代码检视工具等进行自检活动；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）考虑知识结构、观点角度等方面，选择合理评审专家；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）必要时安排介绍会议，向相关专家介绍被评审对象；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）充分安排好足够预审时间。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px"><strong style="line-height: normal !important; word-break: break-all">　　4、漏测预防</strong></p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　漏测是指软件产品的缺陷在某一阶段未被发现而遗漏到了后续阶段、经效果评估后，将有效的预防措施纳入到流程或相关预防平台中，制定改进措施和跟进实施。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题1：哪些环节容易发生漏测？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）需求分析，如需求分析遗漏、需求分析特性理解错误、需求变更未及时跟踪；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）策略漏测，如组网考虑不全面、继承特性考虑不全、性能稳定性考虑不全面；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）设计漏测，如用例描述不规范准确、用例观察点遗漏、功能交互遗漏、异常考虑不全面等；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）执行漏测，如用例执行构造数据不全面、没有严格按步骤执行用例、测试技能或经验不足等。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题2：漏测分析需要做哪些工作？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）选择问题，选择有代表性的漏测问题；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）分析根因，进行漏测问题的根因分析；<br />
</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　（3）改进实施，制定改进措施并跟进实施；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）补充测试设计，共性问题要跟踪多版本闭环；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）成果固化，经效果评估后，将有效的预防措施纳入到流程或相关预防平台中。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题3：有哪些方法，可以进行漏测预防？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）测试策略和测试方案充分考虑各业务逻辑之间的交互和影响；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）测试用例设计时，充分考虑功能点与其他模块之间的交互和影响；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）充分考虑修改问题单、需求变更是否引入新的问题；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）参考优秀实践和经验案例；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）每次缺陷分析完要有总结，把容易漏测的形成测试经验checklist，并组织学习。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px"><strong style="line-height: normal !important; word-break: break-all">　　5、发散测试</strong></p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　发散测试，顾名思义就是不以某个标准或者框框作为约束的一种测试，发散测试准确来说应该叫具备发散思维的探索性测试。为了提高测试执行覆盖率，在严格按照用例测试执行后，通常需要进行发散测试，这里包括自由测试和交叉测试。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　问题1：发散测试，需要关注哪些方面？</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　建议：</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（1）重点模块和核心流程，需要安排多人进行交叉测试；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（2）根据2/8原则，对发现缺陷高的模块，需要重点安排人力交叉测试；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（3）了解用户场景，按照用户常常使用的实际场景进行发散测试；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（4）识别异常场景，模拟可能发生的各种异常场景进行发散测试；</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; word-break: break-all; padding-top: 0px">　　（5）遵循规范原则，根据规范组织测试，如协议规范、设计规范和接口规范等。</p><img src ="http://www.blogjava.net/zouhui/aggbug/404756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-08 16:29 <a href="http://www.blogjava.net/zouhui/archive/2013/10/08/404756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不能成为专业软件测试人员的10大理由</title><link>http://www.blogjava.net/zouhui/archive/2013/10/08/404754.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 08 Oct 2013 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/08/404754.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404754.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/08/404754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404754.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404754.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">你是一名专业的</span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">测试</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">人员吗？ &nbsp;《转载》</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果你看到这篇</span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">文章</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">了，你就有机会成为专业的了！</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　我写这篇文章并不是因为这个，其他无数的测试人员有比我更多的好东西拿来分享。总体而言，我的意思是在空闲时间阅读其他测试相关文章来提高自己的测试技能时，你也将是有志成为专业测试人员中的一分子。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　寻找最佳理由</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　上周我在<font face="Arial">LinkedIn</font><font face="宋体">上看到有人讨论</font><font face="Times New Roman">&#8220;</font><font face="宋体">为什么测试不是一份职业</font><font face="Times New Roman">&#8221;</font><font face="宋体">，有很多答复包括说</font><font face="Times New Roman">&#8220;</font><font face="宋体">因为大学没有专业授教</font><font face="Times New Roman">&#8221;</font><font face="宋体">，但都是说</font><font face="Times New Roman">&#8220;</font><font face="宋体">因为它是新兴的，人们并没有专业的进行</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">学习</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">&#8221;<font face="宋体">。但我没有找到有人反驳这个观点的人并说</font><font face="Times New Roman">&#8220;</font><font face="宋体">因为大多数人</font></span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">工作</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">的方式就不是专业的，才被觉得测试不是一份职业<font face="Times New Roman">&#8221;</font><font face="宋体">。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　我猜大家都注意到了给我们的责备而忙于自怜和抱怨受到的不公平。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　寻找答案</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　坦白的讲，不管在哪我们不被当成专业人士都是因为我们并没有优先地专业化的开展工作。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　基于我有限的工作经历，不管什么地方认真对待工作并尝试改进而给组织带来的价值的测试人员都会被尊重，并且会给予高度的评价和感谢。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　现在切入正题，不能成为专业测试人员的<font face="Arial">10</font><font face="宋体">大理由：</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">1</font><font face="宋体">、你认为测试并不是一份技术性的职业，所以并不去尝试学习理解产品的编码</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果你从事的是</span><span style="font-family: 'Arial';background: #ffffff; color: #202859; font-size: 9pt; font-weight: bold; text-decoration: underline; mso-spacerun: 'yes'; mso-shading: #ffffff">软件开发</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">，至少会理解一些软件工程的知识。而作为测试人员，你应该能够读懂代码来分析产品，来理解代码的变更和修复将会如何引入其他的<font face="Arial">bug.</font><font face="宋体">黑盒</font><font face="Arial">vs</font><font face="宋体">白盒的日子应该结束了。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果你不想这样，即使不用写任何代码依然可以从事该工作。但是如果你不去读代码，将会失去对整个测试流程很重要的一项投入。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">2</font><font face="宋体">、只有当开发人员告知开始测试时才真正介入到整个流程中</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　大家如实的回答，在整个开发流程中何时开展测试的？</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　理论上我们想在需求收集分析阶段就介入，和其他成员一起完成余下的，事实上我们很难投入进去，只有当开发人员想尽快得到反馈首次提交代码交付给我们时才能介入。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　为什么要这样持续下去？大多数测试人员会说这种测试工作是开发流程中的最后一环，当其他人忙于计划时我们总是忙于测试。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　但是实际上，如果不能每天抽两小时做测试设计就意味着你在管理时间上很差劲。而且还意味着，你不想提早介入到开发流程中的唯一原因是没有优先处理，或者换句话根本不想这么做。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Arial">3</font><font face="宋体">、只有在技术支持的同事要求重现</font><font face="Arial">bug</font><font face="宋体">时才与客户之间交流</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试人员一部分工作职责就是基于各种用户使用场景进行测试，一旦产品发布之后基于场景来寻找<font face="Arial">bug</font><font face="宋体">尤为重要。</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　但事实上（这里应该指的是外包项目中），在整个开发流程中你只是代表了客户而不是用户，根据客户的工作行为来计划测试及搭建测试环境，只是被期望基于他们的需求和限制来提供功能反馈。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果真是这种情况，不了解真实的用户如何代表用户模拟他们的行为呢？最后一次访问用户如何使用产品是什么时候？工作中你能真正考虑到他们如何使用产品和工作环境有哪些限制吗？我猜答案一定是<font face="Arial">NO</font><font face="宋体">！</font></span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　去拜访一些用户直到你理解他们，才不会一直做这样差劲的工作。</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><br />
</span><span style="font-family: 'Arial';background: #ffffff; color: #333333; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　<font face="Verdana">4</font><font face="宋体">、只有在处理人寿保险时才进行风险管理</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　对于测试有一个简单的真理，也许是最微不足道的：测试人员没有足够的时间验证一切。这时，基本的风险管理派上用场了，帮助我们区分工作的优先级，哪些需要测试，哪些优先测试，可以假定哪些是基于其他测试结果上工作的。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　但是如我所说，这只是风险管理基本的一面，更高级的是在分析跟测试压根一点关联都没有时候可以提供更大价值。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　所有测试人员都知道产品中风险更大的区域是哪里，哪里有更多的<font face="Verdana">bug</font><font face="宋体">，团队因为什么不定期和无计划的事务被推迟的。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　作为测试人员我们应该意识这些区域并在项目不同的阶段实时提醒团队。这样，我们也能决定是否使用产品其他模块开发这些功能，或者考虑到这些意想不到的问题迟早都会出现，如果允许的话是否可以花更多的时间来保持系统的稳定。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　你应该尽力尽早暴露这些影响产品的问题，不管是已知的还是潜在的，帮助团队设定靠谱的目标，在时间和预算上达成目标。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">5</font><font face="宋体">、你没有任何计划来提高自己测试工作的价值</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　测试职业在许多方面都是未知的领域，有很多途径带入到测试行业，一旦进入到测试行业中，就有各种途径来改进测试专业技能。大部分测试技能提升来自于个人，而且将会由测试人员个人能力，当前工作环境的需要和限制，还有就是当前能获取的信息来源等因素决定的。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　总之，并没有唯一的途径把自己培养成一名专业的测试人员，而且并不容易，成效并不快。所以除非你决定想真正改进开发流程，并且知道如何达到这些目的后才能够真正提高测试技能和提高能够贡献给团队的价值。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如何达成呢？</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　开始列出作为测试人员的强项和弱项，想想哪些方面你想改善，最终寻找可取的方法。有一件事很确定，如果你不把握机会或者跟别的测试人员的职业发展牵着一起，将永远不可能得到提高。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">6</font><font face="宋体">、我们认为测试工作就是设计和运行预先定义好的测试用例</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　其实除了运行测试用例之外，还有更多的内容：</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">对产品设计上提供反馈；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">分析当前项目计划的风险；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">在不同的开发阶段提供非正式的反馈；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">开发自动化框架，能帮助开发人员维持他们所开发的产品的稳定性；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">运行脚本或用例，但不单单是之前预先设计好的；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">分析测试结果以及能获取的所有信息，帮助我们了解产品的最新进展状况；</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">-&nbsp;</font><font face="宋体">在流程中持续反馈</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　而且我们可以照这些步骤持续开展。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　总之，如果只是单纯的运行用例并设置为<font face="Verdana">PASS&nbsp;OR&nbsp;FAIL</font><font face="宋体">，那价值远远没有实现。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　<font face="Verdana">7</font><font face="宋体">、自动化是一门高级学问，测试项目能在以后空闲时间里开展</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　请不要想出一大堆借口解释为什么不做自动化！</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　从另一个角度讲，这是一些测试人员技术弱点的另一面。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　自动化不是灵丹妙药，并不能处理测试人员遇到的所有问题，但是通过使用脚本或工具仍然能够代替我们做一些重复的劳动，更高效，更省时。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　问题是，一些测试人员到这里仍然感觉不够有技术含量，所以他们并不选择通过自动化或脚本改进测试。某种意义上讲，就好比使用钻木取火而拒绝用打火机并一边说这种方式很容易。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">8</font><font face="宋体">、大多数时候非常自我自负的做测试</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　一个好的测试人员应该谦卑。我们需要知道如何提供反馈，更重要的是如何从其他组员或同行那获得反馈。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　如果其他成员特别是开发人员对测试工作提供一些未经请求的反馈，或者他们查出<font face="Verdana">bug</font><font face="宋体">遗漏或测试没有执行后，很多测试人员感到很沮丧。其实每次都有很好的理由来解释漏测，只需要冷静下来分享下这些信息，但是很多测试人员认为这是对工作失职的人身攻击，并且反驳说一些难听的话。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　同时，我们需要知道如何提交<font face="Verdana">bug</font><font face="宋体">，并为团队提供消极的反馈，并且需要知道如何从同行那获得建设性的批评。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　没人期望你是完美的。但是他们期望你能认真对待失误并且同时从获得的反馈中学到经验教训。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">9</font><font face="宋体">、并没有跟进需要改进提升的技能或领域</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　之前我其中一个最好的经理经常谈论我们个人的<font face="Times New Roman">&#8220;</font><font face="宋体">虚拟工具箱</font><font face="Times New Roman">&#8221;</font><font face="宋体">，好比我们所携带的技能在需要的时候随时可以使用。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　在你的工具箱里都有哪些？</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　哪些工具需要改进或更新了？</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　哪些是你需要的，哪些是下一步想要获得的？</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　不容置疑，测试像是一门手艺，没有合适的工具不能创造需要的产品。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'; mso-shading: #ffffff">　　<font face="Verdana">10</font><font face="宋体">、你的职业发展生涯就是成为管理人员或改行</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　有些人转行是因为他们觉得做测试是种很好的途径转做开发，还有部分人根本不知道测试是干什么的，甚至是因为觉得整体玩弄这些程序很好玩。毕竟，也难不到哪里去。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　一部分人最终成了很棒的测试人员，但是多数人最后失意收场，度日如年的盼着啥时候能结束测试生涯，可以做自己想做的工作，而另外的人并不欣赏测试所带来的挑战，他们觉得唯一获得进步的就是做管理。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　没错，做管理的确也有挑战和收获。但是不做管理也是要克服无数的问题，这些也许能给予你更大的挑战和收获（绝对还没那么头疼）。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　我的观点是，如果你一直在想做其他的而不能关注于做一名更好的测试人员，根本不可能做的更专业。所以想想是否入对了行或者可能应该简单地摸索点别的。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　想成为专业？首先作一个专业的测试！</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　总结上面<font face="Verdana">10</font><font face="宋体">点，贯穿始终的是如何改变我们对测试的认知。</font></span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　第一步就是把测试当成你的职业！</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　当我们做到了第一步，第二步就是看看哪些我们遗漏了，哪些我们需要加强，我们要怎么开展工作以及如何与同事及客户处理好关系，以及为了提高我们的价值现在能做什么。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　第三步是我们应该未雨绸缪，并且意识到作为一种职业在变成大师或专家之前有很多东西需要学习。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<p style="line-height: 15.75pt; margin-top: 7.5pt; margin-bottom: 7.5pt;background: #ffffff; word-break: break-all" class="p0"><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff">　　最重要的是要意识到这种改变要发自肺腑有实际行动，而不是从一些神赐予的法令而来，或者邮件所署名字旁边的标题来证明。</span><span style="font-family: 'Verdana';background: #ffffff; color: #4b4b4b; font-size: 9pt; mso-spacerun: 'yes'; mso-shading: #ffffff"><o:p></o:p></span></p>
<!--EndFragment--><img src ="http://www.blogjava.net/zouhui/aggbug/404754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-08 16:19 <a href="http://www.blogjava.net/zouhui/archive/2013/10/08/404754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QA、EPG、PMO各自的职能划分及关系是什么？ </title><link>http://www.blogjava.net/zouhui/archive/2013/10/08/404753.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 08 Oct 2013 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/08/404753.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404753.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/08/404753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404753.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
QA、EPG、PMO各自的职能划分及关系是什么？&nbsp;《转载》
<div id="xspace-showmessage" class="xspace-itemmessage">
<div>
<div align="center"></div>
<p><wbr></p>
<table border="0" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td valign="top" width="54">
            <p align="center"><strong><strong></strong>团队</strong></p>
            </td>
            <td valign="top" width="222">
            <p align="center"><strong>职能</strong></p>
            </td>
            <td valign="top" width="282">
            <p align="center"><strong>主要工作内容</strong></p>
            </td>
        </tr>
        <tr>
            <td width="54">
            <p align="center">EPG</p>
            </td>
            <td width="222">
            <p align="left">负责过程持续改进工作</p>
            </td>
            <td valign="top" width="282">
            <p align="left">公司规范的建设和推广，并持续改进。收集过程改进需求，制定过程改进计划，获得高层的支持，并实施改进工作。</p>
            </td>
        </tr>
        <tr>
            <td width="54">
            <p align="center">PMO</p>
            </td>
            <td width="222">
            <p align="left">负责公司内所有项目的审核、管理</p>
            </td>
            <td valign="top" width="282">
            <p align="left">定义项目管理流程，集中控制项目进展，统一进行资源调配。</p>
            </td>
        </tr>
        <tr>
            <td width="54">
            <p align="center">QA组</p>
            </td>
            <td width="222">
            <p align="left">质量审计，并提出质量改进建议。</p>
            </td>
            <td valign="top" width="282">
            <p align="left">按照既定的审计方式和内容，对过程和产品的质量进行审计工作，及时发现过程和产品中的质量改进点，提出改进建议并实施。</p>
            </td>
        </tr>
    </tbody>
</table>
&nbsp;团队&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;职能&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主要工作内容<br />
&nbsp;<br />
&nbsp;EPG<br />
&nbsp;负责过程持续改进工作<br />
&nbsp;公司规范的建设和推广，并持续改进。收集过程改进需求，制定过程改进计划，获得高层的支持，并实施改进工作。<br />
&nbsp;<br />
PMO<br />
&nbsp;负责公司内所有项目的审核、管理<br />
&nbsp;定义项目管理流程，集中控制项目进展，统一进行资源调配。<br />
&nbsp;<br />
QA组<br />
&nbsp;质量审计，并提出质量改进建议。<br />
&nbsp;按照既定的审计方式和内容，对过程和产品的质量进行审计工作，及时发现过程和产品中的质量改进点，提出改进建议并实施。<br />
&nbsp;
<p>&nbsp;</p>
<p>&nbsp;<wbr>&nbsp;<wbr>现在很多公司都已经设有或者即将成立这三个团队，但是对于这三个团队之间的关系存在很多疑问，主要的原因在于大家对这三个团队职能的理解都存在一定的差别。造成这种现象的原因，是由于每家公司所面临的实际情况不同，从而导致这三个团队的定位和职能与行业中的普遍定义和认知存在一定的差异。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>这三个团队其实是一种紧密配合的关系。一般而言，EPG成员是兼职人员，由于存在改进需求，EPG（Engineering Process Group）成员走到了一起，一般包含：部门经理、项目经理、技术专家、质量专家、采购人员、<u><strong><font color="#000066">配置管理</font></strong></u>人员等。PMO（Project Management&nbsp;<wbr>Office）是项目经理办公室，也就是我们通常说的&#8220;大项目经理&#8221;的概念。QA（Quality Assurance）是质量保证组，负责过程和产品的质量。所以PMO成员和QA成员都可以兼任EPG成员，但是由于QA组的特殊性，需要对质量进行审计和把控，并且需独立存在并由高层直接领导，一般建议QA人员是不要兼职PMO成员的</p>
</div>
</div><img src ="http://www.blogjava.net/zouhui/aggbug/404753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-08 16:04 <a href="http://www.blogjava.net/zouhui/archive/2013/10/08/404753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>百度测试架构师眼中的百度QA</title><link>http://www.blogjava.net/zouhui/archive/2013/10/08/404745.html</link><dc:creator>zouhui</dc:creator><author>zouhui</author><pubDate>Tue, 08 Oct 2013 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/zouhui/archive/2013/10/08/404745.html</guid><wfw:comment>http://www.blogjava.net/zouhui/comments/404745.html</wfw:comment><comments>http://www.blogjava.net/zouhui/archive/2013/10/08/404745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zouhui/comments/commentRss/404745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zouhui/services/trackbacks/404745.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div style="layout-grid:  15.6pt none" class="Section0">
<p style="margin-top: 7.05pt; margin-bottom: 7.05pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 21pt; font-weight: bold; mso-spacerun: 'yes'">百度测试架构师眼中的百度<font face="Times New Roman">QA</font><font face="宋体">（一） &nbsp;</font></span><span style="font-family: 'Times New Roman'; font-size: 21pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span>《转载》</p>
<p style="margin-top: 13.95pt; margin-bottom: 13.95pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">发表于<font face="Times New Roman">2013-04-09&nbsp;15:31|&nbsp;4004</font><font face="宋体">次阅读</font><font face="Times New Roman">|&nbsp;</font><font face="宋体">来源架构师</font><font face="Times New Roman">Jack</font><font face="宋体">的个人空间</font><font face="Times New Roman">|&nbsp;</font></span><span style="font-family: 'Times New Roman'; color: #cc0000; font-size: 9pt; font-weight: bold; mso-spacerun: 'yes'">13</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">&nbsp;条评论<font face="Times New Roman">|&nbsp;</font><font face="宋体">作者董杰</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><a href="http://www.csdn.net/article/tag/百度"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10.5pt; text-decoration: underline; mso-spacerun: 'yes'">百度</a></span><a href="http://www.csdn.net/article/tag/测试"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10.5pt; text-decoration: underline; mso-spacerun: 'yes'">测试</a></span><a href="http://www.csdn.net/article/tag/qa"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10.5pt; text-decoration: underline; mso-spacerun: 'yes'">QA</a></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">摘要：</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">一直以来百度质量部在业界都比较低调，外部同行鲜能了解百度<font face="Times New Roman">QA</font><font face="宋体">的工作流程，以及如何应对互联网研发节奏和质量的平衡。为此，百度测试架构师董杰在博客中分享了百度</font><font face="Times New Roman">QA</font><font face="宋体">的四大核心价值，帮助理解全程软件测试的意义。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">从组织结构上</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">百度所有的<font face="Times New Roman">QA</font><font face="宋体">都归属于一个大部门百度质量部统一管理</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">，在一个大部门下的好处是很容易一起跨产品线的协同作战，各种测试技术和测试工具能以最快的速度得到传播，避免重复造轮子的浪费。同时<font face="Times New Roman">QA</font><font face="宋体">们能有一种更强的组织归属感、有着专业的发展通道与空间、关键能交到更多在</font><font face="Times New Roman">QA</font><font face="宋体">领域与自己志同道合的朋友，扩展视野，所有</font><font face="Times New Roman">QA</font><font face="宋体">都能从这种大资源池中获益。这一点对所有做测试的人而言更有利于测试专业技能的持续提升。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">从我工作所见和感受来看，</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">有四个主要的工作挑战</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">：</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">职责范围广</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">（覆盖完整的产品生命周期全流程）、&nbsp;</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">面对产品技术新</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">（如移动互联网、<font face="Times New Roman">WebOS</font><font face="宋体">、推荐引擎）、</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">研发速度快</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">（互联网的节奏）、</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">大数据系统的复杂</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">（百度本质是一个分析处理数据的公司）。这些挑战长期影响着<font face="Times New Roman">QA</font><font face="宋体">日常的工作方式，使得与传统的</font><font face="Times New Roman">tester</font><font face="宋体">有着工作模式的不同。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">的工作范围覆盖了百度所有形态的产品从基础架构的分布式系统、搜索架构系统、到搜索算法、</font><font face="Times New Roman">Web</font><font face="宋体">前端、</font><font face="Times New Roman">Windows</font><font face="宋体">客户端、手机客户端，以及最新的多媒体技术、机器学习等这些前沿的</font><font face="Times New Roman">IT</font><font face="宋体">业务，因此在这里我能最广泛的接触到各领域测试的</font><font face="Times New Roman">QA</font><font face="宋体">同行，听听他们的分享，扩展我的测试视野。当然我也有机会到各领域进行测试实战，从我到百度算起，我已在</font><font face="Times New Roman">web</font><font face="宋体">前端、</font><font face="Times New Roman">windows</font><font face="宋体">客户端、手机客户端、搜索架构系统、搜索算法、图片搜索领域进行了各种测试实践工作，大大丰富和完善了我的测试技术知识体系，受益不少。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">另外百度<font face="Times New Roman">QA</font><font face="宋体">会更完整参与到产品研发流程的周期，从最早的</font><font face="Times New Roman">MRD</font><font face="宋体">，到设计评审、到产品发布后的效果评测是端到端的参与完整的产品生命周期。与我过去经历最大的区别在于，</font><font face="Times New Roman">QA</font><font face="宋体">与</font><font face="Times New Roman">PM</font><font face="宋体">（产品经理）打交道的时间非常多，在整个产品生命周期中几乎是同步一起从头到尾密切配合，同时</font><font face="Times New Roman">QA</font><font face="宋体">还会为</font><font face="Times New Roman">PM</font><font face="宋体">设计并开发用于产品评测的平台对产品设计的影响会更多。对于</font><font face="Times New Roman">QA</font><font face="宋体">与</font><font face="Times New Roman">RD</font><font face="宋体">的关系，</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">QA<font face="宋体">不仅只是响应</font><font face="Times New Roman">RD</font><font face="宋体">提交代码的测试，还会主动去帮助</font><font face="Times New Roman">RD</font><font face="宋体">如何更好地做好</font><font face="Times New Roman">UT</font><font face="宋体">（单元测试）、如何做好</font><font face="Times New Roman">code&nbsp;review</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">基于百度<font face="Times New Roman">QA</font><font face="宋体">职责范围的扩大，</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">在百度<font face="Times New Roman">QA</font><font face="宋体">工程师的职责和发展路线上目前来看已大致分为</font><font face="Times New Roman">QAD</font><font face="宋体">和</font><font face="Times New Roman">QAT</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">，至少我在进行职称评定的评审时，已会有意识的区别评估。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">QAD<font face="宋体">就是</font><font face="Times New Roman">QA</font><font face="宋体">中的软件开发者更多侧重测试工具和测试系统的软件开发</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">，我在参加<font face="Times New Roman">QAD</font><font face="宋体">任职评审</font><font face="Times New Roman">1</font><font face="宋体">对</font><font face="Times New Roman">2</font><font face="宋体">活动时，基本是以一个对软件开发者和软件产品设计者的角度来进行</font><font face="Times New Roman">review</font><font face="宋体">，关注其代码质量、软件架构设计思路和产品设计思路的能力。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">QAT<font face="宋体">则是标准的</font><font face="Times New Roman">Tester</font><font face="宋体">，偏重如何尽早的发现更多软件质量问题</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">，要求精通产品的应用场景以及各种测试类型。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">因此各种风格和兴趣的<font face="Times New Roman">QA</font><font face="宋体">都可以在百度找到自己希望和喜欢的角色，当然有时</font><font face="Times New Roman">QAT</font><font face="宋体">和</font><font face="Times New Roman">QAD</font><font face="宋体">也会互换，我个人而言，认为相对而言</font><font face="Times New Roman">QAT</font><font face="宋体">转</font><font face="Times New Roman">QAD</font><font face="宋体">容易，</font><font face="Times New Roman">QAD</font><font face="宋体">转</font><font face="Times New Roman">QAT</font><font face="宋体">要难些，因为百度的</font><font face="Times New Roman">QAT</font><font face="宋体">大多具备一定的软件开发能力，平时也会根据工作需求自己做一些自动化测试开发和工具开发的工作。而</font><font face="Times New Roman">QAD</font><font face="宋体">要转</font><font face="Times New Roman">QAT</font><font face="宋体">则还需要补充多种测试类型的知识技能，以及产品的业务知识。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">我在这里目前算是<font face="Times New Roman">QAT</font><font face="宋体">路线，大多时间在思考如何设计更完整的测试避免问题遗漏，以及如何让测试人员在短时间内发现更多的深层次问题，当没有</font><font face="Times New Roman">QAD</font><font face="宋体">资源来帮助你时，也会自己设计与实现一些小规模的测试系统或测试工具。如果未来某天我的兴趣转换到了</font><font face="Times New Roman">QAD</font><font face="宋体">的工作内容了也是比较容易获得机会转换的。所以当</font><font face="Times New Roman">QA</font><font face="宋体">工作的平台足够大时，个人的兴趣也会得到最大化的满足。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">在日常的工作中，很多百度<font face="Times New Roman">QA</font><font face="宋体">常常还会面对很多新产品技术的挑战，这里的</font><font face="Times New Roman">&#8220;</font><font face="宋体">新</font><font face="Times New Roman">&#8221;</font><font face="宋体">是指新形态的互联网产品（机器学习、推荐系统、多媒体搜索）以及新的软件应用场景（移动互联网和</font><font face="Times New Roman">Webos</font><font face="宋体">），这些新的被测对象所带来的直接挑战主要是业界很难有现成的完整的测试方案及测试技术，于是不得不逼迫百度的</font><font face="Times New Roman">QA</font><font face="宋体">比传统软件测试的</font><font face="Times New Roman">Tester</font><font face="宋体">更加持续地进行测试技术的创新才能满足</font><font face="Times New Roman">&#8220;</font><font face="宋体">新</font><font face="Times New Roman">&#8221;</font><font face="宋体">产品的质保需求。</font></span><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">例如：我今年参加的整个百度质量部层面的移动互联网测试技术专项<font face="Times New Roman">topic</font><font face="宋体">组的工作，就不得不去填补诸多业界在移动</font><font face="Times New Roman">APP</font><font face="宋体">稳定性测试领域、性能测试领域、自动化测试领域技术的空白，否则无法达到真正对高质量用户体验的追求。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">当业界大多数<font face="Times New Roman">APP</font><font face="宋体">的稳定性测试只依赖</font><font face="Times New Roman">Monkey</font><font face="宋体">测试工具时，</font><font face="Times New Roman">Monkey</font><font face="宋体">测试已只占百度最新</font><font face="Times New Roman">APP</font><font face="宋体">稳定性测试用例类型不到</font><font face="Times New Roman">10</font><font face="宋体">％的覆盖面，其他</font><font face="Times New Roman">90</font><font face="宋体">％的稳定性测试方法大多是业界还未知但</font><font face="Times New Roman">APP</font><font face="宋体">应用又必须要考虑的，否则就会出现</font><font face="Times New Roman">&#8220;</font><font face="宋体">为什么用户会碰到而我无法重现的问题</font><font face="Times New Roman">&#8221;</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">当业界还靠移动机型穷尽进行兼容性<font face="Times New Roman">crash</font><font face="宋体">问题的覆盖时，百度的</font><font face="Times New Roman">QA</font><font face="宋体">已设计实现了基于静态代码自动扫描的兼容性</font><font face="Times New Roman">crash</font><font face="宋体">问题的快速测试。当很多</font><font face="Times New Roman">QA</font><font face="宋体">还在为如何在不稳定的</font><font face="Times New Roman">2G</font><font face="宋体">网络下得到稳定的测试结果而苦恼时，百度</font><font face="Times New Roman">QA</font><font face="宋体">已靠不到</font><font face="Times New Roman">1000</font><font face="宋体">元的低成本技术方案很好地解决该问题。同时在完善移动</font><font face="Times New Roman">APP</font><font face="宋体">测试方案的过程中</font><font face="Times New Roman">QA</font><font face="宋体">内部还设计开发了不少</font><font face="Times New Roman">APP</font><font face="宋体">测试工具填补了业界在移动</font><font face="Times New Roman">APP</font><font face="宋体">测试领域的很多空白。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">经过我对内部信息的了解，之前官方对外宣传较多的移动云测试<font face="Times New Roman">MTC</font><font face="宋体">只代表了百度</font><font face="Times New Roman">QA</font><font face="宋体">在移动互联网领域测试技术积累的一部分而不是全部。所以我希望下一步有机会百度质量部能逐渐给业界分享出来，让大家都能受益从而减少移动互联网测试的烦恼和困难。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">据我在百度的观察</span><span style="font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'">我个人总结了一个规律：中国人并不缺创新能力，而是缺逼迫自己去持续创新的压力和平台。</span><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">正是由于</span><span style="font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">所处的工作环境和测试对象的特点，逼迫他们不得不去创新，结果</font><font face="Times New Roman">QA</font><font face="宋体">个人的创新能力在不断提升并形成了创新的习惯。</font></span><span style="font-family: 'Times New Roman'; font-size: 11pt; mso-spacerun: 'yes'">我在这样的环境下，一年下来自己的创新效率感觉比以前也提升了一倍以上，发现原来测试很多领域都有着创新的可能与空间。有朋友问我在百度累吗？我说相比过去身体不累但脑子累因为经常都在思考如何创新地解决所遇到的各种没有现成方案的测试问题。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">曾有多位互联网的测试友人网上问我：<font face="Times New Roman">&#8220;</font><font face="宋体">百度是如何进行面向互联网的快速测试的？</font><font face="Times New Roman">&#8221;</font><font face="宋体">对于这个问题，我最大的感受是互联网研发速度与质量的平衡让百度的</font><font face="Times New Roman">QA</font><font face="宋体">必须持续通过测试技术的改进来实现该目标，靠智慧的测试而不是加班来同时满足进度与质量的需求。为了满足这些需求百度质量部有大型测试平台如百度</font><font face="Times New Roman">TIP(Test&nbsp;in&nbsp;production)</font><font face="宋体">系统、百度众测平台、百度</font><font face="Times New Roman">MTC</font><font face="宋体">、分布式并行自动化测试等支持大多数产品组同时获得研发速度加快和研发质量提升的收益。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">我个人认为百度<font face="Times New Roman">TIP</font><font face="宋体">应该是国内在</font><font face="Times New Roman">beta</font><font face="宋体">测试领域做得非常智能和系统的</font><font face="Times New Roman">beta</font><font face="宋体">测试系统，可大大提升</font><font face="Times New Roman">beta</font><font face="宋体">测试的效率和质量。而百度众测平台则是国内第一个也是规模最大的众测社区，</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">依靠互联网上的热心用户资源帮助产品尽早发现更多用户场景特有的问题，减少了百度<font face="Times New Roman">QA</font><font face="宋体">测试时间资源和测试物料的投入，值得国内各公司借鉴。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">如何更好地把用户吸引进来参与<font face="Times New Roman">beta</font><font face="宋体">测试，花点钱是必须的，空手套白狼是不可能的，但是投入产出比是值得的。百度移动云测试</font><font face="Times New Roman">MTC</font><font face="宋体">平台则通过对已有测试物料和测试资源的共享管理及自动化应用帮助各产品</font><font face="Times New Roman">APP</font><font face="宋体">测试缩短了在兼容性测试领域和性能测试领域的测试时间，并且让各产品</font><font face="Times New Roman">APP</font><font face="宋体">获得更广的测试覆盖从而获得更高质量的</font><font face="Times New Roman">APP</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">除了这些公司级的测试平台帮助各产品<font face="Times New Roman">QA</font><font face="宋体">加快测试速度外，在日常的测试工作中一线百度</font><font face="Times New Roman">QA</font><font face="宋体">还会主动积极学习和广泛地应用业界优秀的测试技术：持续集成、</font><font face="Times New Roman">code&nbsp;review</font><font face="宋体">实践、静态代码自动测试工具、环境一键搭建、监控系统、分布式并行测试、探索测试等都在大多数产品组普及落地，希望靠先进的技术手段生产力来提升测试效率，缩短研发测试周期。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">据我所知百度质量部的探索测试在国内应该是应用产品范围最广的，从<font face="Times New Roman">windows</font><font face="宋体">客户端、移动</font><font face="Times New Roman">APP</font><font face="宋体">、</font><font face="Times New Roman">web</font><font face="宋体">产品都在例行应用，探索测试几乎覆盖百度所有产品线，应用和实施探索测试的</font><font face="Times New Roman">QA</font><font face="宋体">数达到上百人以上，涌现出不少内部探索测试教练，实施了探索测试的产品在没有增加测试周期和测试人力的前提下能提前发现更多问题减少漏测，部分产品探索测试发现的问题数所占比例已达</font><font face="Times New Roman">30</font><font face="宋体">％以上，提升了发现单个缺陷的测试效率。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">我个人认为对比靠延长工作时间和减少必做测试类型来加快研发速度的做法，靠主动持续应用各种新测试技术实践和成果是一种更可持久更科学更人性化的做法。关于百度如何进行<font face="Times New Roman">&#8220;</font><font face="宋体">快测试</font><font face="Times New Roman">&#8221;</font><font face="宋体">的咨询，我想这里已给出了一个已验证的解决方案了，希望值得各位同行借鉴和思考。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">对于当前很热门的<font face="Times New Roman">&#8220;</font><font face="宋体">大数据</font><font face="Times New Roman">&#8221;</font><font face="宋体">及大数据如何测试？我觉得百度有些实践值得大家了解，给大家一些大数据测试的启发思路。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;因为百度天生就是一个大数据公司，百度大数据系统的复杂度很高导致一直要求百度的<font face="Times New Roman">QA</font><font face="宋体">既要保证高负载数据处理系统的稳定性、还要挖掘大数据中的</font><font face="Times New Roman">badcase</font><font face="宋体">，尤其要擅长算法的测试。在保障高负载数据处理系统的稳定性领域，既有</font><font face="Times New Roman">&#8220;</font><font face="宋体">线下百度</font><font face="Times New Roman">&#8221;</font><font face="宋体">这样集系统化的稳定性测试方案与监控系统为一体的专项测试系统，也有不少申请了专利的可靠性测试工具来解决稳定性测试中异常构造和测试流量构造的问题。同时几乎所有产品线都通过百度的大型后台系统的稳定性测试实战培养起了该领域的测试高手。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">当然我也受益于百度的稳定性测试工作，通过为某百度第二大流量的产品进行稳定性测试方案的改进，在这里真正地把我过去在可靠性测试、压力测试、长时间测试领域的经验系统地结合起来形成了我自己完善的稳定性测试模型，并通过大数据处理系统的测试应用检验了我的稳定性测试模型的完整性，确保有各种测试方法可提前发现所有可产生稳定性问题的风险。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">另外为了更好地对大数据时代的数据挖掘和推荐效果算法进行效果评估，而不仅仅只是进行新算法程序正确性验证，百度的<font face="Times New Roman">QA</font><font face="宋体">们还积极应用机器学习的思想、算法和工具对诸多产品的推荐效果算法进行产品算法集有效性的自动化评测，各产品线</font><font face="Times New Roman">QA</font><font face="宋体">们设计的</font><font face="Times New Roman">badcasse</font><font face="宋体">自动化挖掘系统在很多产品都能达到</font><font face="Times New Roman">85</font><font face="宋体">％－</font><font face="Times New Roman">95</font><font face="宋体">％的准确性，提供大量的量化数据帮助产品的算法设计者重新优化算法，而不只是修改算法的程序</font><font face="Times New Roman">bug</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">同时为了更早更快更准地体现算法效果测试的价值，有的<font face="Times New Roman">QA</font><font face="宋体">还积极进行该领域的其他创新，诸如：网页搜索的</font><font face="Times New Roman">QA</font><font face="宋体">把</font><font face="Times New Roman">badcase</font><font face="宋体">自动化挖掘系统与百度众测结合后大大减少了研发人员大规模分析与定位</font><font face="Times New Roman">badcase</font><font face="宋体">的成本。图片搜索的</font><font face="Times New Roman">QA</font><font face="宋体">甚至实现了线下</font><font face="Times New Roman">badcase</font><font face="宋体">自动挖掘的算法，突破了搜索业界传统依靠线上用户数据进行用户体验测试的限制，能在大数据产品上线前未获得用户数据前就提前自动发现大量的</font><font face="Times New Roman">badcase</font><font face="宋体">数据，为用户提供更好的推荐结果。大数据领域的测试涉及很多，由于我个人所见有限，就先给大家分享到这里。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">如果非要我用一句话来总结百度<font face="Times New Roman">QA</font><font face="宋体">的特点那就是：</font><font face="Times New Roman">&#8220;</font><font face="宋体">持续技术创新与积极学习</font><font face="Times New Roman">&#8221;</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">平时在微博上测试同行们常讨论<font face="Times New Roman">QA</font><font face="宋体">的核心价值是什么，甚至常有开发领域的老兵也来参与辩论。当然在百度内部也会有关于</font><font face="Times New Roman">QA</font><font face="宋体">核心价值的讨论，从我了解的情况来看百度</font><font face="Times New Roman">QA</font><font face="宋体">的核心价值在内部已得到了一些共识和不可替代性的证明。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 10.5pt; margin-bottom: 10.5pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">的第一个核心价值是：全流程质量保障中心</font></span><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">全流程质量保证确保所有百度产品的程序质量。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">从需求<font face="Times New Roman">/</font><font face="宋体">设计</font><font face="Times New Roman">/</font><font face="宋体">编码</font><font face="Times New Roman">/</font><font face="宋体">产品发布的全流程都会有</font><font face="Times New Roman">QA</font><font face="宋体">介入并提供各类质量保障手段。从尽早发现问题，到缺陷预防，到减少发布后遗漏问题的影响都是百度</font><font face="Times New Roman">QA</font><font face="宋体">投入和支撑的目标。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">百度产品的全生命周期的质量保障是百度<font face="Times New Roman">QA</font><font face="宋体">的首要工作目标，也是在百度不可或缺的核心价值，大部分的</font><font face="Times New Roman">QA</font><font face="宋体">都一直为将漏测率降低到千分之几，甚至是零漏测长期进行着持续的测试创新和技术改进工作。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 10.5pt; margin-bottom: 10.5pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">的第二个核心价值是：公司用户体验测试技术能力中心</font></span><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">前面所介绍的百度<font face="Times New Roman">QA</font><font face="宋体">的工作范围和工作目标不只是传统</font><font face="Times New Roman">tester</font><font face="宋体">所涉及的内容，他们被要求</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">不仅要发现程序的错误，还要发现产品效果的问题，要求对用户体验质量全面负责。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">所以，百度<font face="Times New Roman">QA</font><font face="宋体">除了广泛应用各种软件测试技术帮</font><font face="Times New Roman">RD</font><font face="宋体">找</font><font face="Times New Roman">bug</font><font face="宋体">还会积极进行产品的应用效果评测工作为</font><font face="Times New Roman">PM</font><font face="宋体">提供用户体验方面的缺陷，</font><font face="Times New Roman">badcase</font><font face="宋体">自动化挖掘系统、百度众测平台等都是这方面的典型代表。我觉得从这点来看百度</font><font face="Times New Roman">QA</font><font face="宋体">的用户体验定义的覆盖含义远超过了很多人所认知的易用性感受。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">不只关心程序错误这一点突破了许多公司目前对</font><font face="Times New Roman">tester</font><font face="宋体">的限定，因此我建议各公司的</font><font face="Times New Roman">tester</font><font face="宋体">们应该更积极主动的行动起来，在公司内部开展对产品业务有效性的评测而不仅是正确性的评测，因为只有这样才是真正的产品测试，而不仅是软件测试，测试者的价值能够获得更多的体现。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 10.5pt; margin-bottom: 10.5pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">的第三个核心价值是：公司研发效率提升能力中心</font></span><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">们从最开始关注如何提升测试过程的效率，到现在考虑如何通过提供研发辅助工具和流程改造，提升公司整体的研发效率。我看到的是除了百度质量部层面的质量工程中心、还有产品线层面的</font><font face="Times New Roman">EP</font><font face="宋体">专职团队、以及分布在各产品组的</font><font face="Times New Roman">QA</font><font face="宋体">们都在积极贡献各种提升测试效率和开发效率的工具及系统。百度</font><font face="Times New Roman">TIP</font><font face="宋体">系统、持续集成等是研发流程层面的典型代表，分布式并行测试系统、各种代码自动扫描工具等是测试效率提升的典型代表，提供给</font><font face="Times New Roman">UE</font><font face="宋体">的单测工具</font><font face="Times New Roman">FIS</font><font face="宋体">、提供给</font><font face="Times New Roman">RD</font><font face="宋体">的</font><font face="Times New Roman">UT</font><font face="宋体">技术支持服务则是研发效率能力提升的另一种形式。我认为在研发效率提升方面，百度的</font><font face="Times New Roman">QA</font><font face="宋体">们担负起了最大的职责和贡献了最大的价值。因此各公司的</font><font face="Times New Roman">tester</font><font face="宋体">们如果要跳出测试价值的狭义定义，可以考虑参考百度</font><font face="Times New Roman">QA</font><font face="宋体">的工作模式，积极担负起公司研发效率提升的担子。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 10.5pt; margin-bottom: 10.5pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'">百度<font face="Times New Roman">QA</font><font face="宋体">的第四个核心价值是：百度技术部的人才</font><font face="Times New Roman">&#8220;</font><font face="宋体">黄埔军校</font><font face="Times New Roman">"</font></span><span style="font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">在很多公司测试部或质量部都是向各部门培养人才的输送部门，这是因为测试工作的综合性让很多测试者获了全面的锻炼。成为一个懂技术的产品经理，成为一个懂质量的研发人员都是测试人员转岗的优势。</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">不过在百度我看到这里的<font face="Times New Roman">QA</font><font face="宋体">在质量部内部得到了更多综合性的锻炼，不依靠转岗也能在质量部内部专注做产品研发、做产品经理。因为有的</font><font face="Times New Roman">QA</font><font face="宋体">团队本身就在做产品，承受着做产品的质量标准压力，如百度移动云</font><font face="Times New Roman">MTC</font><font face="宋体">本身就是百度移动云战略产品的一部分，百度众测也是一个完整的互联网产品，</font><font face="Times New Roman">QA</font><font face="宋体">们在其中担任起了互联网产品经理，互联网产品运营，互联网产品研发角色，能参与这些项目的</font><font face="Times New Roman">QA</font><font face="宋体">是比较幸运的，这些经历对他们未来的发展都是一次很全面的锻炼。同时前面谈到</font><font face="Times New Roman">QA</font><font face="宋体">从</font><font face="Times New Roman">MRD</font><font face="宋体">到产品发布后的全程介入工作，也使得</font><font face="Times New Roman">QA</font><font face="宋体">能掌握大多数</font><font face="Times New Roman">PM</font><font face="宋体">的技能和更深入的了解产品的完整生命周期成为</font><font face="Times New Roman">&#8220;</font><font face="宋体">半个</font><font face="Times New Roman">PM&#8221;</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">因此<font face="Times New Roman">QA</font><font face="宋体">的发展空间和路径是很广阔的，关键看自己在公司内部如何去推动，如何去影响周边团队，让自己的工作范围扩大的更多。没有人说</font><font face="Times New Roman">&#8220;</font><font face="宋体">你不能做什么？</font><font face="Times New Roman">&#8221;</font><font face="宋体">只有自己内心限制了自己</font><font face="Times New Roman">&#8220;</font><font face="宋体">不能做什么</font><font face="Times New Roman">&#8221;</font><font face="宋体">。从这点来看，百度的</font><font face="Times New Roman">QA</font><font face="宋体">玩得还挺</font><font face="Times New Roman">&#8220;</font><font face="宋体">风生水起</font><font face="Times New Roman">&#8221;</font><font face="宋体">的，希望国内其他公司的测试人员们能跳出原有思路，扩大自己的影响范围。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">原文链接：</span><a href="http://www.51testing.com/?uid-293557-action-viewspace-itemid-843680"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10.5pt; text-decoration: underline; mso-spacerun: 'yes'">上半部分</a></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp;</span><a href="http://www.51testing.com/?uid-293557-action-viewspace-itemid-843704"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10.5pt; text-decoration: underline; mso-spacerun: 'yes'">下半部分</a></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><br />
</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">思科<font face="Times New Roman">-</font><font face="宋体">网迅（中国）软件有限公司资深</font><font face="Times New Roman">QA</font><font face="宋体">总监</font></span><a href="http://weibo.com/n/朱少民"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10.5pt; text-decoration: underline; mso-spacerun: 'yes'">朱少明</a></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">点评道：</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><br />
</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="border-left: #dddddd 3pt solid; padding-bottom: 0pt; margin-top: 0pt; padding-left: 1pt; padding-right: 0pt; margin-bottom: 0pt; padding-top: 0pt; mso-border-left-alt: 3.0000pt solid #dddddd" class="p0"><span style="font-family: 'Times New Roman'; color: #777777; font-size: 10.5pt; mso-spacerun: 'yes'">第一篇的下半部分更精彩，谈到了百度<font face="Times New Roman">QA</font><font face="宋体">的四大核心价值：全流程质量保障中心、用户体验测试技术能力中心、研发效率提升能力中心和人才中心。使大家更深刻理解全程软件测试的意义，软件测试</font><font face="Times New Roman">=</font><font face="宋体">软件产品的测试，软件测试不是成本中心，它可以提高软件开发生产力。期待更具体的分享。</font></span><span style="font-family: 'Times New Roman'; color: #777777; font-size: 10.5pt; mso-spacerun: 'yes'"><br />
</span><span style="font-family: 'Times New Roman'; color: #777777; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="border-left: #dddddd 3pt solid; padding-bottom: 0pt; margin-top: 0pt; padding-left: 1pt; padding-right: 0pt; margin-bottom: 0pt; padding-top: 0pt; mso-border-left-alt: 3.0000pt solid #dddddd" class="p0"><span style="font-family: 'Times New Roman'; color: #777777; font-size: 10.5pt; mso-spacerun: 'yes'">百度测试团队这几年增加比较快，希望将来能看到百度分享一些移动测试方面、专业性很强的文章。</span><span style="font-family: 'Times New Roman'; color: #777777; font-size: 10.5pt; mso-spacerun: 'yes'"><br />
</span><span style="font-family: 'Times New Roman'; color: #777777; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<!--EndFragment--><img src ="http://www.blogjava.net/zouhui/aggbug/404745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zouhui/" target="_blank">zouhui</a> 2013-10-08 13:58 <a href="http://www.blogjava.net/zouhui/archive/2013/10/08/404745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>