软件工程之美
宝玉
Groupon 资深工程师,微软最有价值专家
44272 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
软件工程之美
15
15
1.0x
00:00/00:00
登录|注册

32 | 软件测试:什么样的公司需要专职测试?

是否应该保留专职测试
公司是否有专职测试
公司是否需要专职测试取决于具体情况
软件测试工作概述
开发人员和测试人员融合
测试设计的重要性
自动化测试趋势
用户对Bug容忍度较高
强大的发布和监控系统
自动化测试覆盖
高质量工程师
公司情况决定
进行回归测试
验证Bug修复
提供截图、日志等辅助信息
提交详细Bug描述
使用Bug跟踪系统
探索性测试
边界值分析
等价类划分
非功能性测试
功能性测试
Bug跟踪
Bug报告
测试验证
测试设计
需求分析
课后思考
总结
大厂不设专职测试的启示
什么样的公司需要专职测试?
软件测试怎么跟踪Bug?
软件测试怎么报告Bug?
软件测试怎么发现Bug?
软件测试的主要工作是什么?
软件测试:什么样的公司需要专职测试?

该思维导图由 AI 生成,仅供参考

你好,我是宝玉,我今天想与你讨论一下,什么样的公司需要专职测试这个问题。
若干年前,网络上对于软件开发是否需要专职测试有过一次讨论,代表文章有:左耳朵耗子老师写的《我们需要专职的 QA 吗?》,然后邹欣老师对此回复《测试 QA 的角色和分工》。
从这些年业界发展趋势来看,看起来很多公司都不需要专职测试了,只需要开发兼任测试工作就可以了。比如,Facebook 号称自己没有专职测试工程师,Google 和 Amazon 虽然有专职的测试工程师,但都是开发人员对质量负责,开发人员写大量的自动化测试代码。但这样真的可行吗?
在回答这个问题之前,我们还是先来看看,软件测试的主要工作是什么?只有搞清楚软件测试的工作,才能搞清楚这部分工作是否可以由开发来替代,是否需要专职测试。

软件测试的主要工作是什么?

在前面开发篇内容的学习中,我们对开发的工作已经比较了解了:在需求确定后,开发人员开始针对需求进行架构设计,然后编码,最后对发现的 Bug 进行修复,保障线上稳定运行。
而软件测试也类似,也是从需求开始,在需求确定后要去对需求进行分析,然后做测试设计。
如果说架构设计是对业务需求在技术方面的抽象,那么测试设计更像是对业务需求的具象,把业务需求分解成一个个具体的用户操作步骤,也就是测试用例。然后在开发完成后,按照设计好的测试用例进行逐一的测试验证,将发现的 Bug 报告给开发人员,并跟踪 Bug 的修复。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

软件测试在不同公司中的需求情况备受关注。本文详细介绍了软件测试的主要工作,包括发现、报告和跟踪Bug的过程。专业测试人员需要考虑更全面的测试用例,包括功能性和非功能性测试,并通过Bug跟踪系统提交Bug给开发人员。文章还探讨了为什么一些大公司如Facebook、Google和Amazon可以不设专职测试的原因,以及对其他公司的启示。总结指出,公司是否需要专职测试取决于具体情况,如是否有大量优秀的工程师、自动化测试代码覆盖、强大的发布和监控系统、进度宽松以及用户对Bug容忍度。文章强调了自动化测试、测试设计和开发与测试人员更多融合的重要性。读者可通过本文了解软件测试的工作流程和方法,以及公司是否需要专职测试的考量因素。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件工程之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • 砍你一刀
    老师您好,能发不分享一个比较好的测试用例模板,谢谢

    作者回复: 我建议你试试testrail,它的测试用例模板非常专业。 对于测试用例,几个关键的字段是: 标题、描述、优先级、分类 测试类型:功能测试、性能测试、回归测试、冒烟测试。。。 自动化状态:没有自动化、只能手动测试、只能自动化、集成CI。。。 先决条件:这个用例需要满足好什么条件 测试步骤:写清楚一步步的执行步骤 期望结果:操作完成后结果应该是什么样的 等等

    2019-05-17
    11
  • 拉欧
    对于中国的开发,最大的瓶颈一是时间二是心理,需求都做不过来的时候很难考虑测试的完整性;破坏性测试本身是反程序员思维的,要突破这层心理也要专门的训练才可以

    作者回复: 是的,时间是个很重要因素,大部分项目都是时间很紧很紧的。如果时间紧,首先被砍的就是自动化测试。

    2019-05-14
    9
  • 邢爱明
    谁来做测试工作,这也是我一直比较疑惑的地方,和大家探讨一下。 我现在是甲方,主要做的是企业管理软件,业务逻辑和流程控制都比较复杂,部分系统是需要一些领域的专业知识。 软件开发的时候,基本采用的是瀑布模式。首先由专门的人员做需求澄清,分析和设计,一般我们称为业务分析师,他们这些人会输出软件的需求规格说明书,包括软件原型、详细说明word文件,然后交给开发团队进行功能设计、开发和交付。 在这种模式下,是否需要专职的软件测试人员,有两种意见。 第一种意见认为不需要测试人员,原因是业务逻辑复杂性,找一个普通的外部测试人员进来,还需要花较长的时间去了解需求,学习如何操作一些专业的应用软件,还需业务分析师花费宝贵的时间去做辅导学习。如果不让测试人员学习,就只能测试一些很简单的功能,对把控整个软件交付的质量作用非常小。解决方案就是让业务分析师兼职做测试工作,因为对需求本身非常清楚,学一点测试基础知识,在付出点加班时间,也是能完成功能测试工作的。 第二种观点是认为需要专职的测试人员,因为上一种方案中,需求分析师大部分做的还是正向测试,即按照自己设计的功能和流程,判断软件交付是否合格。但是对异常场景的测试还是比较少的,会导致软件上线后,在用户实际操作过程和设想的不同的时候,往往会出现一些功能异常,给用户的直接感受就是软件不稳定。所以说希望通过专业的测试人员,多采用一些探索式的测试方法,尽量多地发现软件中存在的缺陷,提升交付质量。 请老师帮忙分析一下,哪种方案更加合理一点? 我现在的做法比较折中,如果项目级别低、时间紧,预算也不充分,就采用第一种方案。 但如果项目重要度比较高,出了质量问题大家都接受不了,就想办法让项目经理多争取预算,保证有充分的外部测试资源投入。

    作者回复: 我的观点是这种情况下需要专职测试的,业务分析师的重点应该是把需求文档写清楚。 业务复杂不能成为一个借口,想想看开发人员是怎么理解需求的,难道也是业务分析师代劳?肯定也是由业务分析师写成需求文档,然后开发人员基于文档开发,当然中间少不了很多确认环节。 测试也是类似,应该专业的人来做比较好,可以有更好的测试覆盖。一开始肯定是难一点,但是一段时间业务熟悉后,会极大提升整个团队的测试效率,而你也不需要再为这个问题纠结了。

    2019-05-15
    7
  • 许童童
    如果测试的工资能够给到开发的话,我觉得作为开发,就不需要专职的测试人员了。

    作者回复: 我觉得这也不完全是钱的事情,毕竟还需要投入很多时间在上面,对于开发人员来说,主要时间都用来实现功能和修复Bug了。 另外要做好测试,和写好代码还是有些不一样的地方,尤其是要破坏性的去测试自己写的程序,总还是要投入一些经历去学习这些专业的测试知识。

    2019-05-14
    5
  • 易林林
    个人认为专职测试是必须的,但他们的主要职责不是测试软件Bug的存在,而是提供系统化的测试解决方案,指导构建完善的自动化测试系统,去引导和培训开发人员完成一系列的测试工作,去监督软件测试的过程和结果,随时提出建设性的意见和建议。最终目标是实现:谁污染谁治理的策略,也就是开发人员要对自己的产出负责,不对测试人员产生心理上的依赖,最大化的从源头上解决问题,以减少问题的传递链路。 另外,向宝玉老师请教下:最近发现一种现象是开发人员面对测试人员的时候,会展现出一种职业选手遇到业余选手的姿态,有傲慢有理所当然,我觉得这是一种不正常的心理状态。您觉得应该怎么去管理?

    作者回复: 这确实是常见的现象,核心还是多一起合作多相互了解吧,让开发人员看到测试的核心价值,就是对测试方案的设计。 我对测试人员敬佩的地方不在于他们会写自动化测试,毕竟这个我写起来还更好,而是他们总能从我没想到的角度测试出来Bug,从而帮助我提升程序质量。 可以安排一些开发人员和测试人员一起合作的事情,比如测试人员提供测试方案测试用例,开发人员按照测试用例去实现自动化测试,让开发人员明白做好测试其实不是他们想的那么容易的事。

    2019-05-14
    5
  • 纯洁的憎恶
    我们公司软件开发采用外包团队,IBM是我们最主要的开发商。但是,开发团队从leader到顾问,再到开发工程师几乎都是IBM在市场上招的临时人员,没有IBM正式员工。给我的感觉是这些人工作非常认真负责、执行力强,但是业务能力确实比较普通。比如他们不用软件工程管理工具,更不要提自动化测试、持续集成和敏捷开发了。还有没有专职的测试人员,业务顾问和开发人员一起测试,回滚也是纯手工,耗时耗力经常加班。我觉得IBM的牌子不至于这样吧,于是私下调研了一下,感觉成本因素影响很大。IBM也有很专业的团队,但基本负责内部软件建设,即使提供外部服务价格也要高出一个数量级。

    作者回复: 你说的这种情况我有知道,不止IBM,还有微软也这样,微软有一个部门叫MCS,顾问咨询部,他们和一些外包公司合作,自己出几个顾问带队,其他都是外包公司的员工,质量层次不齐。 核心因素确实是成本。

    2019-05-14
    5
  • Charles
    我经历过一个项目刚开始没有专职测试,研发部门和其他业务部门一起做测试,研发部门找到的问题更多的是老师文章中讲的程序员正向思维下的功能bug,而其他业务部门更像是用户,主要走的是正常的使用流程,根本没办法覆盖到特殊的边界类测试,后来招了专职测试才体会到什么叫专业的测试设计,虽然可能不是最好的,但是也比非专职的要好太多了,线上问题明显减少,所以我认为专职测试必须的 另外有一个题外问题,不知道老师是否可以给点建议,创业做软件外包或技术服务的公司目前的市场环境还有出路吗?

    作者回复: 这个问题我就真不知道了。 有需求就有市场,只要外包或技术服务这个需求在,肯定是有市场的,但竞争多的话,利润空间已经不会太高了。作出创业初期积累,倒是比直接做产品靠谱点,就是得想好未来怎么走。

    2019-05-15
    3
  • ikel
    我们公司有专门的测试。就是流动性比较大,新人老是向开发咨询问题,测试内部缺失有力的培训。

    作者回复: 测试离职率高是什么原因造成的呢?工资低?工作量大?和开发不和? 我觉得还是得花点时间考虑清楚这个问题,然后让离职率降低下来,让测试团队稳定下来,人员稳定了,很多问题就迎刃而解了。

    2019-05-15
    2
    2
  • 谭鹏
    移动端的测试 都是靠手工操作 而且是程序员 自测 先把测试用例写出来 给测试 。测试看都不看 直接 动手测试

    作者回复: 这样的话,是不是程序员直接按照测试用例写自动化测试更好?

    2019-05-15
    2
  • 胖虫子
    要求测试懂开发,那直接做开发不完了。工资还高不是

    作者回复: 要求测试懂开发,并不是说要让测试去干开发的活,而是说让测试人员能通过技术手段,让一些本来需要手工去做的测试工作,可以通过自动化或者半自动化的方式来做,从而提升测试效率。 比如说你有个网站,每次发布后都需要做常规的注册、登录、发布等操作,这样的操作用鼠标键盘人工一个个来做,完整做一遍可能要半小时。但是你懂开发,基于NightWatch https://nightwatchjs.org/ 这样的测试框架,写一个测试脚本,估计每次10分钟不到就测试完了,而且测试过程完全不需要人工干预。 这样不仅可以提升单次测试效率,还可以极大的降低测试成本,从而可以做更多的测试,每次发布都可以完整的测试,及时发现可能存在的问题。 另外测试开发的要求和软件开发的要求是不一样的,测试开发侧重的是用技术手段自动化的去测试软件验证功能需求,要求懂测试,用好或者自己构建自动测试框架;而软件开发侧重的是构建软件,实现功能需求,要求你有开发、架构的能力。 也许过去要求测试懂开发算是高要求,现在和将来一定是基本要求,未来普通的手工测试是没什么竞争力的。

    2019-11-18
    1
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部