测试用例设计

639 阅读4分钟

一. 背景

作为测试同学,不管是日常工作,还是跳槽的时候面试题目,测试用例设计都是非常重要的。

二. 面试

面试过程中,有时候你的能力固然很重要,但是如何更好地表达自己的设计思路和设计的过程和结论,这个其实是更加重要的。
换位思考一下,如果你作为面试官,候选人在跟你表述一个事情的时候,你最重要的是要听清楚候选人表述的关键点和核心论点,就像给简历打分一样,10s内通盘扫码寻找简历中的亮点。

总结:使用结构化框架来表达,从整体到细节,尽量精简化表达,确保只回答自己懂的东西。

三. 用例设计方法

SFDIPOT方法是快速测试的一种方法,可以帮助你快速理清测试点。
S-Structure
F-Function
D-Data
I-Interface
P-Platform
O-Operation
T-Time

下面会分别介绍这几种方法,并结合面试过程中常见问题写自己的设计思路。
常见的面试题目有:测试电梯?如何测试朋友圈功能?如何测试支付宝扫码支付功能?

1.S-Structure(结构)

结构,从软件的构成入手,比如代码单元、功能模块,可以理解为代码中的每一个方法。

例子1:电梯,拆解成测试电梯的门、里面的屏幕、外面的屏幕、按钮等等。

例子2:朋友圈,单元测试。测试代码的每个方法,比如获取用户的朋友list,获取每个用户的朋友圈内容,排序等。

2.F-Function(功能)

功能,这是大家最了解的,测试功能嘛。

和上面结构的区别,这是去用待测软件做一个基本的操作,而上面结构是去测组件本身。

例子1:电梯,按一个楼层按钮、开门、关门、按下警铃按钮等。

例子2:朋友圈,功能测试。查看朋友圈内容,下拉查看更多内容,刷新更新最新内容等,对应的是需求文档中的功能点。

3.D-Data(数据)

数据,测试输入和输出,测试当软件处理的输入数据不同时的输出情况。可以使用等价边界值法来设计。

例子1:电梯,比如进来一个人,进来一个人和一个箱子,进来两个人。

例子2:朋友圈,数据流和边界值测试。不同的输入是不同的用户/时间,输出是朋友圈内容。

如果题目是测电话机,那么输入不同的电话号码就很好理解了。

如果题目是测百度首页,那这一块就很容易想了。输入不同类型的关键字。

4.I-Interface(接口)

测接口。接口包括用户接口、程序接口、其他接口比如硬件接口等。

例子1:电梯,用户接口就是那些按钮、屏幕。程序接口就比如说是电梯内部控制程序和物理组件之间的接口。

例子2:朋友圈,接口测试。抓包查看http接口,测试不同的request和不同的response。

如果题目是百度首页,就是网页界面和内部程序接口

5.P-Platform(平台)

平台,运行环境。比如网页运行在浏览器平台,app运行在手机上,服务运行在物理机或者云服务器上。

例子1:电梯,电梯会运行在电梯井、大楼、地基、感觉怪怪的。

例子2:朋友圈,朋友圈需要运行在微信的app(app的版本)环境中,微信需要运行在手机操作系统(android/iOS,不同品牌手机,不同分辨率,不同屏幕等都有影响)上,操作系统依赖底层硬件。

如果是要你测百度首页,那么,windows电脑上,mac上,ie上,firefox上,其他各种浏览器上,手机上,平板上,等等。

6.O-Operation(操作)

操作,也就是怎么用这个待测软件。和前面测功能的区别是主要集中于测真实的用户场景和测复杂的用户流程,也就是怎么用这个软件的。

例子1:电梯,从1楼进来几个人,分别去往不同楼层,先到了3楼,下了一个人,上了2个人,又去到5楼。电梯运行中取消。电梯急救功能等等。

例子2:朋友圈,比如快速滑动查看朋友圈,朋友圈评论的实时更新,评论只有好友可见,朋友圈点赞等。

7.T-Time(时间)

时间,主要是和时间相关的一些测试,也不全是性能测试。

比如网速啊、反复一段时间一直做一些操作啊、缓存机制啊、超时机制啊、隔一段时间做一些操作啊之类的。

例子1:电梯,先开门在关门一直反复啊,上上下下运行多次啊,几个电梯同时在一个楼层停靠时并且都没人时开哪个电梯的门啊,之类的。

例子2:朋友圈,反复评论和删除评论,反复点赞和取消点赞。弱网场景下,朋友圈内容的加载等。