本节大纲
Ø软件测试需求分析的概述
Ø项目需求分析实战演练
Ø用例设计方法-等价类
Ø用例分析项目实战
Ø用例设计方法-边界值
01需求分析的概述
什么是需求?
Ø 需求是产品必须完成的事以及必须具备的品质。需求包括:功能性需求、非功能性需求和限制条件。
Ø 功能性需求:功能性需求是产品必须完成的那些事,要求一定的功能和品质。
Ø 案例:微信可以给好友发消息、发红包、发语音和视频等操作
Ø 非功能性需求:非功能性需求是产品必须具备的属性或品质。诸如观感、可用性、安全性和法律限制 等。
Ø 例子:x 平台用户数为5万人,每天登录用户数为1万左右,网络的带宽为100M带宽。在工作时间 根据资料名称条件进行搜索,可以在3秒内得到搜索结果。
Ø 2021年天猫活动的订单处理峰值达高于58.3万笔/秒,要求订单成功率为100%
Ø 注意:在项目中一般优先分析功能性需求,产品的功能确定之后再分析非功能性需求。
Ø 限制条件:在需求分析中需要考虑一些条件约束,规则等,比如客户的约束,行业的约束,法律的约 束以及自己的约束。
Ø 例如:客户需求:x平台必须在2021年开学的第一学期上线
需求的重要性
Ø 符合尽早介入测试、文档也需要测试原则
Ø 是设计测试用例的重要依据,有助于保证测试的质量和进度
Ø 是衡量测试覆盖率的重要指标。
如何进行需求分析
Ø 测试需求分析的主要目的:根据需求文档提取测试点,根据测试点来编写测试用例。
Ø 需求分析步骤:
1. 熟悉需求背景及商业目标
2. 找出功能性需求与约束:
• 单个功能,如能否登录,等否发送信息;
• 功能交互;
• 业务流程,如登录成功-给好友发送红包-好友领取红包
3. 找出非功能性需求与约束:
• UI、性能、网络、兼容性、易用性、特殊情况
02需求分析演练
案例
Ø 生活物品测试需求分析,如:杯子、笔、桌子
不管让你测什么,面试官的考察主要目的其实是:没有需求文档或者需求不完整的情况下如何测试 ?能不能把测试用例设计方法应用到实际工作中去 ?测试思维是否完整 ,应变能力如何,表达能力如何?
一、如何测试一个杯子?
功能测试:
1.倒入温水,测试杯子是否可以正常装水;
2.装入水后,是否可以正常喝水;
3.杯子是否有保温功能,保温功能是否正常;
4.拧紧杯盖后,上下左右翻转杯子,杯子是否漏水;
容量测试:
1.倒入温水,测试杯子的最大盛水量是多少;
2.杯子的最大盛水量是否符合国际计量标准,是否没有误差;
兼容性测试:
1.分别倒入不同的液体(冰水、热水、温水、果汁、酒水),测试杯子是否正常;
2.用杯子泡茶、咖啡、牛奶,测试杯子是否可以正常使用;
3.在大风、大雨、大雪、高温天气下,杯子是否正常使用;
4.杯子放进微波炉,是否会爆炸;
5.杯子放进冰箱的时候,是否会融化;
安全性测试:
1.杯子的材质是否符合国际标准,是否对人体有害;
2.杯子是否会与所盛液体发生化学反应,产生对人体有害的物质(细菌,病毒等);
3.杯子在高温、零下温度是否会发生化学反应,产生有害物质;
4.杯子置于微波炉、冰箱是否会发生化学反应,产生有害物质;
5.杯子破损后,是否容易对使用者造成伤害;
性能测试:
1.分别倒入0-100摄氏度的水,是否可以承受不同温度;
2.倒入不同液体静置一段时间(24小时以上),杯子是否会漏水;
3.杯子的保温性是否达到要求 ;
4.杯子的耐热性是否达到要求;
5.杯子的耐寒性是否达到要求;
压力测试:
1.用手按压杯子,是否容易变形;
2.杯子从不同高度摔下去的损坏程度如何;
3.在杯子内分别装入少量的、半杯的、满杯的液体,看其装载量是否达到设计标准;
易用性测试:
1.杯子的形状是否容易倒入液体;
2.杯子的重量和大小是否合适;
3.杯子是否防滑;
4.杯口是否平整,是否方便饮用;
5.杯子拿在手上是否会掉色;
6.杯子是否隔热、不烫手;
UI测试:
1.杯子设计是否符合需求规格说明书;
2.杯子的形状和颜色是否符合大众审美需求;3.杯子是否标有刻度、Logo等;
交互性测试:杯子与杯盖、杯托交互性是否符合用户使用习惯;
文档测试:使用手册是否对杯子的用法、限制、使用条件进行了详细描述;维护性测试:杯子破损后,是否有修补措施;
二、如何测试一把伞?
功能测试:
1.伞是否可以正常打开/关闭,是否可以反复打开/关闭;
2.伞是否可以折叠,伞的尺寸是否符合使用需求;
3.伞骨与伞柄是否耐用,材质是否符合需求,是否生锈;
4.伞的底座是否结实,是否容易脱落;
5.伞是否能够正常遮阳/挡雨,伞面是否能够承受住风吹日晒,是否防紫外线;
6.伞的暗扣/粘扣的是否能够正常使用,外部捆绑条长度是否合适,是否结实耐用;
7.自动伞是否可以正常使用,按钮承受力度是否适中;
UI测试:
1.伞的类型是否符合需求,手动伞、自动伞;
2.伞的外观、颜色、是否齐全,是否美观;
易用性测试:
1.伞的重量和大小是否方便人们携带;
2.伞的打开、关闭是否容易操作;
兼容性测试:
1.伞的用途:遮阳、挡雨是否可以一伞二用;
2.伞是否能够遮挡住别的东西,例如沙子等;
压力测试:
1.遮阳伞的抗紫外线程度;
2.伞最大能承受住多大的风、雨的力度;
安全性测试:
1.伞尖是否容易误伤到旁人;
2.伞柄是否光滑,避免开合刮伤;
3.伞底座的挂绳是否结实,不易脱落;
维护性测试:伞破损后,是否有修补措施;
三、如何测试一支钢笔?
功能测试:
1.钢笔书写文字是否流畅;
2.钢笔字迹的颜色是否正常,书写的文字是否能正常显示;
3.钢笔书写字迹的粗细度是否合适;
4.钢笔是按键式还是笔帽式的(按键式的能否正常使笔芯正常收缩,笔帽式的是旋转的还盖帽的);
5.钢笔的笔芯触地能否正常书写;
6.钢笔笔芯是否漏墨水;
7.钢笔没有墨水是否能继续书写;
8.钢笔笔杆能否正常拆卸;
9.钢笔笔芯用完能否换笔芯;
UI测试:
1.钢笔的笔杆、笔帽、笔芯颜色与风格是否统一;
2.钢笔上是否注明了品牌;
兼容性测试:
1.钢笔能否在各类纸张上进行书写;
2.钢笔换不同类型的笔芯能否调换成功;
易用性测试:
1.笔杆是否防滑处理;
2.笔杆长度大小是否符合正常人的手大小长度设计;
安全性测试:
1.钢笔笔芯的墨水是否有毒;
2.手部粘漆是否有毒;
3.笔杆是否光滑平整不划手;
压力测试:
1.钢笔从一定的高度掉落,是否完好无损;
2.钢笔是否能承受一定的压力;
四、如何测试一个桌子?
功能测试:
1.确认桌子的功能是用于办公还是用于放置物品,桌子的尺寸是否符合需求;
2.桌腿高度粗细是否合适,接触地面的部分是否平整;3.桌面是否保持水平面持平,是否能放置物品保持不倾斜;
3.桌面和桌腿连接处是否紧密无缝隙;
4.桌子的支撑点是否牢固,放置物品桌子是否摇晃;
5.桌子会不会掉颜色,物品在桌子上放置一段时间颜色会不会粘到物品上;
6.有水撒到桌子上的时候,用布或纸擦的时候会不会掉颜色;
7.桌面是否防水、防油以及其他污渍;
易用性测试:
1.桌子的高度是否合适,是否方便拿放物品;
2.桌子是否方便移动,重量是否合适;
3.桌子有污渍是否易于清理干净;
UI测试:
1.检查桌子整体颜色是否均匀协调,各个部位之间的颜色是否协调;
2.桌子形状大小是否适中,桌面与桌腿的大小比例是否协调;
3.桌子的表面是否光滑,是否会凹凸不平;
安全性测试:
1.桌子的桌面、边缘和拐角处是否平滑不伤手;
2.桌子的支撑力是否足够;
3.桌子推倒后,损毁程度如何,是否不易伤人;
性能测试:
1.桌子的承重能力如何,最大能承受的重量是多少;
2.桌子上堆放较重物体一段时间,承重能力如何;
03用例方法-等价类
黑盒测试
Ø 黑盒测试:也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的 内部结构是什么,只关心软件的输入数据与输出结果。
Ø 主要测试依据是需求文档、设计文档、用户手册
Ø 1:业务能力
Ø 2:测试策略(功能测试、UI测试,兼容性测试)
Ø 3:设计用例 --逻辑思维
案例需求:
Ø 两个整数加法计算器基本需求
第一个数和第二个数都是只能输入-99到99之间的整数
对于输入的小于-99的数据或者大于99的数据,程序应给出明确提示
对于输入的小数、字符等非法数据,程序应给出明确提示
你会这样测试吗?
-99+(-99),-99+(- 98),......,-99+99-98+(-99),-98+(-98),......,-98+99 ...... 98+(-99),98+(-98),......,98+99 99+(-99),99+(-98),......,99+99
黑盒测试产生的问题
Ø 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情 况考虑,才能查出所有的错误。实际上测试情况是无穷多的,完全测试是不可能 的。
Ø 如何解决?
必须将黑盒测试行为加以分类
1、节约测试实施的时间和资源
2、避免盲目测试、提高测试效率
3、使测试的实施重点突出、目的更明确
测试用例设计方法
Ø 黑盒测试用例设计方法
1. 等价类划分法
2. 边界值分析法
3. 错误推测法
4. 因果图法
5. 判定表法
6. 正交实验法
7. 状态迁移图法
8. 场景法
Ø 白盒测试用例设计方法
1. 语句覆盖
2. 判定覆盖
3. 条件覆盖
4. 判定-条件覆盖
5. 基本路径覆盖
6. 循环覆盖
等价类划分法
Ø 等价类划分是一种典型的、常用的黑盒测试方法,这种方法把全部输入数据 合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件, 就可以用少量有代表性的测试数据取得较好的测试结果。
1. 有效等价类:有效等价类是程序规格说明有意义,合理的输入数据 --验证软件的功能 是否实现
2. 无效等价类:无效等价类是程序规格说明无意义,不合理的输入数据 --提高软件的安 全性和体验性
等价类划原则
1. 如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类。• 案例:成绩:【0,100】,用户名:长度8个字符长度
2. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等 价类(从不同角度违反规则)。
• 案例:输入数值必须是正整数
• 有效:正整数
• 无效:
• 负数
• 小数
• 字符
3. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。• 案例:第一个数和第二个数必填
4. 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立N个有 效等价类和一个无效等价类。
•案例:密保问题选择
5. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等 价类(从不同角度违反规则)。
• 案例:输入数值必须是正整数
等价类分析步骤
1. 为每个输入划分等价类,得到等价类列表 ,为每个等价类规定一个唯一编号
2. 设计一个测试用例,使其尽可能多的覆盖所有的有效等价类。重复这一步骤,使得所有有效等价类 均被测试用例覆盖到
3. 设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤,使得所有无效等价类均被覆盖
04用例分析实战
案例-需求
Ø 两个整数加法计算器基本需求 第一个数和第二个数都是只能输入-99到99之间的整数,且为必填项 对于输入的小于-99的数据或者大于99的数据,程序应给出明确提示 对于输入的小数、字符等非法数据,程序应给出明确提示
分析1:等价类列表
分析2:测试用例
05设计方法-边界值
边界值分析法
Ø 边界值分析法的理论基础,是假设大多数的错误是发生在各种输入条件的边界上,如果在边界上的取 值不会导致程序出错,那边其他的取值导致程序错误的可能性也很小。
Ø 是对等价类划分法的一种补充。边界值的分析基本思想:正好等于、刚刚大于、刚刚小于边界的值作 为测试数据。
Ø 使用场景:
1. 输入条件明确了一个值的取值范围,或是规定了值的个数
2. 输入条件明确了一个有序集合
分析1:等价类+边界值
分析2:测试用例
文章首发于微信公众号:程序员一凡,如果对你有帮助,记得点文末的在看,让这么精彩的内容让更多的朋友看到
文章来源: 博客园
原文链接: https://www.cnblogs.com/pythonautomatedtesting/p/14932303.html
- 还没有人评论,欢迎说说您的想法!