一、问题

许多测试类书籍中都有大幅的篇章介绍用例的设计方法,如等价类划分,边界值,错误推断,因果图等。但实际应用中这些理论却不能给我们很明确的行为指导,尤其是业务复杂,关联模块紧密,输入标准和输出结果间路径众多时,完全的遵循这些方法只能让我们在心理上得到一种满足,而无法有效的提高测试效率。

有时我们只有依靠以前项目的用例编写经验(或习惯),希望能在这一个项目中更加规范,但多数情况下我们规范的只是“书写的规范”,在用例设计上以前存在的问题现在依旧。

当好不容易用例基本完成,我们却发现面对随之而来的众多地区特性和新增需求,测试用例突然处于一种十分尴尬的境地:

☉ 从此几乎很少被执行

☉ 执行用例发现的bug很少

☉ 根本没有时间为新的功能需求增补用例

☉ 有时间补充,但用例结构越来越乱

☉ 特性的用例与通性用例之间联系不明确(以新增需求为主线列出所有涉及到的更改,但特性与通行之间的数据或业务联系在用例中逐渐淡化)

☉ 知道怎样执行这个用例,但它要说明什么呢?(多数用例给我们的感觉是只见树木,不见森林,只对某一功能,无法串起)

通过上面的一系列问题可以看到,似乎测试用例给我们带来的问题远多于益 处,也正是因为在实际过程中遇到的问题积累,导致我们有很充分的理由忽视或拒绝用例的应用。

但没有用例或简略用例的编写我们又会舒服很多么?不言自明,谁也不想倒退发展吧。

二、原因

事实上我们在测试用例编写和设计上遇到的一系列问题只是一种表面的呈现,究其原因我认为有如下几点:

1、没有适合的规范

“适合的规范”或称“本地化的规范”。这是我们在测试过程中遇到的第一个问题,通常也是很容易习惯且淡忘的。我们拥有相当多的流程文档、书本上的定义,但它适合我们当前的项目么?

每一个测试工程师在进入这个职业的初期都会了解一些测试上的概念和术语,进入公司或项目组后也会进一步学习相应的文档,例如怎样规范编写,怎样定义bug级别,软件实现的主要业务等。但当测试经理开始给我们分配某一模块的用例编写时,又有多少人知道该怎样去写,怎样写算是好?

在测试论坛中常能看到介绍用例编写方法的帖子,而迷茫于怎样应用到实践的回复也不为少数。为何我们无法在公司和项目组内找到明确且适合的规范?于是我们只得选择从书本或之前的用例中复制,不管是结构还是方式都依赖于以往"的经验,我并不是说这样就是错误的,但不能总结成文的经验无法给予测试更多帮助。

我们有太多经验,但却没有形成适合的规范。

2、功能与业务的分离

我们知道怎样列举一个输入框的用例,但却很少考虑说明这个输入框是用来做什么的,如果仔细分析不难发现,用例中这种功能与业务的分离越来越普遍也越来越明显。

边界值、等价类划分、因果图,这些用例方法是一种高度提纯的方法,本身就很偏向于功能及代码,所以怎样编写业务的用例我们就从理论上失去了参考。

复杂的业务会贯穿于整个软件,涉及众多功能点,里面组合的分支更不可胜数。

测试用例务求简洁、明确,这一点也与业务“格格不入”。功能用例依赖程序界面,业务描述依赖需求文档。于是我们更偏向于根据已实现的界面编写功能用例,列举出众多的边界值、等价类。

流程的操作只有凭借经验和理解,这时测试出的bug是最多的,但我们却无法使这个bug对应到一个用例中(点击一个按钮报出的错误有时原因并不在这个按钮或按钮所在的窗体)。正因为我们没有很好的积累业务上的用例,才使得我们感到执行用例时发现的bug不多。

用例结构的划分一定程度上也造成了功能和业务的分离,依照界面模块建立文件夹,并在其中新建不同用例,这使得用例从结构上就很难联通起来。

3、测试未能跟上变化

想象一下,当我们越来越多的听到开发人员在那里高呼“拥抱变化”“敏捷开发”的时候,测试又有什么举措呢?当地区特性,软件版本越来越多的时候,测试是否在积极响应呢?变化是我们面临的最大挑战,我认为测试未能跟上变化是造成测试过程中遇到种种问题和矛盾的主要原因。

对需求和程序的变化测试人员的感受是非常深的,测试总是跟在需求和开发后面跑,使得所有风险都压在自己身上。不断压缩的时间和资源使我们只能放弃那些“不必要”的工作:尽快投入测试,尽快发现bug,而非从整体把握软件的质量情况,统筹策略。

疲于应对的直接影响就是程序质量无法准确度量,进度无法控制,风险无法预估。用例与程序脱节,新增用例混乱和缺少。长此以往我们只得放弃修改、增补用例,甚至放弃之前积累的所有成果。用例变为程序变更的记录摘要,没有测试数据的保留,测试步骤和重点无法体现,新加功能与原来的程序逐渐“脱离”,可能还会出现相互违背的情况,但这我们却无法很快发现。

最后也给大家分享一份软件测试资料

上面的这些内容,对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

精彩推荐:

在职阿里6年,一个29岁女软件测试工程师的心声

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档…

腾讯二面:web测试问题被虐哭了,直到学长给了我这些知识点…

写了100条测试用例,被正经执行的只有50条?相关推荐

  1. 辛辛苦苦写100条测试用例,为何只被正经执行的只有50条?

    一.问题 许多测试类书籍中都有大幅的篇章介绍用例的设计方法,如等价类划分,边界值,错误推断,因果图等.但实际应用中这些理论却不能给我们很明确的行为指导,尤其是业务复杂,关联模块紧密,输入标准和输出结果 ...

  2. oracle获取100条之后的数据,oracle获取前50条数据

    oracle取前几条数据语句 sqlserver中可以用top n 的方法,oracle中用 rownum,但如果只用 rownum会随机取数据,如果想按一定顺序取前几条数据 则可这样写: selec ...

  3. sql查询前50条_您必须知道的前50条SQL查询

    sql查询前50条 In this article, we'll go over the most common SQL queries that you should know to be able ...

  4. 如何估算要写多少条测试用例,耗费多长时间

    作为测试工程师,对测试用例的数量预估是一项基本能力,并且也很重要.因为在衡量和预报工作计划中十分重要,例如,设计用例需要几天,设计多少条.执行多长时间. 首先,预估测试用例数量最重要的依据就是需求. ...

  5. sql语句,执行,实现没有这条数据就新增,如有这条数据就修改

    原 sql语句,执行,实现没有这条数据就新增,如有这条数据就修改 2019年09月18日 15:52:24 <span class="read-count">阅读数 5 ...

  6. python测试管理平台_Python + flask+ selenium 自动化测试用例管理、执行平台

    写在开篇 这个项目放到论坛之后,有很多热心的小伙伴试用,并且在github上面也点赞和 fork. 感谢各位的支持! 不过可能大家使用习惯的问题, 遇到有什么问题,或者看到我在下面的回帖里回复了 qq ...

  7. 初入测试如何编写测试用例?从3个方面带你写一个合格的测试用例

    前言 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很头疼,无法接触需求,只能根据站在用户的角度去做测试,但是这样情况会导致不能全方位的测试APP,这种情况就需要一份测试用例了,但是不会写,求指 ...

  8. 一条sql是如何执行的

    一条sql是如何执行的 mysql结构 xshell连接mysql步骤 mysql存储用户的表信息 查询缓存 为什么要去除查询缓存?为什么鸡肋? 连接器 分析器 词法分析器 词法分析流程图 语法分析树 ...

  9. mysql 拼接sql批量执行_MySql 学习之 一条更新sql的执行过程

    上一篇文章咱们说了一条查询sql的执行过程. https://zhuanlan.zhihu.com/p/156155783​zhuanlan.zhihu.com 今天咱们说说一条更新sql的执行过程. ...

  10. hql取满足条件最新一条记录_MySql 之一条查询sql的执行过程

    每当我把一条查询sql语句写完了,并且执行完得到想要的结果.这时我就在想为什么我写这样的一条sql语句,就能给我查询出我想要的结果,为什么我写了update就能更新一条语句?它们的执行过程是什么样的? ...

最新文章

  1. 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
  2. C五:typedef, define
  3. Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)2
  4. iOS开发必备指南合集之游戏接入GameCenter 指南
  5. 探讨NET Core数据进行3DES加密或解密弱密钥问题
  6. 单链表删除整表_单链表删除
  7. 使用WCF实现消息推送
  8. Pr 入门教程,如何倾斜移位效果?
  9. 计算点、线、面等元素之间的交点、交线、封闭区域面积和闭合集(待续)
  10. 小米图标大小设置方法_miui12如何设置图标大小
  11. 小米路由器开启SSH并连接
  12. 文件上传(FileUpload)
  13. 华为S5720s交换机console口配置
  14. SSM 博客系统开发实战
  15. 云阶月地,关锁千重(一.独享锁/共享锁)
  16. 准标准模式和标准模式之间的差别-1(旧文首发)
  17. 2021年全新Java学习路线图
  18. 手把手教你使用Newstart HA
  19. 网狐经典版后台操作手册,后台说明
  20. 计算机上的钢筋检测数据,梁板钢筋面积查询软件

热门文章

  1. 远程桌面连接 mac to linux,3种远程连接到你的mac桌面的方法
  2. markdown生成chm电子书或在线文档
  3. 海量数据处理之Tire树(字典树)
  4. python 猿编程模块(一)ybc_speech
  5. 屏幕距离和坐便转换工具_视频分辨率转换器(mp4视频分辨率转换器)V2.0.1 官方版...
  6. 仓位管理之二: 凯利公式指导投资与多种资金管理方式
  7. matlab设计误码率,通信原理课程设计报告 数字传输系统误码率测试器的matlab实现及性能分析...
  8. 网上支付流程(大致)
  9. 【面试题】单链表的操作1
  10. 在二叉树中查找两个节点的最近的公共祖先节点(无回溯指针)(NCA--nearest common ancestor)