﻿<?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-SmileFace-随笔分类-Quality Assurence</title><link>http://www.blogjava.net/SmileFace/category/11612.html</link><description> 与java一起走过的日子</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 15:38:20 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 15:38:20 GMT</pubDate><ttl>60</ttl><item><title>测试的几个概念区别</title><link>http://www.blogjava.net/SmileFace/archive/2006/06/03/50088.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Fri, 02 Jun 2006 17:33:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/06/03/50088.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/50088.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/06/03/50088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/50088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/50088.html</trackback:ping><description><![CDATA[
		<p>看到一篇比较好的区别几个测试概念的文章，链接如下：<br /><br /><a href="http://agiletesting.blogspot.com/2005/02/performance-vs-load-vs-stress-testing.html">http://agiletesting.blogspot.com/2005/02/performance-vs-load-vs-stress-testing.html</a><br /><br /><a href="http://agiletesting.blogspot.com/2005/04/more-on-performance-vs-load-testing.html">http://agiletesting.blogspot.com/2005/04/more-on-performance-vs-load-testing.html</a><br /><br />这里我想补充一下我的理解（基本思想来自我爱人，哈哈）：<br /><br />Performance Testing: 增加一个新的feature后，使用同样的测试环境，测试样本去测试，与baseline对比看performance的变化；<br /><br />Stress Testing: 使用尽可能多的样本，不同的样本，去测试系统，以求在最短的时间内发现系统的bug和memory leak 或者其他的问题。这里是不care样本的一致性的。<br /></p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/50088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-06-03 01:33 <a href="http://www.blogjava.net/SmileFace/archive/2006/06/03/50088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LoadRunner的实用文章</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/30/48865.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Mon, 29 May 2006 20:51:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/30/48865.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/48865.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/30/48865.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/48865.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/48865.html</trackback:ping><description><![CDATA[
		<p>今天发现了几篇使用LoadRunner的好文章，链接在这里，以备后用，哈哈<br /><br />一个英文站点，资源丰富，强烈推荐：<a href="http://www.wilsonmar.com/1loadrun.htm">http://www.wilsonmar.com/1loadrun.htm</a>  <br /><br />使用LoadRunner来测试BEA TUXEDO (LoadRunner 7.6)。 基本的使用点，简单明了，也推荐一下：<a href="http://dev2dev.bea.com.cn/techdoc/200312107.html">http://dev2dev.bea.com.cn/techdoc/200312107.html</a><br /><br /><br />Note: <br /><br />1.Virtual User Generator录制出的脚本分3部分，vuser_init、Action1、vuser_end，其中重复执行的是Action1部分，其它2部分都只执行1次</p>
		<p>2、在Controller中，Ramp Up栏控制vuser_init的运行，Duration栏控制Action1的运行，Ramp Down栏控制vuser_end的运行<br /></p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/48865.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-30 04:51 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/30/48865.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试中：每秒点击数和每秒事务数的区别</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/29/48851.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Mon, 29 May 2006 15:29:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/29/48851.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/48851.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/29/48851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/48851.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/48851.html</trackback:ping><description><![CDATA[
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
				<strong>每秒点击数和每秒事务数的区别</strong>
		</span>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事务是在脚本中定义的某个操作，而点击是在测试中产生的</span>
				<span lang="EN-US">
						<font face="Times New Roman">http</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例如，我定义了一个提交</span>
				<span lang="EN-US">
						<font face="Times New Roman">form</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的事务，我关心的也就是这个提交操作的数量与分值及响应时间的关系。而实际上这个</span>
				<span lang="EN-US">
						<font face="Times New Roman">form</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提交可能产生多个</span>
				<span lang="EN-US">
						<font face="Times New Roman">http</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求。首先提交</span>
				<span lang="EN-US">
						<font face="Times New Roman">form</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本身有一次</span>
				<span lang="EN-US">
						<font face="Times New Roman">http</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求，如果此请求被服务器端接受，则要转向到结果页面的第一个页面，又是一次</span>
				<span lang="EN-US">
						<font face="Times New Roman">http</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求，如果这个页面中含有图片的话，那么每个图片都需要通过一个</span>
				<span lang="EN-US">
						<font face="Times New Roman">http</font>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">连接来下载。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<font face="Times New Roman"> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事务产生的点击数</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">
								<font face="Times New Roman"> </font>
						</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">＝</span>
				<font face="Times New Roman">
				</font>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事务的数量＋事务的数量×事务成功概率＋事务的数量×事务成功概率×平均每个页面中含有的图片数</span>
		</p>
		<p>
				<font size="3">
						<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt">
								<span style="mso-spacerun: yes"> </span>
						</span>
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt">＝</span>
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt">
						</span>
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt">事务的数量×（</span>
						<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt">1</span>
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt">＋平均事务成功概率×（</span>
						<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt">1</span>
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt">＋平均每个页面含有的图片数））</span>
						<br />
						<br />
				</font>
		</p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/48851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-29 23:29 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/29/48851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试中的80/20原则</title><link>http://www.blogjava.net/SmileFace/archive/2006/05/29/48653.html</link><dc:creator>SmileFace</dc:creator><author>SmileFace</author><pubDate>Sun, 28 May 2006 21:40:00 GMT</pubDate><guid>http://www.blogjava.net/SmileFace/archive/2006/05/29/48653.html</guid><wfw:comment>http://www.blogjava.net/SmileFace/comments/48653.html</wfw:comment><comments>http://www.blogjava.net/SmileFace/archive/2006/05/29/48653.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SmileFace/comments/commentRss/48653.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SmileFace/services/trackbacks/48653.html</trackback:ping><description><![CDATA[
		<p>今天看了一篇文章,觉得说的很有道理,现摘录如下:<br /><br />80% 的软件缺陷常常生存在软件 20% 的空间里。这个原则告诉我们，如果你想使软件测试有效地话，记住常常光临其高危多发 “ 地段 ” 。在那里发现软件缺陷的可能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个原则很快找出较多的缺陷而愚蠢的测试人员却仍在漫无目的地到处搜寻。 </p>
		<p>80-20 原则的另外一种情况是，我们在系统分析、系统设计、系统实现阶段的复审，测试工作中能够发现和避免 80% 的软件缺陷，此后的系统测试能够帮助我们找出剩余缺陷中的 80% ，最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷，却无法保证能够发现所有的软件缺陷。 </p>
		<p>80-20 原则还能反映到软件测试的自动化方面上来，实践证明 80% 的软件缺陷可以借助人工测试而发现， 20% 的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分，因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正。 <br /><br /> 为效益而测试 </p>
		<p>为什么我们要实施软件测试，是为了提高项目的质量效益最终以提高项目的总体效益。为此我们不难得出我们在实施软件测试应该掌握的度。软件测试应该在软件测试成本和软件质量效益两者间找到一个平衡点。这个平衡点就是我们在实施软件测试时应该遵守的度。单方面的追求都必然损害软件测试存在的价值和意义。一般说来，在软件测试中我们应该尽量地保持软件测试简单性，切勿将软件测试过度复杂化，拿物理学家爱因斯坦的话说就是： Keep it simple but not too simple 。 </p>
		<p>•  缺陷的必然性 </p>
		<p>软件测试中，由于错误的关联性，并不是所有的软件缺陷都能够得以修复。某些软件缺陷虽然能够得以修复但在修复的过程中我们会难免引入新的软件缺陷。很多软件缺陷之间是相互矛盾的，一个矛盾的消失必然会引发另外一个矛盾的产生。比如我们在解决通用性的缺陷后往往会带来执行效率上的缺陷。更何况在缺陷的修复过程中，我们常常还会受时间、成本等方面的限制因此无法有效、完整地修复所有的软件缺陷。因此评估软件缺陷的重要度、影响范围，选择一个折中的方案或是从非软件的因素（比如提升硬件性能）考虑软件缺陷成为我们在面对软件缺陷时一个必须直面的事实。 </p>
		<p>•  软件测试必须有预期结果 </p>
		<p>没有预期结果的测试是不可理喻的。软件缺陷是经过对比而得出来的。这正如没有标准无法进行度量一样。如果我们事先不知道或是无法肯定预期的结果，我们必然无法了解测试正确性。这很容易然人感觉如盲人摸象一般，不少测试人员常常凭借自身的感觉去评判软件缺陷的发生，其结果往往是把似是而非的东西作为正确的结果来判断，因此常常出现误测的现象。 </p>
		<p>•  软件测试的意义 - 事后分析 </p>
		<p>软件测试的目的单单是发现缺陷这么简单吗？如果是 “ 是 ” 的话，我敢保证，类似的软件缺陷在下一次新项目的软件测试中还会发生。古语说得好， “ 不知道历史的人必然会重蹈覆辙 ” 。没有对软件测试结果进行认真的分析，我们就无法了解缺陷发生的原因和应对措施，结果是我们不得不耗费的大量的人力和物力来再次查找软件缺陷。很可惜，目前大多测试团队都没有意识到这一点，测试报告中缺乏测试结果分析这一环节。 </p>
		<p>结论： </p>
		<p>软件测试是一个需要 “ 自觉 ” 的过程，作为一个测试人员，遇事沉着，把持尺度，从根本上应对软件测试有着正确的认识，希望本文对读者对软件测试的认识有所帮助</p>
<img src ="http://www.blogjava.net/SmileFace/aggbug/48653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SmileFace/" target="_blank">SmileFace</a> 2006-05-29 05:40 <a href="http://www.blogjava.net/SmileFace/archive/2006/05/29/48653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>