动态测试用例怎么写?
一、动态测试用例编写
1.分析因素
支付金额需要是数字,那如果输入非数字例如字母a,会怎样?这里有了名列前茅个因素(或维度),即是否是数字;数字有正有负,是否支持0和负数?这是第二个因素,即数字类型(考虑有理数);支持小数,就有了整数和小数之分,于是第三个因素是小数点位数。
需要说明的是,划分并不是少数的。譬如第三个因素,可以从“是否是整数”的角度来划分,也可以从“小数点位数”来划分,是等价的。
2.划分等价类
首先,分析完因素设计用例时,要保证每一个层级只考虑一个少数的因素,也是为了保证MECE。例如,上图中的“正数”包含在“数字”中,而不能和它并列。
要保证每一个层级只考虑一个少数的因素
接下来对“整数”和“小数”进行等价类划分。每个分支都根据MECE分析法划分有效等价类和无效等价类,例如针对“小数”的划分,支持小数点后2位有效数字,即1位和2位都可以,那输入3位系统会如何提示?都要设计出来。
3.注意描述
失败:是怎样失败?无效类有三种情况,所以具体是“无法输入”,是“可以输入但无法确认”,还是“可以输入并确认但提示报错”以及报什么错,都要明确写出来。因为有些面向最终用户的关键系统,用户体验很重要,不明确写出来在测试时很难注意到细节。
同样,成功了会怎样?扣款是否正确,收款方能否收到,这些都是关键的验证点。
当然,写好一个完整项目的测试用例,离不开深入的需求分析。本节内容是在需求分析的基础上,教你如何写出覆盖全面、逻辑清晰、可读性好的用例,这也是复用和维护测试用例的基础。如何衡量你的用例是否符合这些特征,这里提供三个tips:
和开发、产品、及资深测试对齐,看他们在覆盖度上是否有补充;请资深测试人员审核你的用例,看是否有觉得不清晰不理解的地方;不定期回顾自己之前的用例,看是否有不清晰的地方。延伸阅读:
二、测试用例如何管理
在说测试用例管理之前,首先要明确背景,即为什么要管理测试用例,我们在第二小节已经提到了,这里再详细总结一下:
首先,一个测试用例可能既用于冒烟测试,又用于回归测试,以及不同级别的回归,需要一个方便的方法将其筛选出来;
业务系统会越来越复杂,有已经管理好的用例做参考,可以直观了解到某个模块涉及到的业务逻辑,有效避免漏测;
迭代开发时,要了解之前的逻辑。复用已有的测试用例,便于理解之前的业务逻辑,也避免了重复造轮子;
系统的重构,利用现有的用例,可以大大提升工作效率和质量。
相关推荐HOT
更多>>线性表中的随机存取(读写)是什么意思?
一、线性表中的随机存取(读写)是什么意思线性表是数据结构中的一种基本数据类型,它包含了一组有序的数据元素,每个元素有一个少数的前驱元素和...详情>>
2023-10-14 23:06:05为什么MySQL的IN操作在大于3个操作数时不用索引?
一、MySQL的IN操作在大于3个操作数时不用索引的原因1、索引数据结构的限制MySQL使用B树或哈希等索引数据结构来加速查询,但这些数据结构都有其...详情>>
2023-10-14 22:01:14STL中为什么遍历map比遍历list慢?
一、STL中遍历map比遍历list慢的原因1、内存布局不同 map和list的内存布局不同,map是一种基于红黑树实现的关联容器,其数据结构是一棵二叉搜索...详情>>
2023-10-14 18:50:17先根遍历和先序遍历的区别?
一、先根遍历和先序遍历先根遍历和先序遍历是同一个概念,只是叫法不同,也叫前序遍历,是一种节点遍历算法,指的是按照“根节点->左子树->右子...详情>>
2023-10-14 17:31:25热门推荐
完全二叉树为什么非常适合顺序存储结构?
沸线性表中的随机存取(读写)是什么意思?
热有哪些javascript数据结构相关库用来描述队列、树、图?
热为什么MySQL的IN操作在大于3个操作数时不用索引?
新Java中遍历数据结构Enumeration和Iterator相比有什么不同?
数据结构里面pnext与next有什么区别?
数组与集合有什么不同?
ASPICE是什么?
数据结构中HashMap与HashTable的区别是什么?
STL中为什么遍历map比遍历list慢?
什么是tpm管理?
什么叫精益管理?
先根遍历和先序遍历的区别?
HashMap为什么不用B+树来替换红黑树?