测试用例的基本要素
**测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环 **
境、操作步骤、测试数据、预期结果等要素.
评价测试用例的标准:**对比好坏用例的评价标准 **
用例表达清楚,无二义性
用例可操作性强
用例的输入与输出明确。一条用例只有一个预期结果。
用例的可维护性好
用例对需求的覆盖率高
测试用例的设计方法
基于需求进行测试用例的设计
基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正
确、完整、无二义性,并且逻辑自洽。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测
试点或者测试项,然后根据每一个测试点进行测试用例的设计. 在分析测试需求时,一般分为功能测试需求 和非功能测试需求. 基于需求设计的测试用例只是一个大概的测试用例.
具体的设计方法
等价类
等价思想
用经典的个例来替代其他的同类案例 . 依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果 这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的 功能覆盖,解决了不能穷举测试的问题。
**有效等价类:**对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验
证程序是否实现了规格说明中所规定的功能和性能
**无效等价类:**根据需求说明书,不满足需求的集合。
如何通过等价类设计测试用例
- 充分理解需求
- 划分有效等价类和无效等价类
- 细分有效等价类,细分无效等价类
- 组合有效等价类, 组合无效等价类. 原则是有效等价类在组合时,尽量多的区覆盖有效等价类.无效等价类组合的时候,一个测试点,只能组合一个无效等价类,其余的需要和有效等价类组合(需要明确是那个无效等价类导致的问题)
等价类的适用需求
使用于输入数据是无穷的, 但输入的数据有特点.
边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等
价类划分法的补充.
边界值要点
上点: 无论是开区间还是闭区间还是半开半闭区间,上点就是边界上的点.
内点: 无论是开区间还是闭区间还是半开半闭区间,内点就是边界内的点.
离点: 边界左右的点. 如果是闭区间就是范围外的点, 如果是开区间就是范围内的点.
设计测试用例的步骤
- 充分理解需求
- 找离点, 上点, 内点
- 针对离点,上点,内点设计测试用例
这里和等价类一起组合使用:
场景设计法
该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者 设计测试用例,是测试用例更容易理解和执行。 典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功 能细节忽视业务流程要点的错误倾向.
设计测试用例的具体步骤
- 主事件流
- 次事件流
- 将主事件流次事件流串起来就会形成场景, 一个场景就是一个测试用例.
判定表法/因果图
因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关
系。因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、
程序的输出又依赖于输入条件的各种情况。
逻辑关系
设计测试用例具体步骤
- 分析所有可能的输入和可能的输出。
- 找出输入与输出之间的对应关系。
- 画出因果图。
- 把因果图转换成判定表。
- 把判定表对应到每一个测试用例。
栗子: 假设业务单据的处理规则为:"淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠
正交表法
当判断表法测试用例太多时,可以使用正交表法.
🔥🔥🔥测试用例设计万能公式
我们分别从多个方面来入手:
- 功能,
- 界面
- 易用性
- 兼容性
- 安全性
- 性能
- 网络
描述物体
描述软件
- 功能: 软件本职能够用来干嘛
- 兼容: 软件可以再各个平台上使用
- 易用: 软件操作简单, 符合大众使用习惯
- 安全: 软件防止黑客攻击, xss漏洞, sql注入
- 界面: 界面简洁美观, 图片布局, 按钮颜色, 图片大小, 文字字体
- 性能: 软件渲染页面的速度, 可以同时承载大量用户的同时访问
🔥🔥🔥面试常问题
针对liunx命令
例: zip这个命令设计一个测试用例
功能:
- 压缩, txt,图片, 视频文件,可以压缩成功
- 压缩后源文件可以正常使用
- 压缩完后压缩文件变小了
兼容: zip这里命令在多个系统上是否可以兼容
性能: 压缩一个大的文件用时非常短
界面: zip -选项 文件, 当压缩完成后文件展示的颜色会变化
易用性: zip这个命令见名思意
安全: 压缩后,源文件没有损坏, 压缩文件解压后也可以正常使用
测试用例设计中如何控制网络观察软件各个功能是否正常
这里可以使用fiddler:
第一步:
第二步:
第三步: 查找里面的download,修改里面的数值就可以控制网络速度了.(这里数值越大, 上传1kb花费的时间越大)
接口测试
针对接口方法测试: post, get...
针对参数测试: 针对参数的取值(取值符合类型, 不符合类型, 参数的个数要求, 参数为空)
针对业务测试: 接口返回的每个参数取值对不对, 接口返回的参数个数对不对.
这里我们可以使用postman来: