老徐关注于企业级软件测试的管理; 老徐关注于软件自动化测试的研究与探索; 老徐关注于软件性能测试的研究与探索; 老徐和大家分享软件测试进度管理、缺陷管理、质量控制等方面的经验。

发布新日志

  • 老徐:企业实施自动化测试的自动化测试策略简介

    2007-04-12 11:15:08

     

         最近老徐开始着手整理和完善“组织级软件自动化测试体系”,逐渐将部分内容共享给大家,期望和广大软件测试从业者及爱好者共同探讨。

         老徐也将逐步将部分内容放到本家的网站上www.testfocus.com.cn,供所有相关人员讨论!

    工作周期及阶段确定:组长初步确定工作周期,并定义自动化测试的阶段,例如需求分析/设计阶段,开发实现阶段,运行阶段,而运行阶段中要根据所属系统所处软件生命周期的不同阶段来定义自动化测试的运行周期,例如当前处于所属系统的运营维护阶段(上线之后),其每3个月进行一次新版本的发布,则自动化测试亦为每三个月执行一次。或其每周进行一次Build的发布,则自动化测试亦为每周执行一次。

       分析自动化测试风险:根据所属系统的开发平台、界面特性、测试环境搭建维护的难易程度、测试工具的适用性等方面的分析结果进行自动化测试风险的分析。主要从战略层面进行风险的分析,不要分析某个具体的自定义控件的可测试性。

       手工测试现状复审:依据手工测试现状分析报告中提供的已有业务测试过程进行业务需求覆盖度的分析,判断已有业务测试过程是否完整,若不完整则需要向测试管理部提出反馈:被测系统的手工测试现状尚不符合自动化测试的需求,请求是否延期并委托手工测试方完善业务测试过程。

       测试方法及工具确定:根据所属系统的特点和当前自动化测试组织的实施能力,确定自动化测试的方法,例如业务驱动方法、关键字驱动方法、数据驱动方法;另外要结合现有的软件自动化测试专用工具,判断采用何种自动化测试管理工具搭建自动化测试的管理平台、运行平台,或者是新开发一种框架来实现自动化测试。

       编写文档:自动化测试分析师编制《自动化测试工作策略》

       内部评审:组长组织自动化测试工作小组的内部评审

       外部评审:组长向自动化测试管理组的计划控制经理提出评审申请,计划控制经理组织自动化测试管理组的外部评审,评审《自动化测试策略》,需要项目组、自动化测试小组和质量控制经理共同参与评审。

       组长将评审通过的《自动化测试策略》纳入配置管理库。

  • 老徐:企业实施自动化测试的筹备工作简介

    2007-04-12 11:12:59

     

         最近老徐开始着手整理和完善“组织级软件自动化测试体系”,逐渐将部分内容共享给大家,期望和广大软件测试从业者及爱好者共同探讨。

         老徐也将逐步将部分内容放到本家的网站上www.testfocus.com.cn,供所有相关人员讨论!

    测试筹备活动用于在整体自动化测试活动执行开始前,判断项目可能达到的自动化率、分析项目的手工测试现状、协调资源初步建立自动化测试小组,应该包括以下内容。

    (一)    确定实施自动化测试的应用系统对象

    测试管理部门接受来自业务部门和开发部门的自动化测试的申请

    测试管理部门主动提出对某个已上线运营系统自动化测试的要求

    (二)    确定可能达到的自动化率目标

    计划控制经理使用自动化率分析模型判断自动化测试的可能达到的自动化率目标,编制《自动化测试的自动化率目标分析报告》

    (三)    分析手工测试的现状

    计划控制经理使用手工测试现状分析模型分析项目的当前手工测试状态,判断手工测试现状是否存在影响自动化测试可行性的情况,编制《自动化测试的手工测试现状分析报告》

    (四)    初步建立自动化测试小组

    计划控制经理根据自动化测试小组组长的可用资源指定自动化测试小组组长,将《自动化测试的自动化率目标分析报告》和《自动化测试的手工测试现状分析报告》传递给自动化测试小组组长

    计划控制经理与自动化测试小组组长共同确认:启动“项目级自动化测试流程”

  • 老徐:自动化测试实施时的关键概念

    2007-03-06 20:44:33

     

      在进行自动化测试实施时,由于要涉及软件开发方、业务方、手工测试方、自动化测试方、测试管理方等不同的机构或单位,尤其是业务方的人员和软件测试的人员对软件测试的认识处于不同的理解层次,因此,需要自动化测试的实施组事先对自动化测试中要使用的一些概念向各个机构或单位普及,才能使大家在脑海中建立相同的概念范畴,使得自动化测试的实施事半功倍。

      我把曾经在建立自动化测试体系的过程中规定的一些主要的自动化测试名词分享给大家,以期参考:)

    (1)测试需求:

      是指在一定的测试策略前提下,对应于验证某个系统的业务需求或功能需求的测试要求


      对应于不同的测试目的,分为验证业务过程的流程类测试需求和验证功能点的功能性测试需求


      对于功能性测试需求的业务规则是指测试功能点的属性描述,包括数据规则、业务逻辑规则、用户操作(输入和输出)的约束规则等;

      对于流程性测试需求的业务规则主要是指业务流程分支条件,及其对应的流程处理逻辑规则。


      在自动化测试体系中,测试需求按照树型结构进行组织,树上存在叶节点和非叶节点

    (2)交易分支:

      基于确定的交易,是交易执行中一个不可再分顺序路径。


      一般而言,一个交易被执行的时候,存在多个执行路径。例如:对于活期续存,信用卡续存、借记卡续存就是不同的执行路径。


      一个交易分支,就是一个交易的栏位的输入执行序列,包括在什么位置、输入数据的类型、限制约束、有效条件、格式要求等。

    (3)业务组件:

      一种易于维护且可重复使用的单元,该单元包含执行特定任务的一个或多个步骤。


      一个业务组件一般映射到一个交易分支,是自动化测试体系中颗粒度最小的工件


      定义业务组件的目的是为了封装固定的测试执行步骤,在测试过程中以“引用”的方式进行调用和复用,以减少测试过程设计开发的工作量

      在自动化测试系统中,业务测试过程对业务组件的一次“引用”也是业务组件的一次实例化过程


      业务组件是一系列执行步骤,可以在不同测试过程中因为不同的目的(如边界值,无效等价值,有效等价值)使用不同组的数据完成输入,得到不同的业务组件实例。


      业务组件可能需要来自外部源或其他组件的输入值,并可向其他组件返回输出值

    (4)业务过程:

      业务过程是对业务流的实现


      业务过程是一组交易分支的序列,不是一个孤立的行为,如一次任务,一次输入或一次输出,而是以为用户带来附加值的输出或结果告终的一系列活动。


      例如:以开户交易开始,然后存款到相应的账户,最后能查询到此笔存款结束。


      一个业务过程对应于相应业务流中的一条“路径”即一个业务规则
    需要注意的是,业务过程是不存在由于业务逻辑不同而产生的分支的,如果在业务流程中存在分支,则应该拆分为不同的业务过程

    (5)业务测试过程:

      每个业务测试过程完成一个对流程类测试需求叶子节点的具体验证。

      每个业务测试过程是独立的,不允许嵌套,并且之间没有关系,业务测试过程原则上是可以独立执行的完整“业务流”。


      业务测试过程之间的关系是间接的,通过测试需求组合在一起的。


      业务测试过程由关联在一起的一系列业务组件组成,这些业务组件都需要在业务测试过程中指定明确的执行时输入、输出数据,以及业务组件和业务组件之间的数据依赖关系、顺序依赖关系、时序依赖关系等关联。
    可以说,业务测试过程是一组具有依赖关系的业务组件,和执行时数据的集合。

    (6)测试运行计划:

      主要描述为完成系统的测试,按照测试方案的设计思想,参照业务测试过程,如何对业务测试过程进行组织,以及执行时的先后组合操作顺序及业务测试过程间的关联数据


      (原则上不建议按照测试过程间有关联来设计测试)。

      如果测试方案或测试过程发生变化,则要对运行计划进行及时的更新

  • 老徐对自动化测试风险的理解(九)

    2007-03-05 12:25:32

  • 老徐对自动化测试风险的理解(八)

    2007-03-05 12:24:57

  • 老徐对自动化测试风险的理解(七)

    2007-03-05 12:24:30

  • 老徐对自动化测试风险的理解(六)

    2007-03-05 12:24:01

    暂无
  • 老徐对自动化测试风险的理解(五)

    2007-03-05 12:23:35

  • 老徐对自动化测试风险的理解(四)

    2007-03-05 12:22:47

  • 老徐对自动化测试风险的理解(三)

    2007-03-05 12:22:14

  • 老徐对自动化测试风险的理解(二)

    2007-03-05 12:21:35

  • 老徐对自动化测试风险的理解(一)

    2007-03-05 12:18:17

  • 老徐最近翻译的Mercury的“自动化测试ROI分析”-第四部分

    2007-03-04 16:10:42

    7.   总结

    自动化测试不总是必须的、适当的、或者是有效成本投入的。有时候,当我们基于一个期望的投入产出比进行决策时,分析可以指导我们知晓自动化测试在哪些方面将会给我们带来收益。计算这些投入产出比的最好方法就是比交自动化测试和手工测试的成本和获得。在是否应用自动化测试来改进测试的管理决策上,需要对自动化测试的成本和收益进行识别和估测。这也能帮助我们识别哪些因素是我们应该关注的,而这些因素引致了大部分的投入。

    当需要进行自动化测试时,无论是由于合同还是技术上的约束,ROI的计算可能都是不一定能带来帮助的。回报中包含了很多无形的影响因素,因此用算术来进行计算也无法获得自动化测试的实际的价值。

     

  • 老徐最近翻译的Mercury的“自动化测试ROI分析”-第三部分

    2007-03-04 16:10:00

    1.   投入/回报的计算

    前两个公式用于计算自动化测试相对于手工测试的效果,后两个公式用于计算自动化测试的投入回报比。

          

     

    其中:

    En表示相同数量的测试运行相同的次数时,自动化测试成本相对于手工测试成本的比率。

    En’表示针对不同的测试运行次数时,自动化测试成本相对于手工测试成本的比率。

    以下变量中,脚标a表示自动化测试,脚标m表示手工测试。

    Va表示测试规格分析和实现的费用

    Vm表示测试规格分析

    Da表示自动化测试执行后对自动化测试进行分析的费用

    Dm表示手工测试执行的费用

    N表示自动化测试(和手工测试)的执行次数

    n1表示自动化测试的执行次数

    n2表示手工测试的执行次数

    N表示在脚本变更前的自动化测试运行次数

    Ba表示从自动化测试中获得的收益

    Ca表示自动化测试的成本

    Ba表示自动化测试相对于手工测试获得的收益

    Ba(时间周期t内)=∑(自动化测试固定成本的增量*t/使用寿命))+

                                              ∑(在t时间内,运行n2次手工测试的可变成本)-

                                              ∑(在t时间内,运行n1次自动化测试的可变成本)

    Ca表示自动化测试相对于手工测试所增加的成本

    Ca(时间周期t内)=∑(自动化测试固定成本的增量*t/使用寿命))+

                                              ∑(创建自动化测试的可变成本)-

                                              ∑(创建手工测试的可变成本)+

                                              ∑(维护自动化测试的可变成本)*n1/N

    四个公式中的三个是基于自动化测试与手工测试的比较来计算所得的值的。大多数情况下在计算自动化测试的回报时,应该基于投资的增量来计算自动化测试回报的增量。手工测试的数量是测试机构的成本基点。这个数量包括需要自动化的和不需要自动化。

    第三个公式从概念上讲和成本、收益均相关。但是从绝对意义上来看收益是无法计算的,而只是和某些事物相关。

    第一个公式比较了创建手工测试的成本、运行手工测试的成本与创建自动化测试、运行相同次数的自动化测试的成本之间的关系。它计算了创建并将一个测试自动化运行n次所花费的成本与创建并将一个测试手工运行n次所花费的成本之间的比率。当比率小于1时,表示自动化测试是收效的。这个公式可以比较一个单个的测试被同时进行手工实现和自动化实现时的成本。而且仅仅应用于某一组测试上,这组测试都被同时进行了手工实现和自动化实现,且都运行了相同的次数。但是,它的计算中不包括对自动化测试的管理和维护成本。在这个公式中,是不考虑前面涉及的与单个测试无关的自动化测试固定成本的。自动化测试的维护成本和自动化测试环境的维护成本也是不在这个公式的考虑范围之内的。为了更好的了解自动化测试的成本和价值,这两个方面的因素还是要仔细考虑的。

    第一个公式中的某些值和这个公式的本身是基于一些假设的,因此它对于多数测试机构是不真实的,从而是不适用的。其中,有三个假设是很关键的。第一,手工测试和自动化测试通常情况下的运行次数是不相同的,而且每次测试的运行都是不等值的(即使第一次测试看上去都比后续的测试运行更像是去发现缺陷)。第二,大多数测试机构都没有足够的资源去创建符合手工测试数量的自动化测试,即只有少数的手工测试被自动化了。第三,很多自动化测试都需要不断的维护以保证能长久运行。所以,自动化测试运行n次之前将产生一定量的附加成本。

    第二个公式从手工测试与自动化测试运行不同次数的角度进行了计算。它同样强调了自动化测试的成本是手工测试成本的分子。所以当计算的结果小于1时表示自动化测试是收效的。这个公式更合理的计算了测试是如何被运行的,但是它同样无法涉及潜在的问题-测试的数量、固定成本、或者是维护成本。为了计算一组测试的比率,这个公式也假定了自动化测试运行n1次,手工测试运行了n2次。

    第三个公式表述了计算ROI的通用模式。它计算了自动化测试的收益和自动化测试成本之间的比率。当计算结果大于1时,表示自动化测试的收益大于自动化测试的成本。开发自动化测试、运行自动化测试、维护自动化测试的成本是可以进行计算的。但是,从绝对意义上很难看出它如何计算自动化测试的收益。

    第四个公式表述了一个相对的ROI计算,即比较自动化测试带来的增加的收益和进行自动化所需增加的成本之间的关系。虽然这个公式很通用,但它更合理的表示了自动化测试相对于手工测试的价值。我们将用这个公式对下面的例子进行解释。

    为了能利用第四个公式,我们需要确认所有相关的成本和收益。自动化测试和手工测试的所有相关项目的值我们都要确定下来。

    2.   自动化Build测试的例子

    假设和计算所需的值:

    1)每日Build和测试运行次数(5/周)

    2)手工测试的设计需要5天,需要2个小时来运行

    3)一半的手工测试需要在给定的某天之内花费1个小时的时间来运行,其他的测试将在另外的天数之内运行

    4)自动化测试的设计和实现需要15天的时间来进行,自动运行(零成本)

    5)自动化测试以批处理形式的脚本实现,并且纳入Build过程中运行,需要在软件上花费1000元,使用寿命是3

    6)自动化测试每运行25次后需要进行维护,需要1天的工作量

    7)时间周期t的选定:6个月(125天),18个月(375天)

    8)人年费用为100000=400/=50/小时

    Ba(时间周期t内)=∑(自动化测试固定成本投入带来的改善*t/使用寿命))+

                                              ∑(在t时间内,运行n2次手工测试的可变成本)-

                                              ∑(在t时间内,运行n1次自动化测试的可变成本)

        Ba6个月)=0+1小时*125-0*125=50*125=6250

        Ba18个月)=0+1小时*375-0*375=50*375=18750

     

    Ca(时间周期t内)=∑(自动化测试固定成本*t/使用寿命))+

                                              ∑(创建自动化测试的可变成本)-

                                              ∑(创建手工测试的可变成本)+

                                              ∑(维护自动化测试的可变成本)*n1/N

        Ca6个月)=(¥1000*6/36))+15*400-5*400+(¥400*125/25=167+6000-2000+2000=6167

        Ca18个月)=(¥1000*18/36))+15*400-5*400+(¥400*375/25=500+6000-2000+6000=

  • 老徐最近翻译的Mercury的“自动化测试ROI分析”-第二部分

    2007-03-04 16:09:06

    1.   投入回报比的影响要素

    投入回报比(ROI)通常用获得的收益除以投入成本来计算。如果我们开始一个新的项目,我们就用测试的价值除以测试的成本来计算测试的投入回报比。有时,自动化测试的引入发生在手工测试已经完成的一段时间之后。

    自动化测试的经济成本通常可以描述为固定成本或者可变成本。固定成本包括设备、工具、培训等。固定成本不受自动化测试的成果数量和运行次数的影响。而可变成本随着所开发出来的自动化测试的成果数量以及自动化测试的运行次数而增加或者减少。

    自动化测试固定成本的例子:

    1)硬件

    2)应用软件的许可证

    3)应用软件的技术支持

    4)自动化测试环境的设计和搭建

    5)自动化测试环境的维护

    6)脚本开发工具软件

    7)脚本开发工具的许可证

    8)测试工具的培训

    9)测试工具的引入和启动

    自动化测试可变成本的例子:

    1)自动化测试用例的设计

    2)自动化测试用力的实现

    3)自动化测试的维护

    4)自动化测试用例的执行

    5)自动化测试结果的分析

    6)缺陷的报告

    7)测试结果的报告

    8)测试执行数据的保存

    9)自动执行的测试

     

    手工和自动化测试具备一些共同的要素。

    共同要素的例子:

    1)被测软件的分析

    2)测试的规划

    3)基础测试的设计

    4)缺陷的报告

    5)测试结果的报告的管理

     

    我们在计算自动化测试的经济要素时,可以将它与两个事物进行比较:手工测试或不进行测试(接受未知的风险而不进行测试)。

     

    在计算回报时,我们需要选定计算的时间周期(t)。通常情况下,可以根据一个项目的里程碑来确定计算的时间周期。而且,自动化测试的回报是发生在新版本发布之后的,也可以基于版本的发布来确定计算周期,同时要与下一个版本发布、下下一个发布保持一致。以这两种计算周期来计算自动化测试的回报,可有助于我们非常清楚的了解长期和短期的自动化测试收益。

    自动化测试的固定成本不是绝对值。这些成本需要在他们的有用生命周期内进行阶段性的分配,并且用时间周期(t)来调整。t的值要基于管理因素进行选择,例如产品发布之间的时间间隔、ROI的计算、对工具使用寿命的期望、对测试的寿命的期望等等,以达到使t值被计算时的合理性、有用性和简易性。这些成本的分配是以成本乘以t,再除以使用寿命。例如,如果一个工具价格是25000元,期望的使用时间是两年,则第一年的成本是12500元(25000*1/2)。如果用四年的时间来计算则是50000元(25000*4/2)。投资的成本在工具的服务年限内都是要计算价值的。如果工具的服务年限为1年,则第一年的费用就是25000元。(同样的,如果一个接受完培训的人在培训后就离开了所在部门,就失去了培训的整个成本,就不能把这个成本在时间周期内进行分摊)。

    相比于手工测试,自动化测试的最大价值就在于每次测试运行时的低成本。这就带来了计算ROI时的两个要素:自动化测试的运行次数(n1)和手工测试运行次数n2

    自动化测试是需要维护的,所以自动化测试脚本在变更之前的运行次数就显得非常重要了。很多自动化测试难于运行就是因为GUI的频繁改变造成的。自动化测试组使用录制/回放的技术创建了自动化测试脚本,并且衡量出来用手工测试运行三次所需的工作量。在确保测试与软件开发同步的过程中,维护工作包括重新录制测试脚本和测试结果。观察发现自动化测试组好像测试做的少,而不停的进行重新录制。所以在重新计算自动化测试脚本的平均运行次数(发生变更之前)后,发现这个数字是1.2。五分之四的脚本只运行了1次(在不得不重新录制它们之前)。最后,这种低生产力的录制/回放方式不得不被放弃了。

    针对成本,这些影响因素可以在更深层次上进行划分,一种是自动化测试和手工测试之间的相同性质的,一种是不断增长或者降低的。这些共同影响因素可以被摒弃在自动化测试ROI计算之外,因为它们既不是成本也不是收益。当我们进行自动化测试时,不断增长的影响因素可以看作成本,而不断降低的影响因素则看作收益。某些因素总是不断增长或者降低,而大多数变化的因素可以是成本或者收益,主要取决于自动化测试的类型和自动化测试取得的效果。下面是一些例子:

    变化的因素(可以是自动化测试的成本,也可以是收益):

    1)              自动化测试环境的维护(可能是不断增加的成本,也可能在整个的维护成本中不断降低)

    2)              测试案例的执行

    3)              测试结果的分析

    4)              缺陷的报告

    5)              测试结果的报告

    6)              测试数据的生成

    自动化测试的收益:

    1)测试执行的保存

    2)系统自动执行的测试结束后的工作

    自动化测试的成本:

    1)硬件

    2)测试环境中软件的许可证

    3)测试环境中软件的技术支持

    4)自动化测试环境的设计

    5)自动化测试环境的实现

    6)脚本工具

    7)测试工具的许可证

    8)测试工具的培训

    9)测试工具的引入和启动

    10)            自动化测试用例的设计

    11)            自动化测试用例的实现

    12)            自动化测试的维护

  • 老徐最近翻译的Mercury的“自动化测试ROI分析”-第一部分

    2007-03-04 16:08:15

    自动化测试ROI分析

    1.   介绍

    很多领导将自动化测试视为银弹。他们认为自动化测试能解决诸如测试规划、测试成本、缺陷报告等很多问题。自动化测试在很多方面会带来积极的效果,并且已经有很多成功的案例能使人们认为自动化测试能节省成本和解决一些测试方面的问题。但是,同样存在很多恐怖的故事,失望大于期望、过程的痛苦,甚至出现在某些获得了收益的案例里。我就曾经遇到过很多自动化测试项目最终不幸失败的案例。这些项目进行了巨大的投入,最终都舍弃了花费数年的时间开发出来的自动化测试成果。

    本文的目的就是基于有实际意义的指导,使人们能够理解和计算进行自动化测试工作所需的投入和可能获得的回报。它描述了在建设自动化测试的过程中将会遇到的诸如商务、组织和管理、以及测试工作方面的影响。

    在规划自动化测试的时候,要从多方面来考虑。例如,自动化测试将会改变测试的复杂性,也将会改变从测试设计到测试运行的测试组织和管理方法。它通常在组织管理方面带来广泛的影响,诸如任务执行、测试方法、甚至在产品的特性上。

    在考虑自动化测试的收益和能力上,我们可以将影响因素分为有形的和无形的两类。

    在自动化测试的前后可以用现有的测量技术(例如代码覆盖分析)来评估和计算测试的效果。自动化测试可以达到非常有效的程度,可以增加代码覆盖的程度,可以提供一个新的角度来观察被测软件。同时,自动化测试为我们提供了一种手工测试无法实现某些特定测试的解决途径。自动化测试可以产生无数的指令和组合方式,仅仅受限于电脑的能力和可用来运行测试的时间而已。这些测试可以在覆盖了100%的代码基础上去发现缺陷。自动化的探针程序可以看到程序的内部,诸如中间处理的结果、内存中的数据、内部程序的状态,从而能判断被测软件是否能完成期望的功能。

    2.   管理的观点

    我们需要在多个方面设置管理上的期望值:无形成本和收益、不切实际的收益期望、手工测试和自动化测试的共同因素、组织的影响。我们也要注意测量和计算的方法。

    无形成本是非常难于合理的计算的。在可衡量它们的点上,当我们确定它们的财务上的价值时会存在很大的变数。在衡量自动化测试能带来多大的改变时也很难计算实际的数值。通常情况下,有的无形成本是绝对的,有时是相对的,但是绝大部分是无法区分的,这要取决于一个人的观点和处理的方式。基于这个理解,建议在大多数的案例中,尽量将这些无形成本从投入回报比的计算中省去。

    一些无形成本的例子:

    1)              无用户干预的测试。尽管人的成本很容易计算,但是附加的计算机控制行为的成本是很难量化的。

    2)              测试机构的经过改良的方法。这一点通常能提高生产力,但随之而来的是自动化测试所需的新规则和新任务。

    3)              测试机构的可观察到的骤然生产力的降低。这个观察一般基于测试工作启动后人员开始逐渐增加时出现了停滞的现象,安装测试工具和创建自动化测试脚本的延迟。

    4)              并非所有测试组里的人都期望改变。自动化测试会迫使个人习惯产生很大的改变,甚至某些测试人员在仍需继续执行手工测试时,还得进行自动化测试。

    5)              发布前软件产品测试循环的次数。自动化测试能对产品的构建(Build)进行快速确认,并能鼓舞人们多次使用。但是往复循环虽然能提高生产力和提高质量,也可能导致人员的懒散、关注力逐渐降低、和质量逐渐降低的情况。

    6)              测试覆盖率。既能增加测试覆盖率,也可能反之,主要取决于手工测试的效率,自动化的测试工具,和自动化的测试。

    a)        某些测试只能用自动化测试来实现

    b)        测试覆盖率改变的数值难于测量

    c)        好的探索性的测试或许比一般的自动化测试更能发现一些不同寻常的情况

    d)       手工测试可能使得某些情况或者环境难于进行自动化

    自动化测试管理的期望值往往在设定上受到媒体、会议、厂商的大肆宣传、相关书籍上对自动化优点的宣扬。部分信息是准确的和可适用的,但是大部分信息是出现在某些特定的环境下,适用于某些特定的项目,并且被过分的强调了成功这个字眼。自动化测试不是一个银弹。它不能解决所有的测试方面的问题,需要进行小心细致的规划。不正确的期望会最终导致一个获得了收益的自动化测试变成了失败的案例。

    例如:

    1)所有的测试都要自动化。这是不切实际和可望不可即的。

    2)从自动化测试获得立即的回报。某些自动化测试可能能看到立即的效果,例如Build测试,但通常情况下,回报总是在投入一段时期后才能看到。需要花费很多的时间和努力来创建大多数的自动化测试内容,而收效总是在一遍又一遍的测试运行之后才能获得。

    3)零启动时间。将测试自动化是要花费时间的。要选择测试工具、搭建、安装,而规划和实现自动化测试则要花费数倍于手工测试的功夫。

    4)自动化所有测试规划的内容。自动化测试工具无法做所有的事情。

    5)使用录制/回放进行回归测试。这种情况仅适用于被测软件非常稳定,即将来只有极少的测试案例会发生改变。这种情况非常少。

    6)自动缺陷报告(无需用户干预)。这通常会给测试的组织或开发带来很大的问题。包括判断是否与已有缺陷重复,错误的失效原因探测,一个错误引起多个测试的失效,无法重现的错误等等。

    组织管理方面的影响包括设计自动化测试和执行自动化测试所需的技能、自动化测试工具、自动化测试环境。开发和维护自动化测试与手工测试之间是有很大的区别的。在建设自动化测试时,工作技能变了、测试方法变了,甚至测试本身也发生了变化。自动化测试还会对被测的产品、开发过程和发布过程产生潜在的影响。我们不得不仔细考虑和分析这些影响中的积极和消极的因素。

    自动化测试若想成功,要从管理上设置合理的期望值,要正确地认识到将要从自动化测试中获得哪些益处。关键是要牢记自动化测试的目标是要在某些方面将测试做的更好。自动化测试仅仅是一个手段,借助这个手段来完成我们的任务测试一个软件产品。在管理测试工作和向测试工作进行投入方面,成本/收益的分析向我们提供了非常有用的信息。

    我们也要看到,不同的自动化测试实施行为将会带来好处,也会带来问题。例如,自动化测试将会减少测试所需的人力资源,从而节省运行测试过程中的人力耗费。但是,自动化测试也可能会产生各种各样的结果,需要耗费更多的人力进行分析,从而产生比手工测试更多的人力成本耗费。通常情况下,获得自动化测试的结果后,需要更长的时间去分析和隔离所发现的缺陷。

  • 老徐最新总结的“项目级自动化测试流程”

    2007-03-04 00:00:06

数据统计

  • 访问量: 37554
  • 日志数: 35
  • 建立时间: 2007-03-03
  • 更新时间: 2007-04-12

RSS订阅

Open Toolbar