发布新日志

  • 软件测试用例对于测试进度的可控性建议——理论篇(转载)

    Morna 发布于 2013-03-26 16:36:54

    一个项目在测试的过程中,不论是PM或者测分都希望随时可以了解测试的进度,以便随时掌控项目的时间走向。而测试的过程中测试人员所进行就是测试用例的执行,那么用例执行的程度显然可以直观的反应出项目在测试阶段的进度情况。

      我们首先来分析一下现在的情况。

      必须明确的是,一个项目中所涉及的产品线很可能不只一条,而各个产品线的用例设计的方法,粒度,以及格式均有差别。在这些差别中,最能够对进度起决定性作用的就是用例的粒度。由于目前的情况下,每个人设计的用例粒度都千差万别,有些同学可能设计的比较详细,而有些同学可能设计的相对粗略,在不影响执行用例以及其他人的易懂性的情况下,我们说这些都是可以的。但是随之带来对议题最直接的问题就是,QC给出的进度不客观。这个是很明显的,举个最极端的例子,A写了9个很细致的用例,B只写了1个很粗略的用例,但是执行度和A相当。当A的用例全部执行完以后,QC给出的进度应该是90%,但是很显然,实际进度才进行到50%。

      我们需要改善这种情况。

      第一种方法,所有的用例都设计到最细致,粒度为1的情况。

      我们知道,如果从理论上说,每个用例都是不可分割的,也就是说我们设计出来的用例的粒度应该都是相等的。如果能够做到这一点,测试进度的可控性会好很多。然而,这个很难做到。如果每个人的用例都精确到最细致的程度,比如说使用未精简过的因果图法设计用例,那么我们用例数量将会十分庞大,这样同样不利于我们控制,而且在执行的过程中,由于用例太细致,但是操作却不少,效率上也是个问题。而且,这从目前的情况来,我们要走这条路也是不可能的。每个人对用例的理解和对功能的理解都是不一样的,不可能把粒度做到都相等。

      此外,这种方法还存在问题。用例的粒度都为1,并不能说明每个用例的重要程度都一样。当你提交一个bug的时候,会对bug做重要性的评估,正是基于这一点,我们认为,用例的重要性也是不一样的,由于引申开去,即使用例粒度都为1,实际执行中的进度也还是不客观的,存在误差的。而我们需要的是更精确的数据,更能反应对进度的情况。

      所以我们提出了第二种方法。

      在介绍第二种方法的时候,我们引进了一个概念——权重。相信所有人对这个概念不会陌生,所以就不多介绍了。其次,我们对用例的设计有个要求——在用例执行的过程中不能出现预期结果或者关注点,只有在执行的最后一步,才能出现预期结果或者关注点,如果用例中间出现,则必须分成多个用例——最大在这种粒度下,我们认为可以接受。

      基于以上两个条件,我们对用例进行权重分析,以达到进度可控。

      第一个因素是项目类型。通过分析,我们大致确定有这三种类型的项目:升级包,新增项目,改造类型(可能以后会更加细致的划分)。可以这么说,在这三种类型的项目下,我们设计用例的思路以及粒度是不相同的,当然更多的加入了个人的因素。这是一个最大方向,而这个方向,会直接影响我们对用例权重的分析,也就是算法问题——当然在各种项目下的权重算法应该怎么计算,我们需要通过实践来给出更加科学的依据,目前只给出思路。

      第二个因素则是用例的设计方法。用例的设计方法本身对进度没什么影响,但是由于设计方法会直接影响到用例的覆盖程度,会间接影响到进度。那么在这里我们认为这个因素可以作为一个系数加入权重的计算方法。通常情况下经过用例评审或者review应该不存在覆盖度不全的情况,但是在需求变更的情况下,可能会导致用例覆盖度下降。在用例重新改善前,我们认为进度是存在变化的。

      第三,用例的参数设定。这是最重要的部分,用例参数的设定直接影响了该用例的重要程度。关于这一点,我们的初衷是,为用例制定一系列参数,然后由测试人员对这些参数进行值的设定,我们会为每个值设定一个权重,通过这些参数来制定出一个用例在项目中实际占用的比重,这样可以更加科学地反应测试的进度。这样不面有人会提出提问,那么这些参数的值如何去设定,有什么标准,如果设定不当,那么依然不能反应出测试的进度。但是我们要说,这是一次尝试,没有一个流程在制定的时候就能考虑到各种问题,这个建议也不例外。并且在尝试的过程中我们会给出参考的用例,本着自己对自己用例负责的原则,我们有理由相信我们会给自己设计的用例给出一个正确的、科学的参数,以计算出最正确的权重,相信没人会反对这一点。

      那么如何来制定这些参数?我们初步定制了这些:用例关注点,用例代表的功能点的重要程度,用例执行的难度以及用例估计执行的时间,通过这些参数来设定参数的值。

      接下来,我会用最近做的公共事业缴费做一个模型,在这个模型中,我们尝试使用这种方法对用例进行权重分析。

      (我们对用例的分析,仅限于目前未经验证过的方法,具体的实行需要通过大家一起推敲以及更加科学的算法给出才能正是实行。这里仅仅给出一种思路,供大家参考,并未真正给出规范。)

      首先,这个项目是一个新增项目,也就是说,他有这独立的功能,即使是收银台也是重新开发(功能雷同),所以我认为,这个项目在功能上几乎是全新的,所以我们不需要考虑到其他项目或者升级包,我认为权重的计算方法可以用最简单的,直接相加后作为总的权重,即进度μ= ,其中d是已经执行的用例权重和,D是所有用例的权重和。

      给出一下权重规则:(权重W)

      1、用例关注点,一个关注点W++;

      2、用例代表的功能点,与bug相对应,分成三个等级:影响流程的功能W+=3,项目主要的功能W+=2,项目次要的功能W+=1。(如何定义功能的重要程度,需要考虑。)

    3、用例执行的难度,这点主要针对在执行过程中是否需要大量的计算什么的,比如在公共事业缴费项目中需要计算校验码,是比较难的。预期定义为:难,W+=3;一般,W+=2;容易,W+=1。(本条需要郑重考虑,尤其是对难度的定义。)

      4、用例执行的估计时间,由设计者预估,可以在执行中根据实际情况修改。我大体分成几个等级:10分钟级:W+=1.0;10分钟~1小时,W+=1.5;1小时~半日级:2.0;跨日:W+=3。(本条需要对时间进行更科学的调整。)

      以上各条均可以影响到测试进度,如果还有重要的参数也可以加入。

      接下来对公共事业缴费项目按以上规则进行分析,用例请参考QC。

      在QC中可以看到,用例被分成6个文件夹(最后一个是回归使用,不在讨论范围)。由于用例通过了用例评审,我们可以认为,功能覆盖的情况是完善的,即覆盖系数可以认为是100%,并且中间没有经过需求变更,所以只需要对用例本身进行分析就可以了。(这里列举几个比较典型的)

      前台页面缴费:

      录入缴费单类

      验证输入项关联关系:关注点6个,W=6。功能为影响流程,W=9。执行难度为容易,W=10。时间为10分钟级别,W=11。

      条形码解析类

      上海燃气市北销售:关注点3个,W=3.功能为影响流程,W=6.执行难度为一般(因为要计算校验位),W=8,执行时间为10分钟级,W=9。

      缴费单查询类

      验证查询结果分页:关注点2个,W=2.功能为次要的功能,W=3.难度为容易,W=4,执行时间为10分钟级,W=5.

      验证查询结果显示:关注点5个,W=5。功能为主要的功能,W=7,难度为容易,W=8,执行时间为10分钟级,W=11。

      ……

      根据以上的方法我们可以得出所有用例的权重以及一个总的权重,在把用例导入到测试实验室的时候,每天的测试工作完成之后,我们可以很清晰的给出当前的进度,以随时调整接下来的工作。

      总的来说,我们希望根据以上的方法去衡量一个用例的重要程度,W为直接衡量的最终参数。当所有的用例都很科学地数字化以后,我们执行的过程中可以很清晰的给出任何时候的进度,并且这个进度是客观以及科学的,从而控制整个项目的进度。

    版权声明:本文出自 xiaomugua 的51Testing软件测试博客:http://www.51testing.com/?179221

    转载地址:http://www.51testing.com/html/02/n-842202.html

  • 软件项目中测试人员的考核(转)

    fey_9898 发布于 2011-12-06 16:28:25

    软件项目中测试人员的考核


    摘要 在项目中,测试人员考核往往成为项目经理和测试经理的一个难题,怎样评估测试人员的工作?怎样定义测试质量的差别?本文通过从事测试工作多年中对不同项目的数据收集和网上有限资料的参考分析,思考总结出一套可行的方法,在此提供给大家。

    关键字 测试人员考核 工作效率指标 工作质量指标

    正文

    长期以来,如何考核测试人员的工作是富有争论的话题, 一个理想化的方法是收集测试阶段之后项目阶段的缺陷来确定系统测试的质量。但是,这种方法的不可操作性在于:一是维护和实施阶段的缺陷难于收集;二是缺陷 贯穿产品的整个使用周期,无法穷尽,难于将时间段分割开来比较;三是成本过于庞大,时间跨度过长,起不到有效激励的作用。能不能就在项目过程中寻找可以评 价测试人员工作的方法呢?就这这个思路,本人摸索出一套有效的办法。

    首先声明的是,第一,这套考核方发在一个功能点估算超过 10000 个的项目中经过实践,但是对于小项目而言,可能缺少足够的数据和必要性;第二,项目组内考核的成功不能意味着在测试部门内可以采用类似的考核方法,仅提供 一种参考方法,部门考核可能更多考虑投入工程的工作量大小和任务分配重要性;第三,除了量化指标外,测试人员工作态度、工作能动性和技术学习意愿要通过定 性分析来得到。

    项目组测试人员考核主要包括工作效率和工作质量两大块,工作效率用于考察活动,而工作质量用于考察产出物质量。由于考核 基于测试过程进行,因此必须在过程结束之后才能进行。当然,由于工程是分布提交测试的,每月可以根据实际情况进行月考核,工程结束后或任务结束后在统一考 核。按照传统测试周期,测试过程分为:测试计划、测试设计和测试执行三个方面进行。测试计划属于测试经理的范畴,在最后讨论。测试人员主要是测试设计和测 试执行,测试经理的考核可包含在测试人员的考核内,当然,这部分考核也可以纳入项目组中进行。考核指标如下:

    测试设计

    工作效率相关指标

    文档产出率 这项指标值主要为测试用例文档页数除于编写文档的有效时间获得。用于考察测试人员测试用例文档的生产率大小。

    公式:∑测试用例文档页数(页) / ∑编写测试用例文档有效时间(小时)

    参考指标:根据项目汇总得出平均在 1.14 页 / 小时左右,高于此值为优,低于此值为差。

    用例产出率 这项指标值主要为上述指标值的补充,用于考察测试人员测试用例产出率大小。测试文档页数可能包含的冗余信息较多,因此要查看文档中测试用例的多少。方法是测试用例文档中测试用例编号总和数除于编写文档的有效时间。

    公式:∑测试用例数(个) / ∑编写测试用例文档有效时间(小时)

    参考指标:平均 4.21 个用例 / 小时

    工作质量相关指标

    需求覆盖率 计算测试用例总数之和除于与之一一对应的功能点数之和,主要查看是否有功能点遗漏测试的情况。

    公式:∑测试用例数(个) / ∑功能点(个)

    参考指标: 100 %。如果连功能指标都不能满足 100 %覆盖,起码说明测试不充分。这个指标收集起来相当困难,如果存在需求跟踪矩阵或者测试管理工具能把用例与需求一一对应就容易得多。

    注意:有的功能是难于测试的,那么未能覆盖到的需求要综合分析,明确是测试人员遗漏?还是无法测试?这需要放入问题跟踪表中进行后续跟踪;另外,有的功能点包含的信息较多或者有的用例包含几个功能点,这时只能把重复的功能点或重复用例按一个计,难于区分的要做说明。

    文档质量 测试用例进行评审和同行评审发现的缺陷数,或者将此缺陷数除于文档页数算出比率。此指标考察测试人员文档编写的质量如何。

    公式:∑缺陷数(评审和同行评审)(个)

    ∑缺陷数(评审和同行评审)(个) / ∑测试用例文档页数(页)

    参考指标:由于评审是发现的缺陷数是不固定的,因此,这个指标没有可供参考的数值。如果缺陷数大小不能直接用于比较就使用缺陷 / 页方式进行横向对比。

    文档有效率 使用测试用例文档进行测试时发现的系统测试缺陷数除于此文档页数。用于考察文档是由有效的指导了测试工作。

    公式:∑缺陷数(系统测试)(个) / ∑测试用例文档页数(页)

    参考指标:平均 2.18 个缺陷 / 页

    注意:如果存在测试人员在测试时创建新文档用于辅助测试时应包含这一部分。

    用例有效率 使用测试用例发现的全部缺陷除于测试用例数总和。这一指标是上一指标的补充指标,用于考察用例质量是否较高

    公式:∑缺陷数(系统测试)(个) / ∑测试用例数(个)

    参考指标:平均 0.59 个缺陷 / 用例,也就是说,每执行两个用例才得到 1 个缺陷,各工程有所不同,可以自己实践一下

    测试执行

    工作效率相关指标

    执行效率 利用测试用例文档页数除于此次系统测试执行的时间总和(不包含用例文档编写时间)。补充指标方法是用例的个数除于此次系统测试的时间总和。用于获得工作中测试人员每小时执行测试的速度。

    公式:∑测试用例文档页数(页) / ∑执行系统测试的有效时间(小时)

    ∑测试用例数(个) / ∑执行系统测试的有效时间(小时)

    参考指标:平均 0.53 页 / 小时, 1.95 个用例 / 小时。即测试人员每小时执行半页测试用例或者每小时执行 2 个测试用例。通过横向比较,容易知道那位成员的执行效率较高。注意:执行效率高的不代表测试质量也高,甚至执行效率和测试质量成反比,所以后面工作质量的 指标会补充这一部分的偏离。实际结果表明,用例执行效率高的成员,其缺陷发现率往往偏低,考核如果不将此纳入进来也可以将其作为测试改进的一项重要数据进 行收集。

    进度偏离度 检查计划时间和实际时间的进度,方法是计划时间差额减去实际时间差额除于实际工时总和,用于考察测试人员进度情况,监控测试是否按照日程进行,是否满足了工程的进度要求。

    公式:∑(计划开始时间 - 实际开始时间)+∑(计划结束时间 - 实际结束时间) / 总工时

    参考指标: 15 % 进度偏离是个相对的指标,可能偏离了 20 个工作日,但是对于一个长达半年时间的测试而言偏离天数比上整体测试所需天数不足 15 %,可能偏离了 3 个工作日,但是对于一个只有 1 星期时间的测试已经超过了整个测试阶段所需天数的 60 %。

    注意:计算时分子分母要保持一致,即开始或结束时间已经去除了非工作日时间,则总工时也要去除非工作日时间。因为制定计划时是根据每个公司的工作日来制定的,也就是说,考虑了非正常工作日的日程。

    测试进度也是考核很重要的一步,如果没有进度保证,所有的测试都存在风险, 第一种方法是测试人员可以采用自下而上的方式向测试经理报告计划用时,这种方式风险比较少,个人根据自己能力大小确定,但是缺点是存在测试人员虚报可能 性。另一种方法是测试经理进行估算后分配工作日程,这时估算是很重要的前提,除了依赖于测试经理的经验外,对评估结果进行同行评审是很客观可取的方法。

    缺陷发现率 测试人员各自发现的缺陷数总和除于各自所花费的测试时间总和。由于执行效率不能足够代表测试人员是否认真工作,那么,每小时发现的缺陷数就是重要的考核指标,你的工作可以通过这项指标得到反馈。

    公式:∑缺陷数(系统测试)(个) / ∑执行系统测试的有效时间(小时)

    参考指标:平均 1.1 个缺陷 / 小时 假使有位测试人员没有达到 1 小时发现 1 个缺陷,那么,除非产品质量高、模块较小,否则,就是他的缺陷发现能力不如其他测试人员。当然,详细分类中可以根据发现重要缺陷的多少来定义缺陷发现能力。

    工作质量相关指标

    有效缺陷数 / 率 被拒绝和删除的缺陷数总和,或者被拒绝和删除的缺陷数总和除于缺陷总数。这项指标用于考察测试人员发现的、被确认为缺陷的缺陷数高低或者百分比,数和比率越低测试质量越高。

    公式:∑缺陷数(系统测试中被拒绝和删除的)(个)

    ∑缺陷数(系统测试中被拒绝和删除的)(个) / ∑缺陷数(系统测试)(个)

    参考指标:平均 21.9 %(测试人员发现的每 100 个缺陷中平均有 22 个缺陷不被开发组确认、认为不是“缺陷”或者错误录入缺陷)。有效缺陷比率容易给出,但是有效缺陷数具体数据要根据项目情况,无法给出可参考的数值。

    注意:这项指标可能有不正确的情况,假使缺陷被拒绝和被删除的原因不是因为测试人员误操作和需求理解等自身错误引起,而 是系统本身不能实现或者数据错误引起的,那么就要考虑剔除这部分。对于测试人员发现系统框架根本性的、初始化参数设置错误引发的、错误数据、错误环境等而 开发人员因无法修正、可以通过改变环境而无需修改程序、重新导入数据、再次发布从而拒绝或删除的缺陷,应给予此测试人员奖励。

    严重缺陷率 这 个比例用于弥补缺陷发现率的不足。主要是根据严重程度分类的缺陷数比全部缺陷或者有效缺陷数。一般而言,每个公司基本把缺陷严重程度分为严重、一般和微 小,或者更细(通常等级数为奇数)。另外,可以对缺陷严重程度进行折算(严重:一般:微小 =1 : 3 : 5 )通过折算可以得出权重,然后在计算测试人员分值,在此不冗述

    公式:∑严重 / 一般 / 微小 / ∑缺陷数

    ∑严重 / 一般 / 微小 / ∑有效缺陷数

    参考指标:严重 ~10% 一般 ~70% 微小 ~20% 。当测试人员发现的缺陷中严重错误比率越高,说明测试质量相对就好,通常严重程度缺陷数的分布呈正态分布。

    模块缺陷率 这个指标主要是根据一个单独测试模块的缺陷数除于模块本身功能点数得出来的。假使一个模块是单独测试的话,很容易可以和其他模块进行指标横向对比,参照对应的测试人员,得出所测试模块的缺陷数,可以考察测试人员测试水平,也为开发考核提供数据。

    公式:∑缺陷数(系统测试(个) / 功能点(个)

    ∑缺陷数(系统测试(个) / 子功能点(个)

    参考指标 平均 3.74 个缺陷 / 功能点 1 个缺陷 / 子功能点

    注意:有些功能点没有子功能点,计算子功能点时要进行说明。

    三 测试管理

    开头提到对测试经理的考核就复杂一些,除了测试经理参与测试设计和执行外,还要考察他的测试管理能力,即测试计划阶段工作,其中

    计划质量 测试计划的评审缺陷数或比率,可以与其他同类型项目或数据库平均指标进行对比。

    公式:∑缺陷数(评审和同行评审)(个)

    ∑缺陷数(评审和同行评审)(个) / ∑测试计划文档页数(页)

    参考指标:无

    成本质量 成本度量主要放在工作量这块。因为无论涉及工资还是奖金,都要和工作量挂上关系。成本质量主要是对测试活动的计划工作量总和比上实际的工作量数值总和。对测试人员考核的进度偏离已经考虑了进度因素,而工作量涉及的是成本因素。

    公式:∑测试活动计划工作量(估算人日) / ∑测试活动的实际工作量(人日)

    参考指标:原则上不能偏离计划的 ± 15 %~ ± 20 %。实际上,这个指标是对成本的一种度量。对于一个大的项目来说,估算值往往差距非常大,阶段统计时可能有± 500 %!!这时调整计划是很必要的,在最终阶段取考虑计算平均估算值。一个测试经理必须对完成任务的成本进行有效控制。

    这两项指标是相对容易量化的部分,而需要添加其他量化指标需要综合考虑由项目经理和测试部部门经理给出标准,例如管理用时比率(整个项目测试期间管理时间占整个项目测试总时间)、系统整体缺陷数与其他同类型项目或数据库平均指标进行对比等等。

    考核具体方法:

    1 .将各项指标进行汇总分析,得出总和表格,根据测试人员各项指标大小进行排行榜制作,如列出 1 、 2 、 3 、 4 名。

    2 .确定阶段涉及的权重。例如将测试设计和测试执行权重各为 50 %。其中,工作效率占 40 %(即占所在阶段 20 %),工作质量占 60 %(即占所在阶段 30 %)。

    3 .确定每类指标的分值,然后每类指标达到平均标准给 100 %,达不到或者超过根据 80 % ~120 %比率给分

    3 .将比分统计出来后进行综合评定,必要的话增加一些调整系数。

    4 .最好将定性分析纳入进来,采用问卷调查和项目经理评分制度给出定性指标分数,建议这部分权重不要超过 10 %~ 15 %以保证测试考核的可度量性。

    当所有考核分数给出之后,提醒一点的是,既然做了考核,就必须公开这些结果,而且考核具有导向型,不要让考核误导了对质量工作的追求才是最重要的。

    考核注意事项:

    1 .项目并不是一个月就能完成的,如每月进行,要考虑“可考核部分”为那些,挑选那些指标能够横向对比,然后分阶段、分任务评定。

    2 .参与测试的时间长短也要给予重视,除了上述量化指标外,测试人员整体投入时间长短也是很重要的,加班也要作为特殊考虑因素,也许某个测试人员只参加了测 试执行 3 小时,各项指标都是良好的,但是不可能给他比其他参与时间更长的人员更多的分数。这部分就是增加调整系数的原因。

    3 .测试经理的测试设计和执行部分和项目测试人员一起考核,但是测试管理工作要单独考核,作为另外的加分,或者如文章前面所述纳入项目组给予考核。因为测试经理在项目测试中起着管理者和质量保证负责人的角色,不要把他和其他测试工程师平等对待。

    4 .考核前要考虑项目的实际情况,不要盲目的轻易承诺测试组人员考核会和薪金或者淘汰机制挂钩,否则考核会起到反效果。

    项目组测试人员考核的主要目的是在于激励测试组测试人员工作,鼓励能者,鞭策落后;另外,还可以起到发现人才和查找不足的作用。考核中即要体现多劳多得的原则,也要体现公正性和合理性原则,奖罚分明才能有效促使质量管理工作的进步。要想考核得到满意的效果,上述方法的重要的前提条件是:必须要在项目中充分收集相关的数据,包括采集缺陷数,记录工时、提交详细工作日志和进行文档配置管理,没有这些数据,定量分析就无从谈起,测试人员考核也无从谈起。

  • 减少缺陷漏测的系统方法体系思考(10年经验的反思)

    架构师Jack 发布于 2013-03-22 10:05:45

           从接触软件测试工作开始,相信所有人都希望减少软件测试后漏测的问题(tester希望,开发经理希望,老板希望),但事实是一直以来都没有很好的真正解决产品漏测的问题以及如何减少功能组合爆炸的问题。过去几年因为工作任务的缘故,我在历经几年自动化测试、系统测试和缺陷预防工作后,又回到测试的本源开始思考功能缺陷的测试应该如何做好?从2011年版本到2012年版本直到2013年终于优化完善出了自己的功能测试方法体系,没想到居然在软件测试行业从业近10年时才搞明白了10年前就开始的问题。过去的5年通过实践补充了自己在缺陷预防领域的技能和认知、可测试性设计领域的技能和认知、产品可靠性测试(稳定性测试)领域的技能和认知,直到2年前才开始真正介入功能测试方法改进。最后才意识到原来我们不少漏测的问题,不是性能测试可以发现的,也不是稳定性测试可以发现的,更不是自动化测试能发现的,现有的功能测试用例及方法也发现不了--多功能组合下和不同用户操作序列下才发生的bug。怎么办?以及如何解决组合爆炸的问题--我们一直都在回避。如何让我们投入测试时间最多的功能测试用例该多的地方多,该少的地方少?搞了半天,原来测试领域最基本的工作都没做好,然后就开始疯狂追踪上层建筑,或是简单实行拿来主义拿来一些工具或方法,虽然所拿来的这些工具或方法对局部的确是有优化作用,但你知道自己的全局全貌在哪里吗?知道全部漏测的测试根因在哪里吗(而不是产品技术根因), 如果不知道则容易陷入盲目乐观与更加保守的状态。听说有个工具或方法能发现很多bug--于是开始盲目乐观引入,希望能从此解决完所有测试漏测的问题,结果确实能发现一部分问题但是还是有不少漏测,结果--开始更加保守,对新工具和新方法不再相信和信任,从此对漏测问题放在一边交给其他人去关心。那我就是那位被迫要去关心和解决漏测问题的非主流测试工程师,幸运的是经过过去几年的思考与学习,如今随着个人稳定性测试模型和功能测试模型方法体系的完善,终于让我有信心有知识去应对任何软件的漏测问题, 可以阶段性的结束对漏测问题领域的专注思考,投入更多精力于其他测试技术和方法体系了, 故写此文阶段性纪念下。下面分享一部分如何减少功能缺陷漏测的干货吧,与各位共勉:    

    功能缺陷的测试方法流程
       第一步: 功能测试分析 功能测试阶段
                目的: 提取功能测试对象
                           准备功能测试数据
                减少因为功能测试对象遗漏的漏测

       第二步:功能验证功能测试阶段
                目的:检查功能是否已基本正确实现   
                测试方法 :
    基于生命期: 对象创建 -使用- 销毁 的验证
    数据测试方法: 静态数据测试方法和动态数据测试方法 (边界值和数据等价类、7因子数据类型)
                减少功能的基本逻辑错误漏测和数据处理错误的漏测

       第三步:单功能内测试 功能测试阶段
                目的:发现功能是否存在分支情况、异常情况处理不足的缺陷
                测试方法 :
                功能内子功能的场景插入法
                             重复法设计
                             反叛法设计
                             取消法设计
                            测一送一法设计
                           场景删除法设计
                减少功能内代码的漏测
                 
       第四步:多功能间组合测试 系统测试阶段的用户场景测试
                目的:发现功能间配合工作时存在的缺陷
                测试方法
                    基于用户场景的测试 (Scenario Test)
                减少多功能间组合错误的漏测

    为什么需要用户场景的测试模型?
         补充多个功能组合的测试用例解决传统正交组合测试后3个及以上功能组合缺陷的漏测
         通过常见用户操作序列的场景设计解决数学式穷尽组合爆炸的问题减少组合测试时间和成本,获得最佳投入产出比的组合测试

    用户场景测试的测试步骤 是 不同角色用户最常用的基本操作序列
    用户场景的探索测试    是 不同角色用户非常用的操作序列

    用户场景的探索测试
    在用户场景测试用例执行结束后 , 再用专项时间进行多功能组合的探索测试,补充用户场景测试用例之外的用户操作序列,提高用户操作序列的覆盖面。因为用户最常用的操作序列已在用户场景测试用例中覆盖,但又不能对非常规的操作序列不进行测试,   因此将非常规的操作序列的测试与测试成本进行一个平衡,通过专项的探索测试时间来补充这部分的测试。

    在补充用户操作序列的探索测试中可用的探索测试方法有:
    收藏家法
                同时开启多个功能,同时工作。
    技术根因
               同时多个功能交互容易出现资源竞争处理的错误。

    地标法
            改变一系列规定顺序操作的先后顺序。( A->B->C->D->E)改为 (A->D->C->B->E)
    技术根因
          在实际场景中用户因为对操作不熟悉难免会操作的步骤不是标准的步骤顺序,而程序实现时对于这些改变了操作顺序的操作步骤缺乏容错处理则会出现程序错误。

     混票法
           把最不常用的功能与常用功能进行组合
        技术根因
           在功能测试阶段由于时间及优先级限制,测试人员习惯把常用功能进行组合测试,时间一久就容易忘掉不常用功能与常用功能的组合,而用户的使用习惯中也一定会出现不常用功能与常用功能一起组合的场景

      
      
  • 【转载】修炼成QTP高手的十个步骤

    莲藕之家 发布于 2011-06-30 12:44:03

     

      1 QTP实用VBScript作为测试脚本语言,因此需要掌握很多VBScript的知识;软件测试自动化框架 ;QTP的用户指南 Sources:;COM/DCOM 技术 主要是Excel, Word, Outlook等相关的COM技术;HP的QTP Knowledge Base 包含很多实用的QTP技术文章……
    1. VBScript QTP实用VBScript作为测试脚本语言,因此需要掌握很多VBScript的知识:
    2. 软件测试自动化框架
    3. QTPTutorial帮助文档 Sources: '\help\QTTutorial.pdf' or '\help\Tutorial.chm' in QTP Install folder.
    4. QTP的用户指南 Sources: '\help\QTUsersGuide.pdf' or '\help\MainUsersGuide.chm' in QTP Install folder.
    5. COM/DCOM 技术 主要是Excel, Word, Outlook等相关的COM技术:
    6. SQL
    7. XML
    8. HTML, DOM 测试WEB应用程序时必须了解:
    9. HPQTP Knowledge Base 包含很多实用的QTP技术文章:
    10. 一些有用的网站
Open Toolbar