【软件测试】设计测试用例的万能公式
什么是测试用例?测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。软件中涉及到的特性太多了,仅仅通过头脑风暴是无法完成一次完整的测试的。编写测试用例,通过编写测试用例我们可以想到要测试哪些内容,通过一次又一次的更新修改,将测试用例写到完成,功能覆盖率高即可编写测试用例也有讲究(编写测试用例要素),但是这种讲究在很
概念
什么是测试用例?
测试⽤例(Test Case
)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
现在买回来了一个新的电视,需要测试,根据个人的经验:
- 开机测试
- 切换频道
- 调一下分辨率
- 测试一下网络电视
- 蓝牙功能
这些是我们买完电视之后一定会做的测试内容,而这些测试内容并不会写在纸上,以文字的形式展示出来。这里的一条一条表述就是一个测试用例
软件中涉及到的特性太多了,仅仅通过头脑风暴是无法完成一次完整的测试的。编写测试用例,通过编写测试用例我们可以想到要测试哪些内容,通过一次又一次的更新修改,将测试用例写到完成,功能覆盖率高即可
编写测试用例也有讲究(编写测试用例要素),但是这种讲究在很早之前用的比较多,现在用的比较少
- 笔试的时候编写测试用例题,需要按照
Excel表格
的方式来答题(会涉及到测试用例的要素);而笔试的时候回答测试用例题,按照思维导图的方式一一道来即可(不会涉及到测试用例的要素)
设计测试用例的万能公式
案例:
现在有⼀款产品,要求我们对“⻔锁”设计测试⽤例,假如你是测试⼈员,你会怎么设计呢?
- 自己设计出来的测试用例整体上来说是合格的,但是说出来的测试用例不够具体,太笼统了,无法作为测试工具的参考依据
- 工作中,测试用例的设计并不是越多越好,而是能够达到更大的功能覆盖率则是更好的
- 但是在学习中,测试用例的设计一定是越多越好的
常规思考+逆向思维+发散性思维
设计测试用例的原则二:
- 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应该根据无效和未预料到的输入情况
- 检查程序是否“未做其应该做的”仅是成功的一般,测试的另一半是检查程序是否“做了其不应该做的”(是上一条原则的必然结果)
- 计划测试工作时不应默许假定不会发现错误
打开思维后,设计测试用例是想到一条说一条,没有正确的引导,说出来的测试用例一定是有限的且数量不容乐观
女朋友说:我想喝东西
- 饮料
- 奶茶
- 果汁
- 茶饮
- …
- 矿泉水
- 康师傅
- 农夫山泉
- 怡宝
- …
- 美食里的
- 玉米汁
- 蔬菜汤
- 西湖牛肉羹
- …
说出家里的电器:电视机、电冰箱、空调… 突然脑袋宕机了,明明家里的电器非常多,但就是怎么都想不起来
- 厨房里的电器:洗碗机、油烟机、电饭煲、电煮锅…
- 客厅里的电器:电风扇、按摩椅、空调、灯、电话…
- 卧室里的电器:电视、台灯、除螨仪、扫地机器人…
- 卫生间里的电器:热水器、吹风机、刮胡刀、浴霸…
万能公式就是一个引导的作用,帮助大家按照分类来设计测试用例
万能公式
设计测试用例的万能公式:功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试
-
功能测试
- 从产品功能角度出发,验证功能是否是正常的
-
界面测试
- 肉眼可以看到的部分都称为界面,界面所有的元素都需要测试
- 界面涉及到的内容:元素(大小、颜色、形状、材质)
-
性能测试
- 在功能正常的基础上,进行性能测试
- 通常为在一些极端的情况下,验证功能还是否正常
- 五菱和法拉利的汽车最基础功能都一样
- 但他们的性能是完全不一样的
-
兼容性测试
- 不同的版本(软件、系统)
- 浏览器的兼容性
- 不同的浏览器
-
易用性
- 具备简单易上手的属性
-
安全测试
- 密码进行加密展示
- 数据库存储用户隐私数据加密
- 越权
- SQL 注入
水杯测试
使用万能公式设计水杯的测试用例
弱网测试
为了覆盖更多的网络场景
弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:
- ⻚⾯响应时间是否可以接受,关注包括热启动、冷启动时间、⻚⾯切换、前后台切换、⾸字时间,⾸屏时间等。
- ⻚⾯呈现是否完成⼀致。
- 超时⽂案是否符合定义,异常信息是否显⽰正常。
- 是否有超时重连。
- 安全⻆度:是否会发⽣
DNS
劫持、登陆IP
更换频繁、单点登陆异常等。 - ⼤流量事件⻛险:是否会在弱⽹下进⾏更新
apk
包、下载⽂件等⼤流量动作。
如何进行弱网测试
借助抓包工具来模拟实现弱网测试:抓包工具(Fiddler
)
安装卸载测试
针对需要进行部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载
- 安装:安装包是否可以安装、卸载之后是否可以继续安装、重复安装…
- 卸载:安装完成后卸载、安装一半后卸载、卸载一次后继续安装继续卸载、卸载一半停止后是否还可以继续卸载…
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)