﻿<?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>IT博客-我的ITblog我作主　　关注→　『伊波拉』→　测试　SzDlinXie- ITblog　　  　　   -随笔分类-测试技术杂志</title><link>http://www.cnitblog.com/szdlinxie/category/4489.html</link><description>·√·  本ITblog站点记录相关的软件技术文档、网络技术杂志、测试技术杂谈等技术文档的管理站点.联系方式：MSN：dowling@sunlike.cn   QQ:94595885</description><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 11:38:07 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 11:38:07 GMT</pubDate><ttl>60</ttl><item><title>项目进度计划方法</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48546.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 29 Aug 2008 15:19:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48546.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48546.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48546.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48546.html</trackback:ping><description><![CDATA[<p><font face=Verdana>安排进度计划的目的是为了控制时间和节约时间，而项目的主要特点之一即是有严格的时间期限要求，由此决定了进度计划在<a href="http://www.miiceic.org.cn/phrase/200604240825565.html" target=_new><u><font color=#0000ff>项目</font></u><a onclick="javascript:tagshow(event, '%B9%DC%C0%ED');" href="javascript:;" target=_self><strong><u><font color=#0000ff>管理</font></u></strong></a></a>中的重要性。</font></p>
<p><font face=Verdana>基本进度计划要说明哪些工作必须于何时完成和完成每一任务所需要的时间，但最好同时也能表示出每项活动所需要的人数。常用的制定进度计划的方法有以下几种：</font></p>
<p><font face=Verdana>①关键日期表</font></p>
<p><font face=Verdana>这是最简单的一种进度计划表，它只列出一些关键活动和进行的日期。</font></p>
<p><font face=Verdana>②甘特图</font></p>
<p><font face=Verdana>也叫做线条图或横道图。它是以横线来表示每项活动的起止时间。甘特图的优点是简单、明了、直观，易于编制，因此到目前为止仍然是小型项目中常用的<a onclick="javascript:tagshow(event, '%B9%A4%BE%DF');" href="javascript:;" target=_self><u><strong><font color=#0000ff>工具</font></strong></u></a>。即使在大型工程项目中，它也是高级管理层了解全局、基层安排进度时有用的工具。</font></p>
<p><font face=Verdana>在甘特图上，可以看出各项活动的开始和终了时间。在绘制各项活动的起止时间时，也考虑它们的先后顺序。但各项活动上间的关系却没有表示出来，同时也没有指出影响项目寿命周期的关键所在。因此，对于复杂的项目来说，甘特图就显得不足以适应。</font></p>
<p><font face=Verdana>③关键路线法（Critical Path Method，简称CPM）。</font></p>
<p><font face=Verdana>④计划评审<a onclick="javascript:tagshow(event, '%BC%BC%CA%F5');" href="javascript:;" target=_self><u><strong><font color=#0000ff>技术</font></strong></u></a>（Program Evaluation and Review Technique，简称PERT）。</font></p>
<p><font face=Verdana>CPM 和PERT是50年代后期几乎同时出现的两种计划方法。随着科学技术和生产的迅速发展，出现了许多庞大而复杂的科研和工程项日，它们工序繁多，协作面广，常常需要动用大量人力、物力、财力。因此，如何合理而有效地把它们组织起来，使之相互协调，在有限资源下，以最短的时间和最低费用，最好地完成整个项目就成为一个突出的重要问题。CPM和PERT就是在这种背景下出现的。这两种计划方法是分别独立发展起来的，但其基本原理是一致的，即用<a onclick="javascript:tagshow(event, '%CD%F8%C2%E7');" href="javascript:;" target=_self><u><strong><font color=#0000ff>网络</font></strong></u></a>图来表达项目中各项活动的进度和它们之间的相互关系，并在此<a onclick="javascript:tagshow(event, '%BB%F9%B4%A1');" href="javascript:;" target=_self><u><strong><font color=#0000ff>基础</font></strong></u></a>上，进行网络分析，计算网络中各项时间多数，确定关键活动与关键路线，利用时差不断地调整与优化网络，以求得最短周期。然后，还可将成本与资源问题考虑进去，以求得综合优化的项目计划<a onclick="javascript:tagshow(event, '%B7%BD%B0%B8');" href="javascript:;" target=_self><u><strong><font color=#0000ff>方案</font></strong></u></a>。因这两种方法都是通过网络图和相应的计算来反映整个项目的全貌，所以又叫做网络计划技术。</font></p>
<p><font face=Verdana>此外，后来还陆续提出了一些新的网络技术，如GERT（Graphical Evaluation and Review Technique，图示评审技术），VERT（Venture Evaluation and Review Technique，风险评审技术）等。</font></p>
<p><font face=Verdana>很显然，采用以上几种不同的进度计划方法本身所需的时间和费用是不同的。关键日期表编制时间最短，费用最低。甘特图所需时间要长一些，费用也高一些。CPM要把每个活动都加以分析，如活动数目较多，还需用<a href="http://www.miiceic.org.cn/phrase/200603021438435.html" target=_new><u><font color=#0000ff>计算机</font></u></a>求出总工期和关键路线，因此花费的时间和费用将更多。PERT法可以说是制订项目进度计划方法中最复杂的一种，所以花费时间和费用也最多。</font></p>
<p><font face=Verdana>应该采用哪一种进度计划方法，主要应考虑下列因素：</font></p>
<p><font face=Verdana>①项目的规模大小。很显然，小项目应采用简单的进度计划方法，大项目为了保证按期按质达到项目目标，就需考虑用较复杂的进度计划方法。</font></p>
<p><font face=Verdana>②项目的复杂程度。这里应该注意到，项目的规模并不一定总是与项目的复杂程度成正比。例如修一条公路，规模虽然不小，但并不太复杂，可以用较简单的进度计划方法。而研制一个小型的电子仪器，要很复杂的步骤和很多专业知识，可能就需要较复杂的进度计划方法。</font></p>
<p><font face=Verdana>③项目的紧急性。在项目急需进行，特别是在开始阶段，需要对各项工作发布指示，以便尽早开始工作，此时，如果用很长时间去编制进度计划，就会延误时间。</font></p>
<p><font face=Verdana>④对项目细节掌握的程度。如果在开始阶段项目的细节无法解明，CPM和PERT法就无法<a onclick="javascript:tagshow(event, '%D3%A6%D3%C3');" href="javascript:;" target=_self><u><strong><font color=#0000ff>应用</font></strong></u></a>。</font></p>
<p><font face=Verdana>⑤总进度是否由一、两项关键事项所决定。如果项目进行过程中有一、两项活动需要花费很长时间，而这期间可把其他准备工作都安排好，那么对其他工作就不必编制详细复杂的进度计划了。</font></p>
<p><font face=Verdana>⑥有无相应的技术力量和设备。例如，没有计算机，CPM和PERT进度计划方法有时就难以应用。而如果没有受过良好训练的合格的技术人员，也无法胜任用复杂的方法编制进度计划。</font></p>
<p><font face=Verdana>此外，根据情况不同，还需考虑客户的要求，能够用在进度计划上的预算等因素。到底采用哪一种方法来编制进度计划，要全面考虑以上各个因素。</font></p>
<p><font face=Verdana></font>&nbsp;</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-29 23:19 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>成功的团队管理是项目成功的基础</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48545.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 29 Aug 2008 15:15:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48545.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48545.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48545.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48545.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48545.html</trackback:ping><description><![CDATA[<p><font face=Verdana>对于许多<a onclick="javascript:tagshow(event, '%CF%EE%C4%BF');" href="javascript:;" target=_self><u><strong><font color=#0000ff>项目</font></strong></u></a>经理而言，项目<a href="http://www.miiceic.org.cn/phrase/200603082251135.html" target=_new><u><font color=#0000ff>团队</font></u></a>管理恐怕是他们所面临的最头疼的问题之一，而团队管理恰恰又是<a href="http://www.miiceic.org.cn/phrase/200604240825565.html" target=_new><u><font color=#0000ff>项目管理</font></u></a>过程中最重要的部分之一：尽管成功的团队管理不一定能保证项目的成功，但失败的团队管理必然导致项目的失败。在一个项目团队中，有各种不同的人员，他们具有不同的背景，有着不同的特长，也具有不同的性格特征。如何充分发挥每一位团队成员的积极性和特长，并保证这些积极性和特长的发挥能够与项目目标保持一致，是每位项目经理在团队管理中所必须处理好的问题。有趣的是，我们在中国的古典小说《西游记》中找到了这样一个非常生动、非常成功的案例。</p>
<p>&nbsp;&nbsp;&nbsp; 让我们来看看《西游记》中的&#8220;项目团队管理&#8221;。</p>
<p>&nbsp;&nbsp;&nbsp; 在《西游记》中，唐僧师徒四人历经千难万险，从&#8220;东土大唐&#8221;出发，最终完成&#8220;西天取经&#8221;的任务。从项目管理的眼光来看，这本身就是一个项目的<a onclick="javascript:tagshow(event, '%CA%B5%CA%A9');" href="javascript:;" target=_self><u><strong><font color=#0000ff>实施</font></strong></u></a>过程，也符合项目的一般特征，即&#8220;特定性&#8221;(项目任务为&#8220;西天取经&#8221;，项目交付物为&#8220;佛经&#8221;)和&#8220;过程性&#8221;(完成取经任务，提交项目交付物———&#8220;佛经&#8221;之后，该项目即宣告结束)。任务完成过程中的其他要素也很齐全：包括项目交付物的&#8220;受益人&#8221;(唐朝皇帝)、项目的&#8220;资助人&#8221;(如来佛祖)、项目实施过程中的支持保障体系(各位神仙)等。</p>
<p>&nbsp;&nbsp;&nbsp; 《西游记》中的&#8220;项目团队&#8221;也很符合项目团队的一般特征：唐僧师徒四人构成了项目实施团队，其团队成员有着不同背景、能力和性格特征；而唐僧这位团队领导人也面临着许多项目经理在团队管理中所面临的一般问题：</p>
<p>&nbsp;&nbsp;&nbsp; 项目团队成员并不是他自己挑选的，而是项目实施组织的管理机构指派给他的。唐僧的三个徒弟，甚至包括白龙马，都是&#8220;上级领导&#8221;观音菩萨在他出发前确定的；换句话说，他没有&#8220;选人权&#8221;。</p>
<p>&nbsp;&nbsp;&nbsp; 项目团队成员的<a onclick="javascript:tagshow(event, '%BC%BC%CA%F5');" href="javascript:;" target=_self><u><strong><font color=#0000ff>技术</font></strong></u></a>能力都强于他(至少都能腾云驾雾，论武功更是个个比他强)，都有一定的来头(原来都是天宫中大将以上职位)，个别人还有一定的管理经历(如猪八戒曾是水军元帅)。</p>
<p>&nbsp;&nbsp;&nbsp; 团队成员业务能力和工作态度各异，有业务能力强但心高气傲的(如孙悟空)，有业务能力中等但工作态度不认真、不积极，&#8220;推一下动一下&#8221;的(如猪八戒)，也有尽管勤勤恳恳、任劳任怨但业务水平较差的(如沙僧)，如何将这些人组成一个具有战斗力的团队是一个大难题。</p>
<p>&nbsp;&nbsp;&nbsp; 尽管名义上有一定的&#8220;行政权力&#8221;，如&#8220;惩罚权&#8221;(念&#8220;紧箍咒&#8221;)、&#8220;解聘权&#8221;(将徒弟撵走)等，但自己也知道缺了这些人(尤其是业务能力强但心高气傲的那位)项目就无法完成；况且&#8220;绩效考核权&#8221;和&#8220;奖励权&#8221;都在上级领导手中(取经完成后的封赏工作都是如来佛祖负责的，唐僧连&#8220;建议权&#8221;都没有)。</p>
<p>&nbsp;&nbsp;&nbsp; 但就是这位缺乏&#8220;行政权力&#8221;，&#8220;技术能力&#8221;也不强的唐僧，带着这个团队完成了常人看起来难以完成的任务。由此看来，作为&#8220;项目经理&#8221;，唐僧确实有许多值得学习之处。</p>
</font>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-29 23:15 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/29/48545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件开发项目过程中的风险管理研究</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32146.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 21 Aug 2007 07:20:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32146.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/32146.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32146.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/32146.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/32146.html</trackback:ping><description><![CDATA[&nbsp;
<table cellSpacing=0 cellPadding=0 width=535 border=0>
    <tbody>
        <tr>
            <td>
            <p align=center><strong><span>软件开发项目过程中的风险管理研究<span>[1]</span></span></strong></p>
            </td>
        </tr>
        <tr>
            <td>
            <p align=center>&nbsp;</p>
            <p align=left><span>软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现，如果项目风险变成现实，就有可能影响项目的进度，增加项目的成本，甚至使软件项目不能实现。如果对项目进行风险管理，就可以最大限度的减少风险的发生。但是，目前国内的软件企业不太关心软件项目的风险管理，结果造成软件项目经常性的延期、超过预算，甚至失败。成功的项目管理一般都对项目风险进行了良好的管理。因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。<span> </span></span></p>
            <p align=left><span>　　在项目风险管理中，存在多种风险管理方法与工具，软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中，才能尽量减少软件项目风险，促进项目的成功。</span></p>
            <p align=left><span>　　项目风险管理</span></p>
            <p align=left><span>　　项目风险管理是指为了最好的达到项目的目标，识别、分配、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使潜在机会或回报最大化，使潜在风险最小化。风险管理涉及的主要过程包括：风险识别，风险量化，风险应对计划制定和风险监控，如图<span>1</span>所示。风险识别在项目的开始时就要进行，并在项目执行中不断进行。就是说，在项目的整个生<span>?</span></span></p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p><span>（<span>1</span>）需求风险<span> </span></span></p>
<p><span>　　<span>①</span>需求已经成为项目基准，但需求还在继续变化；</span></p>
<p><span>　　<span>②</span>需求定义欠佳，而进一步的定义会扩展项目范畴；</span></p>
<p><span>　　<span>③</span>添加额外的需求；</span></p>
<p><span>　　<span>④</span>产品定义含混的部分比预期需要更多的时间；</span></p>
<p><span>　　<span>⑤</span>在做需求中客户参与不够；</span></p>
<p><span>　　<span>⑥</span>缺少有效的需求变化管理过程。</span></p>
<p><span>　　（<span>2</span>）计划编制风险</span></p>
<p><span>　　<span>①</span>计划、资源和产品定义全凭客户或上层领导口头指令，并且不完全一致；</span></p>
<p><span>　　<span>②</span>计划是优化的，是<span>"</span>最佳状态<span>"</span>，但计划不现实，只能算是<span>"</span>期望状态<span>"</span>；</span></p>
<p><span>　　<span>③</span>计划基于使用特定的小组成员，而那个特定的小组成员其实指望不上；</span></p>
<p><span>　　<span>④</span>产品规模<span>(</span>代码行数、功能点、与前一产品规模的百分比<span>)</span>比估计的要大；</span></p>
<p><span>　　<span>⑤</span>完成目标日期提前，但没有相应地调整产品范围或可用资源；</span></p>
<p><span>　　<span>⑥</span>涉足不熟悉的产品领域，花费在设计和实现上的时间比预期的要多。</span></p>
<p><span>　　（<span>3</span>）组织和管理风险</span></p>
<p><span>　　<span>①</span>仅由管理层或市场人员进行技术决策，导致计划进度缓慢，计划时间延长；</span></p>
<p><span>　　<span>②</span>低效的项目组结构降低生产率；</span></p>
<p><span>　　<span>③</span>管理层审查决策的周期比预期的时间长；</span></p>
<p><span>　　<span>④</span>预算削减，打乱项目计划；</span></p>
<p><span>　　<span>⑤</span>管理层作出了打击项目组织积极性的决定；</span></p>
<p><span>　　<span>⑥</span>缺乏必要的规范，导致工作失误与重复工作；</span></p>
<p><span>　　<span>⑦</span>非技术的第三方的工作<span>(</span>预算批准、设备采购批准、法律方面的审查、安全保证等<span>)</span>时间比预期的延长。</span></p>
<p><span>　　（<span>4</span>）人员风险</span></p>
<p><span>　　<span>①</span>作为先决条件的任务<span>(</span>如培训及其他项目<span>)</span>不能按时完成；</span></p>
<p><span>　　<span>②</span>开发人员和管理层之间关系不佳，导致决策缓慢，影响全局；</span></p>
<p><span>　　<span>③</span>缺乏激励措施，士气低下，降低了生产能力；</span></p>
<p><span>　　<span>④</span>某些人员需要更多的时间适应还不熟悉的软件工具和环境；</span></p>
<p><span>　　<span>⑤</span>项目后期加入新的开发人员，需进行培训并逐渐与现有成员沟通，从而使现有成员的工作效率降低；</span></p>
<p><span>　　<span>⑥</span>由于项目组成员之间发生冲突，导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作；</span></p>
<p><span>　　<span>⑦</span>不适应工作的成员没有调离项目组，影响了项目组其他成员的积极性；</span></p>
<p><span>　　<span>⑧</span>没有找到项目急需的具有特定技能的人。</span></p>
<p>&nbsp;</p>
<p><span>（<span>5</span>）开发环境风险<span> </span></span></p>
<p><span>　　<span>①</span>设施未及时到位；</span></p>
<p><span>　　<span>②</span>设施虽到位，但不配套，如没有电话、网线、办公用品等；</span></p>
<p><span>　　<span>③</span>设施拥挤、杂乱或者破损；</span></p>
<p><span>　　<span>④</span>开发工具未及时到位；</span></p>
<p><span>　　<span>⑤</span>开发工具不如期望的那样有效，开发人员需要时间创建工作环境或者切换新的工具；</span></p>
<p><span>　　<span>⑥</span>新的开发工具的学习期比预期的长，内容繁多。</span></p>
<p><span>　　（<span>6</span>）客户风险</span></p>
<p><span>　　<span>①</span>客户对于最后交付的产品不满意，要求重新设计和重做；</span></p>
<p><span>　　<span>②</span>客户的意见未被采纳，造成产品最终无法满足用户要求，因而必须重做；</span></p>
<p><span>　　<span>③</span>客户对规划、原型和规格的审核决策周期比预期的要长；</span></p>
<p><span>　　<span>④</span>客户没有或不能参与规划、原型和规格阶段的审核，导致需求不稳定和产品生产周期的变更；</span></p>
<p><span>　　<span>⑤</span>客户答复的时间<span>(</span>如回答或澄清与需求相关问题的时间<span>)</span>比预期长；</span></p>
<p><span>　　<span>⑥</span>客户提供的组件质量欠佳，导致额外的测试、设计和集成工作，以及额外的客户关系管理工作。</span></p>
<p><span>　　（<span>7</span>）产品风险</span></p>
<p><span>　　<span>①</span>矫正质量低下的不可接受的产品，需要比预期更多的测试、设计和实现工作；</span></p>
<p><span>　　<span>②</span>开发额外的不需要的功能<span>(</span>镀金<span>)</span>，延长了计划进度；</span></p>
<p><span>　　<span>③</span>严格要求与现有系统兼容，需要进行比预期更多的测试、设计和实现工作；</span></p>
<p><span>　　<span>④</span>要求与其他系统或不受本项目组控制的系统相连，导致无法预料的设计、实现和测试工作；</span></p>
<p><span>　　<span>⑤</span>在不熟悉或未经检验的软件和硬件环境中运行所产生的未预料到的问题；</span></p>
<p><span>　　<span>⑥</span>开发一种全新的模块将比预期花费更长的时间；</span></p>
<p><span>　　<span>⑦</span>依赖正在开发中的技术将延长计划进度。<span> </span></span></p>
<p><span>　　（<span>8</span>）设计和实现风险</span></p>
<p><span>　　<span>①</span>设计质量低下，导致重复设计；</span></p>
<span>　　</span><span>②</span><span>一些必要的功能无法使用现有的代码和库实现，开发人员必须使用新的库或者自行开发新的功能</span>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/32146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-08-21 15:20 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试风险的管理</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/06/10/28280.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Sun, 10 Jun 2007 01:17:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/06/10/28280.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/28280.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/06/10/28280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/28280.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/28280.html</trackback:ping><description><![CDATA[&nbsp;
<p align=left><span><a href="javascript:;" target=_self><strong><span><span>测试</span></span></strong></a></span><span>风险是不可避免的、总是存在的，所以对测试风险的管理非常重要，必须尽力降低测试中所存在的风险，最大程度地保证质量和满足客户的需求。在测试<span><a href="javascript:;" target=_self><strong><span><span>工作</span></span></strong></a></span>中，主要的风险有：<span> </span></span></p>
<p align=left><span>&nbsp;&nbsp;&nbsp; </span><span>一、质量需求或产品的特性理解不准确，造成测试范围分析的误差，结果某些地方始终测试不到或验证的标准不对；<span> <br>&nbsp;&nbsp;&nbsp; </span>二、<span><a href="javascript:;" target=_self><strong><span><span>测试用例</span></span></strong></a></span>没有得到百分之百的执行，如有些测试用例被有意或无意的遗漏；<span> <br>&nbsp;&nbsp;&nbsp; </span>三、需求的临时<span>/</span>突然变化，导致设计的修改和代码的重写，测试时间不够；<span> <br>&nbsp;&nbsp;&nbsp; </span>四、质量标准不都是很清晰的，如适用性的测试，仁者见仁、智者见智；<span> <br>&nbsp;&nbsp;&nbsp; </span>五、测试用例设计不到位，忽视了一些边界条件、深层次的逻辑、用户场景等；<span> <br>&nbsp;&nbsp;&nbsp; </span>六、测试环境，一般不可能和实际运行环境完全一致，造成测试结果的误差；<span> <br>&nbsp;&nbsp;&nbsp; </span>七、有些缺陷出现频率不是百分之百，不容易被发现；如果代码质量差，软件缺陷很多，被漏检的缺陷可能性就大；<span> <br>&nbsp;&nbsp;&nbsp; </span>八、回归测试一般不运行全部测试用例，是有选择性的执行，必然带来风险。<span> </span></span></p>
<p align=left><span>&nbsp;&nbsp;&nbsp; </span><span>前面三种风险是可以避免的，而四至七的四种风险是不能避免的，可以降到最低。最后一种回归测试风险是可以避免，但出于时间或成本的考虑，一般也是存在的。<span><br>&nbsp;&nbsp;&nbsp; </span>针对上述<span><a href="javascript:;" target=_self><strong><span><span>软件测试</span></span></strong></a></span>的风险，有一些有效的测试风险控制方法，如：</span></p>
<p align=left><span>&nbsp;&nbsp;&nbsp; </span><span>&#183;</span><span>测试环境不对可以通过事先列出要检查的所有条目，在测试环境设置好后，由<span><a href="javascript:;" target=_self><strong><span><span>其他</span></span></strong></a></span>人员按已列出条目逐条检查；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>有些测试风险可能带来的后果非常严重，能否将它转化为其他一些不会引起严重后果的低风险。如产品发布前夕，在某个不是很重要的新功能上发现一个严重的缺陷，如果修正这个缺陷，很有可能引起某个原有功能上的缺陷。这时处理这个缺陷所带来的风险就很大，对策是去掉<span>(Diasble)</span>那个新功能，转移这种风险；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>有些风险不可避免，就设法降低风险，如<span>&#8220;</span>程序中未发现的缺陷<span>&#8221;</span>这种风险总是存在，我们就要通过提高测试用例的覆盖率（如达到<span>99.9%</span>）来降低这种风险；<span> </span></span></p>
<p align=left><span>&nbsp;&nbsp;&nbsp; </span><span>为了避免、转移或降低风险，事先要做好风险管理计划和控制风险的策略，并对风险的处理还要制定一些应急的、有效的处理方案，如：</span></p>
<p align=left><span>&nbsp;&nbsp;&nbsp; </span><span>&#183;</span><span>在做资源、时间、成本等估算时，要留有余地，不要用到<span>100%</span>；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>在项目开始前，把一些环节或边界上的可能会有变化、难以控制的因素列入风险管理计划中；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>对每个关键性技术人员培养后备人员，作好人员流动的准备，采取一些措施确保人员一旦离开公司，<span>&nbsp;&nbsp;&nbsp; </span>项目不会受到严重影响，仍能可以继续下去；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>制定文档标准，并建立一种机制，保证文档及时产生；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>对所有工作多进行互相审查，及时发现问题，包括对不同的测试人员在不同的测试模块上相互调换；<span>&nbsp;<br>&nbsp;&nbsp;&nbsp; </span></span><span>&#183;</span><span>对所有过程进行日常跟踪，及时发现风险出现的征兆，避免风险。</span><span> </span></p>
<p align=left><span>&nbsp;&nbsp;&nbsp; </span><span>要想真正回避风险，就必须彻底改变测试项目的管理方式；针对测试的各种风险，建立一种<span>&#8220;</span>防患于未然<span>&#8221;</span>或<span>&#8220;</span>以预防为主<span>&#8221;</span>的管理意识。与传统的软件测试相比，全过程测试管理方式不仅可以有效降低产品的质量风险，而且还可以提前对软件产品缺陷进行规避、缩短对缺陷的反馈周期和整个项目的测试周期。</span></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/28280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-06-10 09:17 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/06/10/28280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rational Suite Enterprise2002---系统测试解决方案</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 21 May 2007 06:10:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/27370.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/27370.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/27370.html</trackback:ping><description><![CDATA[Rational Suite Enterprise2002<br>系统测试解决方案V 1.0<br><br>Rational 系统测试解决方案 目录<br>- I -<br>目录<br>第一章 整体解决方案.................................................................................................................................. 1<br>第二章 产品线简介...................................................................................................................................... 3<br>2.1 测试管理........................................................................................................................................ 3<br>2.2 调用和功能测试............................................................................................................................. 3<br>2.3 运行时分析.................................................................................................................................... 3<br>2.4 功能测试........................................................................................................................................ 3<br>2.5 微软开发环境的功能测试............................................................................................................. 3<br>2.6 针对X-Windows和终端应用的衰减和调用测试......................................................................... 3<br>2.7 变更影响跟踪................................................................................................................................ 3<br>第三章 具体产品简介.................................................................................................................................. 4<br>3.1 TestManager.................................................................................................................................. 4<br>3.1.1 获得需求变更对于测试的影响........................................................................................... 4<br>3.1.2 让整个团队获得信息共享访问......................................................................................... 4<br>3.1.3 独立性和集成性................................................................................................................. 4<br>3.2 TeamTest........................................................................................................................................ 4<br>3.2.1 提高应用程序质量............................................................................................................. 4<br>3.2.2 重复功能性测试................................................................................................................. 4<br>3.2.3 量化的性能测试................................................................................................................. 4<br>3.2.4 集成测试管理..................................................................................................................... 4<br>3.3 PurifyPlus.................................................................................................................................... 5<br>3.3.1 Features and Benefits................................................................................................... 5<br>3.3.2 已支持环境......................................................................................................................... 5<br>3.3.3 注册.................................................................................................................................... 5<br>3.4 Robot.............................................................................................................................................. 5<br>3.4.1 降低测试用时提高效率..................................................................................................... 5<br>3.4.2 Rational Robot的性能.................................................................................................... 5<br>3.5 Visual Test.................................................................................................................................. 6<br>3.6 prevue............................................................................................................................................ 6<br>3.6.1 自动化脚本生成................................................................................................................. 6<br>3.6.2 非插入性测试..................................................................................................................... 6<br>3.6.3 全面的测试结果................................................................................................................. 6<br>3.7 ClearQuest.................................................................................................................................... 6<br>3.7.1 缺陷和变更跟踪工具-- Rational ClearQuest ............................................................. 6<br>3.7.2 配合你的工作方式............................................................................................................. 6<br>3.7.3 针对整个生命周期的变更跟踪......................................................................................... 6<br>3.7.4 设计一次就可以到处使用................................................................................................. 7<br>3.7.5 将分散的团队整合起来..................................................................................................... 7<br>Rational 系统测试解决方案 整体解决方案<br>- 1 -<br>第一章 整体解决方案<br>TestStudio 是Rational Suite Enterprise的系统测试工具组, 提供了针对可靠性测试, 功能<br>测试, 分布式功能测试, 衰减测试, 单元测试和CS的调用测试, 网页应用测试和ERP应用测试的自<br>动化解决方案. 它提供了一个同开发无缝集成的测试过程, 软件配置管理和测试管理三方面的支<br>持，提高了测试质量和最终的产品质量.<br>针对嵌入式-实时-基于网络的应用产品, Rational提供了实时测试套件. 它提供了针对目标主<br>机的测试, 代码覆盖措施, 内存泄漏检测和性能记录等方面的自动化功能.<br>在开发下一代应用程序软件的激烈竞赛中，企业所面临的压力越来越大，需要在更短时间内开<br>发出更高质量的产品，即我们称之为&#8220;软件开发矛盾&#8221;的两难境地。过去，企业通常以质量为代价<br>或推迟开发某些新功能，来满足产品的面市期限。如今，这些企业认识到：要想生存，就必须在第<br>一时间内既快又好地开发出应用程序。也就是说，开发团队中的每位成员都必须以保证产品质量为<br>己任。Rational Suite TestStudio v2002 可以使企业在Internet 时代，通过交付高质量的应用<br>程序，帮助他们解决软件开发的矛盾。<br>Rational Suite TestStudio 提供了一种集成测试解决方案，使测试人员就产品的功能、可靠<br>性和性能，进行全方位的质量测试。它包括一整套自动化测试和缺陷跟踪工具，以及Rational 团<br>队统一平台(Rational Team Unifying Platform)。该平台通过提供对项目需求、变更请求、测试资<br>料及其他数据的共享，提高了团队的工作效率。通过Rational 软件开发服务机构提供的支持，<br>Rational Suite TestStudio 可以帮助开发团队加速应用程序的开发和实施。<br>功能测试，可以确保应用程序满足产品规格说明和测试计划的每一条业务需求。Rational Suite<br>TestStudio 的目标，是使功能测试变得更简单、有效并可重复执行。为便于这种基于需求的测试，<br>它还提供了Rational RequisitePro.（获奖的需求管理工具）和Rational Robot（创建和维护功能<br>测试脚本的业界领先工具）。<br>Rational Robot 可以对在各种独立开发环境(IDE) 中开发的应用程序，创建、修改并执行功能<br>测试、分布式功能测试、回归测试以及整合测试。它还可以记录并回放能识别业务应用程序对象的<br>测试脚本。除此之外，使用Rational Robot 还可以快速有效地跟踪、报告与质量保证测试相关的<br>所有信息，并将这些信息绘制成图表。使用Rational Suite TestStudio 集成工具包， 可以在一<br>个测试周期中，将Rational Robot 的回归测试与Rational Purify. 结合使用完成可靠性测试，与<br>Rational PureCoverage. 结合使用完成代码覆盖计算，与Rational Quantify. 结合使用完成应用<br>程序性能测试。通过将优化的回归测试脚本与该工具化的测试方式相结合， Rational Suite<br>TestStudio 使可靠性及功能回归测试达到了前所未有的水平。<br>Rational Suite TestStudio 通过Rational TestFactory. 使可靠性测试自动化，该工具可以<br>自动找出应用程序中的缺陷。Rational TestFactory 将在自动认知用户界面的基础上， 创建测试<br>流程对应用程序进行严格的测试。基于这一点，它首先为要测试的应用程序构建元素图，然后自动<br>测试其中的每个元素。它可以找出所有的程序缺陷，例如，运行时错误（如挂起和异常）或设计缺<br>陷（如对话框按钮缺少快捷键）。对于每一个缺陷，TestFactory 都会创建相应的脚本将其重现。随<br>后，测试人员在Rational ClearQuest.（全面集成的变更与缺陷管理系统）中报告缺陷，确保将这<br>些缺陷被正确地跟踪并修正。<br>通过确定哪些功能测试脚本会受到代码变更的影响，Rational TestFactory 可以加速并简化回<br>归测试。这样，测试人员可以快速找到所做的修改，并且运行最少的脚本，即可对开发人员所做的<br>任何修改进行全面测试。<br>Rational Suite TestStudio 提供三种级别的诊断信息，开发人员可以对导致性能不佳的业务<br>事务处理、底层客户端调用和系统资源进行分析， 来找出产生性能瓶颈的原因。例如，Rational<br>Suite TestStudio 性能测试可以帮助测试人员确定，何时可通过增加系统内存或提高CPU 速度来<br>Rational 系统测试解决方案 整体解决方案<br>- 2 -<br>优化后端服务器，还可以找出，导致性能问题的客户端、中间层或服务器端代码所在的特定区域。<br>性能测试的准确性取决于测试工具根据实际用户负载情况调节测试负载，以及通过模拟实际工<br>作负载时间进度情况创建负载的能力。使用Rational Suite TestStudio，不必编程就可以迅速制<br>定综合的使用方案来模拟用户组活动，并创建工作负载计划。在给定时间内，通过指定虚拟用户群<br>提交事务处理的数量和类型， Rational Suite TestStudio 可以准确控制事务处理的速度。而且，<br>Rational Suite TestStudio 可以将功能测试与负载测试集于一身，便于测试人员设置后端服务器<br>的负载规模，同时使用同一个计划对客户端进行功能测试。<br>Rational 系统测试解决方案 产品线简介<br>- 3 -<br>第二章 产品线简介<br>2.1 测试管理<br>Rational TestManager 从一个独立的,全局的角度对于各种测试活动进行管理和控制. 它让测<br>试者可以随时了解需求变更对于测试用例的影响, 通过针对一致目标而进行的测试与报告提高了团<br>队生产力.<br>2.2 调用和功能测试<br>Rational TeamTest 提供了功能, 分布式功能, 衰减, 客户-服务器应用调用, 网页和ERP应用<br>的自动化测试解决方案. 通过跟踪和测试管理可以降低团队开发和配置的风险.<br>2.3 运行时分析<br>Rational PurifyPlus 工具集对于开发期间的单元测试实现了自动化, 确保了可靠性, 高性能<br>和高质量. 包括三个独立工具:<br>l Rational Purify<br>定位内存泄漏和运行时错误<br>l Rational Quantify<br>寻找性能瓶颈<br>l Rational PureCoverage<br>表示了未测试代码和提供代码覆盖分析<br>2.4 功能测试<br>Rational Robot 是一个针对WEB, ERP 和C/S 进行功能自动化测试的工具. 它可以降低功能测<br>试上的人力和物力的投入和风险包括了可见和非可见对象.<br>2.5 微软开发环境的功能测试<br>Rational Visual Test则是针对Windows应用程序的功能测试的自动化工具. 它可以直接针对<br>微软的可视化开发环境使用可复用, 可维护和可扩展的测试脚本, 降低了开发高质量软件的花费.<br>2.6 针对X-Windows和终端应用的衰减和调用测试<br>Rational preVue 是一个针对企业级别的基于X-Windows 和终端应用的自动化测试工具. 它们<br>降低了发布风险, 投入并且提高了用户的满意程度.<br>2.7 变更影响跟踪<br>Rational ClearQuest 是一个可以使用于任意平台上各种类型的项目的需求跟踪和变更调整工<br>具.<br>Rational 系统测试解决方案 具体产品简介<br>- 4 -<br>第三章 具体产品简介<br>3.1 TestManager<br>Rational TestManager用来从各个方面进行测试管理:<br>* 测试计划<br>* 测试设计<br>* 测试实现<br>* 测试执行<br>* 结果分析<br>Rational TestManager 可以处理针对测试的计划, 执行和结果数据收集-甚至包括使用第三方<br>的测试工具.使用Rational TestManager, 测试者可以通过创建, 维护或引用测试用例来组织自己<br>的测试计划, 包括来自外部稳定, 模块, 需求变更请求和Excel 电子表格的数据.<br>3.1.1 获得需求变更对于测试的影响<br>Rational TestManager 一个主要功能就是通过自动跟踪整个项目的质量和需求状态来分析所<br>造成的针对测试用例的影响, 由此成为整个软件团队的项目状态的数据集散中心.<br>3.1.2 让整个团队获得信息共享访问<br>QA 或者QE 经理, 商业分析师, 开发者和测试者使用Rational TestManager 都恶意获得基于<br>他们自己特定角度的测试结构数据, 并且利用这些数据对于他们的工作进行决策. Rational<br>TestManager 在整个项目生命周期内为团队提供了持续地面向测试计划目标的状态和进度跟踪.<br>3.1.3 独立性和集成性<br>Rational TestManager 在Rational Suite TestStudio 中作为一个独立组件存在. 我们也可以<br>配合Rational TeamTest 和Rational Robot 使用.作为一个集成的解决方案套件, Rational<br>TestManager 可以和Rational 的其他产品很好的连接各种产品的输入的即时跟踪, 诸如: Rational<br>RequisitePro 需求组件, Rational Rose系统分析模型, 和Rational ClearQuest 需求变更. 它的<br>开发式API可以让测试者为不同输入类型制作接口配件.<br>3.2 TeamTest<br>3.2.1 提高应用程序质量<br>Rational(r) TeamTest为开发中的项目提供了功能和性能的自动化, 高效率以及可重复的测试,<br>测试管理和跟踪能力. 测试者不仅可以降低配置应用的风险, 还减少了测试用时使得整个团队的生<br>产力得到提高.<br>3.2.2 重复功能性测试<br>Rational TeamTest 让测试者可以长剑和维护强壮的, 可重复的测试脚本进行功能-分布式功能<br>-衰减-冒烟测试, 可以集成在大多数开发环境当中, 和Rational Robot 一样, 它使用了<br>Object-Testing(r)技术.<br>3.2.3 量化的性能测试<br>测试者可以设计并执行高度量化的性能测试来模拟现实世界当中的真是情景. Rational<br>TeamTest使得不用编程就可以建立复杂的用例场景; 并且产生很有条理的报告显示性能问题的根源<br>所在.<br>3.2.4 集成测试管理<br>Rational TestManager 是一个Rational TeamTest集成组件, 是测试者的工作平台, 是一个有<br>力的, 开放式的可扩展环境来管理相关测试工作. 测试者使用Rational TestManager进行计划, 设<br>计和实现, 执行并且升级功能测试和性能测试; 并且Rational ClearQuest 负责根据相应的变更进<br>行跟踪.<br>Rational 系统测试解决方案 具体产品简介<br>- 5 -<br>3.3 PurifyPlus<br>Rational PurifyPlus是一个完整的自动化运行时分析工具, 用来提高应用程序的性能和质量.<br>它为哪些需要进行创建和配置可靠的应用程序的开发者设计, 支持Unix平台的C/C++, 和Java, 以<br>及Windows平台上的VC/C++, C#, VB.NET, VB .PurifyPlus for Windows 对于Java 的服务器端和<br>客户端提供一样的支持. 安装在你的WEB服务器上面以后, 你可以针对在服务器诸如IBM WebSphere,<br>BEA WebLogic 和Apache Jakarta Tomcat 上的Java Server Pages (JSPs)和Java servlets 使用<br>PurifyPlus.Rational PurifyPlus 由Rational Purify, Quantify 和 PureCoverage 组<br>成.PurifyPlus为Windows/UNIX开发者提高了生产力, 因为它完全集成在进程当中. 它不要求重新<br>编译目标应用程序, 不会降低你的进度. PurifyPlus 帮助你可视化的执行代码, 提供便于理解和可<br>重复信息, 可以结合或者独立于源代码-包括各种第三方组件.<br>3.3.1 Features and Benefits<br>* Rational Purify用来探测内存泄漏和代码错误.<br>* Rational Quantify 用来发现性能瓶颈.<br>* Rational PureCoverage 用来标识未测试代码.<br>3.3.2 已支持环境<br>* Rational PurifyPlus for Windows<br>Windows 2000 or NT 4.0 or above (including Japanese Windows NT 4.0)<br>Visual Studio 6.0<br>Rational PurifyPlus for UNIX<br>Sun Solaris 2.5.1, 2.6, 7, 8<br>Forte 6, Update 2, and GCC 2.95.2<br>HP-UX 10.20, 11.0, 11.11<br>HP cc/aCC, GCC 2.95.3 and GNUPro 98r2<br>Compaq Tru64 UNIX V4.0F patch 4, 4.0G patch 1, V5.0A, V5.1<br>Compaq C, CompaqCH (for Tru64 UNIX V4.0F, C or C++ prior to V6.2 supported with patch<br>CxxREDIST 621<br>3.3.3 注册<br>* Windows版本适用于nodelocked 或者floating注册方式<br>* UNIX 版本适用于named user或者floating注册方式<br>* 注册使用Globetrotter Software's FLEXlm license manager<br>3.4 Robot<br>3.4.1 降低测试用时提高效率<br>Rational Robot 是一个面向对象的工具让你可以创建, 修改和实现自动化进行功能, 衰减, 冒<br>烟测试. Rational TestManager 和Rational SiteCheck包含于Rational Robot, 让你实现测试的<br>各方面数据的团队共享, 给你一个面向站点的强壮性工具: 实现网站链接管理, 站点监视等功能.<br>3.4.2 Rational Robot的性能<br>仅仅通过鼠标就可以实现GUI 和各个属性的测试.<br>* 可以识别和记录以及重复测试各种应用程序中的对象.<br>* 跟踪, 报告和图形化你的测试进程的信息<br>* 检测以及修改你的网站的各个元素的问题<br>* 在记录的时候检查和修改测试脚本<br>* 对于多重平台使用同样测试脚本<br>Rational Robot 支持各种环境和语言, 包括HTML和DHMTL, Java, Microsoft Visual Basic and<br>Visual C++, Oracle Developer/2000, Delphi, SAP, PeopleSoft, 和Sybase PowerBuilder.<br>Rational 系统测试解决方案 具体产品简介<br>- 6 -<br>3.5 Visual Test<br>Rational Visual Test(r) 6.5 是专门为微软的视窗应用程序的开发者和测试者开发的自动化<br>功能测试工具, 并且可以和Microsoft Visual C++很好地集成. Rational Visual Test 让开发者和<br>测试者便利地组织程序.<br>特性和收益<br>* 支持Microsoft J++ WFC Controls<br>* 更好的Winfo工具<br>* 更好的套件管理者<br>* 将一个项目的所有文件批处理进入p-code<br>* 支持多监视器<br>* 新的activeX过程<br>* 新的ActiveX/Web过程<br>* 新的RUNEX 函数<br>* 新的MSI-based 安装器<br>3.6 prevue<br>Rational(r) preVue是针对X&amp;终端应用的测试解决方案, 让使用者降低测试投入和提高客户满<br>意程度. Rational preVue利用软件脚本模拟用户或者相关硬件行为, 实现自动化功能和衰减测试,<br>并以量化和图形化形式提交测试数据报告.<br>3.6.1 自动化脚本生成<br>Rational preVue 利用测试脚本记录或者"偷拍"用户和应用程序之间的交互合执行, 便于你可<br>以验证你的应用程序在各种调用方式下的性能及可靠性.<br>3.6.2 非插入性测试<br>使用Rational preVue 不需要额外负担. 针对目标应用程序不需要定制函数库或者修改. 该"<br>黑盒"方式允许你可以实现平台无关的X&amp;终端程序的测试.<br>3.6.3 全面的测试结果<br>Rational preVue 使用专业的报告, 图片和日志保存测试结果. 图片帮助你及早发现微小的质<br>量和性能问题, 使得它们没有机会暴露给最终用户.<br>* Rational preVue-X<br>X Window测试工具, 可以在任何X Window 环境中使用.<br>* Rational preVue-ASCII<br>远程终端模拟器, 模拟用户操作应用程序进行多用户自动化测试. Rational preVue-ASCII 支持<br>UNIX, MS Windows NT, MVS, 或者VMS 等系统的终端应用程序测试.<br>3.7 ClearQuest<br>3.7.1 缺陷和变更跟踪工具-- Rational ClearQuest<br>Rational(r) ClearQuest(r)缺陷跟踪工具是目前最具扩展性的系统. 不管你的开发团队的大<br>小和地理分布, 不管他们使用的平台--Windows, Unix或者Web--Rational ClearQuest都能实现高<br>效率地捕获, 跟踪和管理任意类型的变更. 你可以选择配置或者选择一个合适的模板配合你的过程.<br>配合企业数据库, ClearQuest 可以针对各种尺寸的项目. 同其他开发解决方案的集成确保所有团队<br>成员同缺陷/变更跟踪过程绑定.<br>3.7.2 配合你的工作方式<br>不同的组织使用不同的过程处理软件缺陷, 需求变更何其他修改结果. Rational ClearQuest<br>提供针对大多数组织的过程和允许你定制自己的过程.<br>3.7.3 针对整个生命周期的变更跟踪<br>开发当中的每一个人都不仅需要了解变更在特定层面上造成的影响, 也需要理解对于整个项目<br>Rational 系统测试解决方案 具体产品简介<br>- 7 -<br>的影响. 使用Rational ClearQuest 你可以在整个项目的生命周期中跟踪缺陷和需求变更, 分配工<br>作活动和访问项目的真实状态.<br>3.7.4 设计一次就可以到处使用<br>不管你的开发团队大小和他们的地理分布, 不管他们使用的平台, Rational ClearQuest 都可<br>以实现变更的捕获, 跟踪和管理. 用户化仅仅需要一次, 然后即可以发布到Windows, UNIX, Web 的<br>客户层面. ClearQuest 支持好几种企业数据库. 当你的组织成长的时候, ClearQuest 将和你一起成<br>长.<br>3.7.5 将分散的团队整合起来<br>基于被验证的Rational ClearCase MultiSite 技术, ClearQuest MultiSite 是一个针对<br>Rational ClearQuest 的选项, 支持针对地理上分布的站点的同步发展.
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/27370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-05-21 14:10 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IP网络的测试方法</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21584.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Jan 2007 13:41:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21584.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/21584.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/21584.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/21584.html</trackback:ping><description><![CDATA[
		<font size="2">随着IP附应用时及和深入,IP网络的建设、维护和故障诊断面临着巨大的挑战:网络的规模越来越大、组成网络的设备越来越复杂、在网络中运行的软件系统越来越庞大、网络承载的业务越来越多.<br /><br />　　网络测试是保证网络高性能、高可靠性和高可用率的基本手段,它在IP网络建设和发展中的重要意义正得到日益广泛的认可。<br /><br />网络测试<br /><br />　　网络是一个很复杂的系统,通常人们把网络分为不同的层次予以简化。在网络测试中,我们可以把网络分为3个不同的层次:设备层、系统层和应用层,因此网络测试正是轩对这3个层次来进行的。<br /><br />　　网络设备测试主要包括功能测试、性能测试、一致性和互通性测试等几个方面。网络系统测试包括物理连通性、基本功能和一致性的测试、网络系统的规划验证测试、性能测试、流量测试和模型化等。网络应用测试是测试网络系统支持各种应用的能力。完整的网络测试包含完成上述3个层次的所有测试。<br /><br />　　网络测试主要包括测试方法、测试工具和测试经验等3个方面的内容。无论是测试方法的设计、测试工具的发明和运用还是测试经验的积累,都有很高的技术要求,其中测试方法是核心。网络测试的方法和手段因测试的目的而有所不同。典型的网络设备测试的方法有2种:第一种方法是使用网络测试设备单独对产品进行测试;第二种方法是将设备放在具体的网络环境中,通过分析该产品在网络中的行为对其进行测试,这种网络环境多数是用仿真的方式实现的。测试工具主要有线缆测试仪、协议分析仪和网络智能分析仪等。实际的网络在设备、拓扑、管理维护等各方面千差万别,可能出现的问题也是五花八门的,测试人员除了要掌握必须的网络知识外,还需要有丰富的系统集成和现场测试的经验。<br /><br />　　网络系统的建设一般经历规划、设计、部署、运行和升级五个阶段。网络测试应贯穿其中的每个阶段。由于技术或者经济的原因,实际网络测试的应用和理论上还有较大的差距。无论从经济的角度还是从时间的角度来看,用户都很难自己来完成所有的测试。用户在选购设备时可以参照由设备提供商提供的第三方测试机构对其设备的测试报告,依据测试报告和自身的需求选择设备。在网络设计施工完成之后,应该由施工单位以外的测试机构对网络进行网络系统测试,以检验工程质量。最后在试运行阶段对网络承载业务和应用的能力进行测试,即进行网络的应用测试。但是,我国网络测试起点较低,虽然已经成立,了多家开展网络测试的机构,但至今还没有形成相对比较权威的网络测试机构,我国的网络测试技术和市场都有待发展。<br /><br />IP网络的测试技术<br /><br />　　IP网络测试和上述所有的网络测试一样,包括对网络设备层、系统层和应用层的测试。与其它网络测试不同的是:(1)IP网络中的设备与电信网中的设备在性能、安全性和稳定性方面有较大的区别,它们原先更多的是用于计算机互联的设备;(2)IP网络是IP网络测试的目标,它的网络层协议采用IP协议,IP协议并不保证网络数据的可靠性,它采用“尽力而为”的方式转发数据包;(3)IP网络以传输数据业务为主,业务高很高的突发性,IP网络几乎可以承载任何业务,因此网络应用层的测试比较复杂。<br /><br />IP网络设备测试<br /><br />　　我们就以太网交换机的测试为例说明具体的网络设备测试。<br /><br />　　首先要分析交换机的物理特性,即对诸如外观(包括颜色、重量、尺寸和包装等)、端口配置、扩展能力等用户可以直接了解的设备信息的测试,主要的测试方法是目测。这些参数和交换机本身的功能和性能没有关系,但是对用户来说则很重要,将直接影响用户对设备的评价。一款颜色:搭配不和谐、尺寸很大的交换机,显然不会成为用户优先选择的目标。<br /><br />　　进一步的测试需要一台带有收发端口的测试仪。测试仪与被测交换机有两种连接方法。<br /><br />　　在第二种连接方式下,如果测试仪(发送)和测试仪(接收)之间没有计算机的控制,则无法完成部分精度要求较高的测试项和在发送与接收之间有时间或逻辑关系要求的测试顶,如流量测试等。<br /><br />　　在测试仪与被测设备连接完成以后,在开始测试之前,还要首先配置被测的交换机,包括对软件和硬件的配置,特别是配置交换机支持的协议并予以激活。<br /><br />　　首先是对交换机进行功能测试,目的是检测设备是否能够完成交换机这类设备所应具备的功能,如帧的转发、过滤、流量控制、VLAN、生成树协议等。<br /><br />　　接着进行性能测试,目的是了解交换机完成各项功能时的性能情况。交换机性能测试的参数包括吞吐量、时延、帧丢失率、处理背靠背数据帧的能力、地址缓冲容量、地址学习速率等。RFC1242和RFC2285分别定义了网络互联设备和LAN交换设备测试的基准术语,RFC2544和RFC2889则分别定义了网络互联设备和LAN交换设备测试的基准方法。这几个RFC是测试网络设备时参考的标准。<br /><br />　　完成上述测试之后,需要进行一致性和互通性测试,以验证交换机是否符合各项规范的要求，包括协议的一致性，确保交换机和其他的网络设备进行互联时不会出现问题。<br /><br />　　对交换机设备的测试最终应提供一份完整的测试报告，测试报告对在这次测试中的测试对象、测试工具、测试环境、测试内容、测试结果等进行详细论述。测试报告中包括对各测试项目的测试结果，应以数字、图形、列表等方式记录下来。完整、客观的设备测试报告是购买设备的重要参考。<br /><br />IP网络系统测试<br /><br />　　IP网络系统测试的第一步是了解所测网络的状况，包括网络所属单位的情况、网络设备情况、网络主要应用、使用该网络的人员情况、网络中存在的问题等等。对网络状况的调查可以明确测试的对象、目的、要求等，为制定详细的测试方案做好准备，对网络设备的调查可以为所测网络建立详细的网络文档。网络文档的内容包括网络拓扑结构图,路由器和交换机的生产厂家、型号、内部参数配置,服务器和工作陆的生产厂家、型号、内存、硬盘、网卡的序列号和MAC地址等,IP地址、防火墙和操作系统参数配置等。<br /><br />　　了解了网络基本状况后,就可以根据测试要求拟定详细的测试方案。<br /><br />　　物理连通性、基本功能和一致性的测试是最基本的网络系统测试内容,其中主要是线缆测试,用以查明所测线缆及布线是否符合设计要求和国际标准。如果线缆的安装不符合各类标准,就应该绘出具体的各种类型电缆管脚的连接图。<br /><br />　　模拟和仿真是规划验证测试的两个基本手段。模拟即用软件的方法建立虚拟的网络系统及其运行模型,通过设置配置参数模拟实际环境下的网络运行,并给出对该网络的评价。仿真则是建立真实的试验环境来模拟实际的网络运行。模拟和仿真对大型网络的规划设计很有意义,它可以在网络实际建设之前了解网络的特性,或者发现规划设计中的缺陷,大大降低网络建设的风险。但是模拟和仿真本身需要许多资金和时间,因此在网络建设中各单位会参照具体情况来决定是否要做这项测试。<br /><br />　　性能测试可以分为被动测试和主动测试。被动测试就是用仪表监测网络中的数据,通过分析采集到的数据判断网络性能状况。被动测试在不影响网络正常工作的情况下测试。主动测试通过向网络中发送特定的数据包来分析网络系统的性能。不论是被动测试还是主动测试,都需从网络中采集数据。一个IP网络系统可以分为物理层、数据链路层、网络层和应用层。IP网络系统的性能测试应该分别针对物理层、数据链路层和网络层进行。如以太网,物理层的测试包括碰撞分析、错误统计和是否有随机能量、无格式的帧和信号回波等,数据链路层的测试包括流量分析、错误帧(FCS错误帧、长帧、短帧和延迟碰撞)统计等,网络层的测试包括响应时间测试、网络层协议分析、IP路由分析等。<br /><br />　　流量测试和模型化的工作有利于提高整个网络的运行效率,其中涉及到运用一些很深的数学工具和丰富的网络经验,许多关键技术还有待研究。<br /><br />IP网络应用测试<br /><br />　　完成IP网络设备测试和系统测试之后就可以在网络上加载各种应用,各种网络应用的性能水平与网络的类型、网络本身的性能有直接关系。IP网络应用测试是IP网络测试中最高层次的测试内容,主要测试IP网络对应用的支持水平,如网络应用的性能和服务质量的测试等。另外,IP网络应用测试和网络应用本身直接相关,对于不同的网络应用,有不同的测试内容和测试方法。在部署VoIP时,需要测试网络中的交换机和路由器设备能否有效地支持语音流量和语音QoS等,在测试用于视频传输的网络时,需要测试视频传输在IP网络中的性能以及网络用户是否能够得到满意的视频质量等</font>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/21584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-01-05 21:41 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设定时间让脚本自动运行</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Jan 2007 13:40:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/21583.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/21583.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/21583.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#000066">
						<font size="2">主要功能：实现每天都对数据库</font>
						<font size="2">进行备份</font>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2">由于WR没有定时自动运行脚本</font>
						<font size="2">的功能，但与TD结合便可以实现。使用的WR版本为7.0，具体实现如下：</font>
				</font>
		</p>
		<p>
				<font color="#000066" size="2">1、设置WR与TD连接。</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 1.1启动WR，在settings--&gt;general options菜单下的environment中勾选"Allow TestDirector to run tests remotely"，之后保存。</font>
						<a href="http://blog.51testing.com/batch.download.php?aid=774" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117060.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font color="#000066">
						<font size="2"> 1.2选择菜单功能tools--&gt;TestDirector Connection,进行设置，指定TD服务器，连接指定的project。具体设置如图</font>
						<a href="http://blog.51testing.com/batch.download.php?aid=775" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117061.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font color="#000066" size="2">2、TD相关操作</font>
		</p>
		<p>
				<font color="#000066" size="2"> 2.1下载XRunnerTestDirector.exe插件。</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 2.2登陆TD，在test plan页面中新加一个测试</font>
						<font size="2">用例，修改type为WR-AUTOMATED.之后点到test scrīpt页签，点击copy from，选择脚本，导入。脚本就成功的导入了。其中脚本调用了其它两个子脚本，WR会跟据所指路径自动去读取，并且在脚本中已添加了加载map的语句。</font>
				</font>
		</p>
		<p>
				<font color="#000066" size="2"> 2.3切到test lab页面，新建test,然后执行"Add Tests to Test Set"功能如图wrltd6.jpg</font>
		</p>
		<p>
				<font color="#000066" size="2">
						<a href="http://blog.51testing.com/batch.download.php?aid=776" target="_blank">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061230/1117062.jpg" border="0" />
						</a>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2">添加刚才test plan中指定的test.添加成功后如图wrltd7.jpg<br /></font>
						<a href="http://blog.51testing.com/batch.download.php?aid=779" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="WIDTH: 400px; CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117063.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 2.4设置执行时间。见图wrltd7.jpg切到Execution Flow页签，设置时间。如图wrltd5.jpg.</font>
						<a href="http://blog.51testing.com/batch.download.php?aid=777" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="WIDTH: 400px; CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117064.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 2.5点击wrltd5.JPg中的RUN按钮，弹出窗口"Execution of...窗口",点击run按钮,所有操作到这儿就完成了.如图wrltd6.jpg所示状态，脚本处于等待状态，等到设定的时间，TD会自动打开WR程序，并开始执行脚本。<br /></font>
						<a href="http://blog.51testing.com/batch.download.php?aid=778" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="WIDTH: 400px; CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117065.jpg" border="0" />
								</font>
						</a>
						<br />
						<br />
				</font>
		</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/21583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-01-05 21:40 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QTP中设置共享对象库</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Jan 2007 13:38:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/21582.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/21582.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/21582.html</trackback:ping><description><![CDATA[
		<font size="2">很多时候我们总是觉得管理QTP的脚本比较烦.因为除了要对代码的管理之外，还要保证QTP对象库的完整．每一个用例脚本的生成，同时又都会生成一个对象库．那么是不是可以做一个公共的对象库来给各个用例脚本调用呢？接下来，我们就来实现共享对象库的应用．</font>
		<p>
		</p>
		<p>
				<font size="2">　　<strong>第一步：把需要加到共享对象库中的各个用例脚本的对象库，分别导出成．tsr文件．</strong></font>
		</p>
		<p>
				<font size="2">　　操作方法:先用QTP打开已经录制完毕的脚本后，选择Resources－－＞ Object Repository ．</font>
		</p>
		<p>
				<font size="2">　　然后file--&gt;export....取名导出文件．如下图：</font>
		</p>
		<p>
				<font size="2">　　　　　　　　　　　</font>
				<a href="http://blog.51testing.com/batch.download.php?aid=784" target="_blank">
						<font size="2">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061231/1143410.jpg" border="0" />
						</font>
				</a>
		</p>
		<p>
				<font size="2">　　<strong>第二步：把需要加入到共享对象库中的各个用例脚本的对象库，合并对象及对象属性，形成一个大的共享对象库．</strong></font>
		</p>
		<p>
				<font size="2">　　操作方法:打开Resources－－＞Object Repository Manager．找到Tools菜单，然后选择打开Object Repository merge tool.选择两个要合并的对象库文件，进行对象合并．一次只能合并两个．所以如果这里你要合并多个对象库文件的话，先合并两个后，保存成一个新的．tsr文件．然后再重复上面的操作，选择这个新的．tsr文件和另一个准备好的对象库合并．如下图：</font>
		</p>
		<p>
				<font size="2">　　　　　　　　　</font>
				<a href="http://blog.51testing.com/batch.download.php?aid=785" target="_blank">
						<font size="2">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061231/1143411.jpg" border="0" />
						</font>
				</a>
		</p>
		<p>
				<font size="2">　　合并的时候，你会发现，在两个对象库文件中，相同的对象合并成一个，不同的对象，全部被完整增加进去．然后形成一个大的对象库．现在只要保存这个共享对象库．如果以后有新增的对象，可以重复上述操作．</font>
		</p>
		<p>
				<font size="2">　　<strong>第三步：调用上面保存好的共享对象库．给新的脚本使用．</strong></font>
		</p>
		<p>
				<font size="2">
						<strong>　　</strong>操作步骤：Resources－－＞Associate Repository．选择上面保存好的共享对象库的．tsr文件．加入到Associate Repository中．如下图：</font>
		</p>
		<p>
				<font size="2">　　</font>
				<a href="http://blog.51testing.com/batch.download.php?aid=787" target="_blank">
						<font size="2">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061231/1143412.jpg" border="0" />
						</font>
				</a>
		</p>
		<p>
				<font size="2">　　完成这一步后，其实整个共享对象库的操作已经完成．你在对象库中可以看到以后的对象．在录制新脚本的时候，如果对象已经存在，就不会再被记录，只有在这个对象库中没有的对象才会被记录进去．回放脚本，对象识别成功．</font>
		</p>
		<p>
				<strong>
						<font size="2">（注：此操作只适合与装有QTP9.0的版本．对于8.2版本不适合）</font>
				</strong>
		</p>
		<p>
				<strong>
						<font size="2">附：8.2版本中的共享对象库操作</font>
				</strong>
		</p>
		<div style="FONT-SIZE: 12px">
				<font size="2">QTP8.2的共享方法<br />1. 选择“测试”&gt;“设置”&gt;“资源”选项卡。<br />2. 在“对象库类型”区域，“共享”。<br />请指定要用作对象库文件的共享对象库文件。要指定文件，请输入对象库文件名，或单击浏览按钮并从“打开”对话框中选择资源文件。要新建共享对象库文件，请在“共享”框中输入新文件名。<br />对象库文件的默认文件扩展名是 .tsr，但是文件可能使用任何扩展名。在“打开”对话框中浏览现有对象库文件时，在“文件类型”框中选择“所有文件”。 <br />3. 注：请在新测试开始录制前进行设置，已有测试的对象库模式不能进行修改。</font>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/21582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-01-05 21:38 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rational Robot 创建测试脚本</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20902.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 03:16:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20902.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20902.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20902.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20902.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20902.html</trackback:ping><description><![CDATA[
		<strong>
				<font color="#000066">Rational Robot 创建测试脚本<br /><h3><font size="3">目的</font></h3><p>        本工具向导说明了如何使用 Rational Robot<sup><sup>TM</sup></sup> 来记录测试脚本以及在记录脚本之后如何通过编辑脚本对其进行扩展。</p><p>相关的 Rational Unified Process 活动： 
</p><ul><li>活动：实施测试中的“记录或通过编程创建测试脚本”部分 </li></ul><h3><font size="3">概述</font></h3><p>本工具向导适用于 Microsoft Windows 95/98/NT 4.0。</p><p>要使用 Robot 来记录和扩展脚本，请执行以下步骤： 
</p><ol><li>在 Robot 中记录脚本。 
</li><li>插入核实点。 
</li><li>必要时编辑测试脚本。 
</li><li>回放脚本。 
</li><li>在 LogViewer 中查看结果。 
</li><li>用比较器分析核实点结果。 </li></ol><h3><font size="3">1. 在 Robot 中记录脚本 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font></h3><p>当您记录脚本时，Robot 会记录以下内容： 
</p><ul><li>您与所测试的应用程序进行交互时执行的操作。这些用户操作包括帮助您在应用程序中浏览的击键和鼠标点击操作。 
</li><li>您创建用来获取和保存有关特定对象信息的核实点。核实点是您在脚本中创建的一个点，用来确定跨多个工作版本的对象的状态和行为。在记录过程中，核实点获取对象的信息并将其存储为基线。而在回放过程中，核实点将再次获取对象信息，并将该信息与基线进行比较。 </li></ul><p>记录的脚本为所测试的应用程序建立预期行为的基线。得到应用程序的修订工作版本之后，您便可以回放脚本，根据已建立的基线对应用程序的新工作版本进行测试，这样做占用的时间只是手工测试所需时间的一小部分。</p><p>在记录和回放过程中，Robot 面向对象的记录技术在 Windows 层检查所测试应用程序中的对象。因此，脚本的回放通常并不依赖于屏幕的绝对坐标。面向对象的记录技术使脚本不受用户界面微小变化的影响，从而简化了脚本的维护。</p><p>要记录新脚本，请执行以下步骤：</p><center><table cellpadding="5" width="85%" border="0"><tbody><tr><td valign="top" align="right" width="33">1.</td><td width="558">在 TestManager 中输入测试脚本属性，准备记录测试脚本。请参见“工具向导：使用 Rational TestManager™ 获取确定和结构化测试过程的结果“。</td></tr><tr><td valign="top" align="right" width="33">2.</td><td width="558">通过设置记录选项来准备测试环境。请参见“工具向导：在 Rational Robot 中设置测试环境“。</td></tr><tr><td valign="top" align="right" width="33"></td><td width="558">启动所测试的应用程序。（或者，您也可以在开始记录之后，单击 Robot 中的 <b>Insert &gt; Start Application</b> 来启动所测试的应用程序。）</td></tr><tr><td valign="top" align="right" width="33">3.</td><td width="558">单击 Robot 工具栏上的 <strong>Record GUI Script</strong> 按钮。</td></tr><tr><td valign="top" align="right" width="33">4.</td><td width="558">键入一个名称（最长为 40 个字符）或从列表中进行选择。</td></tr><tr><td valign="top" align="right" width="33">5.</td><td width="558">列出的脚本在 TestManager 中已有定义或已在 Robot 中记录。</td></tr><tr><td valign="top" align="right" width="33">6.</td><td width="558">要改变记录选项，请单击 <b>Options</b>。完成后，单击 <b>OK</b>。</td></tr><tr><td valign="top" align="right" width="33">7.</td><td width="558">如果您选择了一个以前已定义或已记录的脚本，可以通过单击 <b>Properties</b> 来改变其属性。完成后，单击 <b>OK</b>。</td></tr><tr><td valign="top" align="right" width="33">8.</td><td width="558">单击 <b>OK</b> 开始记录。将出现以下事件：</td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>如果您选择了一个已记录的脚本，Robot 会询问您是否要覆盖它。单击 Yes。（如果在现有的 GUI 脚本上进行记录，该脚本文件会被覆盖，但所有现有的属性将适用于新脚本。） </li></ul></td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>Robot 最小化（默认行为）。 </li></ul></td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>出现浮动的 GUI Record 工具栏。使用此工具栏，您可以暂停或停止记录、重新显示 Robot 或向脚本中添加功能部件。 </li></ul></td></tr><tr><td valign="top" align="right" width="33">9.</td><td width="558">通过执行过程中确定的操作来执行测试过程，同时插入必要的功能部件（例如核实点、注释和定时器）。有关详细信息，请参见 Robot 联机帮助。</td></tr><tr><td valign="top" align="right" width="33">10.</td><td width="558">如果必要，可以从“面向对象的记录”切换到低层记录。</td></tr><tr><td valign="top" align="right" width="33">11.</td><td width="558">“面向对象的记录”检查所测试应用程序中的 Windows GUI 对象和其他对象，不依赖于精确的计时或屏幕坐标。而低层记录则利用屏幕坐标和精确的计时来跟踪每次鼠标的移动和键盘操作。</td></tr><tr><td valign="top" align="right" width="33">12.</td><td width="558">完成后，单击 GUI Record 工具栏上的 <strong>Stop Recording</strong> 按钮。将出现以下事件：</td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>所记录的脚本出现在 Robot 主窗口中一个 Script 窗口内。 </li></ul></td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>此脚本中的核实点（如果有的话）显示在左侧的 Asset 窗格中。 </li></ul></td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>此脚本的文本显示在右侧的 Script 窗格中。 </li></ul></td></tr><tr><td valign="top" align="right" width="33"></td><td width="558"><ul><li>当编译或回放脚本时，编译结果将显示在 Output 窗口的 Build 选项卡中。 </li></ul></td></tr><tr><td valign="top" align="right" width="33">13.</td><td width="558">单击 <strong>File &gt; Properties</strong> 是另一种设置脚本属性的方法。</td></tr></tbody></table></center><center><br /></center><center><h3 align="left">2. <a name="heading of tool step two"><u>插入核实点</u></a><a href="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/toolment/robot/tm_imtst.htm#Top"><img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></a></h3></center><p align="left">要在记录或编辑脚本时插入核实点，请执行以下步骤： 
</p><center><ol><li><div align="left">进行以下操作之一： </div></li></ol></center><blockquote><ul><li><div align="left">如果要进行记录，单击 GUI Record 工具栏上的 Display GUI Insert Toolbar 按钮。 </div></li><li><div align="left">如果要进行编辑，在脚本中定位指针并单击 Standard 工具栏上的 Display GUI Insert Toolbar 按钮。 </div></li></ul></blockquote><div align="center"><ol start="2"><li><div align="left">单击 GUI Insert 工具栏上的核实点按钮。 </div><p align="left">核实点依照其类型命名（如果脚本中有多个同一类型的核实点，名称中还应该有一个数字）。</p></li><li><div align="left">对名称进行适当的编辑。 </div></li><li><div align="left">设置等待状态选项（此操作可选）。 </div></li><li><div align="left">设置预期结果选项（此操作可选）。 </div></li><li><div align="left">单击 OK。<br /></div></li><li><div align="left">如果提示您选择一个对象，请将对象定位工具拖动到所需的对象上，然后松开鼠标左键，这样便可以选中该对象。或者，还可以通过单击 Browse 按钮从对象列表中选择对象。选择了所需的对象之后，单击 OK。 </div></li></ol></div><p align="left">有关详细信息，请参见 Robot 联机帮助和 Using Rational Robot 手册中的 Creating Verification Points in GUI Scripts 一章。</p><h3 align="left">3. <a name="step three"><u>必要时编辑测试脚本</u></a><a href="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/toolment/robot/tm_imtst.htm#Top"><img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></a></h3><p align="left">可以手工更改脚本的文本或添加新的功能部件来编辑现有的脚本。例如，您可以： 
</p><ul><li><div align="left">编辑脚本的文本（删除行、移动文本等） </div></li><li><div align="left">向现有的脚本添加新的用户操作（选择菜单命令、单击按钮等） </div></li><li><div align="left">向现有的脚本添加新的功能部件（添加核实点、注释等） </div></li><li><div align="left">转至带有编译器错误的行（转至特定的行号、查找下一个错误等） </div></li></ul><p align="left">有关详细信息，请参见 Robot 联机帮助和 Using Rational Robot 手册中的 Editing, Compiling, and Debugging Scripts 一章。</p><h3 align="left">4. <a name="step four"><u>回放脚本</u></a><a href="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/toolment/robot/tm_imtst.htm#Top"><img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></a></h3><p align="left">回放脚本时，Robot 会重复您所记录的操作并自动进行软件测试。与手工测试相比，自动测试可以使您对应用程序的每一个新的工作版本进行更快、更完全的测试。这不但可以缩短测试时间，而且可以扩大测试覆盖面并保持整体的一致性。</p><p align="left">脚本回放一般有两个阶段： 
</p><ul><li><div align="left">测试实施 - 使用所测试的应用程序的同一个工作版本（与您用来记录的工作版本相同），回放脚本来检查它们是否按预期的方式工作。这样即可为所测试的应用程序核实其预期行为的基线。 </div></li><li><div align="left">测试执行和回归 - 回放脚本，将所测试的应用程序的最新工作版本和在测试实施过程中建立的基线进行比较。测试过程中对所有测试脚本的回放可以说明从上一个工作版本之后该应用程序中出现的所有不同之处。通过对这些不同之处进行评估，可以确定它们是实际缺陷还是有意变更。 </div></li></ul><p align="left">在进行回放之前，如果一个脚本在上一次运行之后已经发生变化，Robot 将对其进行自动编译。</p><p align="left">有关为脚本回放准备测试环境的详细信息，请参见“工具向导：在 Rational Robot 中设置测试环境“。</p><p align="left">要回放脚本，请执行以下步骤： 
</p><ol><li><div align="left">单击工具栏上的 Playback Script 按钮。将出现 Playback 对话框。 </div></li><li><div align="left">键入一个脚本名或从列表中选择一个脚本。 </div><p align="left">查询将决定列表中出现哪些名称和字段。如果要改变列表，可以从 Query 下拉列表中选择查询。通过这种方法可以在 TestManager 中创建新查询。</p></li><li><div align="left">如果要改变 Playback 选项，请单击 Options。完成后，单击 OK。有关 Playback 选项的详细信息，请参见“工具向导：在 Rational Robot 中设置测试环境“。</div></li></ol><ol start="4"><li><div align="left">单击 OK 继续下一步。 </div></li><li><div align="left">如果出现 Specify Log Information 对话框，则进行以下操作： </div></li></ol><blockquote><ul><li><div align="left">从列表中选择一个工作版本。如果要创建新的工作版本，请单击右侧的“Build”按钮。也可以使用 TestManager 来创建工作版本。 </div></li><li><div align="left">从列表中选择一个日志文件夹。要创建新的日志文件夹，请单击右侧的 Log Folder 按钮。也可以使用 TestManager 来创建日志文件夹。 </div></li><li><div align="left">接受默认的日志名（同于脚本的名称），或者键入新名称。 </div></li><li><div align="left">单击 OK。 </div></li></ul></blockquote><ol start="6"><li><div align="left">如果出现提示信息，询问您是否要覆盖该日志，请单击 Yes。 </div></li></ol><p align="left">注：如果要停止回放脚本，请按 F11 键。只有当回放面向对象的命令时，才可以在 Robot 中使用 F11 键。在低层操作中，F11 键不能停止回放。<br /><br /></p><h3 align="left">5. <a name="step five"><u>在 LogViewer 中查看结果</u></a><a href="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/toolment/robot/tm_imtst.htm#Top"><img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></a></h3><p align="left">回放结束后，使用 Rational LogViewer 来查看回放结果，包括核实点故障、过程故障、异常中止和任何其他回放信息。</p><p align="left">要控制日志信息和 LogViewer 的显示，您可以在 UI Playback Options 对话框的 Log 选项卡中设置选项。 
</p><ul><li><div align="left">要用回放结果来更新储存库，请选择 <b>Output playback results to log</b>。单击要输出到日志的细节量。 </div></li><li><div align="left">要在回放之后自动显示 LogViewer，请选择 <b>View log after playback</b>。 </div></li></ul><p align="left">如果未选择该选项，您可以在回放结束后通过单击 <b>Tools &gt; Rational Test &gt; LogViewer</b> 来显示 LogViewer。</p><p align="left">如果测试脚本的回放导致了任何错误，必须找出形成这一错误的具体原因。</p><p align="left">包含错误的脚本在 LogViewer 的 <strong>Results</strong> 列中用 <strong>Fail</strong>（在红色框中）或 <strong>Warning</strong>（在黄色框中）进行标识。需要处理以下几类错误：致命错误、脚本错误和核实点故障。致命错误通常要求对测试环境进行调查并解决故障。而脚本错误通常要求维护测试脚本。核实点故障（在测试实施过程中）通常要求改变核实点参数，或指出所测试应用程序的理想状态在记录脚本和回放脚本时有什么不同。有关分析核实点的内容，请参见下一部分。</p><p align="left">可以在 <strong>Log Event Properties</strong> 窗口中查看有关错误状态的其他信息。单击<b> View &gt; Log Event Properties</b>，打开此窗口。选择<strong> Results </strong>选项卡将显示错误的说明和有关所遇到错误类型的其他信息。</p><p align="left">对于每个出现故障（或警告）的脚本，复审有关该故障的信息，并在必要的情况下编辑测试脚本（请参见前面的第 3 部分：必要时编辑测试脚本）。在 LogViewer 中单击<b> View &gt; Script</b> 可以打开测试脚本（和 Robot）。</p><p align="left">完成脚本编辑之后，应将环境重设为适当的初始值（请参见“工具向导：在 Rational Robot 中设置测试环境“）并重新执行测试（<font size="3">回放脚本）。</font></p><h3 align="left">6. <a name="step six"><u>用比较器分析核实点结果</u></a><img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></h3><p align="left">使用比较器来分析核实点结果。要从 LogViewer 打开比较器，请执行以下步骤: 
</p><ol><li><div align="left">在 Log Event 列中，双击一个核实点。出现相应的 Comparator 对话框窗口。也可以从 Robot 打开比较器，方法是双击 Asset 窗格中的核实点。但是，如果使用这种方法打开比较器，您只能查看基线文件。<br /></div></li><li><div align="left">基线和实际结果之间的差别会突出显示出来。 </div></li><li><div align="left">复审这些差别并确定适当的操作过程，包括：<br />（注：根据核实点类型的不同，可执行的操作也有所不同） </div></li></ol><blockquote><ul><li><div align="left">将属性复制到基线 - 复制当前的单个实际属性并覆盖基线属性。 </div></li><li><div align="left">将所有属性复制到基线 - 复制所有实际属性值并覆盖所有基线属性。 </div></li><li><div align="left">通过双击属性（菜单、值等）再输入一个不同的值，对单个属性（菜单、值等）进行编辑。 </div></li><li><div align="left">编辑属性列表（以此来确定核实点应当使用的属性）。 </div></li><li><div align="left">创建/修改掩码。 </div></li></ul></blockquote><ol start="4"><li><div align="left">进行了适当的更改之后，单击 <strong>Exit</strong> 按钮来关闭比较器并保存所做的更改。 </div></li></ol><p align="left">编辑完脚本和/或核实点之后，应该将环境重设为适当的初始值（请参见工具向导：在 Rational Robot 中设置测试环境）并重新执行测试（<font size="3">回放脚本）。</font></p></font>
		</strong>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20902.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 11:16 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20902.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rational Robot中设置测试环境</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 03:14:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20901.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20901.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20901.html</trackback:ping><description><![CDATA[
		<font color="#000066">
				<strong>Rational Robot中设置测试环境<br /></strong>
				<h3>
						<font size="3">目的</font>
				</h3>
				<p>
						<strong>本工具向导说明了如何在 Rational Robot<sup><sup>TM</sup></sup> 中设置测试环境。</strong>
				</p>
				<p>
						<strong>相关的 Rational Unified Process 活动： </strong>
				</p>
				<ul>
						<li>
								<strong>活动：实施测试中的“记录或通过编程创建测试脚本”部分 </strong>
						</li>
						<li>
								<strong>活动：执行测试中的“执行测试过程和/或测试脚本”部分 </strong>
						</li>
				</ul>
				<h3>
						<font size="3">概述</font>
				</h3>
				<p>
						<strong>本工具向导适用于 Microsoft Windows 95/98/NT 4.0。</strong>
				</p>
				<p>
						<strong>要使用 Robot 来设置测试环境，请执行以下步骤： </strong>
				</p>
				<ol>
						<ol>
								<li>
										<strong>设置测试环境以进行记录、编辑或测试脚本回放。 </strong>
								</li>
								<li>
										<strong>设置 GUI 脚本记录选项。 </strong>
								</li>
								<li>
										<strong>设置 GUI 脚本回放选项。 </strong>
								</li>
						</ol>
				</ol>
				<h3>
						<font size="3">1. 设置测试环境以进行记录、编辑或测试脚本回放 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font>
				</h3>
				<p>
						<strong>Windows 环境和您所测试的应用程序的状态会影响脚本的回放。如果所记录的环境和回放环境之间存在差异，回放就会出现问题。</strong>
				</p>
				<p>
						<strong>在记录或编辑测试脚本之前，确保您所测试的应用程序和所有其他软件（在测试环境中）都处于适当的初始状态。另外，在执行测试（回放测试脚本）之前，请保证所测试的应用程序和所有其他软件都处于记录/编辑该测试脚本时所处的初始状态。当您开始回放脚本时，记录脚本时处于打开、激活或显示状态的所有应用程序和窗口应该仍处于打开、激活或显示状态。此外，确保所有相关的网络设置、现用数据库和系统内存处于同记录脚本时相同的状态。</strong>
				</p>
				<p>
						<strong>回放测试脚本时，确保您设置了适当的回放选项，其中包括 Robot 应该如何处理意外活动窗口以及如何从脚本命令错误中恢复（请参见下一部分）。</strong>
				</p>
				<h3>
						<font size="3">2. 设置 GUI 脚本记录选项 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font>
				</h3>
				<p>
						<strong>GUI 脚本记录选项指示 Robot 在记录测试脚本时，应如何处理某些对象、鼠标拖动、窗口设置、对象内容和 Robot 窗口。</strong>
				</p>
				<p>
						<strong>要设置 GUI 脚本记录选项，请执行以下步骤： </strong>
				</p>
				<ol>
						<li>
								<strong>执行以下操作之一来显示 GUI Record Options 对话框： </strong>
						</li>
				</ol>
				<blockquote>
						<ul>
								<li>
										<strong>开始记录之前，请单击 Tools &gt; GUI Record Options。 </strong>
								</li>
								<li>
										<strong>单击工具栏上的 Record Script 按钮，开始记录。在 Record 对话框中，单击 Options。 </strong>
								</li>
						</ul>
				</blockquote>
				<ol start="2">
						<li>
								<strong>设置每个选项卡上的选项。有关各选项卡的详细信息，请参见 Using Rational Robot 手册中的 Setting GUI Record Options 一章或参见 Robot 联机帮助。 </strong>
						</li>
				</ol>
				<blockquote>
						<p>
								<strong>General - 指定 Robot 如何确定/识别列表和菜单内容，以及不支持的鼠标拖动。另外，在此选项卡中，您还可以指定：用于脚本自动命名的前缀、是否让 Robot 来保存和恢复活动窗口的大小和位置、是否记录思考时间、是否记录按下回车键后的延迟。Robot Window</strong> - 指定记录测试脚本时 Robot 窗口的显示方式。该选项卡还使用户可以指定热键，用来隐藏/重新显示 Robot 窗口，以及在面向对象的记录模式和低层记录模式之间进行切换。<strong>Object Recognition Order</strong> - 用于在记录之前或记录过程中，改变个别对象类型的对象识别方法优先级。</p>
				</blockquote>
				<p>
						<strong>有关如何记录脚本的详细信息，请参见工具向导：使用 Rational Robot™<sup><sup></sup></sup> 创建测试脚本。</strong>
				</p>
				<h3>
						<font size="3">3. 设置 GUI 脚本回放选项 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font>
				</h3>
				<p>
						<strong>GUI 脚本回放选项指示 Robot 如何回放 GUI 脚本。您既可以在回放之前，也可以在回放过程开始时设置这些选项。</strong>
				</p>
				<p>
						<strong>要设置 GUI 回放选项，请执行以下步骤： </strong>
				</p>
				<ol>
						<li>
								<strong>执行以下操作之一来显示 GUI Playback Options 对话框： </strong>
						</li>
				</ol>
				<blockquote>
						<ul>
								<li>
										<strong>开始回放之前，请单击 Tools &gt; GUI Playback Options。 </strong>
								</li>
								<li>
										<strong>单击工具栏上的 Playback Script 按钮，开始回放。在 Playback 对话框中，单击 Options。 </strong>
								</li>
						</ul>
				</blockquote>
				<ol start="2">
						<li>
								<strong>设置每个选项卡上的选项。有关各选项卡的详细信息，请参见 Using Rational Robot 手册中的 Setting GUI Playback Options 一章或参见 Robot 联机帮助。 </strong>
								<p>
										<strong>Playback</strong> - 指定命令和击键之间的延迟、是否使用记录的思考时间和键入延迟、是否跳过核实点、是否显示确认结果对话框，以及回放过程中 Robot 窗口中出现的内容。有关详细信息，请单击对话框中的 Help 按钮。<strong>Log</strong> - 指定日志中保存的结果、回放后是否显示日志、是否要在覆盖日志之前得到提示、以及是使用默认日志信息还是使用您提供的信息。<strong></strong></p>
								<p>Caption Matching - 指定 Robot 如何匹配记录过程中所记录的窗口标题和回放过程中发现的标题。有关详细信息，请单击对话框中的 Help 按钮。</p>
								<b>
										<p>Wait State</p>
								</b> - 指定回放时的默认重试和超时值。<b><p>Unexpected Active Windows</p></b> - 指定 Robot 应该如何响应意外的活动窗口。<b><p>Error Recovery</p></b> - 指定在脚本回放时，Robot 如何从脚本命令错误和核实点故障中恢复。<b><p>Trap</p></b> - 指定 Trap 实用程序应该记录的有关回放过程中常见保护故障的信息和恢复方法。</li>
						<li>单击 <b>OK</b>。 
<ol></ol><p>有关如何回放脚本的详细信息，请参见工具向导：使用 Rational Robot™<sup><sup></sup></sup> 执行测试。</p></li>
				</ol>
		</font>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 11:14 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用TestDirector的测试管理的流程</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20899.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 02:55:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20899.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20899.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20899.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20899.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20899.html</trackback:ping><description><![CDATA[
		<div align="center">
				<strong>
						<font color="#000066" size="3">用TestDirector的测试管理的流程<br /></font>
				</strong>
		</div>
		<div class="home01" align="left">TestDirector的测试管理包括如下四个阶段： </div>
		<p class="home01" align="left">　　需求定义（Specify Requirements）：分析应用程序并确定测试需求。</p>
		<p class="home01" align="left">　　测试计划（Plan Tests）：基于测试需求，建立测试计划。</p>
		<p class="home01" align="left">　　测试执行（Execute Tests）：创建测试集（Test Set）并执行测试。</p>
		<p class="home01" align="left">　　缺陷跟踪（Track Defects）：报告程序中产生的缺陷并跟踪缺陷修复的全过程。</p>
		<p class="home01" align="left">　　贯穿测试的每一个阶段，你能够通过产生详细的报告和图标对数据进行分析。</p>
		<p class="home01" align="left">1.2需求定义（Specify Requirements）<br />　　分析应用程序并确定测试需求。</p>
		<p class="home01" align="left">　　定义测试范围（Define Testing Scope）：检查应用程序文档，并确定测试范围——测试目的、目标和策略。</p>
		<p class="home01" align="left">　　创建需求（Create Requirements）：创建需求树（Requirements Tree），并确定它涵盖所有的测试需求。</p>
		<p class="home01" align="left">　　描述需求（Detail Requirements）：为“需求树”中的每一个需求主题建立了一个详细的目录，并描述每一个需求，给它分配一个优先级，如有必要的话还可以加上附件。</p>
		<p class="home01" align="left">　　分析需求（Analyze Requirements）：产生报告和图表来帮助你分析测试需求，并检查需求以确保它们在你的测试范围内。</p>
		<p class="home01" align="left"> </p>
		<p class="home01" align="left">1.3测试计划（Planning Tests）<br />　　基于已定义的测试需求，创建相应的测试计划。</p>
		<p class="home01" align="left">　　定义测试策略（Define Testing Strategy）：检查应用程序、系统环境和测试资源，并确认测试目标。</p>
		<p class="home01" align="left">　　定义测试主题（Define Test Subject）：将应用程序基于模块和功能进行划分，并对应到各个测试单元或主题，构建测试计划树（Test Plan Tree）。</p>
		<p class="home01" align="left">　　定义测试（Define Tests）：定义每个模块的测试类型，并为每一个测试添加基本的说明。</p>
		<p class="home01" align="left">　　创建需求覆盖（Create Requirements Coverage）：将每一个测试与测试需求进行连接。</p>
		<p class="home01" align="left">　　设计测试步骤（Design Test Steps）：对于每一个测试，先决定其要进行的测试类型（手动测试和自动测试），若准备进行手动测试，需要为其在测试计划树上添加相应的测试步骤（Test Steps）。测试步骤描述测试的详细操作、检查点和每个测试的预期结果。</p>
		<p class="home01" align="left">　　自动测试（Automate Tests）：对于要进行自动测试的部分，应该利用MI、自己或第三方的测试工具来创建测试脚本。</p>
		<p class="home01" align="left">　　分析测试计划（Analyze Test Plan）：产生报告和图表来帮助你分析测试计划数据，并检查所有测试以确保它们满足你的测试目标。</p>
		<p class="home01" align="left">1.4测试执行（Running Tests）<br />　　创建测试集（Test Set）并执行测试。</p>
		<p class="home01" align="left">　　创建测试集（Create Test Sets）：在你的工程中定义不同的测试组来达到各种不同的测试目标，他们可能包括，举个例子，在一个应用程序中测试一个新的应用版本或是一个特殊的功能。并确定每个测试集都包括了哪些测试。</p>
		<p class="home01" align="left">　　确定进度表（Schedule Runs）：为测试执行制定时间表，并为测试员分配任务。</p>
		<p class="home01" align="left">　　运行测试（Run Tests）：自动或手动执行每一个测试集。</p>
		<p class="home01" align="left">　　分析测试结果（Analyze Test Results）：查看测试结果并确保应用程序缺陷已经被发现。生成的报告和图表可以帮助你分析这些结果。</p>
		<p class="home01" align="left">1.5缺陷跟踪（Tracking Defects）<br />　　报告程序中产生的缺陷并跟踪缺陷修复的全过程。</p>
		<p class="home01" align="left">        添加缺陷（Add Defects）：报告程序测试中发现的新的缺陷。在测试过程中的任何阶段，质量保证人员、开发者、项目经理和最终用户都能添加缺陷。</p>
		<p class="home01" align="left">　　检查新缺陷（Review New Defects）：检查新的缺陷，并确定哪些缺陷应该被修复。</p>
		<p class="home01" align="left">　　修复打开的缺陷（Repair Open Defects）：修复那些你决定要修复的缺陷。</p>
		<p class="home01" align="left">　　测试新构建（Test New Build）：测试应用程序的新构建，重复上面的过程，直到缺陷被修复。</p>
		<p class="home01" align="left">　　分析缺陷数据（Analyze Defect Data）：产生报告和图表来帮助你分析缺陷修复过程，并帮助你决定什么时候发布该产品。</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20899.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 10:55 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20899.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mercury Quality Center</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20897.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 02:07:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20897.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20897.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20897.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20897.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20897.html</trackback:ping><description><![CDATA[Mercury Quality Center<br /><p>Mercury Quality Center™ 提供了<a href="http://www.mercury.com/cn/products/quality-center/testdirector/">基于 Web 的系统</a>，可在广泛的应用环境下自动执行软件质量测试和管理。<a href="http://www.mercury.com/cn/products/quality-center/dashboard/">仪表盘技术使您可以了解</a>验证功能和将业务流程自动化，并确定生产中阻碍业务成果的瓶颈。Mercury Quality Center 使 IT 团队能够在开发流程完成前就参与应用程序测试。这样将缩短发布时间表，同时确保最高水平的质量。 </p><!-- Begin Plain Bulleted List --><h3>利用 Mercury Quality Center，您可以：</h3><div><ul><li><span>制定可靠的部署决策。</span></li><li><span>管理整个质量流程并使其标准化。</span></li><li><span>降低应用程序部署风险。</span></li><li><span>提高应用程序质量和可用性。</span></li><li><span>通过手动和自动化功能测试管理应用程序变更影响。</span></li><li><span>确保战略采购方案中的质量。</span></li><li><span>存储重要应用程序质量项目数据。</span></li><li><span>针对功能和性能测试面向服务的基础架构服务。</span></li><li><span>确保支持所有环境，包括 J2EE、.NET、Oracle 和 <a href="http://www.mercury.com/cn/solutions/erp-crm/sap/">SAP</a>。</span></li></ul></div><span><h3>Mercury Quality Center 产品</h3><p>Mercury Quality Center 包括自动化软件测试产品，例如 <a href="http://www.mercury.com/cn/products/quality-center/testdirector/">Mercury TestDirector®</a>、<a href="http://www.mercury.com/cn/products/quality-center/functional-testing/quicktest-professional/">Mercury QuickTest Professional™</a>、<a href="http://www.mercury.com/cn/products/quality-center/functional-testing/winrunner/">Mercury WinRunner™</a>、<a href="http://www.mercury.com/cn/products/quality-center/business-process-testing/">Mercury Business Process Testing™</a> 和 <a href="http://www.mercury.com/cn/products/quality-center/functional-testing/service-test/">Mercury Service Test™</a>。Mercury Quality Center 还提供了基于最佳实践的服务，用于内部部署或通过我们的 Mercury Managed Services 进行部署。 </p><p><br /><img height="345" alt="Quality Center" src="http://www.mercury.com/cn/images/products/quality_center/quality-center-diagram.gif" width="539" usemap="#QualityCenter" border="0" /><br /><br />===========================================================</p><table class="sr" id="sr" cellspacing="0" cellpadding="0"><tbody><tr><td class="sr-sub-header" nowrap=""><b>Software Trial</b></td><td class="sr-sub-header" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" nowrap="">  Download  </td><td class="sr-sub-header" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" nowrap="">||</td><td class="sr-sub-header" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" nowrap="">    </td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=276#d276"><b>Mercury QuickTest Professional Web Services Add-in</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download1','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download1','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=276#d276"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download1" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info1','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info1','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email1','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '276');" onmouseout="changeImages('email1','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=264#d264"><b>Mercury Diagnostics Profiler for .NET</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download2','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download2','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=264#d264"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download2" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info2','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info2','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/diagnostics/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email2','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '264');" onmouseout="changeImages('email2','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=257#d257"><b>Mercury TestDirector for Quality Center Starter Edition</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download3','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download3','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=257#d257"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download3" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info3','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info3','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/testdirector/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email3','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '257');" onmouseout="changeImages('email3','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=223#d223"><b>Mercury QuickTest Professional for VisualAge Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download4','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download4','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=223#d223"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download4" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info4','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info4','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email4','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '223');" onmouseout="changeImages('email4','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=224#d224"><b>Mercury QuickTest Professional for Stingray Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download5','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download5','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=224#d224"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download5" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info5','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info5','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email5','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '224');" onmouseout="changeImages('email5','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=222#d222"><b>Mercury QuickTest Professional for Peoplesoft Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download6','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download6','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=222#d222"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download6" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info6','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info6','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email6','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '222');" onmouseout="changeImages('email6','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td> <a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=212#d212"><b>Mercury QuickTest Professional for Java Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download7','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download7','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=212#d212"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download7" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info7','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info7','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email7','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '212');" onmouseout="changeImages('email7','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=213#d213"><b>Mercury QuickTest Professional for Oracle Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download8','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download8','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=213#d213"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download8" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info8','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info8','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email8','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '213');" onmouseout="changeImages('email8','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=208#d208"><b>Mercury QuickTest Professional for .Net Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download9','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download9','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=208#d208"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download9" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info9','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info9','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email9','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '208');" onmouseout="changeImages('email9','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=209#d209"><b>Mercury QuickTest Professional for SAP Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download10','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download10','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=209#d209"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download10" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info10','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info10','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email10','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '209');" onmouseout="changeImages('email10','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=210#d210"><b>Mercury QuickTest Professional Terminal Emulator Add-in Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download11','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download11','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=210#d210"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download11" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info11','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info11','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email11','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '210');" onmouseout="changeImages('email11','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=211#d211"><b>Mercury QuickTest Professional for Siebel Evaluation</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download12','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download12','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=211#d211"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download12" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info12','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info12','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email12','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '211');" onmouseout="changeImages('email12','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=189#d189"><b>Introduction to Quality Center 8.0 - Using TestDirector: Computer-Based Training (CBT) Course</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download13','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download13','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=189#d189"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download13" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info13','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info13','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/testdirector/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email13','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '189');" onmouseout="changeImages('email13','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td><a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=183#d183"><b>Introduction to QuickTest Professional 8.0 Computer-Based Training (CBT) Course</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download14','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download14','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=183#d183"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download14" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info14','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info14','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email14','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '183');" onmouseout="changeImages('email14','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr><tr><td class="sr-sep" colspan="4"><div class="sr-sep-bg"><img style="FLOAT: left" height="1" alt="" src="http://download.mercury.com/images/common/spacer.gif" width="1" border="0" /></div></td></tr><tr><td> <a href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=51#d51"><b>Mercury QuickTest Professional Free 14-Day Trial</b></a></td><td valign="top" align="middle"><a onmouseover="changeImages('download15','/images/buttons/dlc/download_red.gif')" onmouseout="changeImages('download15','/images/buttons/dlc/download_blue.gif')" href="http://download.mercury.com/cgi-bin/portal/download/loginForm.jsp?BV_SessionID=@@@@0788818538.1166667231@@@@&amp;BV_EngineID=cccfaddjjheeildcefeceejdfgjdgfi.0&amp;id=51#d51"><img height="15" alt="Download" src="http://download.mercury.com/images/buttons/dlc/download_blue.gif" width="15" border="0" name="download15" /></a></td><td valign="top" align="middle"><a onmouseover="changeImages('info15','/images/buttons/dlc/info_red.gif')" onmouseout="changeImages('info15','/images/buttons/dlc/info_blue.gif')" href="javascript:openStaticURL('http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/', 'more');"></a></td><td valign="top" align="middle"><a onmouseover="changeImages('email15','/images/buttons/dlc/email_red.gif')" onclick="dlc_addMail(this, 'software trial', '51');" onmouseout="changeImages('email15','/images/buttons/dlc/email_blue.gif')" href="mailto:"></a></td></tr></tbody></table></span><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 10:07 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高级测试管理的工具和技术</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 01:51:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20896.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20896.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20896.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 高级测试管理的工具和技术业务优化科技概述近年来，在应用测试领域有了突飞猛进的发展。随着当今应用复杂性的不断提升、竞争压力的不断加大，以及在应用失败和宕机方面的成本激增，使得对测试的需求不断攀升。 实施高质量应用的压力持续加大，其挑战在于日益紧缩的开发和部署进度、分散的机构组织、外包、技术熟练员工的高调动率，这些都造成了应用测试难度的提升。 为了实现以较少资源完成更多任务的目标、同时展开多个项目、管...&nbsp;&nbsp;<a href='http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html'>阅读全文</a><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 09:51 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Rational的测试理念</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20859.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 08:10:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20859.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20859.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20859.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20859.html</trackback:ping><description><![CDATA[
		<div class="style7" align="center">
				<span style="FONT-SIZE: 12pt">
						<b>使用Rational的测试理念<br /><div class="daxiao14" align="left"><h2><b>1.</b><b>传统软件测试过程中的问题</b><b></b></h2><div>    测试在所有的软件开发过程中都是最重要的部分。在软件开发过程中，一方面要求我们通过测试活动验证所开发的软件在功能上满足软件需求中描述的每一条特性，性能上满足客户要求的负载压力和相应的响应时间、吞吐量要求；另一方面，面向市场和客户，开发团队还要满足在预算范围内尽快发布软件的要求。 <br />    传统的软件测试流程一般是先在软件开发过程中进行少量的单元测试，然后在整个软件开发结束阶段，集中进行大量的测试，包括功能和性能的集成测试和系统测试。随着开发的软件项目越来越复杂，传统的软件测试流程不可避免地给我们的工作带来以下问题： <br /><b>    问题一：</b>项目进度难于控制，项目管理难度加大<br />    如图一所示，大量的软件错误往往只有到了项目后期系统测试时才能够被发现，解决问题所花的时间很难预料，经常导致项目进度无法控制，同时在整个软件开发过程中，项目管理人员缺乏对软件质量状况的了解和控制，加大了项目管理难度。</div><div align="center"><img alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114060.JPG" /><br /><b>图一、传统测试流程中存在的问题</b><b></b></div><div><b>    问题二</b>：对于项目风险的控制能力较弱<br />项目风险在项目开发较晚的时候才能够真正降低。往往是经过系统测试之后，才真正确定该设计是否能够满足系统功能、性能和可靠性方面的需求。 <br /><b>    问题三</b>：软件项目开发费用超出预算<br />在整个软件开发周期中，错误发现的越晚，单位错误修复成本越高，如图二所示，错误的延迟解决必然导致整个项目成本的急剧增加。 </div><div align="center"><img alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114061.JPG" />  </div><div align="center"><b>图二、传统测试流程中存在的问题</b><b></b></div><h2><b>2. </b><b>采用IBM Rational软件自动化测试最佳成功经验解决传统测试问题</b></h2><div>    IBM Rational软件自动化测试技术核心的三个最佳成功经验是：尽早测试、连续测试、自动化测试，并在此基础上提供了完整的软件测试流程和一整套的软件自动化测试工具，使我们最终能够做到：一个测试团队，基于一套完整的软件测试流程，使用一套完整的自动化软件测试工具，完成全方位的软件质量验证。</div><h3>2.1 成功经验一：尽早测试</h3><div>    所谓尽早测试是指在整个软件开发生命周期中通过各种软件工程技术尽量早的完成各种软件测试任务的一种思想。IBM Rational主要在以下三个方面为我们提供的尽早测试的软件工程技术： </div><div>首先，软件的整个测试生命周期是与软件的开发生命周期基本平齐的过程，如图三所示，即当需求分析基本明确后我们就应该基于需求分析的结果和整个项目计划来进行软件的测试计划；伴随着分析设计过程同时应该完成测试用例的设计；当软件的第一个发布出来后，测试人员要马上基于它进行测试脚本的实现，并基于测试计划中的测试目的执行测试用例，对测试结果进行评估报告。这样，我们可以通过各种测试指标实时监控项目质量状况，提高对整个项目的控制和管理能力。<b></b></div><div align="center">  <img alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114062.JPG" /></div><div align="center"><b>图三、软件测试生命周期</b></div><div>    其次，通过迭代是软件开发把原来的整个软件开发生命周期分成多个迭代周期，在每个迭代周期都进行测试，这样在很大程度上提前了软件系统测试发生的时间，这可以在很大程度上降低项目风险和项目开发成本。 </div><div>    最后，IBM Rational的尽早测试成功经验还体现在它扩展了传统软件测试阶段从单元测试、集成测试到系统测试、验收测试的划分，将整个软件的测试按阶段划分成开发员测试和系统测试两个阶段，如图四所示，它把软件的测试责无旁贷地扩展到整个开发人员的工作过程。通过提前测试发生的时间来尽早地提高软件质量、降低软件测试成本。</div><div align="center"><img alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114063.JPG" /></div><div align="center"> <b>图四、IBM Rational测试方法对测试阶段的划分</b></div><h3>2.2 成功经验二：连续测试</h3><div>    测试成功经验连续测试是从迭代式软件开发模式得来。在迭代化的方法中，我们将整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标，这些小目标都有一个定义明确的阶段性评估标准。迭代就是为了完成一定的阶段性目标而从事的一系列开发活动，在每个迭代开始前都要根据项目当前的状态和所要达到的阶段性目标制定迭代计划，而且每个迭代中都包括需求、设计、编码、集成、测试等一系列的开发活动，都会增量式集成一些新的系统功能。通过每次迭代，我们都产生一个可运行的系统，通过对于这个可运行系统的测试来评估该次迭代有没有达到预定的迭代目标，并以此为依据来制定下一次迭代的目标。由此可见，在迭代式软件开发的每个迭代周期我们都会进行软件测试活动，整个软件测试的完成是通过每个迭代周期不断增量测试和回归测试实现的。 </div><div>    如图五所示，采用连续测试的软件成功测试经验，不但能够持续的提高软件质量、监控质量状态，同时也使系统测试的尽早实现成为可能。从而有效的控制开发风险、减低测试成本和保证项目进度。</div><div align="center"> <img alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114064.JPG" /></div><div align="center"> <b>图五、IBM Rational测试成功经验：连续测试</b></div><h3>2.3 成功经验三：自动化测试</h3><div>    在整个软件的测试过程中要想实现尽早测试、连续测试，可以说完善的测试流程是前提，自动化测试工具是保证。IBM Rational的自动化测试成功经验主要是指利用软件测试工具提供完整的软件测试流程的支持和各种测试的自动化实现。 </div><div>    为了使各种软件测试团队更好地进行测试，IBM Rational在提供了测试成功经验之外，还为我们提供了一整套的软件测试流程和自动化测试工具，使软件测试团队能够从容不迫地完成整个测试任务。 </div><h2><b>3. IBM Rational</b><b>软件自动化测试工具</b></h2><div>    在IBM Rational的软件自动化测试解决方案中，我们一直致力追求的一点就是测试工具和测试成功经验、测试流程的统一，上面阐述的每个测试成功经验和测试流程环节，我们都可以通过Rational的测试工具以及工具间的完美集成辅助完成。 </div><div>    IBM Rational的软件自动化测试工具如图七所示，其最大特点是通过一套完整的软件测试工具在实现测试管理流程的基础上，同时涵盖了功能测试、性能测试和可靠性测试的自动化测试需求，通过工具之间的集成完成测试资源的整合，帮助测试团队实现IBM Rational的测试成功经验。</div><div align="center"> <img alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114065.JPG" /></div><div align="center"> <b>图七、IBM Rational自动化测试工具</b></div><h2><b>4. IBM Rational</b><b>软件测试流程</b></h2><div>    IBM Rational的软件测试流程，不仅仅包含完整的软件测试流程框架，同时还提供了内嵌软件测试流程的测试管理工具的支持。 </div><h3>4.1 IBM Rational软件测试流程框架</h3><div>    IBM Rational Unified Process(以下简称RUP)提供了一套完整的测试流程框架，软件测试团队可以以它为基础，根据业务发展的实际要求，定制符合团队使用的软件测试流程。RUP中的软件测试流程如图八所示：</div><div align="center"> <img height="404" alt="" src="http://www.51testing.com/ddimg/uploadimg/20060703/1114066.JPG" width="345" /></div><div align="center"> <b> </b><b>图八、IBM Rational 软件测试流程</b></div><div>    每个测试环节的具体阐述如下： </div><div>    制定测试计划的目的是确定和描述要实施和执行的测试。这是通过生成包含测试需求和测试策略的测试计划来完成的。可以制定一个单独的测试计划，用于描述所有要实施和执行的不同测试类型，也可以为每种测试类型制定一个测试计划。 </div><div>    设计测试的目的是确定、描述和生成测试过程和测试用例。 </div><div>    实施测试的目的是实施（记录、生成或编写）设计测试中定义的测试过程。输出工件是测试过程的计算机可读版本，称为测试脚本。 </div><div>    执行测试的目的是确保整个系统按既定意图运行。系统集成员在各迭代中编译并链接系统。每一迭代都需要测试增加的功能，并重复执行以前版本测试过的所有测试用例（回归测试）。 </div><div>    评估测试的目的是生成并交付测试评估摘要。这是通过复审并评估测试结果、确定并记录变更请求，以及计算主要测试评测方法来完成的。测试评估摘要以组织有序的格式提供测试结果和主要测试评测方法，用于评估测试对象和测试流程的质量。 </div><h3>4.2 利用IBM Rational软件测试管理平台实现软件自动化测试流程</h3><div>    IBM Rational在RUP测试方法论的基础上构建了软件自动化测试管理平台工具TestManager，通过和测试需求管理工具RequisitePro、缺陷追踪工具ClearQuest的完美集成，实现了对整个软件测试生命周期的管理，可以帮助软件测试团队快速建立软件测试平台和测试管理流程，使软件测试团队快速拥有以下能力：</div><div><b>    TestManager</b>提供测试管理的核心平台，整合了从测试需求、测试计划、测试设计、测试实施、测试执行到测试结果分析、测试报告的自动生成等整个测试生命周期的管理活动。同时，统一组织各种Test Suite,Test Case,Test Script，方便地进行回归测试 </div><div><b>    TestManager</b>遵循RUP标准测试流程，使测试人员能够在统一的测试管理平台上、遵循统一的测试管理流程，完成对包括产品的功能性、可靠性和性能等全方位的质量测试。 </div><div>    作为一种集成解决方案，Rational TestManager与Rational 其他工具一起，提供从测试需求、到整个软件测试流程管理、缺陷追踪、测试结果评测的可追踪性，方便测试管理人员进行软件测试过程监控和有关软件质量的各种量化指标的采集、分析。 </div><h3>4.3 利用Rational软件测试工具实现软件自动化的功能和性能测试</h3><div>    IBM Rational的自动化软件测试工具的另一个特点就是：通过TestManager + Robot，在实现测试管理流程的同时，能够完成功能测试和性能测试，这会大大缩短测试团队对工具的学习过程，提高工具的易用性。 </div><h4>4.3.1 软件的自动化功能测试</h4><div>    功能测试主要围绕Windows图形界面、字符终端和Browser界面进行测试。客户端可以是VC、VB、PB、Delphi等编制的软件、各种字符终端软件或者运行浏览器Microsoft Explorer和Netscape，通过自动录制形成测试脚本实现自动化的功能/回归测试。 </div><div>    IBM Rational的功能测试解决方案的目标，是使功能性测试变得更简单、有效并可重复执行，从而快速提升软件测试团队的功能测试能力。它主要具有以下特点： </div><div>      能够方便的对各种环境(IDE)中开发的应用程序、字符终端软件，完成包括测试计划、测试设计、测试实施、测试执行和测试结果分析等全部测试流程。 </div><div>      能够方便的录制或编写各种功能测试脚本，实现自动化的功能/回归测试。 </div><div>      利用数据池方便地解决大批量数据驱动的功能测试； </div><div>      能够方便地完成分布式功能测试，可以一次测试多种测试平台； </div><div>      能够自动完成功能测试需求覆盖，确保应用程序满足产品规格说明和测试计划的每一条业务需求； </div><div>    为了提高对Java和Web开发的应用软件功能测试的支持，IBM Rational的功能测试的解决方案还提供了IBM Rational XDE Tester，它主要用于在Windows和Linux平台上基于Java和Web开发的应用软件的功能测试，尤其适用于使用IBM WebSphere Studio、Eclipse和 Rational XDE Developer等开发平台进行软件开发的团队。它的三个最重要的自动化测试的特性是： </div><div>    专业的自动化测试脚本创建环境：测试平台扩展嵌入到IBM WebSphere Studio、Eclipse和 Rational XDE Developer开发平台，统一了测试和开发环境； </div><div>    测试脚本在回归测试方面具有很强的灵活性和可维护性：ScriptAssure是 IBM提供的针对 Java 和Web应用程序测试时的一组高级能力, 它能够帮助创建灵活、可重用的测试脚本，大大提高了脚本的可维护性。对象地图（Object mapping）提供了核心对象库，测试人员可以基于它进行被测程序中被测对象的修改和验证，并根据修改自动更新所有相关的测试脚本。可以自己设置被测程序中用来表示被测对象的对象属性集，这使得少量对象属性的变化不会影响测试脚本的正常回放。同时，可以创建针对动态数据的验证点，通过正则表达式更容易对动态的数据进行验证； </div><div>    强大的测试脚本语言：使用标准的测试脚本语言Java，可以充分利用工业标准语言的优点进行测试。 </div><h4>4.3.2 软件的自动化压力测试</h4><div>    IBM Rational压力测试工具主要目标是快速提升软件测试团队的性能测试能力，包括负载测试，压力测试等等。Rational性能测试解决方案可以方便灵活地模拟各种负载模型，完成以查找响应时间瓶颈、系统吞吐量、最大并发虚拟用户等为目地的各种要求的性能测试。包括： </div><div>利用TestStudio可以完成对压力测试的测试需求、测试计划、测试设计、测试实施、测试执行和测试结果分析等整个测试生命周期的管理； </div><div>利用TestStudio中的Test Suite，能够方便的完成压力测试对负载模型的各种要求，包括： </div><div>      建立复杂的Scenario模型； 准确模拟复杂负载的时序控制； </div><div>      基于Transaction的负载分析； </div><div>      建立面向目标的事务负载模型，例如：100事务/秒 </div><div>      响应时间精确到1/100秒； </div><div>      支持不同虚拟用户的不同IP地址模拟； </div><div>      准确的波特率模拟； </div><div>      利用TestStudio，能够方便地完成压力测试过程中各种指标的观测； </div><div>      利用TestStudio，能够方便地完成压力测试结果分析和各种结果报告的生成； </div><h3>4.4 利用IBM Rational软件测试工具实现软件自动化的可靠性测试和单元测试</h3><div>    IBM Rational软件测试工具PurifyPlus主要用于帮助软件测试团队在短期内快速提升单元测试能力和可靠性测试能力的团队，其主要特点是：见效快、使用方便、门槛低、培训时间短，开发人员2小时内即可完全掌握该软件进行测试。PurifyPlus包含Rational Purify、Quantify和PureCoverage三个产品，主要功能如下： </div><div><b>    Rational Purify</b>主要针对软件开发过程中难于发现的内存错误、运行时错误。在软件开发过程中： </div><div>      自动地发现错误； </div><div>      准确地定位错误； </div><div>      提供完备的错误信息； </div><div>    从而减少了调试时间， 帮助开发团队找出缺陷并最终形成高质量的产品，使您能真正做到更快地发布更好的软件。 </div><div><b>    Rational Quantify</b>主要解决软件开发过程中的性能问题。在软件开发过程中： </div><div>方便地查明并显示应用程序的性能瓶颈，从而确保整个应用程序的质量和性能。</div><div><b>    Rational Quantify</b> 给开发团队提供了一个性能数据的全局图形化视图，使您从开发流程的开头起就注重性能问题，真正做到更快地发布更好的软件。 </div><div><b>    Rational PureCoverage</b>提供应用程序的测试覆盖率信息。在软件开发过程中： </div><div>    能自动找出代码中未经测试的代码，保证代码测试覆盖率； </div><div>    帮助开发人员确保开发质量，并使质量保证人员能够评价测试工作的效果。 </div><div>    可针对每次测试生成全面的覆盖率报告，可以归并程序多次运行所生成的覆盖数据，并自动比较测试结果，以评估测试进度。 </div><h3>4.5 利用Rational软件测试工具实现实时系统软件的自动化测试</h3><div>    IBM Rational Test Realtime主要适合于开发实时系统和具有较高要求的非实时系统的软件开发，可以帮助测试团队快速建立起单元测试、集成测试、系统测试等测试能力。它提供的自动测试（包括单元测试、集成测试、系统测试）、代码覆盖、内存泄漏检查、性能分析以及UML跟踪等重要特性，帮助软件测试团队在系统崩溃前发现并修复软件缺陷。其主要功能特性如下： </div><div>    自动生成测试脚本模板和测试程序（包括驱动模块和桩模块）：通过源代码分析，自动生成在目标上运行所需的测试脚本和测试程序。除了利用测试脚本指定测试数据外，不需要手工编码。而且在测试报告中，测试结果和源代码相联，简化代码修改； </div><div>    通过代码自动插针进行代码覆盖率、内存泄漏以及性能瓶颈进行分析，并和测试用例建立关联； </div><div>通过把测试结果和观察结果和被测代码关联，把测试作为开发的一个重要部分，真正实现边开发边测试，边测试边观察，边观察边评估这一集成的开发测试过程； </div><div>    通用的、低开销而且易于移植的目标适配技术（Target Deployment Port，TDP）：利用TDP技术，使得测试与编译器、连接器、调试器以及目标结构无关，实现了跨多开发环境、多目标结构； </div><div>模型观察和代码覆盖相集成：利用UML Trace功能观察应用运行状态，并通过状态机模型覆盖实现测试用例和模型的关联，充分利用了模型和代码级测试的长处； </div><div>    与ClearCase、ClearQuest和RUP集成：在同一集成环境中完成对测试文件进行版本控制，提交和修改变更请求；</div><h2><b>5. </b><b>小结</b></h2><div align="center"> </div><div align="center"><b>图九、IBM Rational的软件自动化测试解决方案</b></div><div>    IBM Rational主要为软件测试团队提供测试成功经验、自动化测试工具和全方位的咨询服务三方面的支持，如图八所示，最终实现：一个测试团队，基于一套完整的软件测试流程，使用一套完整的自动化软件测试工具，完成全方位的软件质量验证，这正是IBM Rational测试解决方案的精髓和终极目标。 </div><div> </div><div><b>    作者简介:</b></div><div>    Golden Ning，现为IBM中国有限公司软件部 Rational 高级技术专员。在软件工程技术方面，有着多年的实践经验，对于 Rational 的软件工程技术有着深刻的理解。目前主要专注于软件测试技术、面向对象的可视化建模和软件配置管理等技术的研究。在此之前，主要从事电信交换机、电子商务软件分析设计和开发工作。</div></div></b>
				</span>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-20 16:10 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QuickTest使用正则表达式 </title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 06:41:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20848.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20848.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20848.html</trackback:ping><description><![CDATA[QuickTest使用正则表达式 <br /><blockquote class="indent"><a name="wp799340"></a><h2 class="pn2Heading">正则表达式语法 </h2><a name="wp799346"></a><p class="pRegtext">通过正则表达式，QuickTest 可以使用不同的值来标识对象和文本字符串。可以在下列三种情况下使用正则表达式：一是定义对象属性和参数方法时；二是对某步骤进行参数化时；三是使用不同值创建检查点时。 </p><a name="wp799356"></a><p class="pRegtext">正则表达式是指定复杂搜索短语的字符串。使用特殊字符，如句点 (.)、星号 (*)、插字号 (^) 和方括号 ([ ])，可以定义搜索条件。有关正则表达式语法的详细信息，请参阅《QuickTest Professional 用户指南》。 </p></blockquote><br /><blockquote class="indent"><a name="wp799360"></a><h2 class="pn2Heading">使用正则表达式 </h2><a name="wp799362"></a><p class="pRegtext">在本教程中，将针对一个日期文本字符串创建文本检查点，该字符串随选定的航班日期而变化。可以将该日期定义为正则表达式，这样，检查点将检查捕获的文本字符串是否与期望的格式匹配，而不是检查准确的文本。 </p><a name="wp799364"></a><p class="pRegtext">为此，您将使用一个正则表达式创建文本检查点，该表达式将与已定义范围内的某一单个字符相匹配。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp799371"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">启动 QuickTest </b><span style="FONT-WEIGHT: normal"><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_AQT_icon.gif" border="0" /></span><b style="FONT-WEIGHT: bold">并打开“Recording”测试。</b></li></div><a name="wp799393"></a><p class="pIndent">如果 QuickTest 尚未打开，请选择“开始”&gt;“程序”&gt;“QuickTest Professional”&gt;“QuickTest Professional”。 </p><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp799395"></a><div class="pSmartBullet2"><li>如果“欢迎使用”窗口打开，请单击“打开现有测试”。 </li></div><a name="wp799402"></a><div class="pSmartBullet2"><li>如果 QuickTest 打开时未显示“欢迎使用”窗口，请选择<br />“文件”&gt;“打开”，或单击“打开”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_open_button.gif" border="0" /> 。 </li></div><a name="wp799404"></a><p class="pIndent">在“打开测试”对话框中，找到并选择“Recording”测试，然后单击“打开”。 </p></ul></div><a name="wp799406"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将该测试另存为“RegExpression”。</b></li></div><a name="wp799408"></a><p class="pIndent">选择“文件”&gt;“另存为”。将该测试另存为“<span class="cExample">RegExpression</span>”。 </p><a name="wp799410"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">确认是否已启用“Active Screen”选项。</b></li></div><a name="wp799417"></a><p class="pIndent">如果在 QuickTest 窗口底部看不到 Active Screen，请单击“Active Screen”按钮<span style="FONT-WEIGHT: bold"><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_display_views.gif" border="0" /></span>或选择“查看”&gt;“Active Screen”。 </p><a name="wp799419"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择要为其创建检查点的文本。</b></li></div><a name="wp799421"></a><p class="pIndent">在关键字视图中，单击 (+) 展开“Welcome:Mercury:Tours”，然后单击“Select a Flight:Mercury”页。该页将显示在 Active Screen 中。 </p><a name="wp799423"></a><p class="pIndent">在 Active Screen 中向上滚动，然后突出显示出发航班 New York to San Francisco (<span class="cExample">12/29/2004</span>)。右键单击突出显示的字符串，然后选择“插入文本检查点”。将打开“文本检查点属性”对话框。 </p><a name="wp799425"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">对于要检查的文本，输入正则表达式。</b></li></div><a name="wp799429"></a><p class="pIndent">在“已检查的文本”区域中，单击“常量值选项”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_const_val_options.gif" border="0" /> 。将打开“常量值选项”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/constant_value_options.gif" border="0" /><br /><br /></p><a name="wp799435"></a><p class="pIndent_after">在“值”框中，用 <span class="cExample">[0-1][0-9]/[0-3][0-9]/200[0-9]</span> 替换当前日期。这将指示 QuickTest 检查选定文本中的每个字符与正则表达式定义的数字范围格式是否匹配。该表达式检查以下格式：MM/DD/200Y。 </p><a name="wp799437"></a><p class="pIndent">选择“正则表达式”复选框。将出现一个消息框，提示您在每个特殊字符之前插入反斜杠字符。单击“否”。 </p><a name="wp799445"></a><p class="pNote">注意： 单击“是”会使 QuickTest 将特殊字符 (<span class="cExample">[</span>)、(<span class="cExample">-</span>) 和 (<span class="cExample">]</span>) 作为文本字符而不是正则表达式处理。 </p><a name="wp799448"></a><p class="pIndent">单击“确定”接受其他默认设置，然后关闭“常量值选项”对话框。将打开“文本检查点属性”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/regular%20expression.gif" border="0" /><br /><br /></p><a name="wp799450"></a><p class="pIndent_after">单击“确定”关闭“文本检查点属性”对话框。 </p><a name="wp799456"></a><p class="pIndent">QuickTest 将向您的测试中添加文本检查点。该检查点在关键字视图中的“Select a Flight:Mercury”页显示为检查操作。 </p><a name="wp799458"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp799461"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp799469"></a><h2 class="pn2Heading">使用正则表达式运行并分析测试 </h2><a name="wp799471"></a><p class="pRegtext">在本练习中，您将运行测试并对检查点结果进行检查。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp799473"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">运行“RegExpression”测试。</b></li></div><a name="wp799476"></a><p class="pIndent">单击“运行”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_run.gif" border="0" /> ，或选择“测试”&gt;“运行”。将打开“运行”对话框。 </p><a name="wp799478"></a><p class="pIndent">选择“新建运行结果文件夹”并接受默认的结果文件夹名。 </p><a name="wp799480"></a><p class="pIndent">单击“确定”。当完成测试运行时，将打开“测试结果”窗口。 </p><a name="wp799482"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">对检查点结果进行检查。</b></li></div><a name="wp799484"></a><p class="pIndent">在结果树中，单击 (+) 展开“Test RegExpression Summary”&gt;“RegExpression Iteration 1 (Row 1)”&gt;“Action1 Summary”&gt;“Welcome: Mercury Tours”&gt;“Select a Flight:Mercury” </p><a name="wp799487"></a><p class="pIndent">选择“检查点`[0-1][0-9]/[0-3][0-9]/200[0-9]'”。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/resreg_exp.gif" border="0" /><br /><br /></p><a name="wp799489"></a><p class="pIndent">由于文本以正则表达式指定的格式显示，因此该检查点通过。 </p><a name="wp799491"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">退出“测试结果”窗口。</b></li></div><a name="wp799495"></a><p class="pIndent">选择“文件”&gt;“退出”关闭“测试结果”窗口。 </p></ol></div></blockquote><br /><font face="Arial" size="1"><font style="BACKGROUND-COLOR: #e0dfe3" size="3">QuickTest</font>将测试拆分为多操作 <br /><blockquote class="indent"><a name="wp77723"></a><h2 class="pn2Heading">使用多操作 </h2><a name="wp77725"></a><p class="pRegtext">如果检查一下在以前课程中创建的某个测试，您将发现该测试可拆分为几个不同的过程： </p><div class="pSmartBullet1"><ul class="pSmartBullet1"><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp77727"></a><div class="pSmartBullet2"><li>登录到 Mercury Tours 站点。</li></div><a name="wp77729"></a><div class="pSmartBullet2"><li>提交航班订单。</li></div><a name="wp77731"></a><div class="pSmartBullet2"><li>注销。</li></div></ul></div></ul></div><a name="wp77741"></a><p class="pRegtext">假设您要为五个不同的航班订单运行测试。正如我们在<a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/parameterizing_tests.htm">参数化测试</a>中所见的，您可以对测试进行参数化，使其可以使用五组不同的数据运行五次测试。还可以组织测试，仅使第二个过程运行五次测试，模拟一个用户登录、预定五个航班以及注销的过程。可通过将测试拆分为对不同操作的调用，实现此目的。 </p><a name="wp77743"></a><p class="pRegtext">要将测试拆分成对不同操作的调用，您可以插入对新操作的调用、将现有操作拆分为对两个操作的调用、插入一个对现有操作副本的调用或插入一个对现有操作的调用。 </p><a name="wp77745"></a><p class="pRegtext">可以在录制会话期间或之后将对操作的调用插入测试中。使用下列菜单选项或工具栏按钮之一，向测试添加操作： </p><div class="pSmartBullet1"><ul class="pSmartBullet1"><a name="wp77748"></a><div class="pSmartBullet1"><li>“插入”&gt;“调用新建操作”，或使用“插入对新建操作的调用”按钮。 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_new_action.gif" border="0" /></li></div><a name="wp77751"></a><div class="pSmartBullet1"><li>“步骤”&gt;“拆分操作”，或使用“拆分操作”按钮。 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_split_action.gif" border="0" /></li></div><a name="wp77753"></a><div class="pSmartBullet1"><li>“插入”&gt;“调用操作副本”，或右键单击某项操作并选择“插入对操作副本的调用”。</li></div><a name="wp77755"></a><div class="pSmartBullet1"><li>“插入”&gt;“调用现有操作”，或右键单击某项操作并选择“插入对现有操作的调用”。</li></div></ul></div></blockquote><br />新建操作 <br /><blockquote class="indent"><a name="wp77793"></a><h4 class="pn3Heading">录制测试 </h4><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp77800"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">启动 QuickTest</b><span style="FONT-WEIGHT: normal"><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_AQT_icon.gif" border="0" /></span><b style="FONT-WEIGHT: bold">并打开新测试。</b></li></div><a name="wp77814"></a><p class="pIndent">有关详细信息，请参阅<a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/recording_tests.htm"></a><a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-03-3.htm">录制测试</a>中的步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-03-3.htm#wp214451">1</a>。 </p><a name="wp77816"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">开始录制 Mercury Tours 网站。</b></li></div><a name="wp77822"></a><p class="pIndent">在后面的步骤中，您需要录制一个与<a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/recording_tests.htm">录制测试</a>课程中所录制的测试相似的测试。但是，该测试为了优化多操作测试的测试，而设计得有些不同。 </p><a name="wp77824"></a><p class="pIndent">请确认已关闭所有的 Web 浏览器。 </p><a name="wp77828"></a><p class="pIndent">选择“测试”&gt;“录制”，或单击“录制”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_record.gif" border="0" /> 。将打开“录制和运行设置”对话框。 <br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/record_run_set_web.gif" border="0" /><br /><br /></p><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp77830"></a><div class="pSmartBullet2"><li>在“Web”选项卡中，选择“录制或运行会话开始时打开以下浏览器”。</li></div><a name="wp77836"></a><p class="pIndent_wide">从“类型”列表中选择浏览器，并确认“地址”框中的 URL 为 <span class="cURL_example"><a href="http://newtours.mercuryinteractive.com&quot;%20target=&quot;_blank/" target="_blank"></a><a href="http://newtours.mercuryinteractive.com/" target="_blank">http://newtours.mercuryinteractive.com</a></span>。 </p><a name="wp77838"></a><p class="pIndent_wide">请确认已选中“不在已经打开的浏览器上录制和运行”和“当测试关闭时关闭浏览器”选项。 </p><a name="wp77840"></a><div class="pSmartBullet2"><li>在“Windows 应用程序”选项卡中，确认已选中“在以下应用程序(会话开始时打开的)上录制并运行”，而且没有列出任何应用程序。 </li></div><a name="wp77842"></a><p class="pIndent_after">单击“确定”。 </p><a name="wp77844"></a><p class="pIndent">QuickTest 开始进行录制，浏览器将打开 Mercury Tours 网站。 </p></ul></div><a name="wp77846"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">签入 Mercury Tours 网站。 </b></li></div><a name="wp77848"></a><p class="pIndent">在“User Name”和“Password”框中，键入在 Mercury Tours 中注册过的名称和密码。 </p><a name="wp77850"></a><p class="pIndent">单击“Sign-In”。 </p><a name="wp77852"></a><p class="pIndent">将打开“Flight Finder”页。 </p><a name="wp77854"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">输入航班详细信息。</b></li></div><a name="wp77856"></a><p class="pIndent">更改下列选项： </p><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp77858"></a><div class="pSmartBullet2"><li>Departing From:<b style="FONT-WEIGHT: bold">New York</b></li></div><a name="wp77860"></a><div class="pSmartBullet2"><li>On:<b style="FONT-WEIGHT: bold">Dec 29</b></li></div><a name="wp77862"></a><div class="pSmartBullet2"><li>Arriving In:<b style="FONT-WEIGHT: bold">San Francisco</b></li></div><a name="wp77864"></a><div class="pSmartBullet2"><li>Returning:<b style="FONT-WEIGHT: bold">Dec 31</b></li></div><a name="wp77866"></a><p class="pIndent">单击“CONTINUE”接受其他默认选项。将打开“Select Flight”页。 </p></ul></div><a name="wp77868"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择一个航班。</b></li></div><a name="wp77870"></a><p class="pIndent">单击“CONTINUE”接受其他默认航班选项。将打开“Book a Flight”页。 </p><a name="wp77872"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">输入必需的乘客信息和购买信息。</b></li></div><a name="wp77874"></a><p class="pIndent">在“Passengers”和“Credit Card”部分输入必需的信息（带有红色文本标签的字段）。 </p><a name="wp77876"></a><p class="pIndent">在该页的底部，单击“SECURE PURCHASE”。将打开“Flight Confirmation”页。 </p><a name="wp77878"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将浏览器返回至“Flight Finder”页。</b></li></div><a name="wp77880"></a><p class="pIndent">在“Flight Confirmation”页的底部，单击“BACK TO FLIGHTS”按钮。将打开“Flight Finder”页。 </p><a name="wp77882"></a><p class="pIndent">通过结束在“Flight Finder”页上的录制，可以在同一页面上创建开始和结束操作，以便您可以根据需要多次调用操作。 </p><a name="wp77884"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">停止录制。</b></li></div><a name="wp77891"></a><p class="pIndent">在 QuickTest 中，单击“停止” <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_stop.gif" border="0" /> 停止录制过程。 </p><a name="wp77893"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将测试另存为 ActionA。</b></li></div><a name="wp77895"></a><p class="pIndent">选择“文件”&gt;“另存为”。将测试另存为 <span class="cExample">ActionA</span>。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp77903"></a><h4 class="pn3Heading">将测试拆分为两项操作 </h4><a name="wp77905"></a><p class="pRegtext">您的测试当前包含两个主要进程：签入和购买机票，因此将测试拆分为不同的操作非常有意义。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp77907"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择您希望第二个操作开始时所在的页面。 </b></li></div><a name="wp77909"></a><p class="pIndent">在关键字视图中，单击 (+) 展开“Action1”&gt;“Welcome:Mercury Tours”。 </p><a name="wp77911"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将测试拆分为两个操作。</b></li></div><a name="wp77915"></a><p class="pIndent">选择第一个“Find a Flight:Mercury”页并选择“步骤”&gt;“拆分操作”，或单击“拆分操作”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_split_action.gif" border="0" /> 。将打开“Split Action”对话框。 <br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/Split_Action.gif" border="0" /><br /><br /></p><a name="wp77917"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">输入这两项操作的名称和描述。</b></li></div><a name="wp77919"></a><p class="pIndent">在“第一个操作”中的“名称”框中键入：<span class="cExample">Sign_in</span>。 </p><a name="wp77921"></a><p class="pIndent">在“第一个操作”中的“描述”框中键入：<span class="cExample">Enters user name and password to sign in</span>。 </p><a name="wp77923"></a><p class="pIndent">在“第二个操作”中的“名称”框中键入：<span class="cExample">FlightOrder</span>。 </p><a name="wp77925"></a><p class="pIndent">在“第二个操作”中的“描述”框中键入：<span class="cExample">Chooses and purchases a flight</span>。 </p><a name="wp77927"></a><p class="pIndent">单击“确定”关闭“拆分操作”对话框，并接受其他默认选项。这两项操作将显示在关键字视图中。 </p><a name="wp77929"></a><p class="pIndent">选择“视图”&gt;“全部展开”检查每项操作的内容。注意，“FlightOrder”操作是在“Find a Flight:Mercury”页中开始和结束的操作。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp77933"></a><h4 class="pn3Heading">插入对新建操作的调用 </h4><a name="wp77935"></a><p class="pRegtext">现在您将插入一个对新操作的调用，并将录制返回 Mercury Tours 主页的步骤，以便整个测试在同一页面中开始和结束。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp77937"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">插入 ReturnHome 操作。</b></li></div><a name="wp77941"></a><p class="pIndent">选择“插入&gt;“调用新建操作”或单击“插入对新建操作的调用”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_new_action.gif" border="0" /> 。将打开“插入对新建操作的调用”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/Insert_New_Action.gif" border="0" /><br /><br /></p><a name="wp77943"></a><p class="pIndent_after">在“名称”框中输入 <span class="cExample">ReturnHome</span>，确认选择了“测试结尾处”，并单击“确定”。将关闭对话框，并将 ReturnHome 操作添加到测试的末尾。 </p><a name="wp77945"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">为录制准备应用程序。</b></li></div><a name="wp77947"></a><p class="pIndent">确认 Web 浏览器已打开“Flight Finder”页。 </p><a name="wp77953"></a><p class="pIndent">如果未打开浏览器，请在 Mercury Tours 站点 (<span class="cURL_example"><a href="http://newtours.mercuryinteractive.com&quot;%20target=&quot;_blank/" target="_blank"></a><a href="http://newtours.mercuryinteractive.com/" target="_blank">http://newtours.mercuryinteractive.com</a></span>) 中打开并签入。将打开“Flight Finder”页。 </p><a name="wp77959"></a><p class="pIndent">将应用程序放置在桌面上，以便可以同时看到 QuickTest 和 Web 浏览器。 </p><a name="wp77961"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">更改录制和运行设置。</b></li></div><a name="wp77963"></a><p class="pIndent">当前已设置了录制和运行设置，因此，每次开始录制测试时，即打开一个新的浏览器。但是，由于您想要在已打开并准备好的浏览器中录制步骤，因此您需要在开始录制之前更改录制和运行设置。 </p><a name="wp77970"></a><p class="pIndent">在 QuickTest 中，选择“测试”&gt;“录制和运行设置”。将打开“录制和运行设置”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/record_run_set_web.gif" border="0" /><br /><br /></p><a name="wp77972"></a><p class="pIndent_after">在“Web”选项卡中，选择“在任何打开的 Web 浏览器上录制和运行测试”并单击“确定”。 </p><a name="wp77974"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">录制 ReturnHome 操作。</b></li></div><a name="wp77976"></a><p class="pIndent">在关键字视图中，选择新的 ReturnHome 操作图标。 </p><a name="wp77979"></a><p class="pIndent">选择“测试”&gt;“录制”，或单击“录制”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_record.gif" border="0" /> 。 </p><a name="wp77981"></a><p class="pIndent">单击“Flight Finder”页左侧的“Home”导航链接。将打开 Mercury Tours 主页。 </p><a name="wp77988"></a><p class="pIndent">在 QuickTest 中，单击“停止” <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_stop.gif" border="0" /> 停止录制过程。 </p><a name="wp77990"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将“录制和运行设置”还原为原始设置。</b></li></div><a name="wp78000"></a><p class="pIndent">您为了录制 ReturnHome 操作而更改了录制和运行设置，但此更改也将影响 QuickTest 运行测试的方式。如果您希望在运行测试时 QuickTest 新打开一个浏览器访问 Mercury Tours 主页，则需要重新应用原始设置。 </p><a name="wp78002"></a><p class="pIndent">选择“测试”&gt;“运行和录制设置”。将打开“录制和运行设置”对话框。 </p><a name="wp78008"></a><p class="pIndent">在“Web”选项卡中，选择“录制或运行会话开始时打开以下浏览器”。确认 <span class="cURL_example"><a href="http://newtours.mercuryinteractive.com&quot;%20target=&quot;_blank/" target="_blank"></a><a href="http://newtours.mercuryinteractive.com/" target="_blank">http://newtours.mercuryinteractive.com</a></span> 显示在“地址”框中并单击“确定”。 </p><a name="wp78010"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp78013"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp78017"></a><h4 class="pn3Heading">将操作设置为可重用操作 </h4><a name="wp78019"></a><p class="pRegtext">可重用操作类似于编程中的函数。如果您需要将一个过程包含在几个测试中，请录制、修改并增强此过程的步骤并将它们保存在可重用操作中。然后即可从其他测试中调用该操作，而不必每次都进行录制、修改和增强这些同样的步骤。 </p><a name="wp78021"></a><p class="pRegtext">要从另一个测试中调用某项操作，必须在存储该操作所用的测试中将其设置为可重用操作。您在本课中创建的“Sign_in”和“ReturnHome”操作几乎可以应于在 Mercury Tours 站点上创建的所有测试，因此将其设为可重用操作非常有意义。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp78025"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将 Sign_in 变为可重用操作。</b></li></div><a name="wp78028"></a><p class="pIndent">在关键字视图中，右键单击“Sign_in”操作并选择“操作属性”。将打开“操作属性”对话框。选择“可重用操作”复选框并单击“确定”。如果显示消息框，请阅读消息，然后单击“不再显示该对话框”，<b style="FONT-WEIGHT: bold"></b>再单击“确定”。操作图标更改为可重用操作图标 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_action_reusable.gif" border="0" /> 。 </p><a name="wp78032"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">查看 Sign_in 操作的详细信息。</b></li></div><a name="wp78034"></a><p class="pIndent">注意，您将不再能够在关键字视图中展开“Sign_in”操作。 </p><a name="wp78037"></a><p class="pIndent">如果此前关键字视图中并未显示操作列表，则操作列表将在您将操作转换为可重用操作之后进行显示。操作列表将显示测试中所有可重用操作和外部操作的列表。 <br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/ActionList.gif" border="0" /><br /><br /></p><a name="wp78039"></a><p class="pIndent_after">通过从操作列表中选择“Sign_in”，查看“Sign_in”操作的详细信息。将显示“Sign_in”操作的详细信息。 </p><a name="wp78041"></a><p class="pIndent">在操作列表中，选择“测试流程”，将关键字视图中的测试返回到主流程。 </p><a name="wp78043"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将 ReturnHome 变为可重用操作。</b></li></div><a name="wp78053"></a><p class="pIndent">为 ReturnHome 操作重复步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-07.htm#wp78025">1</a> 和 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-07.htm#wp78032">2</a>。 </p><a name="wp78055"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp78058"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp78066"></a><h2 class="pn2Heading">插入现有操作 </h2><a name="wp78068"></a><p class="pRegtext">在设计一组测试时，您可能会发现每个测试都要求一个或多个同样的活动，例如签入。一旦创建了操作并使用一个测试将其保存，您即可将对现有操作副本的调用或对现有操作的调用插入到其他测试中。 </p><a name="wp78070"></a><p class="pRegtext">在插入对现有操作副本的调用时，可以对复制的操作进行更改，您所做的更改不会影响其他测试，也不会受到其他测试的影响。但是，对现有操作的调用在调用测试中具有只读属性。只能在存储它们所使用的测试中对其进行修改。通过对现有操作的调用，您可以从多个测试中调用同一个操作，这使得维护测试变得很容易，因为当您的应用程序发生更改时，只需更新使用原始测试存储的现有操作。 </p><a name="wp78072"></a><p class="pRegtext">在后面的练习中，您将新建一个类似于“ActionA”测试的测试，所不同的是，“Sign_in”和“ReturnHome”操作是外部操作（对使用其他测试存储的现有操作的调用），而且对“FlightOrder”操作进行了一点修改。 </p></blockquote><br /><blockquote class="indent"><a name="wp78215"></a><h2 class="pn2Heading">参数化操作 </h2><a name="wp78221"></a><p class="pRegtext">看一下 QuickTest 窗口底部的数据表，在 ActionB 测试中您将发现四个选项卡：“Global”“Copy of FlightOrder”、“Sign_in [ActionA]”以及“ReturnHome [ActionA]”。 </p><a name="wp78223"></a><p class="pNote">注意： 如果没有显示数据表，请选择“查看”&gt;“数据表”以显示数据表。 </p><a name="wp78225"></a><p class="pRegtext">“Global”选项卡是一个数据表，其中的数据用于整个测试。如果“Global”表中显示有五行数据，则测试将运行五次。此外，可以使用相关操作表为每个操作创建数据集。如果使用操作参数对步骤进行参数化，并在相应的工作表中输入五行数据，则此操作将在每个测试循环中运行五次。 </p><a name="wp78227"></a><p class="pNote">注意： “Sign_in [ActionA]”和“ReturnHome [ActionA]”数据表显示为灰色，无法进行编辑，因为每一个数据表都属于相应调用的操作，因此仅可以从所调用操作的原始测试进行编辑。 </p><a name="wp78229"></a><p class="pRegtext">在本部分中，您将为“FlightOrder”操作创建一个数据集，以检查应用程序如何在单个用户会话中处理多个订单。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp78231"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">打开 </b><b style="FONT-WEIGHT: bold">ActionB</b><b style="FONT-WEIGHT: bold"> 测试。</b></li></div><a name="wp78233"></a><p class="pIndent">如果尚未打开“ActionB”测试，请选择“文件”&gt;“打开”，浏览至“ActionB”。单击“打开”。 </p><a name="wp78237"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择要参数化的步骤。</b></li></div><a name="wp78239"></a><p class="pIndent">单击 (+) 展开“Copy of FlightOrder”&gt;“Welcome:Mercury Tours”&gt;“Find a Flight:Mercury”。 </p><a name="wp78243"></a><p class="pIndent">在关键字视图的“toPort”行中，单击“值”单元格，再单击参数化图标 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_param.gif" border="0" /> 。将打开“值配置选项”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/value_config2.gif" border="0" /><br /><br /></p><a name="wp78247"></a><p class="pIndent"><b style="FONT-WEIGHT: bold">输入参数信息。</b></p><a name="wp78249"></a><p class="pIndent">选择“参数”，并确认选择了“DataTable”选项。 </p><a name="wp78251"></a><p class="pIndent">在“名称”框中，键入 <span class="cExample">ArrivalCity</span>。 </p><a name="wp78253"></a><p class="pIndent">您正在专门为“Copy of FlightOrder”操作创建数据集。因此，选择“当前操作表（本地）”。单击“确定”关闭“值配置选项”对话框。 </p><a name="wp78259"></a><p class="pIndent">QuickTest 自动将“ArrivalCity”列添加到“Copy of FlightOrder”数据表并将“San Francisco”添加到“ArrivalCity”列的第一个单元格中。 </p><a name="wp78261"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">参数化其他步骤。</b></li></div><a name="wp78263"></a><p class="pIndent">一个客户在同一天飞到两个不同的地点，这不太符合逻辑，因此对出发和到达时间进行参数化非常有意义。 </p><a name="wp78269"></a><p class="pIndent">在关键字视图中，选择“fromMonth”。使用步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-11.htm#wp78237">2</a> 中的过程来参数化出发日期。确保选择“值配置选项”对话框中的“当前操作表（本地）”。 </p><a name="wp78275"></a><p class="pIndent">在关键字视图中，选择<b style="FONT-WEIGHT: bold">“toMonth”。</b>使用步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-11.htm#wp78237">2</a> 中的解释来参数化抵达日期。确保选择“值配置选项”对话框中的“当前操作表（本地）”。 </p><a name="wp78277"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">在数据表中输入参数化数据。</b></li></div><a name="wp78279"></a><p class="pIndent">在数据表中，单击“Copy of FlightOrder”选项卡。 </p><a name="wp78281"></a><p class="pIndent">在“ArrivalCity”列的第二行键入 <span class="cExample">Portland</span>。按 Enter 键。 </p><a name="wp78283"></a><p class="pIndent">在出发日期和抵达日期列的第二行键入 <span class="cExample">Oct </span>。 </p><a name="wp78285"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将操作设置为在本地数据表中运行所有数据。</b></li></div><a name="wp78295"></a><p class="pIndent">默认情况下，QuickTest 仅运行测试中的每个操作的一个循环。您想要 QuickTest 使用“Copy of FlightOrder”选项卡中的所有数据。 </p><a name="wp78300"></a><p class="pIndent">右键单击关键字视图中的“Copy of FlightOrder”操作并选择“操作调用属性”。将打开“操作调用属性”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/Action%20Properties_run_tab.gif" border="0" /><br /><br /></p><a name="wp78302"></a><p class="pIndent_after">选择“运行”选项卡上的“在所有行上运行”。如果打开消息框，请阅读消息，然后单击“确定”将其关闭。单击“确定”关闭“操作调用属性”对话框。 </p></ol></div><div class="pSmartList1"><ol class="pSmartList1" type="1"><a name="wp78304"></a><div class="pSmartList1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp78307"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p><a name="wp78309"></a><p class="pIndent_after">现在您已创建了一个测试，该测试可完成下列操作：签入到 Mercury Tours 站点；提交以下两个航班订单：12 月 29 日到 12 月 31 日 从 London 飞往 San Francisco 的航班和 10 月 29 日到 12 月 31 日从 London 飞往 Portland 的航班；以及通过单击“Home”链接，从系统注销。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp78317"></a><h2 class="pn2Heading">运行和分析多操作测试 </h2><a name="wp78319"></a><p class="pRegtext">您将运行“ActionB”测试。整个测试只运行一次，而“FlightOrder”操作将运行两次，为“Copy of FlightOrder”数据表中的每组数据运行一次。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp78321"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">运行 </b>ActionB<b style="FONT-WEIGHT: bold"> 测试。</b></li></div><a name="wp78323"></a><p class="pIndent">请确认已关闭所有的 Web 浏览器。 </p><a name="wp78326"></a><p class="pIndent">单击“运行” <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_run.gif" border="0" /> 或选择“测试”&gt; “运行”。将打开“运行”对话框。 </p><a name="wp78328"></a><p class="pIndent">选择“新建运行结果文件夹”并接受默认的结果文件夹名。 </p><a name="wp78330"></a><p class="pIndent">单击“确定”。当完成测试运行时，将打开“测试结果”窗口。 </p><a name="wp78332"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">检查测试结果。</b></li></div><a name="wp78334"></a><p class="pIndent">检查结果概要。该测试标记为“完成”。这表明测试运行中未发生任何故障（没有要“通过”的检查点）。 </p><a name="wp78337"></a><p class="pIndent">展开“测试结果”窗口中的“Test ActionB Summary”&gt;“ActionB Iteration 1 (Row 1)”。选择结果树中的“Copy of FlightOrder Summary”操作。注意，概要将显示所有两项循环的结果。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/results%20lesson8B.gif" border="0" /><br /><br /></p><a name="wp78339"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">关闭“测试结果”窗口。</b></li></div><a name="wp78343"></a><p class="pIndent">选择“文件”&gt;“退出”关闭“测试结果”窗口。 </p></ol></div></blockquote><br /></font><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-20 14:41 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WAS服务器负载测试软件导读</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20833.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20833.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20833.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: WAS服务器负载测试软件导读你的Web服务器和应用到底能够支持多少并发用户访问？在出现大量并发请求的情况下，软件会出现问题吗？这些问题靠通常的测试手段是无法解答的。本文介绍了Microsoft为这个目的而提供的免费工具WAS及其用法。另外，本文介绍了一种Web应用的性能优化方法，并利用WAS测试了它的性能改善程度。　　编译如下：　　随着服务器端处理任务的日益复杂以及网站访问量的迅速增长，服务器性能...&nbsp;&nbsp;<a href='http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html'>阅读全文</a><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-20 11:08 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试工具的选择和使用</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 03:03:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20832.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20832.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20832.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="778" align="center" border="0">
				<tbody>
						<tr>
								<td valign="top">
										<table cellspacing="0" cellpadding="0" width="558" border="0">
												<tbody>
														<tr>
																<td valign="top" align="right" width="98%" bgcolor="#ffffff">
																		<div class="daxiao14" align="left">
																				<center>
																						<h4>Parasoft白盒测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">支持语言环境</td>
																										<td>简介</td>
																								</tr>
																								<tr>
																										<td>Jtest</td>
																										<td>Java</td>
																										<td>代码分析和动态类、组件测试</td>
																								</tr>
																								<tr>
																										<td>Jcontract</td>
																										<td>Java</td>
																										<td>实时性能监控以及分析优化</td>
																								</tr>
																								<tr>
																										<td>C++ Test</td>
																										<td>C,C++</td>
																										<td>代码分析和动态测试</td>
																								</tr>
																								<tr>
																										<td>CodeWizard</td>
																										<td>C,C++</td>
																										<td>代码静态分析</td>
																								</tr>
																								<tr>
																										<td>Insure++</td>
																										<td>C,C++</td>
																										<td>实时性能监控以及分析优化</td>
																								</tr>
																								<tr>
																										<td>.test</td>
																										<td>.Net</td>
																										<td>代码分析和动态测试</td>
																								</tr>
																						</tbody>
																				</table>
																				<br />
																				<center>
																						<h4>Compuware白盒测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">支持语言环境</td>
																										<td>简介</td>
																								</tr>
																								<tr>
																										<td>BoundsChecker</td>
																										<td>C++,Delphi</td>
																										<td>API和OLE错误检查、指针和泄露错误检查、内存错误检查</td>
																								</tr>
																								<tr>
																										<td>TrueTime</td>
																										<td>C++,Java,Visual Basic</td>
																										<td>代码运行效率检查、组件性能的分析</td>
																								</tr>
																								<tr>
																										<td>FailSafe</td>
																										<td>Visual Basic</td>
																										<td>自动错误处理和恢复系统</td>
																								</tr>
																								<tr>
																										<td>Jcheck</td>
																										<td>M$ Visual J++</td>
																										<td>图形化的纯种和事件分析工具</td>
																								</tr>
																								<tr>
																										<td>TrueCoverage</td>
																										<td>C++,Java,Visual Basic</td>
																										<td>函数调用次数、所占比率统计以及稳定性跟踪</td>
																								</tr>
																								<tr>
																										<td>SmartCheck</td>
																										<td>Visual Basic</td>
																										<td>函数调用次数、所占比率统计以及稳定性跟踪</td>
																								</tr>
																								<tr>
																										<td>CodeReview</td>
																										<td>Visual Basic</td>
																										<td>自动源代码分析工具</td>
																								</tr>
																						</tbody>
																				</table>
																				<br />
																				<center>
																						<h4>Xunit白盒测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">支持语言环境</td>
																										<td>官方站点</td>
																								</tr>
																								<tr>
																										<td>Aunit</td>
																										<td>Ada</td>
																										<td>http://www.libre.act-europe.fr</td>
																								</tr>
																								<tr>
																										<td>CppUnit</td>
																										<td>C++</td>
																										<td>http://cppunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>ComUnit</td>
																										<td>VB,COM</td>
																										<td>http://comunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>Dunit</td>
																										<td>Delphi</td>
																										<td>http://dunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>DotUnit</td>
																										<td>.Net</td>
																										<td>http://dotunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>HttpUnit</td>
																										<td>Web</td>
																										<td>http://c2.com/cgi/wiki?HttpUnit</td>
																								</tr>
																								<tr>
																										<td>HtmlUnit</td>
																										<td>Web</td>
																										<td>http://htmlunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>Jtest</td>
																										<td>Java</td>
																										<td>http://www.junit.org</td>
																								</tr>
																								<tr>
																										<td>JsUnit(Hieatt)</td>
																										<td>Java<i>script</i> 1.4以上</td>
																										<td>http://www.jsunit.net</td>
																								</tr>
																								<tr>
																										<td>PhpUnit</td>
																										<td>Php</td>
																										<td>http://phpunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>PerlUnit</td>
																										<td>Perl</td>
																										<td>http://perlunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>XmlUnit</td>
																										<td>Xml</td>
																										<td>http://xmlunit.sourceforge.net</td>
																								</tr>
																						</tbody>
																				</table>
																				<center>
																						<h4>主流黑盒功能测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">公司名</td>
																										<td>官方站点</td>
																								</tr>
																								<tr>
																										<td>WinRunner</td>
																										<td>Mercury</td>
																										<td>http://www.mercuryinteractive.com</td>
																								</tr>
																								<tr>
																										<td>Astra Quicktest</td>
																										<td>Mercury</td>
																										<td>http://www.mercuryinteractive.com</td>
																								</tr>
																								<tr>
																										<td>Robot</td>
																										<td>IBM Rational</td>
																										<td>http://www.rational.com</td>
																								</tr>
																								<tr>
																										<td>QARun</td>
																										<td>Compuware</td>
																										<td>http://www.compuware.com</td>
																								</tr>
																								<tr>
																										<td>SilkTest</td>
																										<td>Segue</td>
																										<td>http://www.segue.com</td>
																								</tr>
																								<tr>
																										<td>e-Test</td>
																										<td>Empirix</td>
																										<td>http://www.empirix.com</td>
																								</tr>
																						</tbody>
																				</table>
																				<center>
																						<h4>主流黑盒性能测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">公司名</td>
																										<td>官方站点</td>
																								</tr>
																								<tr>
																										<td>WAS</td>
																										<td>M$</td>
																										<td>http://www.micro$oft.com</td>
																								</tr>
																								<tr>
																										<td>LoadRunner</td>
																										<td>Mercury</td>
																										<td>http://www.mercuryinteractive.com</td>
																								</tr>
																								<tr>
																										<td>Astra Quicktest</td>
																										<td>Mercury</td>
																										<td>http://www.mercuryinteractive.com</td>
																								</tr>
																								<tr>
																										<td>Qaload</td>
																										<td>Compuware</td>
																										<td>http://www.empirix.com</td>
																								</tr>
																								<tr>
																										<td>TeamTest:SiteLoad</td>
																										<td>IBM Rational</td>
																										<td>http://www.rational.com</td>
																								</tr>
																								<tr>
																										<td>Webload</td>
																										<td>Radview</td>
																										<td>http://www.radview.com</td>
																								</tr>
																								<tr>
																										<td>Silkperformer</td>
																										<td>Segue</td>
																										<td>http://www.segue.com</td>
																								</tr>
																								<tr>
																										<td>e-Load</td>
																										<td>Empirix</td>
																										<td>http://www.empirix.com</td>
																								</tr>
																								<tr>
																										<td>OpenSTA</td>
																										<td>OpenSTA</td>
																										<td>http://www.opensta.com</td>
																								</tr>
																						</tbody>
																				</table>
																				<center>
																						<h4>测试管理工具典型产品的比较</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" border="1">
																						<tbody>
																								<tr>
																										<td width="18%">工具名称</td>
																										<td width="25%">Testdirector</td>
																										<td width="21%">ClearQuest</td>
																										<td width="20%">BMS</td>
																										<td>Bugzilla</td>
																								</tr>
																								<tr>
																										<td>流程定制</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>N</td>
																										<td>Y</td>
																								</tr>
																								<tr>
																										<td>查询功能定制</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																								</tr>
																								<tr>
																										<td>功能域定制</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																								</tr>
																								<tr>
																										<td>用户权限分级管理</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																								</tr>
																								<tr>
																										<td>Email通知</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																										<td>Y</td>
																								</tr>
																								<tr>
																										<td>构架模式</td>
																										<td>B/S</td>
																										<td>C/S,B/S</td>
																										<td>B/S</td>
																										<td>B/S</td>
																								</tr>
																								<tr>
																										<td>报表定制功能</td>
																										<td>Y</td>
																										<td>强,集成Crystal Report</td>
																										<td>有标准报表和高级报表,定制功能不够</td>
																										<td>Y</td>
																								</tr>
																								<tr>
																										<td>支持平台</td>
																										<td>Windows</td>
																										<td>Windows, Unix</td>
																										<td>Windows</td>
																										<td>Linux, FreeBSD</td>
																								</tr>
																								<tr>
																										<td>支持数据库</td>
																										<td>Oracle, M$ Access, SQL Server等</td>
																										<td>Oracle, M$ Access, SQL Server</td>
																										<td>SQL Server等MSDE</td>
																										<td>MySQL</td>
																								</tr>
																								<tr>
																										<td>安装配置的复杂度</td>
																										<td>简单</td>
																										<td>有些复杂</td>
																										<td>容易</td>
																										<td>不复杂</td>
																								</tr>
																								<tr>
																										<td>许可证费用</td>
																										<td>昂贵</td>
																										<td>昂贵</td>
																										<td>适中</td>
																										<td>免费</td>
																								</tr>
																								<tr>
																										<td>售后服务</td>
																										<td>国内有多家代理公司提供相关服务</td>
																										<td>在国内有分公司提供技术支持</td>
																										<td>技术支持和服务体系完备</td>
																										<td>可自行修改源代码</td>
																								</tr>
																								<tr>
																										<td>与其他工具集成</td>
																										<td>本身又是测试需求、测试案例管理工具, 与winRunner, LoadRunner集成，并且具有多种主流Case工具接口Add-In</td>
																										<td>与rational公司的其它产品无缝集成，特别与Clear Case配合以可实现UCM的配置管理体系</td>
																										<td>M$ VSS, Project</td>
																										<td>开源配置管理工具CVS</td>
																								</tr>
																								<tr>
																										<td>公司背景</td>
																										<td>世界主流测试软件提供商</td>
																										<td>已被IBM合并,世界著名软件公司</td>
																										<td>微软与上海市政府新成立的软件企业　</td>
																										<td>世界著名开源项目</td>
																								</tr>
																						</tbody>
																				</table>
																				<div align="left">
																						<strong>商业化自动功能测试工具特性比较</strong>
																						<br />
																						<table class="hui" width="100%" border="1">
																								<tbody>
																										<tr>
																												<td>特性</td>
																												<td>WinRunner</td>
																												<td>SilkTest</td>
																												<td>Etester</td>
																										</tr>
																										<tr>
																												<td>易于安装</td>
																												<td>是</td>
																												<td>是</td>
																												<td>是，不支持设置代理服务等设置</td>
																										</tr>
																										<tr>
																												<td>GUI对象和脚本分离</td>
																												<td>是</td>
																												<td>对象声明在单独的include文件中，但是case脚本中还有包含</td>
																												<td>两者都在VB脚本的case中</td>
																										</tr>
																										<tr>
																												<td>toolbar/field定制</td>
																												<td>可以</td>
																												<td>无法定制toolbar,可以定制GUI的fields内容</td>
																												<td>无法定制</td>
																										</tr>
																										<tr>
																												<td>操作系统</td>
																												<td>Windows</td>
																												<td>Unix,Windows</td>
																												<td>Unix, Windows</td>
																										</tr>
																										<tr>
																												<td>浏览器</td>
																												<td>NetScape,IE</td>
																												<td>NetScape,IE</td>
																												<td>NetScape,IE</td>
																										</tr>
																										<tr>
																												<td>支持测试对象</td>
																												<td>HTML,DHTML,JavaScript,VBScript,XML,JAVA applets, ActiveX,VB, PowerBuilder,Delphi,Terminal Emulator,,Oracle,SAP,PeopleSoft, Siebel</td>
																												<td>HTML, DHTML, JavaScript, XML, Java apps and applets, MFC, VB, Oracle, PowerBuilder, Delphi, SAP</td>
																												<td>Java apps and applets in M$JVM/SunJVM, HTML, DHTML, JavaScript, XML, MFC, VB, Oracle, SAP, Delphi, Terminal Emulator, PowerBuilder, Oracle, Peoplesoft</td>
																										</tr>
																										<tr>
																												<td>脚本语言</td>
																												<td>TSL</td>
																												<td>第四代面向对象的脚本语言4Test,类似C++</td>
																												<td>提供可编程接口，用户可使用标准语言扩展可视脚本，如VB,C++,Java</td>
																										</tr>
																										<tr>
																												<td>脚本调试功能</td>
																												<td>强大</td>
																												<td>类似C＋＋Debugger</td>
																												<td>VBA Debugger结合Visual Script Debugger</td>
																										</tr>
																										<tr>
																												<td>允许数据驱动的测试</td>
																												<td>是</td>
																												<td>是</td>
																												<td>是</td>
																										</tr>
																										<tr>
																												<td>自动数据生成</td>
																												<td>支持</td>
																												<td>支持</td>
																												<td>不支持</td>
																										</tr>
																										<tr>
																												<td>允许通过数据库验证数据</td>
																												<td>通过ODBC及本地数据库连接</td>
																												<td>自带Database Tester</td>
																												<td>通过ODBC</td>
																										</tr>
																										<tr>
																												<td>应用程序改变后的脚本维护</td>
																												<td>直接修改GUImap</td>
																												<td>更新include 文件。</td>
																												<td>自动更新无需录制</td>
																										</tr>
																										<tr>
																												<td>数据库支持</td>
																												<td>市场流行的数据库</td>
																												<td>市场流行的数据库</td>
																												<td>市场流行的数据库</td>
																										</tr>
																										<tr>
																												<td>无人看管下的自动执行测试</td>
																												<td>通过Testdirector</td>
																												<td>允许</td>
																												<td>允许，通???&gt;????&#x7;??&#x8;师?&#x7;过eTestSuite</td>
																										</tr>
																										<tr>
																												<td>分布式测试控制/同步/执行</td>
																												<td>Testdirector支持</td>
																												<td>支持</td>
																												<td>支持</td>
																										</tr>
																										<tr>
																												<td>自动创建测试结果日志</td>
																												<td>是</td>
																												<td>是</td>
																												<td>是</td>
																										</tr>
																										<tr>
																												<td>非预期错误的恢复</td>
																												<td>允许</td>
																												<td>允许</td>
																												<td>允许</td>
																										</tr>
																										<tr>
																												<td>与测试管理工具接口</td>
																												<td>Testdirector</td>
																												<td>自带Case管理功能。</td>
																												<td>e-test suite</td>
																										</tr>
																										<tr>
																												<td>图形化设计脚本执行集合</td>
																												<td>通过Testdirector设计</td>
																												<td>不支持</td>
																												<td>通过e-test suite设计</td>
																										</tr>
																										<tr>
																												<td>培训</td>
																												<td>有，Onsite及public training</td>
																												<td>有，提供kickoff training</td>
																												<td>有，onsite及public training</td>
																										</tr>
																										<tr>
																												<td>技术支持</td>
																												<td>曾获SSPA STAR荣誉</td>
																												<td>很好</td>
																												<td>客户对其评价</td>
																										</tr>
																										<tr>
																												<td>License</td>
																												<td>灵活的记费方式，既可以按使用次数计费也可以按协议算永久使用费</td>
																												<td>提供floating以及node-locked两种方式</td>
																												<td>提供Floating以及Node-locked两种方式</td>
																										</tr>
																										<tr>
																												<td>价格</td>
																												<td>昂贵</td>
																												<td>较贵</td>
																												<td>一般</td>
																										</tr>
																										<tr>
																												<td>Add-in收费</td>
																												<td>部分收费</td>
																												<td>不收费</td>
																												<td>不收费</td>
																										</tr>
																										<tr>
																												<td>
																														<strong>总论</strong>
																												</td>
																												<td>在全球的市场占有率较高，功能全面，价格昂贵</td>
																												<td>在国内的推广还处于起步阶段</td>
																												<td>价格较低，只支持web的测试，在金融、证券、电子商务等领域有广泛应用。</td>
																										</tr>
																								</tbody>
																						</table>
																				</div>
																		</div>
																</td>
														</tr>
														<tr>
																<td valign="top" align="right" colspan="2" height="12">
																		<div align="right"> </div>
																</td>
														</tr>
														<tr bordercolor="#f0f7ff" bgcolor="#f0f7ff">
																<td valign="top" align="right" colspan="2" height="3">
																		<div align="left">
																		</div>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
								<td valign="top" height="296">
										<table style="BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid" cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td valign="top" bgcolor="#ffffff">
																		<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
																				<form name="searchform" action="/php/search.php">
																						<tbody>
																								<tr>
																										<td width="89%">
																												<img height="12" src="http://www.51testing.com/php/modpage/img/image_01.gif" width="12" /> 站内搜索</td>
																										<td width="11%" height="9">
																												<div align="center">
																												</div>
																										</td>
																								</tr>
																								<tr>
																										<td>
																												<input id="keyword" size="22" name="keyword" />
																										</td>
																										<td>
																												<a href="javascript:document.searchform.submit();">
																														<img height="19" src="http://www.51testing.com/php/modpage/img/GO.gif" width="25" border="0" />
																												</a>
																										</td>
																								</tr>
																						</tbody>
																				</form>
																		</table>
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="80%" align="center" border="0">
												<tbody>
														<tr>
																<td height="9">
																</td>
														</tr>
												</tbody>
										</table>
										<table style="BORDER-RIGHT: #bea3e0 1px solid; BORDER-TOP: #bea3e0 1px solid; BORDER-LEFT: #bea3e0 1px solid; BORDER-BOTTOM: #bea3e0 1px solid" cellspacing="0" cellpadding="2" width="100%" align="center" bgcolor="#bea3e0" border="1">
												<tbody>
														<tr>
																<td style="BORDER-RIGHT: #bea3e0 1px solid; BORDER-TOP: #bea3e0 1px solid; BORDER-LEFT: #bea3e0 1px solid; BORDER-BOTTOM: #bea3e0 1px solid" bgcolor="#bea3e0">
																		<div class="style38" align="center">相关文章</div>
																</td>
														</tr>
														<tr>
																<td class="space" style="BORDER-RIGHT: #f0f7ff 1px solid; BORDER-TOP: #f0f7ff 1px solid; BORDER-LEFT: #f0f7ff 1px solid; BORDER-BOTTOM: #f0f7ff 1px solid" valign="top" align="left" bgcolor="#f0f7ff" height="45">
																		<a href="http://www.51testing.com/html/31/1320.html">
																				<font color="#000000">◎Purify检测的代码错误类型</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/771.html">
																				<font color="#000000">◎实时嵌入式软件测试工具的研究</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/770.html">
																				<font color="#000000">◎CODETEST——嵌入式软件实时测试工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/733.html">
																				<font color="#000000">◎基于GUI的自动化测试工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/641.html">
																				<font color="#000000">◎QALoad优秀的性能测试工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/632.html">
																				<font color="#000000">◎测试覆盖率工具--clover.net</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/631.html">
																				<font color="#000000">◎开发自动化测试脚本的技巧和心得</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/566.html">
																				<font color="#000000">◎GHOST V8.0 使用详解</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/486.html">
																				<font color="#000000">◎水滴石穿C语言之代码检查工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/483.html">
																				<font color="#000000">◎三款Java分析器点评</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/482.html">
																				<font color="#000000">◎嵌入式软件工业化测试工具LOGISCOPE</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/481.html">
																				<font color="#000000">◎WAS服务器负载测试软件导读</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/480.html">
																				<font color="#000000">◎Radview公司的web性能测试和分析系列工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/479.html">
																				<font color="#000000">◎Running Optimizeit from the command line</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/477.html">
																				<font color="#000000">◎Optimizeit Code Coverage概览</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/476.html">
																				<font color="#000000">◎Optimizeit Profiler概览</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/475.html">
																				<font color="#000000">◎JProbe Suite 4.0使用说明</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/474.html">
																				<font color="#000000">◎JProbe Profiler-优秀的剖析工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/473.html">
																				<font color="#000000">◎JProbe使用说明</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/472.html">
																				<font color="#000000">◎JProfiler跟踪和检查系统性能的好工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/459.html">
																				<font color="#000000">◎Running Optimizeit from the command line</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/362.html">
																				<font color="#000000">◎JProbe Profiler-优秀的剖析工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/78.html">
																				<font color="#000000">◎Compuware DevPartner Studio简介</font>
																		</a>
																		<br />
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="80%" align="center" border="0">
												<tbody>
														<tr>
																<td height="9">
																</td>
														</tr>
												</tbody>
										</table>
										<table style="BORDER-RIGHT: #bea3e0 1px solid; BORDER-TOP: #bea3e0 1px solid; BORDER-LEFT: #bea3e0 1px solid; BORDER-BOTTOM: #bea3e0 1px solid" cellspacing="0" cellpadding="2" width="100%" align="center" bgcolor="#bea3e0" border="1">
												<tbody>
														<tr>
																<td style="BORDER-RIGHT: #bea3e0 1px solid; BORDER-TOP: #bea3e0 1px solid; BORDER-LEFT: #bea3e0 1px solid; BORDER-BOTTOM: #bea3e0 1px solid" bgcolor="#bea3e0">
																		<div class="style38" align="center">热门文章</div>
																</td>
														</tr>
														<tr>
																<td class="space" style="BORDER-RIGHT: #f0f7ff 1px solid; BORDER-TOP: #f0f7ff 1px solid; BORDER-LEFT: #f0f7ff 1px solid; BORDER-BOTTOM: #f0f7ff 1px solid" valign="top" align="left" bgcolor="#f0f7ff" height="45">
																		<a href="http://www.51testing.com/html/31/566.html">
																				<font color="#000000">◎GHOST V8.0 使用详解</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/641.html">
																				<font color="#000000">◎QALoad优秀的性能测试工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/486.html">
																				<font color="#000000">◎水滴石穿C语言之代码检查工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/631.html">
																				<font color="#000000">◎开发自动化测试脚本的技巧和心得</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/733.html">
																				<font color="#000000">◎基于GUI的自动化测试工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/481.html">
																				<font color="#000000">◎WAS服务器负载测试软件导读</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/476.html">
																				<font color="#000000">◎Optimizeit Profiler概览</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/78.html">
																				<font color="#000000">◎Compuware DevPartner Studio简介</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/472.html">
																				<font color="#000000">◎JProfiler跟踪和检查系统性能的好工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/473.html">
																				<font color="#000000">◎JProbe使用说明</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/482.html">
																				<font color="#000000">◎嵌入式软件工业化测试工具LOGISCOPE</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/632.html">
																				<font color="#000000">◎测试覆盖率工具--clover.net</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/1362.html">
																				<font color="#000000">◎testview测试工具详介</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/771.html">
																				<font color="#000000">◎实时嵌入式软件测试工具的研究</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/483.html">
																				<font color="#000000">◎三款Java分析器点评</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/770.html">
																				<font color="#000000">◎CODETEST——嵌入式软件实时测试工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/1357.html">
																				<font color="#000000">◎抛砖引玉，GUI自动化测试的设计</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/1329.html">
																				<font color="#000000">◎性能测试软件介绍：SilkPerformer</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/362.html">
																				<font color="#000000">◎JProbe Profiler-优秀的剖析工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/1416.html">
																				<font color="#000000">◎选择正确的GUI测试自动化工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/475.html">
																				<font color="#000000">◎JProbe Suite 4.0使用说明</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/480.html">
																				<font color="#000000">◎Radview公司的web性能测试和分析系列工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/477.html">
																				<font color="#000000">◎Optimizeit Code Coverage概览</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/474.html">
																				<font color="#000000">◎JProbe Profiler-优秀的剖析工具</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/1320.html">
																				<font color="#000000">◎Purify检测的代码错误类型</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/479.html">
																				<font color="#000000">◎Running Optimizeit from the command line</font>
																		</a>
																		<br />
																		<a href="http://www.51testing.com/html/31/459.html">
																				<font color="#000000">◎Running Optimizeit from the command line</font>
																		</a>
																		<br />
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-20 11:03 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Robot连接SQL的例子</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20811.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 09:31:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20811.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20811.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20811.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20811.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="558" border="0">
				<tbody>
						<tr>
								<td valign="center" align="right" colspan="2" height="32">
										<div class="style7" align="center">
												<span style="FONT-SIZE: 12pt">
														<b>使用Robot连接SQL的例子</b>
												</span>
										</div>
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" bgcolor="#000000" colspan="2" height="1">
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" colspan="2" height="20">
										<div align="center"> </div>
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" colspan="2" height="10">
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" width="2%" height="10">
										<div align="left">
										</div>
								</td>
								<td valign="top" align="right" width="98%" bgcolor="#ffffff">
										<div class="daxiao14" align="left">
												<p>
														<font size="2">    这是使用Robot连接TestDirector数据库的一个例子。 <br />    首先在控制面板的ODBC中新建一个DSN，选择SQL Server连接，名字是td_test（这个可以自己随便取），连接服务器选择你TD库保存的DB服务器名称。连接你想要查询的库名，我这里是gpt_gogs_db，登录名是td，密码tdtdtd（在TD中新建一个project时，数据库默认所有者为td，密码为tdtdtd），这里仅两不要使用权限过大的用户，因为在脚本中是要明文写入密码的。最后测试一下数据源。<br /></font>
														<br />
														<font size="2">开始编写脚本了：<br /></font>
														<font size="2">======================================================================<br /></font>
														<font size="2">Sub Main<br />    Dim Result As Integer<br />    Dim connect as long<br />    Dim outputstr,query as string<br />    Dim out(1 to 2,1 to 16) as variant       <br />    '这里定义一个二维数组，第一维表示数据库中查询结果中的列，第二维表示查询结果中的行，可以看到这里可以一次查询并存储两行两列<br />    dim retcode as variant<br />    dim i as integer<br />    'Initially Recorded: 2005-7-18  22:16:12<br />    'scrīpt Name: sqltest<br />    connect = SQLOpen("DSN=td_test;UID=td;PWD=tdtdtd",outputstr)<br />    '注意这里各个参数和等号及等号后面赋值是紧跟着的，没有空格，因为如果有空格的话连接的时候连空格也算上<br />    '这样的话连接的时候就会提示选择DSN或是输入用户名，密码<br />    <br />    query = "select bg_bug_id,bg_status from bug where bg_subject='113'"<br />    '最好在查询分析器中执行一下这条语句<br />    <br />    call SQLExecquery(connect,query)<br />    <br />    call SQLRetrieve(connect,out()) <br />    <br />    msgbox out(1,1)<br />    msgbox out(2,1)<br />    msgbox out(1,2)<br />    msgbox out(2,2)<br />    '显示保存的结果<br />'    next<br />    <br />    call sqlclose(connect)<br />    </font>
												</p>
												<p>
														<font size="2">End Sub<br /></font>
														<font size="2">=================================================================================</font>
														<br />
														<font size="2">这里尤其注意那个设置二维数组的地方，这个二维数组可以一次存储多个查询结果，其结构就类似SQL Server中查询分析器查询后的结果。</font>
												</p>
												<p>
														<font size="2">如果我生明了两个二维数组即可保存不同的查询结果。</font>
												</p>
												<p>
														<font size="2">其读取查询内容的函数也应该重点看看。</font>
												</p>
												<p>
														<font size="2">如果想要返回不同的查询语句结果，应该这样写：</font>
														<br />
														<font size="2">=================================================================================<br /></font>
														<font size="2">Sub Main</font>
												</p>
												<p>
														<font size="2">    Dim Result As Integer</font>
												</p>
												<p>
														<font size="2">    Dim connect as long</font>
												</p>
												<p>
														<font size="2">    Dim outputstr,query1,query2 as string</font>
												</p>
												<p>
														<font size="2">    Dim out1(1 to 2,1 to 1) as variant </font>
												</p>
												<p>
														<font size="2">    Dim out2(1 to 2,1 to 1) as variant      </font>
												</p>
												<p>
														<font size="2">    '这里定义一个二维数组，第一维表示数据库中查询结果中的列，第二维表示查询结果中的行，可以看到这里可以一次查询并存储两行两列</font>
												</p>
												<p>
														<font size="2">    dim retcode as variant</font>
												</p>
												<p>
														<font size="2">    dim i as integer</font>
												</p>
												<p>
														<font size="2">    'Initially Recorded: 2005-7-18  22:16:12</font>
												</p>
												<p>
														<font size="2">    'scrīpt Name: sqltest</font>
												</p>
												<p>
														<font size="2">    connect = SQLOpen("DSN=td_test;UID=td;PWD=tdtdtd")</font>
												</p>
												<p>
														<font size="2">    '注意这里各个参数和等号及等号后面赋值是紧跟着的，没有空格，因为如果有空格的话连接的时候连空格也算上</font>
												</p>
												<p>
														<font size="2">    '这样的话连接的时候就会提示选择DSN或是输入用户名，密码</font>
												</p>
												<p>
														<font size="2">    query1 = "select bg_bug_id,bg_status from bug where bg_subject='113'"</font>
												</p>
												<p>
														<font size="2">    '最好在查询分析器中执行一下这条语句</font>
												</p>
												<p>
														<font size="2">query2 = "select bg_bug_id,bg_severity from bug where bg_subject='113'"</font>
												</p>
												<p>
														<font size="2">'不同的查询语句</font>
												</p>
												<p>
														<font size="2">    call SQLExecquery(connect,query1)</font>
														<font size="2">   </font>
												</p>
												<p>
														<font size="2">call SQLRetrieve(connect,out1())</font>
												</p>
												<p>
														<font size="2">'执行完查询语句后赋值给一个二维数组，切记！</font>
												</p>
												<p>
														<font size="2">    call SQLExecquery(connect,query2)</font>
												</p>
												<p>
														<font size="2">    call sqlretrieve(connect,out2())</font>
														<font size="2"> </font>
												</p>
												<p>
														<font size="2">    msgbox out1(1,1)</font>
												</p>
												<p>
														<font size="2">    msgbox out1(2,1)</font>
												</p>
												<p>
														<font size="2">    msgbox out2(1,1)</font>
												</p>
												<p>
														<font size="2">    msgbox out2(2,1)</font>
												</p>
												<p>
														<font size="2">    '显示保存的结果</font>
												</p>
												<p>
														<font size="2">'    next</font>
												</p>
												<p>
														<font size="2">    call sqlclose(connect)</font>
												</p>
												<p>
														<font size="2">End Sub</font>
												</p>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 17:31 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>策略→需求→建模→规划→执行</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20781.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 06:54:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20781.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20781.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20781.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20781.html</trackback:ping><description><![CDATA[
		<div class="style7" align="center">
				<span style="FONT-SIZE: 12pt">
						<b>策略→需求→建模→规划→执行<br /><div class="daxiao14" align="left"><p class="main">当二十一世纪进入知识经济时代后，企业所面临的挑战也越来越严格。而善用信息技术于经营策略，绝对是企业赢的关键因素之一。企业信息化所需的 IT 技术越来越多、越来越复杂，而更重要的是 A 公司必要的 IT 需求，却不见得 B 公司也需要。因此，在这种趋势演变下，事先规划与确认符合企业经营策略的 IT 需求，是新一代的企业信息部门所必须负责的关键任务之一。</p><p class="main">图一所示，以建模为导向的企业 IT 建设参考流程相关步骤解释如下：</p><p align="center"><img height="259" src="http://www.51testing.com/ddimg/uploadimg/20051231/1058230.jpg" width="300" /></p><p align="center">图一、以建模为导向的企业 IT 建设步骤。</p><p class="main"><strong>步骤一、根据企业策略定义目标城堡：</strong></p><p class="main">当企业的经营策略确定后，紧接着信息部门必须定义执行策略所需的信息需求。然而这些定义的需求是否真正符合策略所需，则尚属未知。因此，帮助企业高层抽象思考未来的信息需求，将可增加经营阶层对于未来信息系统的认知，进而确认信息技术需求的正确性。因此，信息部门首先应根据企业策略以及所定义的商业与流程模式 business and process models ，将需求凝聚在一个较明显、同时也是最高阶的目标上，称为「目标城堡」。目标城堡不见得能够涵盖所有需求，但是当有了目标城堡后，却可作为往后讨论的主轴。</p><p class="main"><strong>步骤二、根据目标城堡建立信息需求模型：</strong></p><p class="main">通常目标城堡对应到实际信息需求时会不够精准，同时对于企业经营层的主管来说，很多需求与知识不见得能够清楚交代。因此将目标城堡以类似积木手法快速建模后，所有的人员才能够真正认识彼此的想法。有了这个抽象的模型，也才能帮助大家思考，所定义的需求是否能够符合企业的经营策略以及商业与流程模式。在此步骤中采用适当的参考模型，当可大大缩减建模时间，同时也可帮助企业获得 best practice 的知识与经验。</p><p class="main"><strong>步骤三、利用需求模型确认是否符合企业策略与目标：</strong></p><p class="main">利用类似积木的概念来建模，最大的好处是大家可以直接根据需求，轻易地反复修改需求模型。这个步骤不会完成，除非最后大家都同意需求模型已达到目标城堡的所有要求。这个步骤要能被真正执行，则必须具备类似积木的需求建模工具。而软件分镜则是目前我们根据这个目标所实际发展出的软件工具。</p><p class="main"><strong>步骤四、根据需求模型规划实际蓝图：</strong></p><p class="main">当步骤三完成，有了被确认符合信息需求的需求模型后，紧接着企业信息部门的人员才可以放心着手规划所需的信息技术。需求模型的精准度越高，信息需求的规划蓝图乃可以越详细。而有了详细的规划，企业才可以确认各项 IT 导入的内容、成本与时程。</p><p class="main"><strong>步骤五、按照规划蓝图走向专业合作：</strong></p><p class="main">随着全球企业走向 IT 外包代工的主流趋势，当详细的 IT 规划蓝图完成后，企业信息部门才敢将信息需求委托给企业外的专业团队代工。因为所有的项目在蓝图中展开后，信息部门人员可以转化成监工与品质确认的脚色。而更重要的是，从此信息部门掌握的需求模型，事实上也是执行企业策略的核心知识。因此，外包代工并不会消弱信息部门的价值，反而能够提升信息部门的成熟等级 ? 从信息技术的提供者，变成是企业的高级顾问。</p><p class="main">化被动的 IT 支持为主动的 IT 应用</p><p class="main">希望能够协助企业降低信息化过程中的困难与困扰。同时也希望能够协助企业的 信息部门善用他们的能力，化被动的 IT 支持为主动的 IT 应用，进而帮助企业获利。</p></div></b>
				</span>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 14:54 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>microsoft的测试过程</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20778.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 06:39:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20778.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20778.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20778.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20778.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="778" align="center" border="0">
				<tbody>
						<tr>
								<td valign="top" width="558">
								</td>
								<td valign="top" width="220">
								</td>
						</tr>
						<tr>
								<td valign="top">
										<table cellspacing="0" cellpadding="0" width="558" border="0">
												<tbody>
														<tr bordercolor="#f0f7ff" bgcolor="#f0f7ff">
																<td valign="center" align="right" colspan="2" height="14">
																		<div align="left">
																				<a name="top">
																				</a> </div>
																</td>
														</tr>
														<tr>
																<td valign="center" align="right" bgcolor="#000000" colspan="2" height="1">
																</td>
														</tr>
														<tr>
																<td valign="center" align="right" colspan="2" height="32">
																		<div class="style7" align="center">
																				<span style="FONT-SIZE: 12pt">
																						<b>microsoft的测试过程</b>
																				</span>
																		</div>
																</td>
														</tr>
														<tr>
																<td valign="center" align="right" bgcolor="#000000" colspan="2" height="1">
																</td>
														</tr>
														<tr>
																<td valign="center" align="right" colspan="2" height="20">
																		<div align="center"> </div>
																</td>
														</tr>
														<tr>
																<td valign="top" align="right" colspan="2" height="10">
																</td>
														</tr>
														<tr>
																<td valign="top" align="right" width="2%" height="10">
																		<div align="left">
																		</div>
																</td>
																<td valign="top" align="right" width="98%" bgcolor="#ffffff">
																		<div class="daxiao14" align="left">
																				<p> </p>
																				<p>
																						<strong>一．团队组织 </strong>
																				</p>
																				<p>
																						<span class="main style1">
																								<strong>
																										<font color="#0000ff">
																												<span class="main">    </span>1．常见问题 </font>
																								</strong>
																						</span>
																				</p>
																				<ul>
																						<span class="main">·没有人愿意做测试 </span>
																						<span class="main">
																								<br />·觉得养不起那么多测试人员 </span>
																						<span class="main">
																								<br />·开发人员不遵循规范，随心所欲</span>
																						<br />·<span class="main">项目经理事必躬亲，分身乏术 </span></ul>
																				<p>
																						<span class="main style1">
																								<strong>
																										<font color="#0000ff">
																												<span class="main">
																														<strong>    </strong>
																												</span>2．微软团队模型 </font>
																								</strong>
																						</span>
																				</p>
																				<p align="center">
																						<font color="#0000ff">
																								<img height="245" src="http://www.51testing.com/ddimg/uploadimg/20051028/1036380.gif" width="294" />
																						</font>
																				</p>
																				<p class="main">
																						<strong>
																								<strong>    </strong>
																						</strong>各角色的职责 </p>
																				<p>
																				</p>
																				<table bordercolor="#ffffff" cellspacing="0" cellpadding="2" align="center" border="1">
																						<tbody>
																								<tr bgcolor="#cccccc">
																										<td class="main" align="middle" width="38%">
																												<div align="center">
																														<strong>角色 </strong>
																												</div>
																										</td>
																										<td class="main" align="middle" width="62%">
																												<div align="center">
																														<strong>职责 </strong>
																												</div>
																										</td>
																								</tr>
																								<tr>
																										<td class="main" width="38%">项目经理 </td>
																										<td class="main" width="62%">编写功能规范，协调各角色关系 </td>
																								</tr>
																								<tr>
																										<td class="main" width="38%">产品经理 </td>
																										<td class="main" width="62%">客户联系的桥梁，进行需求分析 </td>
																								</tr>
																								<tr>
																										<td class="main" width="38%">用户教育 </td>
																										<td class="main" width="62%">让产品容易使用 </td>
																								</tr>
																								<tr>
																										<td class="main" width="38%">发布经理 </td>
																										<td class="main" width="62%">保证产品顺利发布 </td>
																								</tr>
																						</tbody>
																				</table>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>二．项目管理 </strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>
																										<span class="style1">
																												<font color="#0000ff">1．常见问题 </font>
																										</span>
																								</strong>
																						</span>
																						<br />
																						<span class="main">
																								<strong>    </strong>·无法决定项目所需的资源（人力和预算）</span>
																						<span class="main">
																								<br />
																								<strong>    </strong>·无法决定项目的进度表</span>
																						<br />
																						<span class="main">
																								<strong>    </strong>
																						</span>·<span class="main">无法控制外包项目的进度和质量 </span></p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>
																										<span class="style1">
																												<font color="#0000ff">2．微软项目管理-- 多里程碑式流程 </font>
																										</span>
																								</strong>
																						</span>
																						<br />
																						<span class="main">
																								<strong>    </strong>·每个里程碑完成部分功能<br /><strong>    </strong>·便于团队集中力量完成一个又一个功能<br /></span>
																						<span class="main">
																								<strong>    </strong>
																						</span>·<span class="main">提供多个机会以适应需求的更改 </span></p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong> <span class="style3"><font color="#ff0000">   </font></span></strong>
																										<span class="style3">
																												<font color="#ff0000">如何完成一个里程碑 </font>
																										</span>
																								</strong>
																						</span>
																						<br />
																						<span class="main">
																								<strong>    </strong>
																						</span>·<span class="main">步骤一： 达成共识 </span></p>
																				<p>
																						<span class="main">
																								<strong>    </strong>
																						</span>
																						<span class="main">
																								<strong>    </strong>
																						</span>·<span class="main">基本完成需求调研和分析 （产品经理负责） </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">确定大方向和长中短期目标 </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">所有角色都参与讨论并真正认同结论 </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">产生的文档：</span><span class="main"><strong>        </strong><strong>   <br /> </strong><strong>    </strong><strong>    </strong><strong>   </strong>·常见用户情景：覆盖80%以上功能<br /><strong>        </strong><strong>    </strong>·Vision：言简意赅地说明大方向，并有激励团队的作用 
<ul></ul><ul></ul></span></p>
																				<p>
																						<span class="main">
																								<strong>    </strong>
																						</span>· <span class="main">步骤二： 完成项目计划 </span></p>
																				<p>
																						<span class="main">
																								<strong>    </strong>
																						</span>
																						<span class="main">
																								<strong>    </strong>
																						</span>· <span class="main">编写详细的功能规范（项目经理负责） </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>· <span class="main">在编程前想清楚所有功能流程，并引导用户明确需求 </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">所有角色都参与审阅功能规范 </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">制订开发计划和进度表（开发团队） </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">制订测试计划和进度表（测试团队） </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">分配资源（人力和预算） </span>·<span class="main">形成项目综合计划和综合进度表 </span><br /><span class="main"><strong>    </strong></span><span class="main"><strong>    </strong></span>·<span class="main">产生的文档： <br /><strong>    </strong><strong>   <strong>    </strong> </strong>功能规范，开发计划，测试计划（用例），项目综合计划 <br /><strong>    </strong><strong>    </strong><strong>    </strong>开发进度表，测试进度表，综合进度表 </span></p>
																				<ul>
																				</ul>
																				<ul>
																						<p class="main">·步骤三： 完成功能 </p>
																						<p class="main">
																								<strong>    </strong>· <span class="main">开发人员分别完成自己的功能 </span><br /><strong>    </strong>·<span class="main">使用版本控制工具 </span><br /><strong>    </strong>·<span class="main">使程序员及时check out和check in，避免积累大量代码 </span><br /><strong>    </strong>·<span class="main">及时进行模块间的整合，及时发现问题（daily build） </span><br /><strong>    </strong>·<span class="main">对每一项可测试的功能进行测试，无需等待 </span><br /><strong>    </strong>·<span class="main">使用测试用例工具，对功能进行完整和重复的检验 </span><br /><strong>    </strong>·<span class="main">使用BMS进行缺陷跟踪 </span><br /><strong>    </strong>·<span class="main">记录所有程序问题 </span><br /><strong>    </strong>·<span class="main">实现解决Bug的自动流程 </span><br /><strong>    </strong>·<span class="main">按照综合进度表不断检查进度 </span><br /><strong>    </strong>·<span class="main">使用的工具： </span><br /><strong>    </strong><strong>    </strong>·<span class="main">版本控制工具 VSS </span><br /><strong>    </strong><strong>    </strong>·<span class="main">缺陷跟踪工具 Raid/BMS </span><br /><strong>    </strong><strong>    </strong>·测试用例管理工具 <br />·步骤四： 稳定与发布 <br /><strong>    </strong>·<span class="main">测试组全面地测试功能，包括性能和稳定性 </span><br /><strong>    </strong>·<span class="main">开发组全力配合解决Bug </span><br /><strong>    </strong>·<span class="main">使用BMS进行 </span><br /><strong>    </strong><strong>    </strong>·<span class="main">监测质量情况 </span><br /><strong>    </strong><strong>    </strong>·预测发布日期 <br /><strong>    </strong>·<span class="main">专家会诊机制： </span><br /><strong>    </strong><strong>    </strong>·<span class="main">决定Bug的优先度 </span><br /><strong>    </strong><strong>    </strong>·<span class="main">决定哪些Bug可以等到下个里程碑或版本中解决 </span><br /><strong>    </strong><strong>    </strong>·决定由谁解决某个Bug <br /><br />·<span class="main">使用的工具： </span><br />·<span class="main">版本控制工具 VSS </span><br />·<span class="main">缺陷跟踪工具 BMS </span><br />·测试用例管理工具 </p>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>三． 微软的开发管理经验：100%以Bug为核心 </strong>
																						</span>
																				</p>
																				<p align="center">
																						<img height="293" src="http://www.51testing.com/ddimg/uploadimg/20051028/1036381.gif" width="408" />
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>   </strong>
																										<span class="style5">
																												<font color="#0000ff"> 1．Bug 及常见类型 </font>
																										</span>
																								</strong>
																						</span>
																						<span class="main">
																								<br />
																								<strong>
																										<strong>   </strong>
																										<span class="style5">
																												<font color="#0000ff"> </font>
																										</span>
																								</strong>·功能未实现，和规格说明书不一致 </span>
																						<br />
																						<span class="main">
																								<strong>
																										<strong>   </strong>
																										<span class="style5">
																												<font color="#0000ff"> </font>
																										</span>
																								</strong>
																						</span>· <span class="main">不能工作：死机，没反应 </span><br /><span class="main"><strong><strong>   </strong><span class="style5"><font color="#0000ff"> </font></span></strong></span>·<span class="main">不兼容 </span><br /><span class="main"><strong><strong>   </strong><span class="style5"><font color="#0000ff"> </font></span></strong></span>·<span class="main">边界条件 </span><br /><span class="main"><strong><strong>   </strong><span class="style5"><font color="#0000ff"> </font></span></strong></span>·<span class="main">界面、消息、提示不够准确，不友好 </span><br /><span class="main"><strong><strong>   </strong><span class="style5"><font color="#0000ff"> </font></span></strong></span>·<span class="main">把尚未完成的工作也作为一个Bug </span><br /><span class="main"><strong><strong>   </strong><span class="style5"><font color="#0000ff"> </font></span></strong></span>·<span class="main">文档与帮助信息中的缺陷也是Bug </span></p>
																				<p>
																						<span class="main style1">
																								<strong>
																										<font color="#0000ff">
																												<strong>    </strong>2．RAID/BMS的基本功能 </font>
																								</strong>
																						</span>
																				</p>
																				<p align="center">
																						<font color="#0000ff">
																								<img height="440" src="http://www.51testing.com/ddimg/uploadimg/20051028/1036382.gif" width="550" />
																						</font>
																				</p>
																				<p>
																						<br />
																						<span class="main style1">
																								<strong>
																										<strong>
																												<font color="#0000ff">    </font>
																										</strong>
																								</strong>
																						</span>· <span class="main">完整的Bug数据库 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>· <span class="main">整个产品组的中央记录和控制 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">强大的查询功能，有效地跟踪项目的状态 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">所有的记录无法删除，对于每个记录只能一直添加内容 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">丰富的报表功能，为产品发布提供判断标准 </span></p>
																				<p>
																						<span class="main style1">
																								<strong>
																										<font color="#0000ff">
																												<strong>    </strong>3．Bug 记录中的有效信息 </font>
																								</strong>
																						</span>
																				</p>
																				<table align="center">
																						<tbody>
																								<tr>
																										<td>
																												<ul>
																														<li>
																																<span class="main">状态 </span>
																														</li>
																														<li>
																																<span class="main">负责人 </span>
																														</li>
																														<li>
																																<span class="main">问题种类 </span>
																														</li>
																														<li>
																																<span class="main">严重级 </span>
																														</li>
																														<li>
																																<span class="main">优先级 </span>
																														</li>
																														<li>
																																<span class="main">修改时间 </span>
																														</li>
																														<li class="main">登记时间 </li>
																												</ul>
																										</td>
																										<td>
																												<ul>
																														<li>
																																<span class="main">缺陷来源 </span>
																														</li>
																														<li>
																																<span class="main">解决方案 </span>
																														</li>
																														<li>
																																<span class="main">运行环境 </span>
																														</li>
																														<li>
																																<span class="main">缺陷关联 </span>
																														</li>
																														<li>
																																<span class="main">附件 </span>
																														</li>
																														<li>
																																<span class="main">附图 </span>
																														</li>
																														<li class="main">缺陷细节 </li>
																												</ul>
																										</td>
																								</tr>
																						</tbody>
																				</table>
																				<p>
																						<font color="#0000ff">
																								<span class="main style1">
																										<strong>
																												<strong>    </strong>4．Bug 的严重程度 </strong>
																								</span>
																								<br />
																								<span class="main style1">
																										<strong>
																												<strong>    </strong>
																										</strong>
																								</span>
																						</font>· <span class="main">死机，数据丢失，主要功能组完全丧失，系统悬挂 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">主要功能丧失，导致严重的问题，或致命的错误声明 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">次要功能丧失， 不太严重，如提示信息不太准确 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·微小的问题，对功能几乎没有影响，产品及属性仍可使用. 如有个错别字 
</p>
																				<p>
																						<font color="#0000ff">
																								<span class="main style1">
																										<strong>
																												<strong>    </strong>5．激活的Bug数量的趋势 </strong>
																								</span>
																								<br />
																								<span class="main style1">
																										<strong>
																												<strong>    </strong>
																										</strong>
																								</span>
																						</font>· <span class="main">代码完成前：很少 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">代码完成后：增长很快 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">接近Beta: 下降 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">接近RC: 奔向零 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">产品质量和里程碑的信号 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">每天新建的Bug 与 修正的 Bug 相比较 </span><br /><span class="main style1"><strong><strong><font color="#0000ff">    </font></strong></strong></span>·<span class="main">Active 状态 Bug 的总数 </span></p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>四．微软的一天 </strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>  <span class="style1"><font color="#0000ff">  </font></span></strong>
																										<span class="style1">
																												<font color="#0000ff">1． 让我们看看项目中每个角色的一天是如何度过的 </font>
																										</span>
																								</strong>
																						</span>
																						<br />
																						<span class="main">
																								<strong>
																										<strong>  <span class="style1"><font color="#0000ff">  </font></span></strong>
																								</strong>
																						</span>· <span class="main">开发 </span><br /><span class="main"><strong><strong>  <span class="style1"><font color="#0000ff">  </font></span></strong></strong></span>·<span class="main">测试 </span><br /><span class="main"><strong><strong>  <span class="style1"><font color="#0000ff">  </font></span></strong></strong></span>·<span class="main">项目经理 </span></p>
																				<p>
																						<span class="main">
																								<strong>    </strong>注：里程碑的每个阶段每个角色的工作有不同侧重点，我们以“完成功能”阶段为例</span>
																				</p>
																				<p>
																						<span class="main">
																								<span class="style3">
																										<strong>
																												<font color="#ff0000">    </font>
																												<span class="style7">
																														<font color="#990000">微软的一天从几点开始？ </font>
																												</span>
																										</strong>
																								</span>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>答案：半夜 </span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>为什么？ </strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>因为Daily Build是所有工作的核心，而且是在半夜自动启动。 <br /><br /><strong><strong>    </strong>每日构造Daily Build </strong></span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">你知道自己所用Windows的版本号吗？ </span>
																						</li>
																						<li>
																								<span class="main">Daily Build的意义： </span>
																								<ul>
																										<li>
																												<span class="main">模块得以及时整合 </span>
																										</li>
																										<li class="main">要求程序员及时把最新代码放入代码库 </li>
																								</ul>
																						</li>
																						<li>
																								<span class="main">用脚本语言和编译/链接工具实现 </span>
																						</li>
																						<li>
																								<span class="main">BVT Build Verification Test </span>
																								<ul>
																										<li class="main">对Build进行验证 </li>
																								</ul>
																						</li>
																						<li>
																								<span class="main">Blocking Bug </span>
																								<ul>
																										<li>
																												<span class="main">让Build无法完成的问题 </span>
																										</li>
																										<li class="main">BVT中发现的问题 </li>
																								</ul>
																						</li>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>  <span class="style1"><font color="#0000ff">  </font></span></strong>
																										<span class="style1">
																												<font color="#0000ff">2．程序员每天上班前最担心什么？ </font>
																										</span>
																								</strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>答案：因为自己昨天的代码check-in，造成Blocking Bug. </span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>为什么？ </strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>因为每天的Build是所有人当天工作的基础： <br /><strong>    </strong>程序员需要Build验证与其他模块的接口 <br /><strong>    </strong>测试需要Build发现新Bug，并验证新Build中已解决的Bug <br /><br /><strong><strong>    </strong>有Blocking Bug怎么办？ </strong></span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>解决问题，并对今天的Build打Patch。 <br /><br /><strong><strong>    </strong>开发人员的正事 </strong></span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>经历对Build的提心吊胆和争分夺秒之后，第一件事做什么 <br /><strong>    </strong>答案：打开缺陷跟踪工具，查看指定给自己的Bug，解决高优先度的Bug。因为质量重于新功能。 </span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>接下来，开发人员会… </strong>
																						</span>
																				</p>
																				<p align="center">
																						<span class="main">
																								<strong>    </strong>从版本控制工具中Check out代码 <br /><strong>    </strong>修改代码（解决Bug或实现新功能） <br /><strong>    </strong>取得版本工具中最新变化，在本机Build和单元测试 <br /><strong>    </strong>请开发组同事作Code Review <br /><strong>    </strong>Check in代码 </span>
																						<br />
																						<br />
																						<img height="313" src="http://www.51testing.com/ddimg/uploadimg/20051028/1036383.gif" width="556" />
																						<br />
																						<br />
																						<span class="main">
																								<strong>
																										<strong> <span class="style1"><font color="#0000ff">   </font></span></strong>
																										<span class="style1">
																												<font color="#0000ff">3．测试人员第一件事做什么？ </font>
																										</span>
																								</strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>    </strong>答案：打开Raid/BMS，查看指定给自己的Bug，验证已解决的Bug。 </span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>接下来，测试人员会… </strong>
																						</span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">根据测试用例检验今天的Build </span>
																						</li>
																						<li class="main">在Raid/BMS中记录新发现的Bug </li>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong> <span class="style1"><font color="#0000ff">   </font></span></strong>
																										<span class="style1">
																												<font color="#0000ff">4．专家会诊 </font>
																										</span>
																								</strong>
																						</span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">参加者：项目经理和开发组长、测试组长 </span>
																						</li>
																						<li>
																								<span class="main">通过Raid/BMS评估每个未解决的Bug </span>
																								<ul>
																										<li>
																												<span class="main">决定Bug优先度 </span>
																										</li>
																										<li>
																												<span class="main">可否等到下个里程碑或版本解决？ </span>
																										</li>
																										<li class="main">谁来解决 </li>
																								</ul>
																						</li>
																						<li class="main">预测项目实际进度和发布时间 </li>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>缺陷走势图 </strong>
																						</span>
																				</p>
																				<p align="center">
																						<img height="287" src="http://www.51testing.com/ddimg/uploadimg/20051028/1036384.gif" width="600" />
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong> <span class="style1"><font color="#0000ff">   </font></span></strong>
																										<span class="style1">
																												<font color="#0000ff">5．回顾微软的一天 </font>
																										</span>
																								</strong>
																						</span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">构造: daily build </span>
																						</li>
																						<li>
																								<span class="main">开发: 解决blocking bugs, 实现功能, check-out, code review, check-in </span>
																						</li>
																						<li>
																								<span class="main">测试: BVT, 使用测试用例进行测试 </span>
																						</li>
																						<li class="main">项目经理/组长: 专家会诊 </li>
																				</ul>
																				<p>
																						<span class="main style1">
																								<strong>
																										<font color="#0000ff">
																												<strong>    </strong>6．微软的做法解决了那些常见问题？ </font>
																								</strong>
																						</span>
																				</p>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>质量问题 </strong>
																						</span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">以前解决过的问题发布时又出现了，需要返工 </span>
																						</li>
																						<li>
																								<span class="main">无法预估发布时间 过早发布，带来质量和维护问题 </span>
																						</li>
																						<li>
																								<span class="main">测试发现的问题被忘却或不了了之 </span>
																						</li>
																						<li>
																								<span class="main">无法衡量测试员和开发员的工作 </span>
																						</li>
																						<li class="main">程序中的问题往往在发布后才发现 </li>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>文档管理问题 </strong>
																						</span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">文档与程序脱节，文档成为程序结果的描述 </span>
																						</li>
																						<li class="main">项目组把写文档看成负担 </li>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>团队协调问题 </strong>
																						</span>
																				</p>
																				<ul>
																						<li>
																								<span class="main">开发人员各自为战，进行整合时发现模块衔接中的严重问题 需要作大的改动 </span>
																						</li>
																						<li>
																								<span class="main">没有保管好公司以往的版本和代码，无法满足用户对旧版本的更改要求 </span>
																						</li>
																						<li class="main">开发人员离职对项目带来很大冲击，没有人知道代码在哪，或无法读懂 </li>
																				</ul>
																				<p>
																						<span class="main">
																								<strong>
																										<strong>    </strong>五．提高软件管理的步骤 </strong>
																						</span>
																				</p>
																				<p class="main">
																						<strong>    </strong>1. 使用Raid/BMS，将流程管理自动化 <br /><strong>    </strong>2. 使用测试用例管理工具 <br /><strong>    </strong>3. 使用文档管理工具 <br /><strong>    </strong>4. 使用版本控制工具，进行Daily Build <br /><strong>    </strong>5. 建立代码标准 <br /><strong>    </strong>6. 建立Code Review机制 <br /><strong>    </strong>7. 建立专家会诊机制 <br /><strong>    </strong>8. 建立团队沟通机制 <br /><strong>    </strong>9. 根据需要调整团队结构</p>
																		</div>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 14:39 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Robot进行数据库的并发测试</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20777.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 06:34:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20777.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20777.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20777.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20777.html</trackback:ping><description><![CDATA[
		<div class="style7" align="center">
				<span style="FONT-SIZE: 12pt">
						<b>Robot进行数据库的并发测试<br /><div class="daxiao14" align="left"><p><font size="2">第一步：创建演示程序：打开SQL SERVER查询分析器，在SQL SERVER测试数据库中执行下列脚本（脚本执行操作：创建表testtable，并插入一条记录；创建存储过程test）：</font></p><p><font size="2">if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)</font></p><p><font size="2">drop procedure [dbo].[Test]</font></p><p><font size="2">GO</font></p><p><font size="2">if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[testtable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)</font></p><p><font size="2">drop table [dbo].[testtable]</font></p><p><font size="2">GO</font></p><p><font size="2">CREATE TABLE [dbo].[testtable] (</font></p><p><font size="2">       [testid] [int] NULL ,</font></p><p><font size="2">       [counts] [int] NULL </font></p><p><font size="2">) ON [PRIMARY]</font></p><p><font size="2">GO</font><font size="2"> </font></p><p><font size="2">insert into testtable (testid,counts) values (1,0)</font></p><p><font size="2">GO</font></p><p><font size="2">SET QUOTED_IDENTIFIER ON </font></p><p><font size="2">GO</font></p><p><font size="2">SET ANSI_NULLS ON </font></p><p><font size="2">GO</font><font size="2"> </font></p><p><font size="2">CREATE Procedure dbo.Test</font></p><p><font size="2">as</font></p><p><font size="2">  declare @count int</font></p><p><font size="2">  begin tran TEST    </font></p><p><font size="2">    select @count=counts  from testtable where testid=1    </font></p><p><font size="2">    update testtable set </font><a href="mailto:counts=@count+1"><font color="#000000" size="2">counts=@count+1</font></a><font size="2"> </font><font size="2">    </font></p><p><font size="2">  if (@@error &gt;0) begin</font></p><p><font size="2">       rollback tran TEST</font></p><p><font size="2">  end else begin</font></p><p><font size="2">       commit tran TEST</font></p><p><font size="2">  end</font></p><p><font size="2">GO</font></p><p><font size="2">SET QUOTED_IDENTIFIER OFF </font></p><p><font size="2">GO</font></p><p><font size="2">SET ANSI_NULLS ON </font></p><p><font size="2">GO</font></p><p><font size="2">第二步：创建测试脚本：在Robot中新建VU脚本，输入以下内容：</font></p><p><font size="2">#include &lt;VU.h&gt;</font></p><p><font size="2">{</font></p><p><font size="2">push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */</font></p><p><font size="2">push Think_def = "LR";</font></p><p><font size="2">Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */</font></p><p><font size="2">push Timeout_val = Min_tmout;</font></p><p><font size="2">ser=sqlconnect("server","sa","888","192.168.0.99","sqlserver");</font></p><p><font size="2">set Server_connection = ser;</font></p><p><font size="2">push Think_avg = 0;</font></p><p><font size="2">sync_point "logon";</font></p><p><font size="2">sqlexec ["sql_1000"] "testdb..test";</font></p><p><font size="2">sqldisconnect (ser);</font></p><p><font size="2">}</font></p><p><font size="2">说明：</font></p><p><font size="2">ser=sqlconnect("server","sa","888","192.168.0.99","sqlserver") </font></p><p><font size="2">  sa为数据库用户名，888为sa密码，192.168.0.99数据库IP地址</font></p><p><font size="2">  以上三项按实际的测试数据库设置更改，其他两项不用修改</font></p><p><font size="2">sqlexec ["sql_1000"] "testdb..test"</font></p><p><font size="2">  testdb为新建存储过程test所在的数据库，按实际的数据库修改</font></p><p><font size="2">第三步：执行测试：运行上一步创建的脚本（运行时自动创建Suite），在Run Suite窗口中的“Number of users”上输入20。运行完脚本，打开数据库查看counts的数值。把counts值改为零多次运行脚本，观察每次运行后counts的结果。</font></p><p><font size="2">测试说明</font></p><p><font size="2">（1）、测试示例程序的目的是，存储过程test每执行一次，表testtable中的counts字段增加一；</font></p><p><font size="2">（2）、第三步的测试可以发现每次执行后counts结果并不相同，而且不等于20，这说明这个程序是在并发时是问题的。</font></p><p><font size="2">（3）、将存储过程中的select @count=counts  from testtable where testid=1修改为select @count=counts  from test </font></p><p><font size="2">此文除此51testing博客，转载请注明出处<br />原始链接：</font><a href="http://blog.51testing.com/html/26/84226_itemid_1180.html"><font color="#000000" size="2">http://blog.51testing.com/html/26/84226_itemid_1180.html</font></a></p></div></b>
				</span>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 14:34 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试常识</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20774.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 06:26:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20774.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20774.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20774.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20774.html</trackback:ping><description><![CDATA[
		<div class="daxiao14" align="left">
				<p>软件开发和使用的历史已经留给了我们很多由于软件缺陷而导致的巨大财力、物力损失的经验教训。这些经验教训迫使我们这些测试工程师们必须采取强有力的检测措施来检测未发现的隐藏的软件缺陷。 </p>
				<p>生产软件的最终目的是为了满足客户需求，我们以客户需求作为评判软件质量的标准，认为软件缺陷（ Software Bug ）的具体含义包括下面几个因素： </p>
				<p>•  软件未达到客户需求的功能和性能； </p>
				<p>•  软件超出客户需求的范围； </p>
				<p>•  软件出现客户需求不能容忍的错误； </p>
				<p>•  软件的使用未能符合客户的习惯和工作环境。 </p>
				<p>考虑到设计等方面的因素，我们还可以认为软件缺陷还可以包括软件设计不符合规范，未能在特定的条件（资金、范围等）达到最佳等。可惜的是，我们中的很多人更倾向于把软件缺陷看成运行时出现问题上来，认为软件测试仅限于程序提交之后。 </p>
				<p>在目前的国内环境下，我们几乎看不到完整准确的客户需求说明书，加以客户的需求时时在变，追求完美的测试变得不太可能。因此作为一个优异的测试人员，追求软件质量的完美固然是我们的宗旨，但是明确软件测试现实与理想的差距，在软件测试中学会取舍和让步，对软件测试是有百益而无一弊的。 </p>
				<p>下面是一些软件测试的常识，对这些常识的理解和运用将有助于我们在进行软件测试时能够更好的把握软件测试的尺度。 </p>
				<p>•  测试是不完全的（测试不完全） </p>
				<p>很显然，由于软件需求的不完整性、软件逻辑路径的组合性、输入数据的大量性及结果多样性等因素，哪怕是一个极其简单的程序，要想穷尽所有逻辑路径，所有输入数据和验证所有结果是非常困难的一件事情。我们举一个简单的例子，比如说求两个整数的最大公约数。其输入信息为两个正整数。但是如果我们将整个正整数域的数字进行一番测试的话，从其数目的无限性我们便可证明是这样的测试在实际生活中是行不通的，即便某一天我们能够穷尽该程序，只怕我们乃至我们的子孙都早已作古了。为此作为软件测试，我们一般采用等价类和边界值分析等措施来进行实际的软件测试，寻找最小用例集合成为我们精简测试复杂性的一条必经之道。 </p>
				<p>•  测试具有免疫性（软件缺陷免疫性） </p>
				<p>软件缺陷与病毒一样具有可怕的 “ 免疫性 ” ，测试人员对其采用的测试越多，其免疫能力就越强，寻找更多软件缺陷就更加困难。由数学上的概率论我们可以推出这一结论。假设一个 50000 行的程序中有 500 个软件缺陷并且这些软件错误分布时均匀的，则每 100 行可以找到一个软件缺陷。我们假设测试人员用某种方法花在查找软件缺陷的精力为 X 小时 /100 行。照此推算，软件存在 500 个缺陷时，我们查找一个软件缺陷需要 X 小时，当软件只存在 5 个错误时，我们每查找一个软件缺陷需要 100X 小时。实践证明，实际的测试过程比上面的假设更为苛刻，为此我们必须更换不同的测试方式和测试数据。该例子还说明了在软件测试中采用单一的方法不能高效和完全的针对所有软件缺陷，因此软件测试应该尽可能的多采用多种途径进行测试。 </p>
				<p>•  测试是 “ 泛型概念 ” （全程测试） </p>
				<p>我一直反对软件测试仅存在于程序完成之后。如果单纯的只将程序设计阶段后的阶段称之为软件测试的话，需求阶段和设计阶段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。需求缺陷、设计缺陷也是软件缺陷，记住 “ 软件缺陷具有生育能力 ” 。软件测试应该跨越整个软件开发流程。需求验证（自检）和设计验证（自检）也可以算作软件测试（建议称为：需求测试和设计测试）的一种。软件测试应该是一个泛型概念，涵盖整个软件生命周期，这样才能确保周期的每个阶段禁得起考验。同时测试本身也需要有第三者进行评估（信息系统审计和软件工程监理），即测试本身也应当被测试，从而确保测试自身的可靠性和高效性。否则自身不正，难以服人。 </p>
				<p>另外还需指出的是软件测试是提高软件产品质量的必要条件而非充分条件，软件测试是提高产品质量最直接、最快捷的手段，但决不是一个根本手段。 </p>
				<p>•  80-20 原则 </p>
				<p>80% 的软件缺陷常常生存在软件 20% 的空间里。这个原则告诉我们，如果你想使软件测试有效地话，记住常常光临其高危多发 “ 地段 ” 。在那里发现软件缺陷的可能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个原则很快找出较多的缺陷而愚蠢的测试人员却仍在漫无目的地到处搜寻。 </p>
				<p>80-20 原则的另外一种情况是，我们在系统分析、系统设计、系统实现阶段的复审，测试工作中能够发现和避免 80% 的软件缺陷，此后的系统测试能够帮助我们找出剩余缺陷中的 80% ，最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷，却无法保证能够发现所有的软件缺陷。 </p>
				<p>80-20 原则还能反映到软件测试的自动化方面上来，实践证明 80% 的软件缺陷可以借助人工测试而发现， 20% 的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分，因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正。 </p>
				<p>•  为效益而测试 </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>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 14:26 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络游戏测试过程</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20769.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20769.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20769.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20769.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20769.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="558" border="0">
				<tbody>
						<tr>
								<td valign="center" align="right" colspan="2" height="32">
										<div class="style7" align="center">
												<span style="FONT-SIZE: 12pt">
														<b>网络游戏测试过程</b>
												</span>
										</div>
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" bgcolor="#000000" colspan="2" height="1">
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" colspan="2" height="20">
										<div align="center"> </div>
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" colspan="2" height="10">
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" width="2%" height="10">
										<div align="left">
										</div>
								</td>
								<td valign="top" align="right" width="98%" bgcolor="#ffffff">
										<div class="daxiao14" align="left">
												<div align="left">
														<p>
														</p>
														<p>
																<strong>游戏测试起因</strong>
																<strong>
																</strong>
														</p>
														<p>近几年来，网络游戏成了网络最新的弄潮儿，从盛大之传奇般的掘起，吸引了无数公司的眼球。但由于随着玩家的品位的升高，代理费用的上升，单一的代理国外游戏的模式已经很难在国内立足，而有中国传统文化特色的网络游戏则在国内大受欢迎，比如剑侠情缘，大话西游等一些国内的精典之作已经进入了一流网游的阵营。与此同时随着大家对网游稳定性，可玩性要求的升高，网络游戏测试开始成为大家关注的话题。</p>
														<p>
																<strong>游戏测试与软件测试的区别</strong>
																<strong>
																</strong>
														</p>
														<p>游戏测试作为软件测试的一部分，它具备了软件测试所有的一切共同的特性：</p>
														<ul>
																<li>测试的目的是发现软件中存在的缺陷。 
</li>
																<li>测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书，需求文档，产品文件，或是用户手册，源代码，或是工作的可执行程序。 
</li>
																<li>每一种测试都需要产品运行于真实的或是模拟环境之下。 
</li>
																<li>每一种测试都要求以系统方法展示产品功能，以证明测试结果是否有效，以及发现其中出错的原因，从而让程序人员进行改进。 </li>
														</ul>
														<p>总而言之，测试就是发现问题并进行改进，从而提升软件产品的质量。游戏测试也具备了以上的所有特性，不过由于游戏的特殊性，所以游戏测试则主要分为两部分组成，一是传统的软件测试，二游戏本身的测试，由于游戏特别是网络游戏，它相当于网上的虚拟世界，是人类社会的另一种方式的体现，所以也包含了人类社会的一部分特性，同时它又是游戏所以还涉及到娱乐性，可玩性等独有特性，所以测试的面相当的广。 我们称之为游戏世界测试，主要有以下几个特性：</p>
														<ul>
																<li>游戏情节的测试，主要指游戏世界中的任务系统的组成，有人也称为游戏世界的事件驱动，我喜欢称为游戏情感世界的测试。 
</li>
																<li>游戏世界的平衡测试，主要表现在经济平衡，能力平衡（包含技能，属性等等），保证游戏世界竞争公平。 
</li>
																<li>游戏文化的测试，比如整个游戏世界的风格，是中国文化主导，还是日韩风格等等，大到游戏整体，小到NPC（游戏世界人物）对话，比如一个书生，他的对话就必需斯文，不可以用江湖语言J。 </li>
														</ul>
														<p>
																<strong>游戏测试概述</strong>
														</p>
														<p>很多人有这样一个观点：“就是在软件开发完毕后，再进行测试。”殊不知，这种关点是有悖于软件开发的生命周期的，软件缺陷的发现必须是越早越好，这样才可以有效的规避风险，而在“最后进行测试”的测试观念的指导下测试工作必将会产生很多问题，这种观念的错误在于：生命周期中的“测试阶段”表明在该阶段测试工作是主要的工作，而不是说，测试工作只发生在“测试阶段”。通常，到了测试阶段，测试的主要任务是运行测试，形成测试报告。而想要提高游戏的质量，则必需要做到测试的早期介入，诸如测试计划，测试用例的确定以及测试代码的编写等等都是要在更早的阶段进行。如果你把测试完全放在最后阶段，就错过了发现构架设计和游戏逻辑设计中存在严重问题的最好时机，到那时，要修复这些缺陷将很不方便，因为缺陷已经扩散到系统中去了，所以这样的错误将很难寻找与修复，代价更高。</p>
														<p>要了解如何测试游戏必需了解如何做游戏，了解它的开发过程，才能真正的测好游戏。游戏要成功，其基本的必要条件有三。分别为Vision(设计)、technology(技术)和Process(过程)。三个条件，缺一不可如图所示：</p>
														<table width="614" border="0">
																<tbody>
																		<tr>
																				<td width="172"> </td>
																				<td width="254">
																						<img height="128" src="http://www.51testing.com/emagzine/lib/NO3/7/pic1.jpg" width="254" />
																				</td>
																				<td width="174"> </td>
																		</tr>
																</tbody>
														</table>
														<p align="center">图：游戏开发三大基石</p>
														<ul>
																<li>Vision则是对游戏还没有实现的总体上的把握，前瞻性的理解与策略的考量。 
</li>
																<li>Technology：有了vision，如果没有技术的话，则各种美妙的想法只能停留在虚无缥缈的阶段，通过技术来实现Vision。 
</li>
																<li>Process：有了Vision作为指导，有了技术作为保证，也不一定能够把好的想法转换成高质量的游戏。要创造高品质的游戏，尚缺重要的一环，即过程，制造游戏是一个非常是一个长时间的动态过程。游戏产品的质量则是要靠动态过程的动态质量来进行保证。过程由很多复杂的相互牵制的环节与部件组成，如果任意的环节或者是部件出了问题都会对最终的产品形成质量上的影响。因此对这个动态的过程，一定要有规划与控制，以保证按步就班，按质按时完成工作。 </li>
														</ul>
														<p>
																<strong>游戏测试与开发过程的关系</strong>
																<strong>
																</strong>
														</p>
														<p>CMM（Software Capability Maturity Model）软件成熟模型，大家都比较熟悉了，但在实施的过程中却存在这样那样的问题，对于游戏开发就更没有一个固定的路可以讲了，我们的团队是一个长期的游戏开发团队，对游戏开发有着很深的认识，我们认为游戏的Process(过程)实际上也是软件过程，不过是特殊的游戏软件开发过程，各个生命周期还是相通的。所以我们总结一套以测试作为质量驱动的、属于自己的开发过程。下图是游戏的迭代式开发过：</p>
														<table width="614" border="0">
																<tbody>
																		<tr>
																				<td width="17"> </td>
																				<td width="569">
																						<img height="392" src="http://www.51testing.com/emagzine/lib/NO3/7/pic2.jpg" width="569" />
																				</td>
																				<td width="14"> </td>
																		</tr>
																</tbody>
														</table>
														<p align="center">图：游戏迭代式开发与测试</p>
														<p>由于网络游戏的生命周期也是3、4年，所以采用迭代式的开发过程，既可以适应网络游戏本身这种长周期的开发，又可以利用RUP的迭代式开发的优点与CMM的里程碑控制，从而达到对游戏产品的全生命周期的保证。</p>
														<p>在游戏开发过程中，通用软件的需求分析阶段被策划所代替，但起的作用是一样的，明确游戏的设计目标（包括风格，游戏玩家群），游戏世界的组成，为后期的程序设计，美工设计，测试提出的明确的要求。由于开发是一个阶段的过程，所以测试与开发的结合就比较容易，从图上我们可以看到测试的工作与游戏的开发是同步进行的，每一个开发阶段中测试都进行了参与，能够深入的了解到系统的整体与大部分的技术细节，从而从很大程度上提高了测试人员对错误问题判断的准确性,并且可以有效的保证重要游戏系统的稳定。</p>
														<p>
																<a class="style5">
																		<strong>
																				<font size="2">游戏策划与测试计划</font>
																		</strong>
																</a>
														</p>
														<p>测试过程不可能在真空中进行。如果测试人员不了解游戏是由那几个部分组成的，那么执行测试就非常的困难，同时测试计划可以明确测试的目标，需要什么资源，进度的安排，通过测试计划，既可以让测试人员了解此次游戏测试中那些是测试重点，又可以与产品开发小组进行交流。在企业开发中，测试计划书来源于需求说明文档，同样在游戏开发过程中，测试计划的来源则是策划书。策划书包含了游戏定位，风格，故事情节，要求的配制等等。在策划评审中我们的高级测试人员可以参与进来，得到详细的游戏策划书，从里面了解到游戏的组成，可玩性，平衡（经济与能力），与形式（单机版还是网络游戏），而我们测试在这一阶段主要的事情就是通过策划书来制定详细的测试计划，主要分两个方面一是游戏程序本身的测试计划，比如任务系统，聊天，组队，地图等等由程序来实现的功能测试计划，二是游戏可玩性有测试计划，比如经济平衡标准是否达到要求，各个门派技能平衡测试参数与方法，游戏风格的测试，三是关于性能测试的计划，比如客户端的要求，网络版的对服务器的性能要求。同时测试计划书中还写明了基本的测试方法，要设计的自动化工具的需求，为后期的测试打下良好的基础。同时由于测试人员参与到策划评审，资深的游戏测试人员与产品经理由于对游戏也有很深入的了解，会对策划提出自己的看法，包含可玩性，用户群，性能要求等等并形成对产品的风险评估分析报告，但这份报告不同于策划部门自己的风险分析报告，主要从旁观者的角度对游戏本身的品质作充分的论证，从而更有效的对策划起到控制的作用。</p>
														<p class="style6">
																<a class="style5">
																		<font size="2">游戏设计与测试</font>
																</a>
														</p>
														<p>设计阶段是做测试案例设计的最好时机。很多组织要么根本不做测试计划和测试设计，要么在即将开始执行测试之前才飞快地完成测试计划和设计。在这种情况下，测试只是验证了程序的正确性，而不是验证整个系统本该实现的东西。而我们的测试则会很明确，因为我们的测试计划已经写的很明确，需要测试那些游戏系统，但是我们还需要了解系统的组成，而设计阶段则是设计系统的过程，所有的重要系统均是用UML状态图进行了详细的描述，比如用户登陆情况。如图2：</p>
														<table width="614" border="0">
																<tbody>
																		<tr>
																				<td width="36"> </td>
																				<td width="529">
																						<img height="298" src="http://www.51testing.com/emagzine/lib/NO3/7/pic3.jpg" width="529" />
																				</td>
																				<td width="35"> </td>
																		</tr>
																</tbody>
														</table>
														<p align="center">图2用户登陆情况</p>
														<p>在我们的团队中资深的测试人员要具备的一项基本的素质就是可以针对UML的用例图，时序图，状态图来设计出重要系统的测试案例，只有重要系统的质量得到充分的测试，游戏程序的质量才可以得到充分的保证。比如上图中就是一个用户登陆游戏系统的时序图。从这里我们可以很明确的了解玩家是如何验证并登陆系统的，在这个过程中要与那些对象进行交互，比如这里我们就是三个系统之间的交互，客户端（玩家部分），网关，账号服务之间的一个时序变化关系，为了能够完整的对这个流程进行测试，我们必需设计出可以覆盖整个流程的测试案例，并考虑其中可能的非法情况，因为这个时序图只是考虑了用户正常登陆成功的情况，并没有考虑密码错误，通信失败等许多可能存有的情况，并形成完整的测试案例库，从而对登陆系统的系统化测试做了充分的准备。同时通过这张图，性能分析人员还可以分析出可能存的性能瓶颈，比如这里可能有的瓶颈如下，总网关是否可以达到多少用户的并发，是如果达不到，是否可以采用分布式部署或是支持负载平衡，三者之间的网络带宽的比例分配，账号服务器是否可以承载多个网关的连接请求，最大连接请求可以达到多少等等，同时会针对这些风险做性能测试的设计，并提出自动化测试的需求，比如模拟玩家登陆的压力工具等等。</p>
														<p>同时在设计评审时，测试人员的介入可以充分的对当前的系统构架发表自己的意见，由于测试人员的眼光是最苛刻的，并且有多年的测试经验，可以比较早的发现曾经出现的设计上的问题，比如在玩家转换服务器时是否作了事务的支持与数据的校验，在过去设计中由于没有事务支持与数据的校验从而导致玩家数据丢失,而这些风险可以在早期就规避掉。上面所说的是对游戏程序本身的测试设计，对于游戏情节的测试则可以从策划获得，由于前期的策划阶段只是对游戏情节大方向上的描述，并没有针对某一个具体的情节进行设计，进入设计阶段时，某个游戏情节逻辑已经完整的形成了，策划可以给出情节的详细设计说明书，称为任务说明书，通过任务说明书我们可以设计出任务测试案例，比如某一个门派的任务由那些组成，我们可以设计出完整的任务测试案例，从而保证测试可能最大化的覆盖到所有的任务逻辑，如果是简单任务，还可以提出自动化需求，采用机器人自动完成。</p>
														<p class="style6">
																<a class="style5">
																		<font size="2">游戏测试与开发</font>
																</a>
														</p>
														<p>开发与测试一直有人认为是不可以平行进行的，必需要先开发后测试，但是软件的开发过程又要求测试必须早期介入，但在这里这种矛盾得到了很好的解决。我们采用了每日编译，将测试执行和开发结合在一起，并在开发阶段以编码--测试--编码--测试的方式来体现。也就是说，程序片段一旦编写完成，就会立即进行测试。普通情况下，先进行的测试是单元测试，但是一个程序片段也需要相关的集成测试，甚至有时还需要一些特殊测试。特别是关于接口测试，像游戏程序与任务角本、图片的结合，大家都认为需要提前测试，通过每日编你可以把已经写好的程序片段接合起来，形成部分的集成测试，从而有效的体现的接口优先测试的原则。同时由于软件测试与开发是并行进行的，并且实行的是软件缺陷优先修改的策略，所以很少会出现缺陷后期无法修改的情况，并且由于前期的测试案例的设计与自动化工具的准备，我们不需要投入太多的人力就可以极高的保证游戏软件的产品质量，特别是重要系统的质量。由于我们的游戏程序是每日不断的完善，所以集成测试也在同步的进行之中，当开发进入最后阶段时，集成测试也同步的完成了。这里有一个原则，也就是我前面所说的，测试的主体方法和结构应在游戏设计阶段完成，并在开发阶段进行补充(比如在游戏开发中会有相应的变动，或是某个转移变地址的变化，这就需要实时的更新)。这种方法会对基于代码的测试（开发阶段与集成阶段）产生很重要的影响，但是不管在那个阶段，如果在执行前多做一点计划和设计,都会大幅度的提高测试效率，改善测试结果，同时还有利于测试案例的重用与测试数据的分析，所以我们的测试计划是在策划时就形成了，为后继的测试形成了良好的基础。</p>
														<p class="style5">
																<a>
																		<strong>
																				<span class="style5">
																						<font size="2">集成测试阶段</font>
																				</span>
																		</strong>
																</a>
														</p>
														<p>集成测试是对整个系统的测试。由于前期测试与开发的并行，集成测试已经基本完成，这时只需要对前期在设计阶段中设计的系统测试案例运行一下就OK了。我们主要的重心在集成测试中的兼容性测试，由于游戏测试的特殊性，对兼容性的要求特别高，所以我们采用了外部与内部同部进行的方式，内部我们有自己的平台试验室，搭建主流的硬软件测试环境，同时我们还通过一些专业的兼容性测试机构对我们的游戏软件做兼容性分析，让我们的游戏软件可以跑在更多的机器上。</p>
														<p class="style6">
																<a class="style5">
																		<font size="2">游戏可玩性测试</font>
																</a>
														</p>
														<p>游戏可玩性测试也是非常重要的一块，主要包含四个方面：</p>
														<ul>
																<li>游戏世界的搭建，包含聊天功能，交易系统，组队等可以让玩家在游戏世界交互的平台。 
</li>
																<li>游戏世界事件的驱动，主要指任务。 
</li>
																<li>游戏世界的竞争与平衡。 
</li>
																<li>游戏世界文化蕴涵，游戏的风格与体现。 </li>
														</ul>
														<p>这种测试主要体现在游戏可玩性方面，虽然策划时我们对可玩性作了一定的评估，但这是总体上的，但一些具体的涉及到某个数据的分析，比如PK参数的调整，技能的增加等一些增强可玩性的测试则需要职业玩家对它进行分析，这里我们主要通过三种方式来进行：</p>
														<ul>
																<li>内部的测试人员，他们都是精选的职业玩家分析人员，对游戏有很深的认识，在内部测试时，对上面的四点进行分析。 
</li>
																<li>利用外部游戏媒体专业人员对游戏作分析与介绍，既可以达到宣传的效果，又可以达到测试的目的，通常这种方式是比较好的。 
</li>
																<li>利用外部一定数量的玩家，对外围系统的测试，他们是普通的玩家，但却是我们最主要的目标，主要的来源是大中院校的学生等等，主要测试游戏的可玩性与易用性，发现一些外围的Bug。 </li>
														</ul>
														<p>游戏进入到最后阶段时，还要做内测，公测，有点像应用软件的beta版的测试，让更多的人参与测试,测试大量玩家下的运行情况。</p>
														<p>可玩性测试是游戏重要的一块，只有玩家的认同，我们才可能成功。</p>
														<p class="style3">
																<a class="style5">
																		<font size="2">性能测试与优化</font>
																</a>
														</p>
														<p>最后要单独提一下的是性能优化，在单机版的时代，性能的要求并不是很高，但是在网络版的时代，则是两个完全不同的概念，主要包含了以下几个方面：应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下，三方面有效、合理的结合，可以达到对系统性能全面的分析和瓶颈的预测。不过在测试过程中有这样一个原则，就是由于测试是在集成测试完成或接近完成时进行，要求测试的功能点能够走通，这时你首先要进行优化的是数据库或是网络本身的配制，只有这样才可以规避改动程序的风险。同时性能的测试与优化是一个逐步完善的过程，需要前期的很多的工作，比如性能需求，测试工具等等，不过由于前期工作的完善，这些都在前期完成了。这里我只做原则性的描述。</p>
														<p>数据库的优化的原则主要是这样的，首先是索引进行优化，由于索引的优化不需要对表结构进行任何改动，是最简单的一种，又不需要改动程序就可能提升性能若干倍，不过要注意的是索引不是万能的，若是无限的增加会对增删改造成很大的影响。其次是对表，视图，存储过程的优化。不过在分析之前需要知道优化的目标，客户行为中那些SQL是执行的最多的，所以我们必需借助些SQL的跟踪分析工具，例如SQLProfile,SQLExpert,等工具，这样会迅速的定位问题。</p>
														<p>关于网络的优化，这里我所说的并不是针对网络本身的优化，而是对游戏本身的网络通信的优化，所以它是与程序的优化是结合在一起的，首先也是发现问题，通过Monitor与Sniff先定位是什么应用占用了较多的网络流量，由于网络游戏的用户巨大，所以这也是一个重在的问题。对于程序的性能优化，最主要的是找到运行时间最长的函数，只有优化它，性能才有大幅度的提升，具体的方法我就不做详细的描述了。<a></a></p>
														<p>
																<strong>总述</strong>
														</p>
														<p>游戏测试是一个新的领域,它既有通用测试的特点,又有自己的特点,有许多未知的路要走,每天都在总结,希望给大家带来一些帮助,同时在这里也谢谢所有支持我的同事。</p>
														<p>
														</p>
												</div>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 11:08 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Robot压力测试实例</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20767.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 03:02:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20767.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20767.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20767.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20767.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20767.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="558" border="0">
				<tbody>
						<tr>
								<td valign="center" align="right" colspan="2" height="32">
										<div class="style7" align="center">
												<span style="FONT-SIZE: 12pt">
														<b>Robot压力测试实例</b>
												</span>
										</div>
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" bgcolor="#000000" colspan="2" height="1">
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" colspan="2" height="20">
										<div align="center"> </div>
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" colspan="2" height="10">
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" width="2%" height="10">
										<div align="left">
										</div>
								</td>
								<td valign="top" align="right" width="98%" bgcolor="#ffffff">
										<div class="daxiao14" align="left">
												<p>看到很多人在要这个,找到一篇,转过来给大家看看</p>
												<p>文章的出处没有看到作者的名字,非常抱歉</p>
												<p>脚本与被测程序有关,直接运行这个脚本是不能回放成功的(因为你没有脚本运行的环境)</p>
												<p>文章如下</p>
												<p> </p>
												<p>第一步：设置Robot</p>
												<p>    Robot――Tools――Session Record options，Method选择API Recorder，Generater Filtering中Filtering选择Auto filtering，Select protocols只选择Socket；</p>
												<p>第二步：录制VU脚本</p>
												<p>    在启动的Start Application窗口中，Executable输入被测程序的客户端程序的路径和文件名，Working Directory中输入被测程序的工作路径，Program Arguments如果没有就空着。被测程序程序启动后，执行需要的操作然后关闭程序，停止录制脚本，Robot会自动生成脚本。</p>
												<p>脚本示例：</p>
												<p>#include &lt;VU.h&gt;</p>
												<p>{</p>
												<p> </p>
												<p>push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */</p>
												<p>push Think_def = "LR";</p>
												<p>Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */</p>
												<p>push Timeout_val = Min_tmout;</p>
												<p> </p>
												<p>SERVER = sock_connect("123001", "SERVER:2000");</p>
												<p> </p>
												<p>{ INFO SERVER "SERVER"="192.168.1.12"; } /*1*/</p>
												<p> </p>
												<p>set Server_connection = SERVER;</p>
												<p> </p>
												<p>push Think_avg = 0;</p>
												<p> </p>
												<p>sock_send</p>
												<p>    "`45645651300000000001cc00f701000002000000c3330100000000000000000001000000"    "00000000000sdgsdfgfhjghjjdfhjhkjgfhjgfjjk000000000000hh0000000000000000000000"    "000000000000000000000000000000000000000000000100`g2222`0012313546545465431"    "`45641313000000000000000000000000000000000000`";</p>
												<p> </p>
												<p>sock_nrecv ["123002"] 200;</p>
												<p> </p>
												<p>sock_send    "`1321321656548745215599154654456546122132112313210000000000000001000000"    "00000000021321215665654548879654654655562000000000000000000000000000000"    "00000000000000000000000000000000000000000000012131132321213212111323213"    "`123110000000`Z2";</p>
												<p> </p>
												<p>sock_recv ["123003"] "$"; /* 50 bytes */</p>
												<p> </p>
												<p>sock_disconnect(SERVER);</p>
												<p> </p>
												<p>pop [Think_def, Think_avg, Timeout_val, Timeout_scale];</p>
												<p> </p>
												<p>}</p>
												<p> </p>
												<p>这个脚本如果不能正确回放，可以将将sock_recv ["123003"] "$"; /* 50 bytes */改为</p>
												<p>sock_nrecv ["123003"] 50; /* 50 bytes */</p>
												<p> </p>
												<p>第三步：设置Suite，回放脚本</p>
												<p>回放录制的脚本，Testmanager会自动创建Suite，如下所示：</p>
												<p> </p>
												<p>
														<br />    默认脚本运行一次，为了长时间运行，修改增加脚本的运行次数（最大32767），在Run properties中Iterations中设置。然后运行Suite，在Run Suite窗口中的“Number of users”上输入虚拟用户数，如200。</p>
												<p>    第四步：观察被测服务程序的运行情况，查看有无异常。压力测试需要连续、高负载运行不少于72小时，运行完成服务程序需要无资源泄漏、无报错、无异常退出以及其他不正常情况。</p>
												<p>数据库并发测试</p>
												<p>数据库并发测试的必要性：</p>
												<p>1、  与数据库连接的服务程序采用多线程同时开启多个数据库连接；</p>
												<p>2、  与数据库连接的服务程序单线程，但是同时开启多套服务程序；</p>
												<p>    以上两种情况均会产生对数据库的并发访问操作。数据库并发访问会导致数据库数据错误、数据库死锁等故障，需要在测试阶段进行充分测试。</p>
												<p> </p>
												<p>数据库并发测试测试方法：</p>
												<p>1、  利用测试工具模拟多个最终用户进行并发测试；</p>
												<p>    这种测试方法的缺点：最终用户往往并不是直接连接到数据库上，而是要经过一个和多个中间服务程序，所以并不能保证访问数据库时还是并发。其次，这种测试方法需要等到客户端程序、服务端程序全部完成才能进行；</p>
												<p>2、  利用测试工具编写脚本，直接连接数据库进行并发测试；</p>
												<p>    这种方法可以有效的保证并发操作，而且在数据库访问程序完成即可测试，可以大大缩短测试时间，而且测试效果更好。</p>
												<p> </p>
												<p>下面通过一个演示程序，演示使用Robot使用第二种测试方法进行数据库的并发测试：</p>
												<p>第一步：创建演示程序：打开SQL SERVER查询分析器，在SQL SERVER测试数据库中执行下列脚本（脚本执行操作：创建表testtable，并插入一条记录；创建存储过程test）：</p>
												<p>if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)</p>
												<p>drop procedure [dbo].[Test]</p>
												<p>GO</p>
												<p> </p>
												<p>if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[testtable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)</p>
												<p>drop table [dbo].[testtable]</p>
												<p>GO</p>
												<p> </p>
												<p>CREATE TABLE [dbo].[testtable] (</p>
												<p>       [testid] [int] NULL ,</p>
												<p>       [counts] [int] NULL </p>
												<p>) ON [PRIMARY]</p>
												<p>GO</p>
												<p> </p>
												<p>insert into testtable (testid,counts) values (1,0)</p>
												<p>GO</p>
												<p> </p>
												<p>SET QUOTED_IDENTIFIER ON </p>
												<p>GO</p>
												<p>SET ANSI_NULLS ON </p>
												<p>GO</p>
												<p> </p>
												<p>CREATE Procedure dbo.Test</p>
												<p>as</p>
												<p>  declare @count int</p>
												<p>  begin tran TEST    </p>
												<p>    select @count=counts  from testtable where testid=1    </p>
												<p>    update testtable set <a href="mailto:counts=@count+1"><font color="#000000" size="2">counts=@count+1</font></a></p>
												<p>    </p>
												<p>  if (@@error &gt;0) begin</p>
												<p>       rollback tran TEST</p>
												<p>  end else begin</p>
												<p>       commit tran TEST</p>
												<p>  end</p>
												<p>GO</p>
												<p>SET QUOTED_IDENTIFIER OFF </p>
												<p>GO</p>
												<p>SET ANSI_NULLS ON </p>
												<p>GO</p>
												<p> </p>
												<p>第二步：创建测试脚本：在Robot中新建VU脚本，输入以下内容：</p>
												<p>#include &lt;VU.h&gt;</p>
												<p>{</p>
												<p>push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */</p>
												<p>push Think_def = "LR";</p>
												<p>Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */</p>
												<p>push Timeout_val = Min_tmout;</p>
												<p> </p>
												<p>ser=sqlconnect("server","sa","888","192.168.0.99","sqlserver");</p>
												<p>set Server_connection = ser;</p>
												<p>push Think_avg = 0;</p>
												<p>sync_point "logon";</p>
												<p>sqlexec ["sql_1000"] "testdb..test";</p>
												<p>sqldisconnect (ser);</p>
												<p>}</p>
												<p>说明：</p>
												<p>ser=sqlconnect("server","sa","888","192.168.0.99","sqlserver") </p>
												<p>  sa为数据库用户名，888为sa密码，192.168.0.99数据库IP地址</p>
												<p>  以上三项按实际的测试数据库设置更改，其他两项不用修改</p>
												<p>sqlexec ["sql_1000"] "testdb..test"</p>
												<p>  testdb为新建存储过程test所在的数据库，按实际的数据库修改</p>
												<p> </p>
												<p>第三步：执行测试：运行上一步创建的脚本（运行时自动创建Suite），在Run Suite窗口中的“Number of users”上输入20。运行完脚本，打开数据库查看counts的数值。把counts值改为零多次运行脚本，观察每次运行后counts的结果。</p>
												<p> </p>
												<p>测试说明</p>
												<p>（1）、测试示例程序的目的是，存储过程test每执行一次，表testtable中的counts字段增加一；</p>
												<p>（2）、第三步的测试可以发现每次执行后counts结果并不相同，而且不等于20，这说明这个程序是在并发时是问题的。</p>
												<p>（3）、将存储过程中的select @count=counts  from testtable where testid=1修改为select @count=counts  from testtable with (UPDLOCK) where testid=1。再次进行并发测试，每次的结果应该都是20。</p>
												<p> </p>
												<p>    以上演示程序，仅仅演示了测试的方法。在实际的数据库并发测试中，首先要确定存在哪些并发情况、哪些数据受到并发影响，然后编写脚本，设置suite进行并发测试。</p>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 11:02 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试常用术语表</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20763.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 02:32:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20763.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20763.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20763.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20763.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="558" border="0">
				<tbody>
						<tr>
								<td valign="center" align="right" colspan="2" height="32">
										<div class="style7" align="center">
												<span style="FONT-SIZE: 12pt">
														<b>软件测试常用术语表</b>
												</span>
										</div>
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" bgcolor="#000000" colspan="2" height="1">
								</td>
						</tr>
						<tr>
								<td valign="center" align="right" colspan="2" height="20">
										<div align="center"> </div>
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" colspan="2" height="10">
								</td>
						</tr>
						<tr>
								<td valign="top" align="right" width="2%" height="10">
										<div align="left">
										</div>
								</td>
								<td valign="top" align="right" width="98%" bgcolor="#ffffff">
										<div class="daxiao14" align="left">
												<p>  Acceptance Testing－－可接受性测试</p>
												<p>  一般由用户/客户进行的确认是否可以接受一个产品的验证性测试。</p>
												<p>  actual outcome－－实际结果</p>
												<p>  被测对象在特定的条件下实际产生的结果。</p>
												<p>  Ad Hoc Testing－－随机测试</p>
												<p>  测试人员通过随机的尝试系统的功能，试图使系统中断。</p>
												<p>  algorithm－－算法</p>
												<p>  （1）一个定义好的有限规则集，用于在有限步骤内解决一个问题；（2）执行一个特定任务的任何操作序列。</p>
												<p>  algorithm analysis－－算法分析</p>
												<p>  一个软件的验证确认任务，用于保证选择的算法是正确的、合适的和稳定的，并且满足所有精确性、规模和时间</p>
												<p>  方面的要求。</p>
												<p>  Alpha Testing－－Alpha测试</p>
												<p>  由选定的用户进行的产品早期性测试。这个测试一般在可控制的环境下进行的。</p>
												<p>  analysis－－分析</p>
												<p>  （1）分解到一些原子部分或基本原则，以便确定整体的特性；（2）一个推理的过程，显示一个特定的结果是假</p>
												<p>  设前提的结果；（3）一个问题的方法研究，并且问题被分解为一些小的相关单元作进一步详细研究。</p>
												<p>  anomaly－－异常</p>
												<p>  在文档或软件操作中观察到的任何与期望违背的结果。</p>
												<p>  application software－－应用软件</p>
												<p>  满足特定需要的软件。</p>
												<p>  architecture－－构架</p>
												<p>  一个系统或组件的组织结构。</p>
												<p>  ASQ－－自动化软件质量（Automated Software Quality）</p>
												<p>  使用软件工具来提高软件的质量。</p>
												<p>  assertion－－断言</p>
												<p>  指定一个程序必须已经存在的状态的一个逻辑表达式，或者一组程序变量在程序执行期间的某个点上必须满足的</p>
												<p>  条件。</p>
												<p>  assertion checking－－断言检查</p>
												<p>  用户在程序中嵌入的断言的检查。</p>
												<p>  audit－－审计</p>
												<p>  一个或一组工作产品的独立检查以评价与规格、标准、契约或其它准则的符合程度。</p>
												<p>  audit trail－－审计跟踪</p>
												<p>  系统审计活动的一个时间记录。</p>
												<p>  Automated Testing－－自动化测试</p>
												<p>  使用自动化测试工具来进行测试，这类测试一般不需要人干预，通常在GUI、性能等测试中用得较多。</p>
												<p>  第120贴【2004－10－13】：常见测试术语二</p>
												<p>  Backus-Naur Form－－BNF范式</p>
												<p>  一种分析语言，用于形式化描述语言的语法</p>
												<p>  baseline－－基线</p>
												<p>  一个已经被正式评审和批准的规格或产品，它作为进一步开发的一个基础，并且必须通过正式的变更流程来变更</p>
												<p>  。</p>
												<p>  Basic Block－－基本块</p>
												<p>  一个或多个顺序的可执行语句块，不包含任何分支语句。</p>
												<p>  basis test set－－基本测试集</p>
												<p>  根据代码逻辑引出来的一个测试用例集合，它保证能获得100%的分支覆盖。</p>
												<p>  behaviour－－行为</p>
												<p>  对于一个系统的一个函数的输入和预置条件组合以及需要的反应。一个函数的所有规格包含一个或多个行为。</p>
												<p>  benchmark－－标杆/指标/基准</p>
												<p>  一个标准，根据该标准可以进行度量或比较。</p>
												<p>  Beta Testing－－Beta测试</p>
												<p>  在客户场地，由客户进行的对产品预发布版本的测试。这个测试一般是不可控的。</p>
												<p>  big-bang testing－－大锤测试/一次性集成测试</p>
												<p>  非渐增式集成测试的一种策略，测试的时候把所有系统的组件一次性组合成系统进行测试。</p>
												<p>  Black Box Testing－－黑盒测试</p>
												<p>  根据软件的规格对软件进行的测试，这类测试不考虑软件内部的运作原理，因此软件对用户来说就像一个黑盒子</p>
												<p>  。</p>
												<p>  bottom-up testing－－由低向上测试</p>
												<p>  渐增式集成测试的一种，其策略是先测试底层的组件，然后逐步加入较高层次的组件进行测试，直到系统所有组</p>
												<p>  件都加入到系统。</p>
												<p>  boundary value－－边界值</p>
												<p>  一个输入或输出值，它处在等价类的边界上。</p>
												<p>  boundary value coverage－－边界值覆盖</p>
												<p>  通过测试用例，测试组件等价类的所有边界值。</p>
												<p>  boundary value testing－－边界值测试</p>
												<p>  通过边界值分析方法来生成测试用例的一种测试策略。</p>
												<p>  Boundry Value Analysis－－边界值分析</p>
												<p>  该分析一般与等价类一起使用。经验认为软件的错误经常在输入的边界上产生，因此边界值分析就是分析软件输</p>
												<p>  入边界的一种方法。</p>
												<p>  branch－－分支</p>
												<p>  在组件中，控制从任何语句到其它任何非直接后续语句的一个条件转换，或者是一个无条件转换。</p>
												<p>  branch condition－－分支条件</p>
												<p>  branch condition combination coverage－－分支条件组合覆盖</p>
												<p>  在每个判定中所有分支条件结果组合被测试用例覆盖到的百分比。</p>
												<p>  branch condition combination testing－－分支条件组合测试</p>
												<p>  通过执行分支条件结果组合来设计测试用例的一种方法。</p>
												<p>  branch condition coverage－－分支条件覆盖</p>
												<p>  每个判定中分支条件结果被测试用例覆盖到的百分比。</p>
												<p>  branch condition testing－－分支条件测试</p>
												<p>  通过执行分支条件结果来设计测试用例的一种方法。</p>
												<p>  branch coverage－－分支覆盖</p>
												<p>  通过测试执行到的分支的百分比。</p>
												<p>  branch outcome－－分支结果</p>
												<p>  见判定结果（decision outcome）</p>
												<p>  branch point－－分支点</p>
												<p>  见判定（decision）</p>
												<p>  branch testing－－分支测试</p>
												<p>  通过执行分支结果来设计测试用例的一种方法。</p>
												<p>  Breadth Testing－－广度测试</p>
												<p>  在测试中测试一个产品的所有功能，但是不测试更细节的特性。</p>
												<p>  bug－－缺陷</p>
												<p>  第121贴【2004－10－14】：常见测试术语三</p>
												<p>  capture/playback tool－－捕获/回放工具</p>
												<p>  参考capture/replay tool</p>
												<p>  Capture/Replay Tool－－捕获/回放工具</p>
												<p>  一种测试工具，能够捕获在测试过程中传递给软件的输入，并且能够在以后的时间中，重复这个执行的过程。这</p>
												<p>  类工具一般在GUI测试中用的较多。</p>
												<p>  CASE－－计算机辅助软件工程（computer aided software engineering）</p>
												<p>  用于支持软件开发的一个自动化系统。</p>
												<p>  CAST－－计算机辅助测试</p>
												<p>  在测试过程中使用计算机软件工具进行辅助的测试。</p>
												<p>  cause-effect graph－－因果图</p>
												<p>  一个图形，用来表示输入（原因）与结果之间的关系，可以被用来设计测试用例。</p>
												<p>  certification －－证明</p>
												<p>  一个过程，用于确定一个系统或组件与特定的需求相一致。</p>
												<p>  change control－－变更控制</p>
												<p>  一个用于计算机系统或系统数据修改的过程，该过程是质量保证程序的一个关键子集，需要被明确的描述。</p>
												<p>  code audit －－代码审计</p>
												<p>  由一个人、组或工具对源代码进行的一个独立的评审，以验证其与设计规格、程序标准的一致性。正确性和有效</p>
												<p>  性也会被评价。</p>
												<p>  Code Coverage－－代码覆盖率</p>
												<p>  一种分析方法，用于确定在一个测试套执行后，软件的哪些部分被执行到了，哪些部分没有被执行到。</p>
												<p>  Code Inspection－－代码检视</p>
												<p>  一个正式的同行评审手段，在该评审中，作者的同行根据检查表对程序的逻辑进行提问，并检查其与编码规范的</p>
												<p>  一致性。</p>
												<p>  Code Walkthrough－－代码走读</p>
												<p>  一个非正式的同行评审手段，在该评审中，代码被使用一些简单的测试用例进行人工执行，程序变量的状态被手</p>
												<p>  工分析，以分析程序的逻辑和假设。</p>
												<p>  code-based testing－－基于代码的测试</p>
												<p>  根据从实现中引出的目标设计测试用例。</p>
												<p>  coding standards－－编程规范</p>
												<p>  一些编程方面需要遵循的标准，包括命名方式、排版格式等内容。</p>
												<p>  Compatibility Testing－－兼容性测试</p>
												<p>  测试软件是否和系统的其它与之交互的元素之间兼容，如：浏览器、操作系统、硬件等。</p>
												<p>  complete path testing －－完全路径测试</p>
												<p>  参考穷尽测试（exhaustive testing）</p>
												<p>  completeness－－完整性</p>
												<p>  实体的所有必须部分必须被包含的属性。</p>
												<p>  complexity －－复杂性</p>
												<p>  系统或组件难于理解或验证的程度。</p>
												<p>  Component－－组件</p>
												<p>  一个最小的软件单元，有着独立的规格</p>
												<p>  Component Testing－－组件测试</p>
												<p>  参考单元测试</p>
												<p>  computation data use－－计算数据使用</p>
												<p>  一个不在条件中的数据使用。</p>
												<p>  computer system security－－计算机系统安全性</p>
												<p>  计算机软件和硬件对偶然的或故意的访问、使用、修改或破坏的一种保护机制。</p>
												<p>  condition－－条件</p>
												<p>  一个不包含布尔操作的布尔表达式，例如：A</p>
												<p>  condition coverage－－条件覆盖</p>
												<p>  通过测试执行到的条件的百分比。</p>
												<p>  condition outcome－－条件结果</p>
												<p>  条件为真为假的评价。</p>
												<p>  configuration control－－配置控制</p>
												<p>  配置管理的一个方面，包括评价、协调、批准、和实现配置项的变更。</p>
												<p>  configuration management－－配置管理</p>
												<p>  一套技术和管理方面的原则用于确定和文档化一个配置项的功能和物理属性、控制对这些属性的变更、记录和报</p>
												<p>  告变更处理和实现的状态、以及验证与指定需求的一致性。</p>
												<p>  conformance criterion－－ 一致性标准</p>
												<p>  判断组件在一个特定输入值上的行为是否符合规格的一种方法。</p>
												<p>  Conformance Testing－－ 一致性测试</p>
												<p>  测试一个系统的实现是否和其基于的规格相一致的测试。</p>
												<p>  consistency －－ 一致性</p>
												<p>  在系统或组件的各组成部分和文档之间没有矛盾，一致的程度。</p>
												<p>  consistency checker－－ 一致性检查器</p>
												<p>  一个软件工具，用于测试设计规格中需求的一致性和完整性。</p>
												<p>  control flow－－控制流</p>
												<p>  程序执行中所有可能的事件顺序的一个抽象表示。</p>
												<p>  control flow graph－－控制流图</p>
												<p>  通过一个组件的可能替换控制流路径的一个图形表示。</p>
												<p>  conversion testing－－转换测试</p>
												<p>  用于测试已有系统的数据是否能够转换到替代系统上的一种测试。</p>
												<p>  corrective maintenance－－故障检修</p>
												<p>  用于纠正硬件或软件中故障的维护。</p>
												<p>  correctness －－正确性</p>
												<p>  软件遵从其规格的程度。</p>
												<p>  correctness －－正确性</p>
												<p>  软件在其规格、设计和编码中没有故障的程度。软件、文档和其它项满足需求的程度。软件、文档和其它项满足</p>
												<p>  用户明显的和隐含的需求的程度。</p>
												<p>  coverage －－覆盖率</p>
												<p>  用于确定测试所执行到的覆盖项的百分比。</p>
												<p>  coverage item－－覆盖项</p>
												<p>  作为测试基础的一个入口或属性：如语句、分支、条件等。</p>
												<p>  crash－－崩溃</p>
												<p>  计算机系统或组件突然并完全的丧失功能。</p>
												<p>  criticality－－关键性</p>
												<p>  需求、模块、错误、故障、失效或其它项对一个系统的操作或开发影响的程度。</p>
												<p>  criticality analysis－－关键性分析</p>
												<p>  需求的一种分析，它根据需求的风险情况给每个需求项分配一个关键级别。</p>
												<p>  cyclomatic complexity－－循环复杂度</p>
												<p>  一个程序中独立路径的数量。</p>
												<p>  第122贴【2004－10－19】：常见测试术语四</p>
												<p>  data corruption－－数据污染</p>
												<p>  违背数据一致性的情况。</p>
												<p>  data definition－－数据定义</p>
												<p>  一个可执行语句，在该语句上一个变量被赋予了一个值。</p>
												<p>  data definition C-use coverage－－数据定义C-use覆盖</p>
												<p>  在组件中被测试执行到的数据定义C-use使用对的百分比。</p>
												<p>  data definition C-use pair－－数据定义C-use使用对</p>
												<p>  一个数据定义和一个计算数据使用，数据使用的值是数据定义的值。</p>
												<p>  data definition P-use coverage－－数据定义P-use覆盖</p>
												<p>  在组件中被测试执行到的数据定义P-use使用对的百分比。</p>
												<p>  data definition P-use pair－－数据定义P-use使用对</p>
												<p>  一个数据定义和一个条件数据使用，数据使用的值是数据定义的值。</p>
												<p>  data definition-use coverage－－数据定义使用覆盖</p>
												<p>  在组件中被测试执行到的数据定义使用对的百分比。</p>
												<p>  data definition-use pair －－数据定义使用对</p>
												<p>  一个数据定义和一个数据使用，数据使用的值是数据定义的值。</p>
												<p>  data definition-use testing－－数据定义使用测试</p>
												<p>  以执行数据定义使用对为目标进行测试用例设计的一种技术。</p>
												<p>  data dictionary－－数据字典</p>
												<p>  （1）一个软件系统中使用的所有数据项名称，以及这些项相关属性的集合。（2）数据流、数据元素、文件、数据基础、和相关处理的一个集合。</p>
												<p>  data flow analysis－－数据流分析</p>
												<p>  一个软件验证和确认过程，用于保证输入和输出数据和它们的格式是被适当定义的，并且数据流是正确的。</p>
												<p>  data flow coverage－－数据流覆盖</p>
												<p>  测试覆盖率的度量是根据变量在代码中的使用情况。</p>
												<p>  data flow diagram－－数据流图</p>
												<p>  把数据源、数据接受、数据存储和数据处理作为节点描述的一个图形，数据之间的逻辑体现为节点之间的边。</p>
												<p>  data flow testing－－数据流测试</p>
												<p>  根据代码中变量的使用情况进行的测试。</p>
												<p>  data integrity－－数据完整性</p>
												<p>  一个数据集合完全、正确和一致的程度。</p>
												<p>  data use－－数据使用</p>
												<p>  一个可执行的语句，在该语句中，变量的值被访问。</p>
												<p>  data validation－－数据确认</p>
												<p>  用于确认数据不正确、不完整和不合理的过程。</p>
												<p>  dead code－－死代码</p>
												<p>  在程序操作过程中永远不可能被执行到的代码。</p>
												<p>  Debugging－－调试</p>
												<p>  发现和去除软件失效根源的过程。</p>
												<p>  decision－－判定</p>
												<p>  一个程序控制点，在该控制点上，控制流有两个或多个可替换路由。</p>
												<p>  Decision condition－－判定条件</p>
												<p>  判定内的一个条件。</p>
												<p>  decision coverage－－判定覆盖</p>
												<p>  在组件中被测试执行到的判定结果的百分比。</p>
												<p>  decision outcome－－判定结果</p>
												<p>  一个判定的结果，决定控制流走哪条路径。</p>
												<p>  decision table－－判定表</p>
												<p>  一个表格，用于显示条件和条件导致动作的集合。</p>
												<p>  Depth Testing－－深度测试</p>
												<p>  执行一个产品的一个特性的所有细节，但不测试所有特性。比较广度测试。</p>
												<p>  design of experiments－－实验设计</p>
												<p>  一种计划实验的方法，这样适合分析的数据可以被收集。</p>
												<p>  design-based testing－－基于设计的测试</p>
												<p>  根据软件的构架或详细设计引出测试用例的一种方法。</p>
												<p>  desk checking－－桌面检查</p>
												<p>  通过手工模拟软件执行的方式进行测试的一种方式。</p>
												<p>  diagnostic－－诊断</p>
												<p>  检测和隔离故障或失效的过程。</p>
												<p>  dirty testing－－肮脏测试</p>
												<p>  参考负面测试（negative testing）</p>
												<p>  disaster recovery－－灾难恢复</p>
												<p>  一个灾难的恢复和重建过程或能力。</p>
												<p>  documentation testing －－文档测试</p>
												<p>  测试关注于文档的正确性。</p>
												<p>  domain－－域</p>
												<p>  值被选择的一个集合。</p>
												<p>  domain testing－－域测试</p>
												<p>  参考等价划分测试（equivalence partition testing）</p>
												<p>  dynamic analysis－－动态分析</p>
												<p>  根据执行的行为评价一个系统或组件的过程。</p>
												<p>  Dynamic Testing－－动态测试</p>
												<p>  通过执行软件的手段来测试软件。</p>
												<p>  第123贴【2004－10－20】：常见测试术语五</p>
												<p>  embedded software－－嵌入式软件</p>
												<p>  软件运行在特定硬件设备中，不能独立于硬件存在。这类系统一般要求实时性较高。</p>
												<p>  emulator－－仿真</p>
												<p>  一个模仿另一个系统的系统或设备，它接受相同的输入并产生相同的输出。</p>
												<p>  End-to-End testing－－端到端测试</p>
												<p>  在一个模拟现实使用的场景下测试一个完整的应用环境，例如和数据库交互，使用网络通信等。</p>
												<p>  entity relationship diagram－－实体关系图</p>
												<p>  描述现实世界中实体及它们关系的图形。</p>
												<p>  entry point －－入口点</p>
												<p>  一个组件的第一个可执行语句。</p>
												<p>  Equivalence Class－－等价类</p>
												<p>  组件输入或输出域的一个部分，在该部分中，组件的行为从组件的规格上来看认为是相同的。</p>
												<p>  equivalence partition coverage－－等价划分覆盖</p>
												<p>  在组件中被测试执行到的等价类的百分比。</p>
												<p>  equivalence partition testing－－等价划分测试</p>
												<p>  根据等价类设计测试用例的一种技术。</p>
												<p>  Equivalence Partitioning－－等价划分</p>
												<p>  组件的一个测试用例设计技术，该技术从组件的等价类中选取典型的点进行测试。</p>
												<p>  error－－错误</p>
												<p>  IEEE的定义是：一个人为产生不正确结果的行为。</p>
												<p>  error guessing－－错误猜测</p>
												<p>  根据测试人员以往的经验猜测可能出现问题的地方来进行用例设计的一种技术。</p>
												<p>  error seeding－－错误播种/错误插值</p>
												<p>  故意插入一些已知故障（fault）到一个系统中去的过程，目的是为了根据错误检测和跟踪的效率并估计系统中遗</p>
												<p>  留缺陷的数量。</p>
												<p>  exception－－异常/例外</p>
												<p>  一个引起正常程序执行挂起的事件。</p>
												<p>  executable statement－－可执行语句</p>
												<p>  一个语句在被编译后会转换成目标代码，当程序运行是会被执行，并且可能对程序数据产生动作。</p>
												<p>  Exhaustive Testing－－穷尽测试</p>
												<p>  测试覆盖软件的所有输入和条件组合。</p>
												<p>  exit point－－出口点</p>
												<p>  一个组件的最后一个可执行语句。</p>
												<p>  expected outcome－－期望结果</p>
												<p>  参考预期结果（predicted outcome）。</p>
												<p>  第124贴【2004－10－21】：常见测试术语六</p>
												<p>  failure－－失效</p>
												<p>  软件的行为与其期望的服务相背离。</p>
												<p>  fault－－故障</p>
												<p>  在软件中一个错误的表现。</p>
												<p>  feasible path－－可达路径</p>
												<p>  可以通过一组输入值和条件执行到的一条路径。</p>
												<p>  feature testing－－特性测试</p>
												<p>  参考功能测试（Functional Testing）</p>
												<p>  FMEA－－失效模型效果分析（Failure Modes and Effects Analysis）</p>
												<p>  可靠性分析中的一种方法，用于在基本组件级别上确认对系统性能有重大影响的失效。</p>
												<p>  FMECA－－失效模型效果关键性分析(Failure Modes and Effects Criticality Analysis)</p>
												<p>  FMEA的一个扩展，它分析了失效结果的严重性。</p>
												<p>  FTA－－故障树分析(Fault Tree Analysis)</p>
												<p>  引起一个不需要事件产生的条件和因素的确认和分析，通常是严重影响系统性能、经济性、安全性或其它需要特</p>
												<p>  性。</p>
												<p>  functional decomposition－－功能分解</p>
												<p>  参考模块分解（modular decomposition）</p>
												<p>  Functional Specification －－功能规格说明书</p>
												<p>  一个详细描述产品特性的文档。</p>
												<p>  Functional Testing－－功能测试</p>
												<p>  测试一个产品的特性和可操作行为以确定它们满足规格。</p>
												<p>  第125贴【2004－10－22】：常见测试术语七</p>
												<p>  glass box testing－－玻璃盒测试</p>
												<p>  参考白盒测试（White Box Testing）</p>
												<p>  IEEE－－美国电子与电器工程师学会（Institute of Electrical and Electronic Engineers）</p>
												<p>  incremental testing－－渐增测试</p>
												<p>  集成测试的一种，组件逐渐被增加到系统中直到整个系统被集成。</p>
												<p>  infeasible path－－不可达路径</p>
												<p>  不能够通过任何可能的输入值集合执行到的路径。</p>
												<p>  input domain－－输入域</p>
												<p>  所有可能输入的集合。</p>
												<p>  inspection－－检视</p>
												<p>  对文档进行的一种评审形式。</p>
												<p>  installability testing－－可安装性测试</p>
												<p>  确定系统的安装程序是否正确的测试。</p>
												<p>  instrumentation－－插装</p>
												<p>  在程序中插入额外的代码以获得程序在执行时行为的信息。</p>
												<p>  instrumenter－－插装器</p>
												<p>  执行插装的工具</p>
												<p>  Integration Testing－－集成测试</p>
												<p>  测试一个应用组合后的部分以确保它们的功能在组合之后正确。该测试一般在单元测试之后进行。</p>
												<p>  interface－－接口</p>
												<p>  两个功能单元的共享边界。</p>
												<p>  interface analysis－－接口分析</p>
												<p>  分析软件与硬件、用户和其它软件之间接口的需求规格。</p>
												<p>  interface testing－－接口测试</p>
												<p>  测试系统组件间接口的一种测试。</p>
												<p>  invalid inputs－－无效输入</p>
												<p>  在程序功能输入域之外的测试数据。</p>
												<p>  isolation testing－－孤立测试</p>
												<p>  组件测试（单元测试）策略中的一种，把被测组件从其上下文组件之中孤立出来，通过设计驱动和桩进行测试的</p>
												<p>  一种方法。</p>
												<p>  第126贴【2004－10－25】：常见测试术语八</p>
												<p>  Job－－工作</p>
												<p>  一个用户定义的要计算机完成的工作单元。</p>
												<p>  job control language－－工作控制语言</p>
												<p>  用于确定工作顺序，描述它们对操作系统要求并控制它们执行的语言。</p>
												<p>  LCSAJ－－线性代码顺序和跳转（Linear Code Sequence And Jump）</p>
												<p>  包含三个部分：可执行语句线性顺序的起始，线性顺序的结束，在线性顺序结束处控制流跳转的目标语句。</p>
												<p>  LCSAJ coverage－－LCSAJ覆盖</p>
												<p>  在组件中被测试执行到的LCSAJ的百分比。</p>
												<p>  LCSAJ testing－－LCSAJ测试</p>
												<p>  根据LCSAJ设计测试用例的一种技术。</p>
												<p>  Load Testing－－负载测试</p>
												<p>  通过测试系统在资源超负荷情况下的表现，以发现设计上的错误或验证系统的负载能力。</p>
												<p>  logic analysis－－逻辑分析</p>
												<p>  （1）评价软件设计的关键安全方程式、算法和控制逻辑的方法。（2）评价程序操作的顺序并且检测可能导致灾难的错误。</p>
												<p>  logic-coverage testing－－逻辑覆盖测试</p>
												<p>  参考结构化测试用例设计（structural test case design）</p>
												<p>  maintainability－－可维护性</p>
												<p>  一个软件系统或组件可以被修改的容易程度，这个修改一般是因为缺陷纠正、性能改进或特性增加引起的。</p>
												<p>  maintainability testing－－可维护性测试</p>
												<p>  测试系统是否满足可维护性目标。</p>
												<p>  modified condition/decision coverage－－修改条件/判定覆盖</p>
												<p>  在组件中被测试执行到的修改条件/判定的百分比。</p>
												<p>  modified condition/decision testing －－修改条件/判定测试</p>
												<p>  根据MC/DC设计测试用例的一种技术。</p>
												<p>  Monkey Testing－－跳跃式测试</p>
												<p>  随机性，跳跃式的测试一个系统，以确定一个系统是否会崩溃。</p>
												<p>  MTBF－－平均失效间隔实际（mean time between failures）</p>
												<p>  两次失效之间的平均操作时间。</p>
												<p>  MTTF－－平均失效时间 （mean time to failure）</p>
												<p>  第一次失效之前的平均时间</p>
												<p>  MTTR－－平均修复时间（mean time to repair）</p>
												<p>  两次修复之间的平均时间</p>
												<p>  multiple condition coverage－－多条件覆盖</p>
												<p>  参考分支条件组合覆盖（branch condition combination coverage）</p>
												<p>  mutation analysis－－变体分析</p>
												<p>  一种确定测试用例套完整性的方法，该方法通过判断测试用例套能够区别程序与其变体之间的程度。</p>
												<p>  第127贴【2004－10－26】：常见测试术语九</p>
												<p>  Negative Testing－－逆向测试/反向测试/负面测试</p>
												<p>  测试瞄准于使系统不能工作。</p>
												<p>  non-functional requirements testing－－非功能性需求测试</p>
												<p>  与功能不相关的需求测试，如：性能测试、可用性测试等。</p>
												<p>  N-switch coverage－－N切换覆盖</p>
												<p>  在组件中被测试执行到的N转换顺序的百分比。</p>
												<p>  N-switch testing－－N切换测试</p>
												<p>  根据N转换顺序设计测试用例的一种技术，经常用于状态转换测试中。</p>
												<p>  N-transitions－－N转换</p>
												<p>  N＋1转换顺序</p>
												<p>  operational testing－－可操作性测试</p>
												<p>  在系统或组件操作的环境中评价它们的表现。</p>
												<p>  output domain－－输出域</p>
												<p>  所有可能输出的集合。</p>
												<p>  第128贴【2004－10－27】：常见测试术语十</p>
												<p>  partition testing－－分类测试</p>
												<p>  参考等价划分测试（equivalence partition testing）</p>
												<p>  path－－路径</p>
												<p>  一个组件从入口到出口的一条可执行语句顺序。</p>
												<p>  path coverage－－路径覆盖</p>
												<p>  在组件中被测试执行到的路径的百分比。</p>
												<p>  path sensitizing－－路径敏感性</p>
												<p>  选择一组输入值强制组件走一个给定的路径。</p>
												<p>  path testing－－路径测试</p>
												<p>  根据路径设计测试用例的一种技术，经常用于状态转换测试中。</p>
												<p>  performance testing－－性能测试</p>
												<p>  评价一个产品或组件与性能需求是否符合的测试。</p>
												<p>  portability testing－－可移植性</p>
												<p>  测试瞄准于证明软件可以被移植到指定的硬件或软件平台上。</p>
												<p>  Positive Testing－－正向测试</p>
												<p>  测试瞄准于显示系统能够正常工作。</p>
												<p>  precondition－－预置条件</p>
												<p>  环境或状态条件，组件执行之前必须被填充一个特定的输入值。</p>
												<p>  predicate－－谓词</p>
												<p>  一个逻辑表达式，结果为‘真’或‘假’。</p>
												<p>  predicate data use－－谓词数据使用</p>
												<p>  在谓词中的一个数据使用。</p>
												<p>  program instrumenter－－程序插装</p>
												<p>  参考插装（instrumenter）</p>
												<p>  progressive testing－－递进测试</p>
												<p>  在先前特性回归测试之后对新特性进行测试的一种策略。</p>
												<p>  pseudo-random－－伪随机</p>
												<p>  看似随机的，实际上是根据预先安排的顺序进行的。</p>
												<p>  第129贴【2004－10－28】：常见测试术语十一</p>
												<p>  QA－－质量保证（quality assurance）</p>
												<p>  （1）已计划的系统性活动，用于保证一个组件、模块或系统遵从已确立的需求。（2）采取的所有活动以保证一</p>
												<p>  个开发组织交付的产品满足性能需求和已确立的标准和过程。</p>
												<p>  QC－－质量控制（quality control）</p>
												<p>  用于获得质量需求的操作技术和过程，如测试活动。</p>
												<p>  Race Condition－－竞争状态</p>
												<p>  并行问题的根源。对一个共享资源的多个访问，至少包含了一个写操作，但是没有一个机制来协调同时发生的访问。</p>
												<p>  recovery testing－－恢复性测试</p>
												<p>  验证系统从失效中恢复能力的测试。</p>
												<p>  regression analysis and testing－－回归分析和测试</p>
												<p>  一个软件验证和确认任务以确定在修改后需要重复测试和分析的范围。</p>
												<p>  Regression Testing－－回归测试</p>
												<p>  在发生修改之后重新测试先前的测试以保证修改的正确性。</p>
												<p>  release－－发布</p>
												<p>  一个批准版本的正式通知和分发。</p>
												<p>  reliability－－可靠性</p>
												<p>  一个系统或组件在规定的条件下在指定的时间内执行其需要功能的能力。</p>
												<p>  reliability assessment－－可靠性评价</p>
												<p>  确定一个已有系统或组件的可靠性级别的过程。</p>
												<p>  requirements-based testing－－基于需求的测试</p>
												<p>  根据软件组件的需求导出测试用例的一种设计方法。</p>
												<p>  review－－评审</p>
												<p>  在产品开发过程中，把产品提交给项目成员、用户、管理者或其它相关人员评价或批准的过程。</p>
												<p>  risk－－风险</p>
												<p>  不期望效果的可能性和严重性的一个度量。</p>
												<p>  risk assessment－－风险评估</p>
												<p>  对风险和风险影响的一个完整的评价。</p>
												<p>  第130贴【2004－10－29】：常见测试术语十二</p>
												<p>  safety－－（生命）安全性</p>
												<p>  不会引起人员伤亡、产生疾病、毁坏或损失设备和财产、或者破坏环境。</p>
												<p>  safety critical－－严格的安全性</p>
												<p>  一个条件、事件、操作、过程或项，它的认识、控制或执行对生命安全性的系统来说是非常关键的。</p>
												<p>  Sanity Testing－－理智测试</p>
												<p>  软件主要功能成分的简单测试以保证它是否能进行基本的测试。参考冒烟测试</p>
												<p>  SDP－－软件开发计划（software development plan）</p>
												<p>  用于一个软件产品开发的项目计划。</p>
												<p>  security testing－－安全性测试</p>
												<p>  验证系统是否符合安全性目标的一种测试。</p>
												<p>  security.－－（信息）安全性</p>
												<p>  参考计算机系统安全性（computer system security）</p>
												<p>  serviceability testing－－可服务性测试</p>
												<p>  参考可维护性测试（maintainability testing）</p>
												<p>  simple subpath－－简单子路径</p>
												<p>  控制流的一个子路径，其中没有不必要的部分被执行。</p>
												<p>  simulation－－模拟</p>
												<p>  使用另一个系统来表示一个物理的或抽象的系统的选定行为特性。</p>
												<p>  simulation－－模拟</p>
												<p>  使用一个可执行模型来表示一个对象的行为。</p>
												<p>  simulator－－模拟器</p>
												<p>  软件验证期间的一个设备、软件程序、或系统，当它给定一个控制的输入时，表现的与一个给定的系统类似。</p>
												<p>  第131贴【2004－11－1】：常见测试术语十三</p>
												<p>  SLA－－服务级别协议（service level agreement）</p>
												<p>  服务提供商与客户之间的一个协议，用于规定服务提供商应当提供什么服务。</p>
												<p>  Smoke Testing－－冒烟测试</p>
												<p>  对软件主要功能进行快餐式测试。最早来自于硬件测试实践，以确定新的硬件在第一次使用的时候不会着火。</p>
												<p>  software development process－－软件开发过程</p>
												<p>  一个把用户需求转换为软件产品的开发过程。</p>
												<p>  software diversity－－软件多样性</p>
												<p>  一种软件开发技术，其中，由不同的程序员或开发组开发的相同规格的不同程序，目的是为了检测错误、增加可靠性。</p>
												<p>  software element－－软件元素</p>
												<p>  软件开发或维护期间产生或获得的一个可交付的或过程内的文档。</p>
												<p>  software engineering－－软件工程</p>
												<p>  一个应用于软件开发、操作和维护的系统性的、有纪律的、可量化的方法。</p>
												<p>  software engineering environment－－软件工程环境</p>
												<p>  执行一个软件工程工作的硬件、软件和固件。</p>
												<p>  software life cycle－－软件生命周期</p>
												<p>  开始于一个软件产品的构思，结束于该产品不再被使用的这段期间。</p>
												<p>  SOP－－标准操作过程（standard operating procedures）</p>
												<p>  书面的步骤，这对保证生产和处理的控制是必须的。</p>
												<p>  source code－－源代码</p>
												<p>  用一种适合于输入到汇编器、编译器或其它转换设备的计算机指令和数据定义。</p>
												<p>  source statement－－源语句</p>
												<p>  参考语句（statement）</p>
												<p>  第132贴【2004－11－2】：常见测试术语十四</p>
												<p>  specification－－规格</p>
												<p>  组件功能的一个描述，格式是：对指定的输入在指定的条件下的输出。</p>
												<p>  specified input－－指定的输入</p>
												<p>  一个输入，根据规格能预知其输出。</p>
												<p>  spiral model －－螺旋模型</p>
												<p>  软件开发过程的一个模型，其中的组成活动，典型的包括需求分析，概要设计，详细设计，编码，集成和测试等活动被迭代的执行直到软件被完成。</p>
												<p>  SQL－－结构化查询语句（structured query language）</p>
												<p>  在一个关系数据库中查询和处理数据的一种语言。</p>
												<p>  state－－状态</p>
												<p>  一个系统、组件或模拟可能存在其中的一个条件或模式。</p>
												<p>  state diagram－－状态图</p>
												<p>  一个图形，描绘一个系统或组件可能假设的状态，并且显示引起或导致一个状态切换到另一个状态的事件或环境。</p>
												<p>  state transition－－状态转换</p>
												<p>  一个系统或组件的两个允许状态之间的切换。</p>
												<p>  state transition testing －－状态转换测试</p>
												<p>  根据状态转换来设计测试用例的一种方法。</p>
												<p>  statement－－语句</p>
												<p>  程序语言的一个实体，是典型的最小可执行单元。</p>
												<p>  statement coverage－－语句覆盖</p>
												<p>  在一个组件中，通过执行一定的测试用例所能达到的语句覆盖百分比。</p>
												<p>  statement testing－－语句测试</p>
												<p>  根据语句覆盖来设计测试用例的一种方法。</p>
												<p>  Static Analysis－－静态分析</p>
												<p>  分析一个程序的执行，但是并不实际执行这个程序。</p>
												<p>  第133贴【2004－11－3】：常见测试术语十五</p>
												<p>  Static Analyzer－－静态分析器</p>
												<p>  进行静态分析的工具。</p>
												<p>  Static Testing－－静态测试</p>
												<p>  不通过执行来测试一个系统。</p>
												<p>  statistical testing－－统计测试</p>
												<p>  通过使用对输入统计分布进行分析来构造测试用例的一种测试设计方法。</p>
												<p>  stepwise refinement－－逐步优化</p>
												<p>  一个结构化软件设计技术，数据和处理步骤首先被广泛的定义，然后被逐步的进行了细化。</p>
												<p>  storage testing－－存储测试</p>
												<p>  验证系统是否满足指定存储目标的测试。</p>
												<p>  Stress Testing－－压力测试</p>
												<p>  在规定的规格条件或者超过规定的规格条件下，测试一个系统，以评价其行为。类似负载测试，通常是性能测试</p>
												<p>  的一部分。</p>
												<p>  structural coverage－－结构化覆盖</p>
												<p>  根据组件内部的结构度量覆盖率。</p>
												<p>  structural test case design－－结构化测试用例设计</p>
												<p>  根据组件内部结构的分析来设计测试用例的一种方法。</p>
												<p>  structural testing－－结构化测试</p>
												<p>  参考结构化测试用例设计（structural test case design）</p>
												<p>  structured basis testing－－结构化的基础测试</p>
												<p>  根据代码逻辑设计测试用例来获得100％分支覆盖的一种测试用例设计技术。</p>
												<p>  structured design－－结构化设计</p>
												<p>  软件设计的任何遵循一定纪律的方法，它按照特定的规则，例如：模块化，有顶向下设计，数据逐步优化，系统</p>
												<p>  结构和处理步骤。</p>
												<p>  structured programming－－结构化编程</p>
												<p>  在结构化程序开发中的任何包含结构化设计和结果的软件开发技术。</p>
												<p>  structured walkthrough－－结构化走读</p>
												<p>  参考走读（walkthrough）</p>
												<p>  第134贴【2004－11－4】：常见测试术语十六</p>
												<p>  stub－－桩</p>
												<p>  一个软件模块的框架或特殊目标实现，主要用于开发和测试一个组件，该组件调用或依赖这个模块。</p>
												<p>  symbolic evaluation－－符号评价</p>
												<p>  参考符号执行（symbolic execution）</p>
												<p>  symbolic execution－－符号执行</p>
												<p>  通过符号表达式来执行程序路径的一种静态分析设计技术。其中，程序的执行被用符号来模拟，例如，使用变量</p>
												<p>  名而不是实际值，程序的输出被表示成包含这些符号的逻辑或数学表达式。</p>
												<p>  symbolic trace－－符号轨迹</p>
												<p>  一个计算机程序通过符号执行是经过的语句分支结果的一个记录。</p>
												<p>  syntax testing－－语法分析</p>
												<p>  根据输入语法来验证一个系统或组件的测试用例设计技术。</p>
												<p>  system analysis－－系统分析</p>
												<p>  对一个计划的或现实的系统进行的一个系统性调查以确定系统的功能以及系统与其它系统之间的交互。</p>
												<p>  system design－－系统设计</p>
												<p>  一个定义硬件和软件构架、组件、模块、接口和数据的过程以满足指定的规格。</p>
												<p>  system integration－－系统集成</p>
												<p>  一个系统组件的渐增的连接和测试，直到一个完整的系统。</p>
												<p>  System Testing－－系统测试</p>
												<p>  从一个系统的整体而不是个体上来测试一个系统，并且该测试关注的是规格，而不是系统内部的逻辑。</p>
												<p>  第135贴【2004－11－7】：常见测试术语十七</p>
												<p>  technical requirements testing－－技术需求测试</p>
												<p>  参考非功能需求测试（non-functional requirements testing）</p>
												<p>  test automation－－测试自动化</p>
												<p>  使用工具来控制测试的执行、结果的比较、测试预置条件的设置、和其它测试控制和报告功能。</p>
												<p>  test case－－测试用例</p>
												<p>  用于特定目标而开发的一组输入、预置条件和预期结果。</p>
												<p>  test case design technique－－测试用例设计技术</p>
												<p>  选择和导出测试用例的技术。</p>
												<p>  test case suite－－测试用例套</p>
												<p>  对被测软件的一个或多个测试用例的集合。</p>
												<p>  test comparator－－测试比较器</p>
												<p>  一个测试工具用于比较软件实际测试产生的结果与测试用例预期的结果。</p>
												<p>  test completion criterion－－测试完成标准</p>
												<p>  一个标准用于确定被计划的测试何时完成。</p>
												<p>  test coverage－－测试覆盖</p>
												<p>  参考覆盖率（Coverage）</p>
												<p>  test driver－－测试驱动</p>
												<p>  一个程序或测试工具用于根据测试套执行软件。</p>
												<p>  test environment－－测试环境</p>
												<p>  测试运行其上的软件和硬件环境的描述，以及任何其它与被测软件交互的软件，包括驱动和桩。</p>
												<p>  第136贴【2004－11－8】：常见测试术语十八</p>
												<p>  test execution－－测试执行</p>
												<p>  一个测试用例被被测软件执行，并得到一个结果。</p>
												<p>  test execution technique－－测试执行技术</p>
												<p>  执行测试用例的技术，包括手工、自动化等。</p>
												<p>  test generator－－测试生成器</p>
												<p>  根据特定的测试用例产生测试用例的工具。</p>
												<p>  test harness－－测试用具</p>
												<p>  包含测试驱动和测试比较器的测试工具。</p>
												<p>  test log－－测试日志</p>
												<p>  一个关于测试执行所有相关细节的时间记录。</p>
												<p>  test measurement technique－－测试度量技术</p>
												<p>  度量测试覆盖率的技术。</p>
												<p>  Test Plan－－测试计划</p>
												<p>  一个文档，描述了要进行的测试活动的范围、方法、资源和进度。它确定测试项、被测特性、测试任务、谁执行</p>
												<p>  任务，并且任何风险都要冲突计划。</p>
												<p>  test procedure－－测试规程</p>
												<p>  一个文档，提供详细的测试用例执行指令。</p>
												<p>  test records－－测试记录</p>
												<p>  对每个测试，明确的记录被测组件的标识、版本，测试规格，和实际结果</p>
												<p>  test report－－测试报告</p>
												<p>  一个描述系统或组件执行的测试和结果的文档。</p>
												<p>  Test Script－－测试脚本</p>
												<p>  一般指的是一个特定测试的一系列指令，这些指令可以被自动化测试工具执行。</p>
												<p>  Test Specification－－测试规格</p>
												<p>  一个文档，用于指定一个软件特性、特性组合或所有特性的测试方法、输入、预期结果和执行条件。</p>
												<p>  第137贴【2004－11－9】：常见测试术语十九</p>
												<p>  test strategy－－测试策略</p>
												<p>  一个简单的高层文档，用于描述测试的大致方法，目标和方向。</p>
												<p>  test suite－－测试套</p>
												<p>  测试用例和/或测试脚本的一个集合，与一个应用的特定功能或特性相关。</p>
												<p>  test target－－测试目标</p>
												<p>  一组测试完成标准。</p>
												<p>  testability－－可测试性</p>
												<p>  一个系统或组件有利于测试标准建立和确定这些标准是否被满足的测试执行的程度。</p>
												<p>  Testing－－测试</p>
												<p>  IEEE给出的定义是：1）一个执行软件的过程，以验证其满足指定的需求并检测错误。2）一个软件项的分析过程</p>
												<p>  以检测已有条件之间的不同，并评价软件项的特性。</p>
												<p>  thread testing－－线程测试</p>
												<p>  自顶向下测试的一个变化版本，其中，递增的组件集成遵循需求子集的实现。</p>
												<p>  time sharing－－时间共享</p>
												<p>  一种操作方式，允许两个或多个用户在相同的计算机系统上同时执行计算机程序。其实现可能通过时间片轮转、</p>
												<p>  优先级中断等。</p>
												<p>  top-down design－－由顶向下设计</p>
												<p>  一种设计策略，首先设计最高层的抽象和处理，然后逐步向更低级别进行设计。</p>
												<p>  top-down testing－－自顶向下测试</p>
												<p>  集成测试的一种策略，首先测试最顶层的组件，其它组件使用桩，然后逐步加入较低层的组件进行测试，直到所</p>
												<p>  有组件被集成到系统中。</p>
												<p>  traceability－－可跟踪性</p>
												<p>  开发过程的两个或多个产品之间关系可以被建立起来的程度，尤其是产品彼此之间有一个前后处理关系。</p>
												<p>  traceability analysis－－跟踪性分析</p>
												<p>  （1）跟踪概念文档中的软件需求到系统需求；（2）跟踪软件设计描述到软件需求规格，以及软件需求规格到软</p>
												<p>  件设计描述；（3）跟踪源代码对应到设计规格，以及设计规格对应到源代码。分析确定它们之间正确性、一致性</p>
												<p>  、完整性、精确性的关系。</p>
												<p>  traceability matrix－－跟踪矩阵</p>
												<p>  一个用于记录两个或多个产品之间关系的矩阵。例如，需求跟踪矩阵是跟踪从需求到设计再到编码的实现。</p>
												<p>  第138贴【2004－11－10】：常见测试术语二十</p>
												<p>  transaction－－事务/处理</p>
												<p>  （1）一个命令、消息或输入记录，它明确或隐含的调用了一个处理活动，例如更新一个文件。（2）用户和系统</p>
												<p>  之间的一次交互。（3）在一个数据库管理系统中，完成一个特定目的的处理单元，如恢复、更新、修改或删除一</p>
												<p>  个或多个数据元素。</p>
												<p>  transform analysis－－事务分析</p>
												<p>  系统的结构是根据分析系统需要处理的事务获得的一种分析技术。</p>
												<p>  trojan horse－－特洛伊木马</p>
												<p>  一种攻击计算机系统的方法，典型的方法是提供一个包含具有攻击性隐含代码的有用程序给用户，在用户执行该</p>
												<p>  程序的时候，其隐含的代码对系统进行非法访问，并可能产生破坏。</p>
												<p>  truth table－－真值表</p>
												<p>  用于逻辑操作的一个操作表格。</p>
												<p>  Unit Testing－－单元测试</p>
												<p>  测试单个的软件组件，属于白盒测试范畴，其测试基础是软件内部的逻辑。</p>
												<p>  Usability Testing－－可用性测试</p>
												<p>  测试用户使用和学习产品的容易程度。</p>
												<p>  validation－－确认</p>
												<p>  根据用户需要确认软件开发的产品的正确性。</p>
												<p>  verification－－验证</p>
												<p>  评价一个组件或系统以确认给定开发阶段的产品是否满足该阶段开始时设定的标准。</p>
												<p>  version－－版本</p>
												<p>  一个软件项或软件元素的一个初始发布或一个完整的再发布。</p>
												<p>  volume testing－－容量测试</p>
												<p>  使用大容量数据测试系统的一种策略。</p>
												<p>  Walkthrough－－走读</p>
												<p>  一个针对需求、设计或代码的非正式的同行评审，一般由作者发起，由作者的同行参与进行的评审过程。</p>
												<p>  waterfall model－－瀑布模型</p>
												<p>  软件开发过程模型的一种，包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装和检查阶段、操作</p>
												<p>  和维护阶段，这些阶段按次序进行，可能有部分重叠，但很少会迭代。</p>
												<p>  White Box Testing－－白盒测试</p>
												<p>  根据软件内部的工作原理分析来进行测试。</p>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 10:32 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QTP的登陆脚本设计</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20758.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 19 Dec 2006 01:38:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20758.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20758.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20758.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20758.html</trackback:ping><description><![CDATA[
		<font size="2">由于一直以来事情都比较多，最近上课还有其它的事情，所以本来答应一个朋友把脚本帮他写一些，但是耽误了3-4天了，实在不好意思。这里把脚本简单说一下，我们分析一下。<br />    当时问题是这样的，“我的错误的用户名就没办法登陆”，其实含义就是脚本最好能处理成功的用户名错误的用户名，那么这里涉及到脚本的设计。 <br />目标如下：<br />1.    脚本需要处理成功和失败的用户的登陆 <br />2.   数据驱动</font>
		<p>
				<font size="2">设计开发脚本如下：</font>
		</p>
		<p>
				<br />
				<font size="2">第一步录制脚本如下<br />Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set "吕巍" <br />Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set "" <br />Browser("智能变电巡检仪系统 4.0").Page("Page").Syn <br />Browser("智能变电巡检仪系统 4.0").Close</font>
		</p>
		<p>
				<font size="2">以上为录制的正确的用户名,下边录制错误的用户名<br />Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set "xx" <br />Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set "" <br />出现错误提示“该用户不存在”</font>
		</p>
		<p>
				<font size="2">第二步 增强脚本</font>
		</p>
		<p>
				<font size="2">现在需要设计的是一套脚本驱动所有的测试数据，这样可以驱动所有的用例数据，qtp中提供了datatable。<br />但是有数据驱动也要做一个事情就是如何处理错误的用户名和正确的用户名，如何结合起来呢？<br />这里我把datatable看作存放测试用例的地方，里面放入测试数据，还放入测试的预期结果。这样我的设计已经出现雏形了。<br />我把datatable设计为三列</font>
		</p>
		<p>
				<font size="2">username  password status<br />吕x                <br />xxx       xxxx     该用户不存在</font>
		</p>
		<p>
				<font size="2">第三列放入最后执行的结果,我设计的是空为成功登陆,如果有信息就用实际运行的结果和这一列对比.好了万事俱备只欠东风了</font>
		</p>
		<p>
				<font size="2">修改脚本如下：<br />Dim iStatus</font>
		</p>
		<p>
				<font size="2">Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebEdit("txtLoginName").Set DataTable("username", dtLocalSheet)<br />Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登 录").set DataTable("password", dtLocalSheet)<br />iStatus = DataTable("status", dtLocalSheet)</font>
		</p>
		<p>
				<font size="2">If   iStatus=""  Then<br />  Browser("智能变电巡检仪系统 4.0").Close<br />End If</font>
		</p>
		<p>
				<br />
				<font size="2">If   iStatus="该用户不存在"    Then<br />     Reporter.ReportEvent micFail, "登陆", "登陆失败." <br />End If</font>
		</p>
		<p>
				<font size="2">Browser("智能变电巡检仪系统 4.0").Close</font>
		</p>
		<p>
				<font size="2">第三步，设置脚本运行过程</font>
		</p>
		<p>
				<font size="2">打开 tests-〉settings<br />设置RUN TAB页面下 Datatable iterations中 Run On all rows</font>
		</p>
		<p>
				<font size="2">这样就完成了整个脚本的设计工作，以上通过一个简单例子吧脚本的设计和软件的功能结合起来，达成脚本的设计效果。</font>
		</p>
		<p>
				<font size="2">本文来自51testing博客，转载请注明出处<br />原始链接：http://blog.51testing.com/?85168/action_viewspace_itemid_1139.html<br /> </font>
		</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-19 09:38 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/19/20758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试应遵循的八条原则</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20729.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20729.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20729.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20729.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20729.html</trackback:ping><description><![CDATA[软件测试应遵循的八条原则
<p>  软件测试，从不同的角度出发会派生出两种不同的测试原则。从用户的角度出发，就是希望通过软件测试能充分暴露软件中存在的问题和缺陷；从开发者的角度出发，就是希望测试能表明软件产品不存在错误，已经正确地实现了用户的需求。</p><p>  中国软件评测中心的测试原则，就是从用户和开发者的角度出发进行软件产品测试的。</p><p>  为了达到上述的原则，需要注意以下几点：</p><p>  1.应当把“尽早和不断地测试”作为开发者的座右铭。</p><p>  2.程序员应该避免检查自己的程序，测试工作应该由独立的专业的软件测试机构来完成。</p><p>  3.设计测试用例时，应该考虑到合法的输入和不合法的输入，以及各种边界条件，特殊情况下要制造极端状态和意外状态，比如网络异常中断、电源断电等情况。</p><p>  4.一定要注意测试中的错误集中发生现象，这和程序员的编程水平和习惯有很大的关系。</p><p>  5.对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误，一定要有一个B来确认，严重的错误可以召开评审会进行讨论和分析。</p><p>  6.制定严格的测试计划，并把测试时间安排得尽量宽松，不要希望在极短的时间内完成一个高水平的测试。</p><p>  7.回归测试的关联性一定要引起充分的注意，修改一个错误而引起更多错误出现的现象并不少见。</p><p>  8.妥善保存一切测试过程文档，意义是不言而喻的，测试的重现性往往要靠测试文档</p><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 11:08 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试的十大原则</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20724.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 02:43:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20724.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20724.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20724.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20724.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="TEXT-INDENT: 27pt; LINE-HEIGHT: 110%">
				<span style="LINE-HEIGHT: 110%; FONT-FAMILY: 宋体">
						<font size="2">
								<font style="COLOR: rgb(153,153,153); BACKGROUND-COLOR: rgb(255,255,255)">原</font>则是最重要的，方法应该在这个原则指导下进行。软件测试的基本原则是站在用户的角度，对产品进行全面测试，</font>
				</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 27pt; LINE-HEIGHT: 110%">
				<font size="2">
						<span style="LINE-HEIGHT: 110%; FONT-FAMILY: 宋体">尽早、尽可能多地发现</span>
						<span lang="EN-US" style="LINE-HEIGHT: 110%; FONT-FAMILY: Arial">Bug, </span>
						<span style="LINE-HEIGHT: 110%; FONT-FAMILY: 宋体">并负责跟踪和分析产品中的问题，对不足之处提出质疑和改进意见。</span>
				</font>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 27pt; LINE-HEIGHT: 110%">
				<font size="2">
						<span style="LINE-HEIGHT: 110%; FONT-FAMILY: 宋体">零缺陷(<span style="FONT-FAMILY: Arial">Zero-Bug</span>)</span>
						<span style="LINE-HEIGHT: 110%; FONT-FAMILY: 宋体"> 是一种理念，足够好（</span>
						<span lang="EN-US" style="LINE-HEIGHT: 110%; FONT-FAMILY: Arial">Good-Enough</span>
						<span style="LINE-HEIGHT: 110%; FONT-FAMILY: 宋体">）是测试的基本原则。</span>
						<span lang="EN-US" style="LINE-HEIGHT: 110%; FONT-FAMILY: Arial">
								<?XML:NAMESPACE PREFIX = O /?>
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 1.2pt 60pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 120%; TEXT-ALIGN: left" align="left">
				<font size="2">
						<span style="FONT-FAMILY: 宋体">在软件测试过程中，应注意和遵循的具体原则，可以概括为十大项：</span>
				</font>
				<br />
		</p>
		<ol>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">所有测试的标准都是建立在用户需求之上</span>。正如我们所知，软件测试的目标就是验证产品的一致性和确认产品是否满足客户的需求，所以测试人员要始终站在用户的角度去看问题、去判断软件缺陷的影响，系统中最严重的错误是那些导致程序无法满足用户需求的缺陷。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">软件测试必须基于“质量第一”的思想去开展各项工作</span>，当时间和质量冲突时，时间要服从质量。质量的理念和文化（如零缺陷的“第一次就把事情做对”）同样是软件测试工作的基础。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">事先定义好产品的质量标准</span>。有了质量标准，才能依据测试的结果对产品的质量进行正确的分析和评估，例如，进行性能测试前，应定义好产品性能的相关的各种指标。同样，测试用例应确定预期输出结果，如果无法确定测试结果，则无法进行校验。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">软件项目一启动，软件测试也就是开始</span>，而不是等程序写完，才开始进行测试。在代码完成之前，测试人员要参与需求分析、系统或程序设计的审查工作，而且要准备测试计划、测试用例、测试脚本和测试环境，测试计划可以在需求模型一完成就开始，详细的测试用例定义可以在设计模型被确定后开始。应当把“尽早和不断地测试”作为测试人员的座右铭。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">穷举测试是不可能的</span>。甚至一个大小适度的程序，其路径排列的数量也非常大，因此，在测试中不可能运行路径的每一种组合，然而，充分覆盖程序逻辑，并确保程序设计中使用的所有条件是有可能的。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">第三方进行测试会更客观，更有效。</span>程序员应避免测试自己的程序，为达到最佳的效果，应由第三方来进行测试。测试是带有 ”挑剔性” 的行为，心理状态是测试自己程序的障碍。同时对于需求规格说明的理解产生的错误也很难在程序员本人测试时被发现。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">软件测试计划是做好软件测试工作的前提。</span>所以在进行实际测试之前，应制定良好的、切实可行的测试计划并严格执行，特别要确定测试策略和测试目标。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">测试用例是设计出来的，不是写出来的，</span>所以要根据测试的目的，采用相应的方法去设计测试用例，从而提高测试的效率，更多地发现错误，提高程序的可靠性。除了检查程序是否做了应该做的事，还要看程序是否做了不该做的事；不仅应选用合理的输入数据，对于非法的输入也要设计测试用例进行测试。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">不可将测试用例置之度外，排除随意性。</span>特别是对于做了修改之后的程序进行重新测试时，如不严格执行测试用例，将有可能忽略由修改错误而引起的大量的新错误。所以，回归测试的关联性也应引起充分的注意，有相当一部分最终发现的错误是在早期测试结果中遗漏的。 </font>
				</li>
				<li>
						<font size="2">
								<span style="FONT-WEIGHT: bold">对发现错误较多的程序段，应进行更深入的测试。</span>一般来说，一段程序中已发现的错误数越多，其中存在的错误概率也就越大。错误集中发生的现象，可能和程序员的编程水平和习惯有很大的关系。 </font>
				</li>
		</ol>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 10:43 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《测试之道》</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20723.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 02:19:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20723.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20723.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20723.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20723.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20723.html</trackback:ping><description><![CDATA[
		<div class="style7" align="center">
				<span style="FONT-SIZE: 12pt">
						<b>《测试之道》第一篇——道可道<br /><table cellspacing="0" cellpadding="0" width="558" border="0"><tbody><tr><td valign="top" align="right" width="2%" height="10"><div align="left"></div></td><td valign="top" align="right" width="98%" bgcolor="#ffffff"><div class="daxiao14" align="left"><font size="2">1、道可道</font><div><font size="2">    老子《道德经》：道可道，非常道；名可名，非常名。</font></div><div><font size="2">    其实你一切都会，只是看你有没有悟到你的确会。<br />    说到测试，无论是专业的测试专家还是对策是一无所知的门外汉，首先要提到的肯定是“测试有什么</font></div><div><font size="2">用？”花那么多的人力物力和金钱做的测试到底是为了什么？”很多所谓的专业书籍对此讲了很多让人眼</font></div><div><font size="2">花缭乱的理论。<br />    然而其实很简单，测试就是为了让产品在交付给最终用户以后，在产品生存周期（或提供有效服务的</font></div><div><font size="2">期限以内），不让最终用户发现其所不能接受的现象。只要能不让用户发现其不能接受的一切现象，至于</font></div><div><font size="2">产品是否存在bug，用户不会关心；因此IT企业也就没有必要关心。</font></div><div><font size="2">    最后再补充一点：世界上最浩瀚的是大海，比大海更浩瀚的是天空，比天空更浩瀚的是人的心灵。</font></div><div><font size="2">    人的心灵里其实什么都知道，什么都会做。</font></div><div><font size="2">    随心所欲，不滞于物；行云流水，任意所至。独孤九剑的总则便是如此。</font></div><div align="right"><font size="2"></font> </div><div align="right"><a href="http://www.51testing.com/html/68/1862.html" target="_blank"><font color="#000000" size="2"></font></a> </div><div align="left"><font size="2">原始连接：http://flyingwind-prometheus.spaces.live.com/blog/cns!98DB77008F2FBC3A!145.entry?_c=BlogPart<br /><br /><table cellspacing="0" cellpadding="0" width="558" border="0"><tbody><tr><td valign="center" align="right" colspan="2" height="32"><div class="style7" align="center"><span style="FONT-SIZE: 12pt"><b>《测试之道》第二篇——大道如一，过犹不及</b></span></div></td></tr><tr><td valign="center" align="right" bgcolor="#000000" colspan="2" height="1"></td></tr><tr><td valign="center" align="right" colspan="2" height="20"></td></tr><tr><td valign="top" align="right" colspan="2" height="10"></td></tr><tr><td valign="top" align="right" width="2%" height="10"><div align="left"></div></td><td valign="top" align="right" width="98%" bgcolor="#ffffff"><div class="daxiao14" align="left"><font size="2">2、大道如一，过犹不及<br />    为了让bug不被用户发现，测试是不是用该做的越深入越好？不止门外汉会这样认为，即便测试业界</font><div><font size="2">的很多一些人也会这样认为。<br />    《论语》有言：子贡问，“师与商也孰贤？”子曰，“师也过，商也不及。”曰，“然则师愈与？”</font></div><div><font size="2">子曰，“过犹不及。”<br />    译为现代汉语就是：<br />　　子贡问曰，“子张和子夏哪个能干？”孔子说，“子张过头了些，子夏不够了些。”子贡说，“那么</font></div><div><font size="2">是子张强一些了？”孔子说，“过分和不及，同样都不好。”<br />    所谓大道如一，测试亦然。投入的不够，则会不能在交付给用户之前发现bug；投入的过多，则会影</font></div><div><font size="2">响收益。过犹不及，二者都不不够好的。<br />    然而把握这个度还是极难的，没有一个可量化的标准。通常可以做到的就是两害相权取其轻了，对于</font></div><div><font size="2">容忍力较强的客户，使用“不及”就可以了，用户发现了bug，召回产品打个补丁再重新发布就行了。</font></div><div><font size="2">“XX产品存在重大隐患，被XX厂商召回”这样的新闻怕是在国内并不少见吧，其他行业如此，IT业能例外</font></div><div><font size="2">乎？对于重要的客户，就不得不采用“过”的方式了。尤其一些需要“算政治账，不要算经济账”的项目</font></div><div><font size="2">上更是如此了。</font></div><div><font size="2"></font> </div></div></td></tr></tbody></table><table cellspacing="0" cellpadding="0" width="558" border="0"><tbody><tr><td valign="center" align="right" colspan="2" height="32"><div class="style7" align="center"><span style="FONT-SIZE: 12pt"><b>《测试之道》第三篇——吴钩霜雪明</b></span></div></td></tr><tr><td valign="center" align="right" bgcolor="#000000" colspan="2" height="1"></td></tr><tr><td valign="center" align="right" colspan="2" height="20"></td></tr><tr><td valign="top" align="right" colspan="2" height="10"></td></tr><tr><td valign="top" align="right" width="2%" height="10"><div align="left"></div></td><td valign="top" align="right" width="98%" bgcolor="#ffffff"><div class="daxiao14" align="left"><font size="2">3、吴钩霜雪明<br />    李白《侠客行》：赵客缦胡缨，吴钩霜雪明。银鞍照白马，飒沓如流星。十步杀一人，千里不留行。</font><div><font size="2">事了拂衣去，深藏身与名。闲过信陵饮，脱剑膝前横。将炙啖朱亥，持觞劝侯嬴。三杯吐然诺，五岳倒为</font></div><div><font size="2">轻。眼花耳热后，意气素霓生。救赵挥金槌，邯郸先震惊。千秋二壮士，煊赫大梁城。纵死侠骨香，不惭</font></div><div><font size="2">世上英。谁能书閤下，白首太玄经。<br />    各个待测试的目标系统就是世间各个芸芸众生，测试工程师(TE)就是IT业的侠客。TE离不开测试用例</font></div><div><font size="2">(TC)就如同侠客离不开剑。无剑不成侠；无合格的测试用例没法做好测试。<br />    测试十大原则第二条：测试用例必须有明确的预置条件、操作步骤以及与之对应的预期结果。<br />    IT业界的人员流动，那是相当快的。A先生设计了测试方案，到写TC的时候可能A先生已经另谋高就，</font></div><div><font size="2">换成B先生在做了，再等到测试执行的时候可能B先生也远走高飞，必须让没有任何测试经验的C同学来做</font></div><div><font size="2">了。<br />    这时候如果TC写的不是妇孺皆能看懂，C同学十之八九无法顺利执行。后面最有可能的结果是什么？<br />    不言而喻。<br />    不良的TC导致糟糕的测试执行（C同学职业道德如果不是很好，甚至可能故意漏测一些TC，反正这些</font></div><div><font size="2">TC具体的执行没有人懂，C同学不必承担责任），糟糕的测试执行导致三个结果：其一，不能按计划的方</font></div><div><font size="2">案验证重要功能导致bug没有在用户面前“躲”起来，进一步企业不论经济还是声誉都受到损害；其二，C</font></div><div><font size="2">同学为了保证发现足够的bug，于是乎一定会专心致志于寻找一些诸如单词拼写错误，界面错误之类的细</font></div><div><font size="2">枝末节问题，给coding的工程师们带来一种印象：他们做测试的什么也不会……；其三，在版本不断更新</font></div><div><font size="2">的过程中，TC肯定需要不断维护，不断进行相应更新，不良的TC导致C同学没有真正去运行这些TC，也就</font></div><div><font size="2">无从发现这些TC的问题了，从而不良的TC一直被保留到产品发布，然后这些不良的TC又被下一个产品所继</font></div><div><font size="2">承……继续这些恶性的循环。<br />    TC如剑。十年磨一剑。花时间细致地写好TC并不是浪费时间和精力。<br /></font></div><div><font size="2"><br /><table cellspacing="0" cellpadding="0" width="558" border="0"><tbody><tr><td valign="center" align="right" colspan="2" height="32"><div class="style7" align="center"><span style="FONT-SIZE: 12pt"><b>《测试之道》第四篇——胡马大宛名</b></span></div></td></tr><tr><td valign="center" align="right" bgcolor="#000000" colspan="2" height="1"></td></tr><tr><td valign="center" align="right" colspan="2" height="20"><div align="center"> </div></td></tr><tr><td valign="top" align="right" colspan="2" height="10"></td></tr><tr><td valign="top" align="right" width="2%" height="10"><div align="left"></div></td><td valign="top" align="right" width="98%" bgcolor="#ffffff"><div class="daxiao14" align="left"><font size="2">4、胡马大宛名<br />    上回书说到TE如侠。侠客离不开剑，也离不开马。就好比郭靖有了汗血宝马，想去哪就去哪，从来不</font><div><font size="2">必担心路程问题；而胡斐追捕南霸天雷老虎，没有宝马良驹，从广东一直追到北京才算完。侠客离不开马</font></div><div><font size="2">，尤其需要骐骥骅骝，千里良驹。<br />    杜甫《房兵曹胡马》：胡马大宛名，锋棱瘦骨成。竹批双耳峻，风入四蹄轻。所向无空阔，真堪托死</font></div><div><font size="2">生。骁腾有如此，万里可横行。<br />    然则对于TE而言，能够“风入四蹄轻”的千里马何在呢？<br />    人的精力总是有限的，即便再伟大的TE，对于无穷无尽的测试任务，也总会有感到疲惫不堪，难以为</font></div><div><font size="2">继的时候。这不是因为TE本身功力不够，也不是因为TE掌中剑（TC）不好，而是缺少了一匹良骥。人力有</font></div><div><font size="2">时而尽，只有非人力的才可持久；因此这良骥便是且只能是自动化测试（Automation testing）。<br />    虽然《荀子·劝学》有云：骐骥一跃，不能十步；驽马十驾，功在不舍。然而完全由机器所执行的自</font></div><div><font size="2">动化测试，不论骐骥还是驽马，全都能够做到功在不舍。因此这时候TE如果只是埋头编写自动化代码便有</font></div><div><font size="2">失明智了。<br />    TE可以针对每一条TC编写一段测试代码，然后通过执行这段代码完成对测试目标内容的覆盖；此为驽</font></div><div><font size="2">马的方法，虽然劳而有功，然而工程浩大，且成本不菲，后续项目的继承性也难以保证。<br />    TE还可以先创建框架，从测试需求分析开始，与coding的CMM的流程同步，采用迭代的方法渐增完成</font></div><div><font size="2">测试代码；“随风潜入夜，润物细无声。”当测试执行开始的时候，测试代码的架构已经完成，只需对细</font></div><div><font size="2">节进行后续维护即可。<br />    然而还有更可取的方式：TE不要针对每个测试例编码，而是每个STEP编写更小的一段代码。不同的测</font></div><div><font size="2">试例有可能使用相同的STEP。这种等价于STEP的每一段小的代码（记为cell）可以用STEP的简述进行封装</font></div><div><font size="2">。例如BS结构的web页面，第一步通常是登录，登录之后跳转到首页。可以采用如下封装：<br />    login {<br />        /*input username &amp; password*/<br />            input_username "xxxxxx";<br />            input_password "xxxxxx";<br />        /*check*/<br />            if (get_new page "//main.htm")<br />                output "step xxx is pass"<br />            else <br />                output "step xxx is fail"<br />    }<br />若干个此种简易封装的函数(例如完成了login,download_source,edit_source,upload_source等)完成之</font></div><div><font size="2">后，TE对于某个测试例（step1：登录xx网站；step2：下载xx文件；step3：编辑刚才下载的xx文件；</font></div><div><font size="2">step4：把编辑过的xx文件再上传回xx网站。）可以如下编写：<br />    login;<br />    download_source;<br />    edit_source;<br />    upload_source;<br />对于使用函数编写测试代码的TE而言，完全不是在编码，只是写一篇简单至极的短文。如果测试例的管理</font></div><div><font size="2">工具足够强大，甚至可以自动组装函数。至于今后的类似项目，同样可以直接使用这些函数；如果测试例</font></div><div><font size="2">的管理工具足够强大，甚至可以第一次编写函数之后，一切的测试代码都自动生成。<br />    只不过到那时，说不好TE是完全被解放了，还是完全被淘汰了。就好似汽车的出现代替了千里马，而</font></div><div><font size="2">火器的出现淘汰了剑，剑与马都失去了价值的那一天，侠客也就消失了。</font></div><div><font size="2"></font> </div></div></td></tr></tbody></table></font></div></div></td></tr></tbody></table><br /></font></div></div></td></tr></tbody></table></b>
				</span>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 10:19 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试自动化组织模型</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20720.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 01:52:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20720.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20720.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20720.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20720.html</trackback:ping><description><![CDATA[
		<div class="daxiao14" align="left">
				<p style="MARGIN: 0in 0in 0pt">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-fareast-language: ZH-CN">在一般的软件开发中，组织是基于项目，产品或两者兼有。</span>
						<strong>
								<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt; mso-fareast-language: ZH-CN">
										<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
										<o:p>
										</o:p>
								</span>
						</strong>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">In general software development organizations are project based, product based and both. </span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt; mso-fareast-language: EN-US">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">通常，测试组被划分为更小的组以支持多个项目。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Generally, Test group is divided into smaller groups to support multiple projects. <o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">基于测试组的结构，测试人员的背景（功能和技术能力），组织的成熟度，所测产品的质量等等，主要有三种在组织中定位测试自动化服务的方法。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">There are mainly three ways of positioning test automation services in an organization based on the construction of a test group, background of the testers (Functional &amp; Technical abilities), maturity of the organization, Quality of the products under test etc.<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">没有哪一个模型比其他的模型更出众，它们中的每一个都有其自身的利弊。这完全取决于你的具体情况和需要。。。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">No model is superior to the other, each of them has its own advantages and disadvantages. It all depends on your situation and needs…<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">．</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 7.0pt">  </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">独立式</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Independent<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">．</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 7.0pt">  </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">合并式</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Merged<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">．</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 7.0pt">  </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">顾问式</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Consultancy<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">让我们看看上述的那些模型并分析它们的错综复杂之处及其利弊。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Let us look at the above-mentioned models and analyze intricacies of those models, advantages and disadvantages.<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<b>
								<u>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Independent: <o:p></o:p></span>
								</u>
						</b>
				</p>
				<p class="MsoBodyText" style="MARGIN: 0in 0in 0pt">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-fareast-language: ZH-CN">在这个场景中，一个‘核心的测试自动化组’拥有为测试自动化项目全部生命周期活动的责任。这个小组要做从设计测试自动化包到巩固之前期间里的每件事情。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt; mso-fareast-language: ZH-CN">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoBodyText" style="MARGIN: 0in 0in 0pt">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">In this scenario there is a ‘core test automation group’ available which owns the responsibility for all the life cycle of activities of test automation project. This team does everything from the Design of the test automation suite till consolidation.<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">a. </span>
								</i>
						</b>
						<b>
								<i>
										<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">优点</span>
								</i>
						</b>
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Advantages:<o:p></o:p></span>
								</i>
						</b>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">清晰的责任和统一的方法</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Clear responsibilities and uniform approach<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2. </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">最适合‘维护型的测试’来帮助‘手工的回归测试’</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Suits best for ‘Maintenance testing’ to assist ‘Manual Regression testing’<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">最小化和‘手工测试人员’之间的协调</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Minimal co-ordination with ‘Manual testing crew’<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">4.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">集中测试自动化的活动</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Centralization of test automation activities<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">5. </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">最适宜手工测试人员是纯粹的‘非技术’人员的情况</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Suits well if the Manual testing crew is purely ‘Non-Technical’<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">b. </span>
								</i>
						</b>
						<b>
								<i>
										<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">缺点</span>
								</i>
						</b>
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Disadvantages:<o:p></o:p></span>
								</i>
						</b>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">开支太大</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Overhead<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">低‘品质’的测试套件（缺乏所测试产品的功能性和技术性知识）</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Low ‘Quality’ test ware (Lack of Functional (or) Technical knowledge of the product under test)<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">冗余（手工测试人员和核心测试自动化组都要同步有关所测应用程序的知识）</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Redundancy (Synchronization of the knowledge of the application under test for both manual testing crew and core test automation group)<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">5.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">在‘核心的测试自动化组’和‘手工测试人员’之间没有协同配合</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">No synergy between ‘core test automation group’ and ‘manual testing crew’<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">6.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">需要强有力的管理支持以持续投资测试自动化</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Demands strong management support for continuing investments in test automation<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<b>
								<u>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Merged:<o:p></o:p></span>
								</u>
						</b>
				</p>
				<p class="MsoNormal">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">在这个案例中，有一位专门的测试自动化工程师被分配到每个测试项目中和</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">'</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">手工测试人员</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">'</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">一起工作。</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
						</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">测试自动化工程师们散布在多个测试组里。手工测试工程师和测试自动化工程师共同分担着测试自动化项目的相关活动。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">In this case there is a dedicated test automation engineer(s) allocated for each test project that works along with ‘manual testing crew’. Test automation engineers are spread over multiple test groups. Manual test engineer and Test Automation engineer share test automation project activities.<o:p></o:p></span>
				</p>
				<p>
				</p>
				<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN-LEFT: 5.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1">
						<tbody>
								<tr>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: silver; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 142.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="190">
												<p class="MsoNormal" style="TEXT-ALIGN: center" align="center">
														<b>
																<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Phase<o:p></o:p></span>
														</b>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: silver; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal" style="TEXT-ALIGN: center" align="center">
														<b>
																<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Manual Test Engineer<o:p></o:p></span>
														</b>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: silver; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal" style="TEXT-ALIGN: center" align="center">
														<b>
																<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Test Automation Engineer<o:p></o:p></span>
														</b>
												</p>
										</td>
								</tr>
								<tr>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 142.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="190">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Design<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Content of test suite<o:p></o:p></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Test data<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Technical architecture<o:p></o:p></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Coding guidelines<o:p></o:p></span>
												</p>
										</td>
								</tr>
								<tr>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 142.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="190">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Development<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"> <o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Realization of test automation scripts<o:p></o:p></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Sample ‘test automation runs’<o:p></o:p></span>
												</p>
										</td>
								</tr>
								<tr>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 142.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="190">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Execution<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Analysis of the ‘test execution’ results <o:p></o:p></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Inputs for improving test automation scripts<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Running test automation scripts<o:p></o:p></span>
												</p>
										</td>
								</tr>
								<tr>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 142.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="190">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Consolidation<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Test automation user guide (Content of the test suite)<o:p></o:p></span>
												</p>
										</td>
										<td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="197">
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Packaging it with installer<o:p></o:p></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Archiving<o:p></o:p></span>
												</p>
										</td>
								</tr>
						</tbody>
				</table>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"> <b><i>a. </i></b></span>
						<b>
								<i>
										<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">优点</span>
								</i>
						</b>
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Advantages:<o:p></o:p></span>
								</i>
						</b>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1. </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">通过共同分担工作量为尽力达到最高生产率的合作方式</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
						</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Collaborative way of working for maximum productivity through workload sharing <o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">理想的协同合作</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Perfect synergy<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">能够做更多的事情</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Ability to do more<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">4.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">最适合将开发测试自动化包作为软件开发生命周期的一部分的情况</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Suits best for developing test automation suites as a part of the software development life cycle<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">5. </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">自动化恰当内容的概率是很高的</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Probability of automation the right content is high<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"> <b><i>b. </i></b></span>
						<b>
								<i>
										<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">缺点</span>
								</i>
						</b>
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Disadvantages:<o:p></o:p></span>
								</i>
						</b>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">沟通的结构</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Communication structure<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">强有力的合作</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Strong cooperation<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">不同的主人</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">‘Different’ owners<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">4.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">不统一的方法</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Non-uniform approach<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">5.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">在测试脚本开发过程中的不一致</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Inconsistency in the development of test scripts<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">6.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">重新创造测试自动化知识的轮回</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Re-inventing the wheel of test automation knowledge<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<b>
								<u>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Consultancy:<o:p></o:p></span>
								</u>
						</b>
				</p>
				<p class="MsoNormal">
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">这个测试自动化服务的服务完全是基于</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">' </span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">咨询</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">'</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">。</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
						</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">测试自动化组为测试自动化活动担任起了一个专家中心的角色。它负责给手工测试工程师培训关于测试工具，测试方法的知识并为执行和巩固活动提供基础设施。手工测试组是测试自动化项目的主人，并且对测试自动化项目的所有活动负责。</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
								<o:p>
								</o:p>
						</span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Services of test automation services are purely ‘consultancy’ based. Test automation group acts as an expert center for test automation activities. It is responsible for education manual test engineers about test tools, methodology and providing infrastructure for execution and consolidation. Manual testing group is the owner of the test automation project and is responsible for all the activities of test automation project.<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">a. </span>
								</i>
						</b>
						<b>
								<i>
										<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">优点</span>
								</i>
						</b>
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Advantages:<o:p></o:p></span>
								</i>
						</b>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">清晰的责任和角色</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Clear responsibilities and roles<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">最小限度的协作</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Minimal co-ordination<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3.‘Dedicated’ people available for sustaining knowledge about test automation<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">4.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">最好地产出测试自动化包</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Best of breed test automation suites<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">5.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">统一的方法和测试套件的可重用性（如果适用的话）</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Uniform approach and re-usability of the test ware (If applicable)<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">b. </span>
								</i>
						</b>
						<b>
								<i>
										<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">缺点</span>
								</i>
						</b>
						<b>
								<i>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Disadvantages:<o:p></o:p></span>
								</i>
						</b>
				</p>
				<p class="MsoNormal" style="mso-outline-level: 1">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">1.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">活动彼此之间不连接</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Activities not geared up to each other<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">2.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">强硬的合作</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Strong cooperation<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">3.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">手工测试人员在技术上是要可以胜任的</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
						</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Manual testing crew is technically competent<o:p></o:p></span>
				</p>
				<p class="MsoNormal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">4.</span>
						<span lang="ZH-CN" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt">要求成熟的软件开发组织</span>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Demands matured software development organization <o:p></o:p></span>
				</p>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 09:52 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>