八年的测试生涯留给我的玫瑰余香……

发布新日志

  • 回答:如何提高测试用例的复用性

    2009-11-17 11:29:07

     
    对于测试用例的复用,我想很多测试工程师都会非常有话说,系统变更频繁,业务变化大,工作流不统一等等,很多现实存在的问题,都阻碍了测试用例的复用发展进程,但是金融风暴下,越来越多的IT公司都在为了降低成本而做不屑的努力,如解决方案的产品化、搭建软件系统的可复用平台、开发可复用的功能组件等等,毫无疑问的,这些都会为了我们能够提高测试用例的复用性打下了基础,抛开开发人员的因素不谈,而我们在这里也只针对如何从测试人员自身来提高测试用例的复用性来讨论吧:
    这里需要首先区分一下,是手动测试用例还是自动测试用例?
    一、对于自动测试用例,首先就是要改变脚本的开发方法,如:
    1.数据驱动脚本:将测试数据从脚本中分立,保存在外部文件中,当数据发生变化时,就不再需要更改代码,脚本的维护成本也比较低
    2.关键字驱动脚本:把脚本中的检查点和执行操作的控制都维护在外部文件中,同样的,数据也会与代码分离开,可以说是结合了数据驱动的脚本开发方法,提高了测试脚本的共享和复用,缺点就是脚本开发需要更多的编程经验和设计能力
    二、对于手动测试用例,那么我们就需要解决如下问题:
    1.测试用例管理工具:之前看到很多讨论,都没有提到这个,但我想说的是,工欲善其事,必先利其器,良好的测试用例管理工具,绝对会为测试用例的复用带来简单、方便和快捷,也比office文档更适用于测试用例库的建设和维护
    2.测试用例的设计策略:测试策略无非有两种,基于功能和基于风险,之前也在论坛里提到过,还有筒子回贴说,测试策略就是基于功能的,这点我不敢苟同,基于风险的测试用例,往往才是最能被复用的,对于任何同类型产品来说,无论如何进行功能升级,其失效模式也一定大同小异,比如:汽车的失效模式之一——刹车失灵,这个不论是小汽车、三轮车、还是大卡车,都会存在同样的问题,但是功能和性能上,三者之间的差异就比较大了,所以我才会提到我们需要在测试开始前考虑这样一种基于风险的测试策略
    3.业务抽象:对于测试来说,同样需要跟研发的系统分析师有相当水平的测试设计师存在,他们的工作职责是分析系统需求、抽象业务用例、设计测试方案来指导测试用例的进行,测试用例的复用也应该在这一环节被考虑,因为一条一条的去查找和审阅相同和相似的测试用例,对于庞大的系统来说,由于海量测试用例的存在,无疑为大海捞针,但是从更高层次的业务用例中去寻找相似性,一定是更快捷的方法,但这也同时需要清晰合理的、能够与分解后业务用例对应的、可跟踪可追溯的测试用例库结构,基于此,我才把管理工具放在了第一位
    以上是我对于“如何提高测试用例复用性”的问题答案,其中不考虑“如何正确编写测试用例?”“如何进行测试用例设计”等问题
  • 如何制定基于风险的测试策略?

    2009-04-16 16:54:50

    这里我想介绍的是一种全新的测试概念,该文也发表在论坛里
    首先想说,我们为什么要在测试开始前做基于风险的分析?作为每个测试人员,都要明确这一点“YOU CAN NOT TEST EVERTHING!”,测试不是提高质量,而是降低风险的手段之一,如果项目团队给你的资源不充分,进度紧,OK,那我们一起来做个风险分析吧,而事实上,无论是否资源充分,我们也都需要在制定测试计划前,先做风险分析,再基于风险来制定测试策略,这样我们才能保证测试的资源是被合理而有效的利用,在这里也同样适用80/20法则,那就是说我们把测试力量的80%用在了项目风险最大的那20%功能当中。
    那么这个基于风险分析的测试策略到底是如何制定呢
    一、风险分析团队组建:
    这时我们需要有两队人马,一队是技术专家,另一队是用户代表(不一定是最终用户、服务人员、市场人员、有经验的资深测试人员都可以担当此角色)
    二、风险分析活动流程:
    1、首先做需求分析,形成功能列表
    2、技术专家为列表中的每一条功能进行评估、打分,至少要考虑如下几条计分项,如:人员经验(新人风险高,有经验的老员工则风险较低),是否采用新技术(全新技术风险高,复用已有技术平台则风险低),该功能的接口和与其他功能的交互性(毫无疑问的,接口和交互越多的,则风险就越高)等等,其他的可以根据需要来自我界定
    3、用户代表为列表中的每一条功能进行评估、打分,至少要考虑如下几条计分项,如:失效影响(一旦失效是否有安全隐患?肯定的答案则得分高),商业价值(是否为产品的卖点),用户的使用频率(频率越高,被探测到问题的风险也就越高),如有需要还可以增加计分项
    4、将各项分数统计之后,形成风险矩阵,横纵坐标分别为技术风险得分和用户代表评估风险得分,此时,就可以将功能列表中的功能项划分出四种不同的风险区间,两项得分居高的,肯定是测试重点,也是测试力度最应该投入的部分,采取的测试手段也应该是最严谨的,居中的两个区间(分别为高技术风险或者高用户代表评估风险),则可以适当投入力度和资源,风险最低的区间内可以权衡项目的QCD目标来确定要不要投入力度和资源
    以上,一切取决于项目团队的集体意见,并非是测试人员一个人要考虑的问题,对于预留风险的接受情况一定是经过集体权衡出来的结果,并不是测试人员的个人职责,也就是说风险要共同分担,质量是掌握在每个人的手里,并非测试人员说了算
    三、根据风险矩阵得出测试策略后,再合理分配测试资源投入情况
    以上方法适用于所有的项目,并非只有紧急或者资源不足的时候才需要做,因为在任何时候,测试都需要平衡资源投入以提高效率,因为“YOU CAN NOT TEST EVERYTHING”……
Open Toolbar