“测试经验说”系列之如何进行测试分析设计?(上)
在平时的工作中你是否遇到过如下的一些情况:
• 同样的需求不同的人设计测试用例,视角、纬度差异很大
• 同样的需求有人设计比较全面,有的基本需求都未覆盖
• 同样的用例不同的人执行,有人能发现较多缺陷,有的人一个发现不了
• 转测试验证没问题的功能特性,一转测试问题满天飞
• 经常听到同事说这种情况我怎么就没考虑到呢
• 经常听到同事说这种情况不可能出现,即使出现也不会有问题
• 。。。。。。
为什么会出现这么大的差异呢,我认为主要有两个原因:
1、思维方式不同,你会发现具备逆向思维和系统思维人员,经常设计的用例覆盖度度高,有效性强,测试执行中能发现很多别人容易忽略的缺陷;
2、工程方法的应用,测试有一些独特的视角和方法,掌握并灵活使用测试分析设计方法的通常设计的用例更全面,能用较少的用例覆盖较多的情况,反之,可能会有较多重复或遗漏。
今天我们就重点讨论下第二种情况,常见的测试分析设计方法以及如何应用,内容包括测试分析设计方法的简单介绍,以及应用这些方法的一个实例。首先,我们看下测试分析设计分别在瀑布模型和迭代模型下的位置,瀑布模型:
迭代模型:
测试分析重点明确“测试什么”,测试设计重点明确“如何测试”。无论如何两种模型下测试分析和设计的职责不变,都一样重要,必不可少。
瀑布模型和迭代模型最大的区别就是由分段进行测试设计和测试执行,改为分批进行测试设计和测试执行,即迭代模型下测试设计测试执行、测试评估也是迭代的。下面我们一起看看这些常见的工程方法。
一、
测试分析工程方法简述
测试有哪些独特的视角呢,测试与开发的思路有哪些不同呢,其中测试类型分析、功能交互分析、继承性分析是测试比较典型的独特视角。
1、测试类型分析
产品应用中经常出现:界面太差,操作繁琐;问题定位时间长;升级扩容不便;功能异常等等。其实质量是多维的,不能仅有功能测试,那么如何发现各类问题呢,一个典型的工程方法就是测试类型分析。
测试类型分析是从不同的质量维度、不同的测试目的出发、以不同的角度来分析和测试产品,启发测试设计人员尽可能从质量的各个维度进行分析和设计,以提高测试用例的完备性,发现不同类型的缺陷。比较大型的公司都建立了完备的测试类型库,也取得了比较好的效果,拓展了测试思路,多发现25%的测试需求。
那如何应用测试类型分析方法呢,一般分三个步骤:
1)建立测试类型库
测试团队根据产品特点及历史积累建立初步的测试类型库,一般软件的测试类型包括功能测试、性能测试、可靠性测试、兼容性测试、可用性测试、可服务测试、可维护测试等,并进行持续完善。
2)明确各版本/特性的测试类型分析思路
一般有系统测试工程师主导进行本版本测试类型及子类型的确定,以及控制分析的粒度,确保团队成员理解一致。
3)进行测试类型分析
针对每个特性,每种类型进行分析得到基本的测试需求 。
2、功能交互分析
产品功能不是独立的,功能之间存在交互,功能交互分析就是避免交互功能的遗漏,提高功能测试的完备度的一种分析方法,是测试类型分析的补充。
功能交互分析的关键是找到功能之间的交互关系,一般交互关系考虑时序关系的影响和空间关系的影响。一般有下面这些情况:
根据这些相关功能的交互关系进一步分析测试需求,下面举一个简单的例子,手机的呼叫功能和手机的其它特性比如微信做功能交互的分析的结果。纵轴是被分析的呼叫功能,横轴是其它功能如微信等。
交互的各个功能分析完后,就形成交互功能的测试需求列表,后续可以逐步细化成测试用例。
3、继承性分析
我们的产品通常是在一个基础版本上开发的,那么新增了哪些?继承了什么?新增和继承特性有什么关系?该测试哪些?新版本的测试策略又该如何制定?继承性分析能很好的解决这些问题,基本的分析思路如下:
根据需求来源表、历史版本的测试报告,网上使用情况等等进行 继承特性的现状分析,分析每个特性的成熟度和失效影响度,给出继承特性的测试策略建议。并进行特性交互关系的分析,每个新特性与继承特性的交互情况给出交互分析的策略以及新增测试需求等。
对于继承特性,根据特性的使用频度、特性重要性给出失效影响度的分析和成熟度分析的结果可参考如下:
再根据继承方式进行具体分析,分析出交互点及测试建议可参考如下:
继承特性与新特性的交互分析:
继承方式为变化的继承特性变化分析:
对于独立的继承特性测试建议分析:
以上是测试分析的三大视角,可以根据产品和特性情况结合使用,最主要的是视角和思想,分析出尽可能完备的测试点(测试需求),过程可灵活进行。
发表评论