【测试】测试用例设计没思路?这篇从概念到方法全搞定
一、用例概念
为了验证软件某个功能是否实现成功,我们往往要编写测试用例来验证;又因为软件中涉及到的特性太多了,仅仅通过头脑风暴无法完成一次完整的测试,所以我们要编写测试用例,通过测试用例来把我们想到的测试的哪些内容,一次又一次的更新修改将测试用例写到完整,直到用例的覆盖验证某个软件的功能更到即可;
编写测试用例也是有讲究的(编写测试用例要素),都是这种讲究在很早之前用的比较多(很早之前是通过 excel 来编写和管理测试用例),现在用的比较少(现在用的脑图或者思维导图来编写);
注意:笔试的时候编写测试用例题,需要按照 excel 表格的方式来答题(会涉及到测试用例的要素),而面试的时候回答测试用例题,按照思维导图的方式来回答(会涉及到测试用例的要素);
注意:思维导图可以用 Xmind 工具来编写;
测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素,例如:

二、怎么设计测试用例(必考题)
在工作中,测试用例的设计不是越多约好的,而是能够达到更大的功能覆盖率则是更好的;
注意:在实习中,我们设计的测试用例一定是越多越好的,因为面试官觉得的你就是测试小白,而且他考察的就是你的思维发散能力如何;
正确设计测试用例的思想:常规思维 + 逆向思维 + 发散性思维;
设计测试用例的原则:
1.测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应该根据无效和未预料到的输入情况。
2.检查程序是否“未做其应该做的”仅是成功的一半,测试的另一半是检查程序是否“做了其不应该做的”。(是上一条原则的必然结果)
3.计划测试工作时不应默许假定不会发现错误。
因为根据上面设计出来的测试用例是非常少的,而且是想到一条写一条,所以我们可以通过万能公式来设计测试用例,这样一来测试用例就非常多了:
设计测试用例的万能公式:功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试。
功能测试:从产品功能角度出发,验证功能是否正确;
界面测试:肉眼可见的部分都称为测试,界面所有的元素都需要测试;
性能测试:通常是在一些极端的情况下进行的测试:例如:不同一辆测试在高温情况下的速度;
兼容性测试:指的是软件可以在不同的平台或者环境能运行;
易用性测试:用户使用这款产品的难易程度;
安全测试:是否保证用户的个人消息是否泄漏或者防止用户越权操作;

面试高频考题:跟开发产生争执怎么办?
答:
1)反思自己,是不是 Bug 描述不清楚;
2)站在用户的角度思考问题,访问开发人员:如果你是用户,你能接收这样的设计吗?
3)bug 定级一定要有理有据
4)除了可以提出 Bug ,最后也能给出解决方案;
5)Bug 评审:角色:产生代表、产品代表、开发代表;核心:如何解决问题、如何避免类似的问题发生(尽量不要出现重复的错误);
除了上面的万能公式测试场景,还有一些特殊情况测试:
1)弱网测试:
弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间,首屏时间等。页面呈现是否完成一致。超时文案是否符合定义,异常信息是否显示正常。是否有超时重连。安全角度:是否会发生dns 劫持、登陆ip更换频繁、单点登陆异常等。大流量事件风险:是否会在弱网下进行更新 apk包、下载文件等大流量动作。
如何进行弱网测试:使用抓包工具:fiddler
2)安装卸载测试:
安装:安装包是否能安装、卸载之后是否能继续安装、重复安装、软件更新之后安装是否成功;
卸载:安装完成之后卸载、安装一半后卸载、卸载之后继续安装继续卸载、卸载一半停止后是否还可以继续卸载;
三、设计测试用例的方法
1)基于需求的设计方法(就是上面万能公式)
基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档/产品规格说明书来设计测试用例。测试人员接到需求之后,要对需求进行分析和验证,从合理的需求中进一步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例。
2)等价类
基于需求文档先设计初步的测试用例,而部分用例还需要细化,就需要借助具体的设计方法,例如等价类;
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的 功能覆盖,解决了不能穷举测试的问题。
等价类分类:
有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能。
无效等价类:根据需求说明书,不满足需求的集合。
根据等价类设计测试用例的方式:
1.确定有效等价类和无效等价类
2.编写测试用例,设计具体测试数据
3)边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
边界值包含:边界值 + 次边界值,例如:名字的字符长度在 6 到 15 之间,所以:
有效范围是【6,15】:边界值:6 和 15 (有效等价类),次边界值:5 和 16 (无效等价类)
无效范围是(6,15):边界值:6 和 15 (无效等价类),次边界值:7 和 14 (有效等价类)

4)场景法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。
通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。
根据场景法设计测试用例的步骤:
1.确定基本流
2.确定备选流
3.根据备选流补充测试用例
4.编写测试用例
5)正交法
通过等价类和边界值方法我们完成了部分用例的补充当前还剩下一个场景的用例未补充完成,“只填写部分选项”,这里到底要设计多少测试用例呢?通常来说,为了保证系统的测试覆盖率,我们首先能够想到的就是排列组合。假如当前有两个选项A和B,可以设计出都填写、都不填写、填写A、填写B四个测试用例(2的二次方)。假如当前有三个选项A、B、C,通过设计可以得到8个测试用例(2的3次方)。
注意:正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。
正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。
正交表:如图最简单的正交表是L(4)(2(3)),含意如下:“L”代表正交表;L下角的数字“4”表示有4横行,简称行,即要做四次试验;括号内的指数“3”表示有3纵列,简称列,即最多允许安排的因素是3个;括号内的数“2”表示表的主要部分只有2种数字,即因素有两种水平1与2。
正交表的构成:因素数、水平数、行数。因素:对指标的影响条件,通常是正交表中的一列。水平:因素对应的可选项。
6)判定表法
根据判定表法设计测试用例的步骤:
1.确认需求中输入条件和输出条件
2.找出输入条件和输出条件之间的关系
3.画判定表
4.根据判定表编写测试用例
更多推荐

所有评论(0)