项目测试人员需不需要理解业务逻辑?

2018-05-28 16:29:26 +08:00
 luoway

最近接手维护一个复杂的线上业务,进行了不少小迭代。
迭代过程中出现了好几次测试通过,但上线后用户反馈出问题的情况。这些情况大多是测试没有覆盖到的业务逻辑。

虽说开发人员肯定得理解业务逻辑,但是没法要求刚接手的开发人员全面理解吧。
测试是否应该自己做好准备,而不是依赖开发人员描述迭代影响内容?

另外是否应该要求测试人员会用一些偏技术的测试方案,比如写单元测试?

3032 次点击
所在节点    程序员
18 条回复
th00000
2018-05-28 16:53:22 +08:00
完全错误:
1. 测试分为业务测试跟测试开发, 测试开发又有一个别称叫做软件开发工程师(测试方向)
2. 涉及到项目的人员肯定要知道业务逻辑啊, 即使不知道全部的,也要知道自己负责的模块
3. 上线之后反馈出问题, 测试背锅
4. 测试跟开发打交道很少, 测试主要是根据需求进行测试而不根据开发人员的口述进行测试
5. 楼主说的技术测试方案姑且认为是测试开发负责但是单元测试是要开发人员编写的, 测试人员绝不可能写单元测试代码
luoway
2018-05-28 17:09:49 +08:00
@th00000 作为开发,我完全不知道测试应该做什么,不做什么。

目前我司的需求研发流程是:
需求评审→(交互评审→)技术评审→(视觉评审→)开发→提测

严格的情况下,测试会参与除开发之外的流程。
但开发期间和测试无关,不要求测试做什么。

我认为测试应该在这时候做准备,给出需求的测试文档,与开发并行。先于开发进度完成文档,可以为开发提供自测方案,后于开发进度完成文档,也可以算进测试排期里。

请问这样要求合理吗?

还有问题就是,不要求测试会任何技术,项目大了如何测试覆盖到项目的各个点?
vance
2018-05-28 17:11:33 +08:00
测试应该要比开发更熟知业务
cuzfinal
2018-05-28 17:15:48 +08:00
肯定需要啊,不然怎么测。
th00000
2018-05-28 17:18:32 +08:00
@luoway
1. 你这么描述的话 我可以断定你们的测试仅属于业务测试而不是测试开发
2. 如果是这样的话,正常情况下, 需求被评审过之后之后测试就要开始写测试用例了, 这个阶段是跟开发同时进行的
3. 一般情况下测试人员的测试用例是不用给开发过目的, 因为你是们开发完成之后才提测, 而且测试用例是根据需求编写的, 理论上开发人员是可以完全理解需求内容, 间接完全理解测试用例的内容
4. 测试覆盖的比例是根据测试用例覆盖的比例来确定的, 跟测试会不会技术是两码事
5. 业务测试仅关注输入是否能达到预期的输出, 如果不能, 将被视为 bug 提交给开发人员, 至于原因业务测试是不关注的
jpyl0423
2018-05-28 17:21:44 +08:00
我觉得测试是应该最了解业务逻辑的.
zdnyp
2018-05-28 17:29:16 +08:00
业务测试,一般由运营人员测试(省人力...)在上线之前,还是需要运营人员的内测的
luoway
2018-05-28 17:34:26 +08:00
@th00000 大概了解了业务测试的职责范围。

还剩关于测试用例的问题:测试积累以及更新业务的测试用例是不是很重要?开发是否有权限查阅积累的测试用例?
luoway
2018-05-28 17:35:09 +08:00
@zdnyp 小团队是这样没错,但业务做大了,变复杂了,总不能一直这样吧。
th00000
2018-05-28 17:39:45 +08:00
@luoway 测试用例是可以在版本演进过程中不断增删新的内容来不断完善的. 测试用的应当放在团队内部协作平台上, 供项目相关人员审阅
fe619742721
2018-05-28 17:40:29 +08:00
我司只有业务测试人员,也就是纯人肉测试,他们是比开发还要懂业务逻辑和边界条件的人。。
nullcc
2018-05-28 17:45:15 +08:00
首先 unit test 不是测试人员写的,而是开发人员自己去写。越底层的代码需要越多的 unit test,参见“测试金字塔”,这里有一些 TDD 的思想在里面。一些 P2P test 或者 integration test,如果你们团队有 test automation 支持,可以让相关 TA 做,QA 主要关注软件行为,业界实践有所谓的 BDD。

大部分软件团队都停留在纯粹的测试人员手工测试,开发人员基本不写 unit test 的状态,当然,没时间是一个不错的借口。
luoway
2018-05-28 17:47:50 +08:00
@th00000 好的,多谢回答。

@fe619742721 一样,只是出现了没有测到的业务问题,开发和测试不约而同地上了线,实在过意不去。。。看来是要对测试加强要求了。
fe619742721
2018-05-28 17:51:05 +08:00
@luoway 这是一个责任划分问题。我们这边如果线上出了问题测试要负主要责任,所以上线前的测试期测试们会盯开发盯得很紧,如果测试期某开发被反馈 bug 过多严重影响测试进度也会被谈话,开发要对自己的产出负责,测试要对自己测试的结果负责
luoway
2018-05-28 17:52:26 +08:00
@nullcc 中文里掺杂英文看着不舒服,应该这样写:
这里有一些 测试驱动开发( TDD ) 的思想在里面……

现象确实如此,手工测试会随业务复杂而变得难以覆盖全面,作用式微,测试还是得考虑技术方面的解决方案,但这就需要高水平的人员参与了,比如软件开发工程师(测试方向) 。
annielong
2018-05-28 17:52:30 +08:00
还有一部分测试是要模拟用户的,用户上手根本不可能再给一个使用说明,一切都要盲测,
luoway
2018-05-28 17:54:23 +08:00
@fe619742721 理想情况是这样没错,不过我们确实没有如此严格执行。
lonelygo
2018-05-28 18:35:53 +08:00
好测试需要的能力和知道的肯定不少,但是肯定不能:
安装开发口述的内容做测试!

这种测试就是闹着玩:
程序员:小姐姐我做了个功能 1、2、3 你帮我点一下看看是不是 1、2、3。
小姐姐:嗯哪,是 1、2、3,没问题测试通过。
用户:什么鬼玩意啊,做的这是?

测试人员,起码按照 PRD 写用例,按照需求做测试,需求写不明白业务逻辑,开发肯定业做不明白。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458401

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX