测试开发全栈之Python自动化 想要写优秀的设计测试用例,不懂这个可不行!
什么是需求?
需求是产品必须完成的事以及必须具备的品质。需求包括:功能性需求、非功能性需求和限制条件
功能性需求: 功能性需求是产品必须完成的那些事,要求一定的功能和品质。
案例:微信可以给好友发消息、发红包、发语音和视频等操作
非功能性需求:非功能性需求是产品必须具备的属性或品质。诸如观感、可用性、安全性和法律限制等。例子:x 平台用户数为 5 万人,每天登录用户数为 1 万左右,网络的带宽为 100M 带宽。在工作时间根据资料名称条件进行搜索,可以在 3 秒内得到搜索结果。
2021 年天猫活动的订单处理峰值达高于 58.3 万笔/秒,要求订单成功率为 100% 一>成功下单
注意:在项目中一般优先分析功能性需求,产品的功能确定之后再分析非功能性需求。
限制条件:在需求分析中需要考虑一些条件约束,规则等,比如客户的约束,行业的约束,法律的约束以及自己的约束。
- 例如:客户需求:x 平台必须在 2021 年开学的第一学期上线
- 例如:每个 APP 必须要求对应的隐私条例等
需求的重要性
《医生和病人的故事》
背景:冯大勇吃鱼时嗓子被鱼刺卡住了。现在正坐在椅子上候诊。
大夫:(在桌上拿起一份挂号单,大声的喊)冯大勇!
冯大勇:(病怏怏的样子,边走边咳嗽)我是。
大夫:怎么了?(低头整理手中的资料,自言自语,并打手势,示意冯大勇坐下)
冯大勇:我...(咳嗽)...我今天. . ﹒(咳嗽) 大夫:不用说了,我知道了。(从桌子下面拿出一个大盒子,放在桌子上)
我看你适合吃这种药。这是本院独家开创的哮喘新药 “咽喉糖浆”,疗程短,见效快,一个疗程吃 3 盒,平均每天只需花费 3 块钱。给你先开 6 盒吧!(边说边开药方)
冯大勇非常惊讶地瞪大眼睛并止不住地弯腰大声咳嗽,以至于把鱼刺都咳出来了。冯大勇从口里掏出一条巨型鱼刺,递给医生。医生见到鱼刺先是吃惊,而后又非常尴尬。
- 符合尽早介入测试、文档也需要测试原则
- 是设计测试用例的重要依据,有助于保证测试的质量和进度
- 是衡量测试覆盖率的重要指标。
如何进行需求分析
测试需求分析的主要目的:根据需求文档提取测试点,根据测试点来编写测试用例。
需求分析步骤:
1.熟悉需求背景及商业目标
2.找出功能性需求与约束:
-单个功能,如能否登录,等否发送信息;
-功能交互;
-业务流程,如登录成功 - 给好友发送红包 - 好友领取红包
3.找出非功能性需求与约束:
-UI、性能、网络、兼容性、易用性、特殊情况
案例一
生活物品测试需求分析,如:杯子、笔、桌子
面试题:怎么对杯子、笔、桌子进行测试?讲出测试的思维?测试点?
1∶反问:笔、杯子、桌子需求是怎么样的? --测试思维
软件质量特性:功能性、可靠性、可用性、效率、可维护性、可移植性
给大家提供一个大概的思路
功能性:
-笔头开合是否流程
-书写是否流畅
-笔头笔心大小是否合适
-笔筒和笔芯是否牢固
-笔芯替换是否方便
Ui(外观测试)
-尺寸大小:
-色彩搭配:绿色
-携带
-logo
性能测试:
-笔能够写多长时间
-笔心 (墨水) :能够持续多长时长
-高温低温
-气味:特殊人群
# 测试用例设计方法
黑盒测试用例设计方法
-等价类划分法
-边界值分析法
-错误推测法
-因果图法
-判定表法
-正交实验法
-状态迁移图法
-场景法
白盒测试用例设计方法
-语句覆盖
-判定覆盖
-条件覆盖
-判定 - 条件覆盖
-基本路径覆盖
-循环覆盖
黑盒测试
黑盒测试:也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出结果。
主要测试依据是需求文档、设计文档、用户手册
1.业务能力
2.测试策略(功能测试、uI 测试,兼容性测试)
3.设计用例 -- 逻辑思维
黑盒测试产生的原因
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出所有的错误。实际上测试情况是无穷多的,完全测试是不可能的。
如何解决?
必须将黑盒测试行为加以分类
节约测试实施的时间和资源
避免盲目测试、提高测试效率
使测试的实施重点突出、目的更明确
等价类划分
是一种典型的、常用的黑盒测试方法,这种方法把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量有代表性的测试数据取得较好的测试结果。
1.有效等价类:
有效等价类是程序规格说明有意义,合理的输入数据 -- 验证软件的功能是否实现
2.无效等价类:
无效等价类是程序规格说明无意义,不合理的输入数据 -- 提高软件的安全性和体验性
等价类划分原则
1.如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类。--公式
-案例:成绩输入有效值:【0,100】,用户名:长度 8 个字符长度
2.在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
-案例:输入数值必须是正整数
-有效:正整数
-无效:
-负数·
-小数
-字符
3.在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
-案例:第一个数和第二个数必填
4.在规定了输入数据的一组值(假定 n 个),并且程序要对每一个输入值分别处理的情况下,可确立N 个
有效等价类和一个无效等价类(没有无效等价类)。
-案例:密保问题选择
5.如果我们确知,已划分的某个等价类的各元素,在程序中的处理方式是不同的,则应将此等价类进
一步划分成更小的等价类。
-案例:分数:O-100,如果是 81-100 这个范围,则返回结果优秀,如果分数在 71-80 这个范围,则返回结果良好,如果在 60-70 这个范围,则返回结果合格,否则的话返回结果不及格
等价类分析步骤
1.为每个输入划分等价类,得到等价类列表,为每个等价类规定一个唯一编号
2.设计一个测试用例,使其尽可能多的覆盖所有的有效等价类。重复这一步骤,使得所有有效等价类
均被测试用例覆盖到
3.设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤,使得所有无效等价类均被覆盖
希望大家能够举一反三,活学活用。