《软件工作之美》材料地址: https://time.geekbang.org/column/article/94941
软件测试的主要工作是什么?
发现 Bug,报告 Bug,跟踪 Bug。
软件测试怎么发现 Bug?
专业测试人员和开发人员的测试用例会差很多
开发人员的重点,是放在如何实现功能上;对于测试人员来说,重点是在检测,也就是会考虑所有可能的用户使用场景,正常的、异常的,甚至各种极端情况。
测试人员通过有限的测试用例,保证尽可能多的测试覆盖。推荐阅读《微软的软件测试之道》
- 等价类划分
- 边界值分析
- 探索性测试
- 场景设计
- 因果图
- 错误推测法
软件测试怎么报告 Bug?
测试人员要做的就是创建一个新的 Ticket,在 Ticket 的描述中,详细说明 Bug 是什么,具体的重现步骤,必要的话还要附上截图、日志等辅助信息。这样开发人员在收到 Bug后就能快速定位问题,按照优先级对 Bug 进行修复。
软件测试怎么跟踪 Bug?
Bug 的跟踪,并不仅仅是要跟踪开发人员什么时候修复了这个Bug,通常还包括对 Bug 修复的验证。
回归测试是指修改了旧代码后重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误。
什么样的公司需要专职测试?
完全由开发人员兼职测试,还是很有难度的,不仅对开发人员要求非常高,而且需要开发人员承担所有的开发和测试的压力。
为什么 Facebook 可以做到没有专职测试呢?
- 大量优秀的工程师,可以同时兼任开发和测试;
- 有大量的自动化测试代码覆盖;
- 强大的发布和监控系统;
- 时间进度比较宽松;
- 用户对 Bug 容忍度较高。
对于不能满足上面条件的公司,有专职的测试是更有利于软件项目开发和质量保障的。
大厂不设专职测试的启示
- 用自动化测试代替重复性的手工测试是必然趋势
- 测试设计是软件测试人员的核心竞争力
- 开发人员和测试人员的更多融合是一种双赢。
精选留言
邢爱明
谁来做测试工作,这也是我一直比较疑惑的地方,和大家探讨一下。
我现在是甲方,主要做的是企业管理软件,业务逻辑和流程控制都比较复杂,部分系统是需要一些领域的专业知识。
软件开发的时候,基本采用的是瀑布模式。首先由专门的人员做需求澄清,分析和设计,一般我们称为业务分析师,他们这些人会输出软件的需求规格说明书,包括软件原型、详细说明word文件,然后交给开发团队进行功能设计、开发和交付。
在这种模式下,是否需要专职的软件测试人员,有两种意见。
第一种意见认为不需要测试人员,原因是业务逻辑复杂性,找一个普通的外部测试人员进来,还需要花较长的时间去了解需求,学习如何操作一些专业的应用软件,还需业务分析师花费宝贵的时间去做辅导学习。如果不让测试人员学习,就只能测试一些很简单的功能,对把控整个软件交付的质量作用非常小。解决方案就是让业务分析师兼职做测试工作,因为对需求本身非常清楚,学一点测试基础知识,在付出点加班时间,也是能完成功能测试工作的。
第二种观点是认为需要专职的测试人员,因为上一种方案中,需求分析师大部分做的还是正向测试,即按照自己设计的功能和流程,判断软件交付是否合格。但是对异常场景的测试还是比较少的,会导致软件上线后,在用户实际操作过程和设想的不同的时候,往往会出现一些功能异常,给用户的直接感受就是软件不稳定。所以说希望通过专业的测试人员,多采用一些探索式的测试方法,尽量多地发现软件中存在的缺陷,提升交付质量。
请老师帮忙分析一下,哪种方案更加合理一点?
我现在的做法比较折中,如果项目级别低、时间紧,预算也不充分,就采用第一种方案。
但如果项目重要度比较高,出了质量问题大家都接受不了,就想办法让项目经理多争取预算,保证有充分的外部测试资源投入。
老师回复:
我的观点是这种情况下需要专职测试的,业务分析师的重点应该是把需求文档写清楚。
业务复杂不能成为一个借口,想想看开发人员是怎么理解需求的,难道也是业务分析师代劳?肯定也是由业务分析师写成需求文档,然后开发人员基于文档开发,当然中间少不了很多确认环节。
测试也是类似,应该专业的人来做比较好,可以有更好的测试覆盖。一开始肯定是难一点,但是一段时间业务熟悉后,会极大提升整个团队的测试效率,而你也不需要再为这个问题纠结了。
kirogiyi
个人认为专职测试是必须的,但他们的主要职责不是测试软件Bug的存在,而是提供系统化的测试解决方案,指导构建完善的自动化测试系统,去引导和培训开发人员完成一系列的测试工作,去监督软件测试的过程和结果,随时提出建设性的意见和建议。最终目标是实现:谁污染谁治理的策略,也就是开发人员要对自己的产出负责,不对测试人员产生心理上的依赖,最大化的从源头上解决问题,以减少问题的传递链路。
(我赞同这个观点,但这个不叫专职测试,而是测试架构师,包括平台搭建,流程建立和引导执行等)
推荐测试用例管理工具testrail https://www.gurock.com/testrail