软件测试用例优化方案

1、背景

在物联网行业摸爬滚打了3年,先后在anker创新,深信服,银星入职,各个公司岗位职责不一样,在anker是软件测试,偏重黑盒业务测试,在深信服是结合ai自动化编写软件测试用例,在银星是白盒测试。

离职后陆续面试了各种公司,大疆,迈瑞,oppo,keep等大小不一的公司。他们在面试的时候都会问一个点,你是怎么设计软件测试用例的?官方一点的回答就是:1、针对完整的产品的软件测试用例设计是 根据产品规格说明书或者PRD,结合《软件测试理论》中的软件测试用例设计方法“因果法,等价类划分发,边界值法”等设计,2、针对具体的每一条软件测试用例包含“用例标题,前置条件,测试步骤和预期结果”......可是实际上企业都是这么去设计自己公司产品的软件测试用例嘛?作为软件测试用例的执行者最有发言权,我比较粗俗,一般就是用“垃圾”形容(同行不要生气)。

具体为什么“垃圾”?软件测试用例复杂繁琐,一条测试用例的预期结果特别多,可维护性差,很多部分重复冗余,需求修改后测试用例很难去修改已经转换的测试用例,甚至很难具体到那个模块,智能重新写一个模块,同时未了避免漏测,就是“选择性”的需求修改之前的模块也添加上,导致测试执行时候很多block,并且测试人员浪费更多的时间......

我自己也负责过测试用例的模块设计,写出来的东西也很“垃圾”,和大多数人写的没有任何区别。

2、意义

废话不多说,软件测试用例的意义大家都晓得,我就不和大家多逼逼,这个文章提供的方案可以帮助大家提高软件测试用例设计。

优点:

  1. 功能测试用例覆盖率90%------>98%(无数据来源参考,全靠经验,不要杠,杠了就是赢了)
  2. 软件测试用例更容易维护
  3. 在不漏测的情况下大幅度减少测试用例的冗余
  4. 需求变更情况下,能够快速定位测试用例和修改对应测试用例
  5. 测试用例在ipd研发流程的“概念和计划”阶段就可以实现完善
  6. 测试用例转换效率大幅度提高(提高50%)

3、原理&规则定义

先给大家讲一下等价类划分法和边界值法这俩个概念,主要的依据来源都是这俩个概念

等价类划分法:

等价类划分法是一种重要的黑盒测试方法,它通过将程序的输入数据划分为若干个等价类,然后从每个等价类中选择具有代表性的数据进行测试,以达到用较少的测试数据覆盖尽可能多的代码路径,从而提高软件测试的效率和效果。这种方法不需要了解程序的内部结构,而是基于需求规格说明书来设计和执行测试用例。等价类划分法包括有效等价类和无效等价类两种情况:

有效等价类:代表程序合理输入的数据,用于验证程序是否实现了规格说明中规定的功能和性能。

无效等价类:代表程序不合理或无意义的输入数据,用于测试程序的健壮性和错误处理能力。

在实际应用中,等价类划分法的步骤包括:

划分等价类:根据程序的需求规格说明书,将所有可能的输入数据划分为若干个等价类。

设计测试用例:从每个等价类中选择一个或多个代表性数据进行测试,确保每个等价类至少有一个测试用例覆盖。

举例来说,如果一个程序要求输入的年龄在18到100之间,那么可以划分三个等价类:有效等价类(18-100),以及两个无效等价类(小于18和大于100)。然后,为每个等价类设计相应的测试用例,例如使用18、50、100作为有效等价类的测试数据,而使用17、101作为无效等价类的测试数据。

边界值分析法:

使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

通过这种方法,可以有效地减少测试用例的数量,同时保证测试的覆盖率和效率。件上

4、完整的测试用例设计方案和步骤

4.1根据产品的功能划分模块

Exp:开关机模块,配网模块,固件升级功能模块,预约定时功能模块等等

4.2根据产品选择可能有的“当前状态”

有效等价类

无效等价类

备注

当前状态

开关

关机

测试开关机模块

当前状态

正常电量,满电量

低电量,0电量

当前状态

充电中,休眠中

清扫中,升级中

根据prd列出可能的状态

4.3根据产品选择可能有的“测试操作”

有效等价类

无效等价类

备注

测试操作

物理按键启动,APP启动

测试操作

清扫完成

清扫不完成

4.4完整的测试方案设计

4.5删除重复冗余和不可能实现的操作

Exp:“全屋清洁”即是当前状态也是功能模块,当前状态中保存了“全屋清洁”,测试操作地方就可以删除

模块:全屋清洁--状态:充电桩出发--状态:正常电量----状态:房间清洁中状态---操作:清扫完成

模块:房间清洁--状态:充电桩出发--状态:正常电量---状态:全屋清洁中状态---操作:清扫完成

这俩个说明就是重复的用例,可以选择删除一个

Exp:当前状态:正常电量&满电量不受影响可以选择删除1个,

在基站上出发,所以设备不可能是充电中状态,可以选择删除在基站上出发的充电中状态

5、分析

功能测试用例覆盖率90%------>98%

答:所有的场景都考虑到了有效等价类和无效等价类,理论上可以做到100%覆盖率

软件测试用例更容易维护

答:只需要维护总表:功能模块表,当前状态表,测试操作表

功能模块表映射到当前状态表,再映射到测试操作表

在不漏测的情况下大幅度减少测试用例的冗余

看4.5回答

测试用例在ipd研发流程的“概念和计划”阶段就可以实现完善

答:pm给出概念和计划阶段给出对应的功能模块,状态,测试结合经验设想可能有的测试操作输出对应的功能模块表,当前状态表,测试操作表,就可以完善

测试用例转换效率大幅度提高(提高50%)

6、总结

输入:功能模块表,设备状态表,设备操作表

输出:测试用例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值