32 | 软件测试:什么样的公司需要专职测试?
32 | 软件测试:什么样的公司需要专职测试?
讲述:宝玉
时长14:15大小13.06M
软件测试的主要工作是什么?
软件测试怎么发现 Bug?
软件测试怎么报告 Bug?
软件测试怎么跟踪 Bug?
什么样的公司需要专职测试?
为什么 Facebook 可以做到没有专职测试呢?
大厂不设专职测试的启示
总结
课后思考
赞 7
提建议
精选留言(18)
- 砍你一刀2019-05-17老师您好,能发不分享一个比较好的测试用例模板,谢谢
作者回复: 我建议你试试testrail,它的测试用例模板非常专业。 对于测试用例,几个关键的字段是: 标题、描述、优先级、分类 测试类型:功能测试、性能测试、回归测试、冒烟测试。。。 自动化状态:没有自动化、只能手动测试、只能自动化、集成CI。。。 先决条件:这个用例需要满足好什么条件 测试步骤:写清楚一步步的执行步骤 期望结果:操作完成后结果应该是什么样的 等等
9 - 拉欧2019-05-14对于中国的开发,最大的瓶颈一是时间二是心理,需求都做不过来的时候很难考虑测试的完整性;破坏性测试本身是反程序员思维的,要突破这层心理也要专门的训练才可以
作者回复: 是的,时间是个很重要因素,大部分项目都是时间很紧很紧的。如果时间紧,首先被砍的就是自动化测试。
7 - 邢爱明2019-05-15谁来做测试工作,这也是我一直比较疑惑的地方,和大家探讨一下。 我现在是甲方,主要做的是企业管理软件,业务逻辑和流程控制都比较复杂,部分系统是需要一些领域的专业知识。 软件开发的时候,基本采用的是瀑布模式。首先由专门的人员做需求澄清,分析和设计,一般我们称为业务分析师,他们这些人会输出软件的需求规格说明书,包括软件原型、详细说明word文件,然后交给开发团队进行功能设计、开发和交付。 在这种模式下,是否需要专职的软件测试人员,有两种意见。 第一种意见认为不需要测试人员,原因是业务逻辑复杂性,找一个普通的外部测试人员进来,还需要花较长的时间去了解需求,学习如何操作一些专业的应用软件,还需业务分析师花费宝贵的时间去做辅导学习。如果不让测试人员学习,就只能测试一些很简单的功能,对把控整个软件交付的质量作用非常小。解决方案就是让业务分析师兼职做测试工作,因为对需求本身非常清楚,学一点测试基础知识,在付出点加班时间,也是能完成功能测试工作的。 第二种观点是认为需要专职的测试人员,因为上一种方案中,需求分析师大部分做的还是正向测试,即按照自己设计的功能和流程,判断软件交付是否合格。但是对异常场景的测试还是比较少的,会导致软件上线后,在用户实际操作过程和设想的不同的时候,往往会出现一些功能异常,给用户的直接感受就是软件不稳定。所以说希望通过专业的测试人员,多采用一些探索式的测试方法,尽量多地发现软件中存在的缺陷,提升交付质量。 请老师帮忙分析一下,哪种方案更加合理一点? 我现在的做法比较折中,如果项目级别低、时间紧,预算也不充分,就采用第一种方案。 但如果项目重要度比较高,出了质量问题大家都接受不了,就想办法让项目经理多争取预算,保证有充分的外部测试资源投入。展开
作者回复: 我的观点是这种情况下需要专职测试的,业务分析师的重点应该是把需求文档写清楚。 业务复杂不能成为一个借口,想想看开发人员是怎么理解需求的,难道也是业务分析师代劳?肯定也是由业务分析师写成需求文档,然后开发人员基于文档开发,当然中间少不了很多确认环节。 测试也是类似,应该专业的人来做比较好,可以有更好的测试覆盖。一开始肯定是难一点,但是一段时间业务熟悉后,会极大提升整个团队的测试效率,而你也不需要再为这个问题纠结了。
6 - 许童童2019-05-14如果测试的工资能够给到开发的话,我觉得作为开发,就不需要专职的测试人员了。
作者回复: 我觉得这也不完全是钱的事情,毕竟还需要投入很多时间在上面,对于开发人员来说,主要时间都用来实现功能和修复Bug了。 另外要做好测试,和写好代码还是有些不一样的地方,尤其是要破坏性的去测试自己写的程序,总还是要投入一些经历去学习这些专业的测试知识。
5 - 易林林2019-05-14个人认为专职测试是必须的,但他们的主要职责不是测试软件Bug的存在,而是提供系统化的测试解决方案,指导构建完善的自动化测试系统,去引导和培训开发人员完成一系列的测试工作,去监督软件测试的过程和结果,随时提出建设性的意见和建议。最终目标是实现:谁污染谁治理的策略,也就是开发人员要对自己的产出负责,不对测试人员产生心理上的依赖,最大化的从源头上解决问题,以减少问题的传递链路。 另外,向宝玉老师请教下:最近发现一种现象是开发人员面对测试人员的时候,会展现出一种职业选手遇到业余选手的姿态,有傲慢有理所当然,我觉得这是一种不正常的心理状态。您觉得应该怎么去管理?展开
作者回复: 这确实是常见的现象,核心还是多一起合作多相互了解吧,让开发人员看到测试的核心价值,就是对测试方案的设计。 我对测试人员敬佩的地方不在于他们会写自动化测试,毕竟这个我写起来还更好,而是他们总能从我没想到的角度测试出来Bug,从而帮助我提升程序质量。 可以安排一些开发人员和测试人员一起合作的事情,比如测试人员提供测试方案测试用例,开发人员按照测试用例去实现自动化测试,让开发人员明白做好测试其实不是他们想的那么容易的事。
5 - 纯洁的憎恶2019-05-14我们公司软件开发采用外包团队,IBM是我们最主要的开发商。但是,开发团队从leader到顾问,再到开发工程师几乎都是IBM在市场上招的临时人员,没有IBM正式员工。给我的感觉是这些人工作非常认真负责、执行力强,但是业务能力确实比较普通。比如他们不用软件工程管理工具,更不要提自动化测试、持续集成和敏捷开发了。还有没有专职的测试人员,业务顾问和开发人员一起测试,回滚也是纯手工,耗时耗力经常加班。我觉得IBM的牌子不至于这样吧,于是私下调研了一下,感觉成本因素影响很大。IBM也有很专业的团队,但基本负责内部软件建设,即使提供外部服务价格也要高出一个数量级。展开
作者回复: 你说的这种情况我有知道,不止IBM,还有微软也这样,微软有一个部门叫MCS,顾问咨询部,他们和一些外包公司合作,自己出几个顾问带队,其他都是外包公司的员工,质量层次不齐。 核心因素确实是成本。
5 - Charles2019-05-15我经历过一个项目刚开始没有专职测试,研发部门和其他业务部门一起做测试,研发部门找到的问题更多的是老师文章中讲的程序员正向思维下的功能bug,而其他业务部门更像是用户,主要走的是正常的使用流程,根本没办法覆盖到特殊的边界类测试,后来招了专职测试才体会到什么叫专业的测试设计,虽然可能不是最好的,但是也比非专职的要好太多了,线上问题明显减少,所以我认为专职测试必须的 另外有一个题外问题,不知道老师是否可以给点建议,创业做软件外包或技术服务的公司目前的市场环境还有出路吗?展开
作者回复: 这个问题我就真不知道了。 有需求就有市场,只要外包或技术服务这个需求在,肯定是有市场的,但竞争多的话,利润空间已经不会太高了。作出创业初期积累,倒是比直接做产品靠谱点,就是得想好未来怎么走。
3 - ikel2019-05-15我们公司有专门的测试。就是流动性比较大,新人老是向开发咨询问题,测试内部缺失有力的培训。
作者回复: 测试离职率高是什么原因造成的呢?工资低?工作量大?和开发不和? 我觉得还是得花点时间考虑清楚这个问题,然后让离职率降低下来,让测试团队稳定下来,人员稳定了,很多问题就迎刃而解了。
共 2 条评论2 - 谭鹏2019-05-15移动端的测试 都是靠手工操作 而且是程序员 自测 先把测试用例写出来 给测试 。测试看都不看 直接 动手测试
作者回复: 这样的话,是不是程序员直接按照测试用例写自动化测试更好?
2 - 胖虫子2019-11-18要求测试懂开发,那直接做开发不完了。工资还高不是
作者回复: 要求测试懂开发,并不是说要让测试去干开发的活,而是说让测试人员能通过技术手段,让一些本来需要手工去做的测试工作,可以通过自动化或者半自动化的方式来做,从而提升测试效率。 比如说你有个网站,每次发布后都需要做常规的注册、登录、发布等操作,这样的操作用鼠标键盘人工一个个来做,完整做一遍可能要半小时。但是你懂开发,基于NightWatch https://nightwatchjs.org/ 这样的测试框架,写一个测试脚本,估计每次10分钟不到就测试完了,而且测试过程完全不需要人工干预。 这样不仅可以提升单次测试效率,还可以极大的降低测试成本,从而可以做更多的测试,每次发布都可以完整的测试,及时发现可能存在的问题。 另外测试开发的要求和软件开发的要求是不一样的,测试开发侧重的是用技术手段自动化的去测试软件验证功能需求,要求懂测试,用好或者自己构建自动测试框架;而软件开发侧重的是构建软件,实现功能需求,要求你有开发、架构的能力。 也许过去要求测试懂开发算是高要求,现在和将来一定是基本要求,未来普通的手工测试是没什么竞争力的。
1 - 小老鼠2019-08-16我是一名软件测试专家,1997年从事开发、2002年从事软件测试。现在都在说去QE,全栈软件工程师。我认为认为这是错误的,术业有专攻,闻道有先后,这是非常有道理的,让专业人来作专业事。我认为不是去QE,而是如何更友好地让开发与测试有效沟通,比如可让测试去设计测试用例,开发编码完毕去执行。另外现在有许多公司都在快速发布,快速迭代,您说他们时间宽裕吗,No,只是对质量要求不高而已。
作者回复: 👍您说的观点我大部分认同! 术业有专攻,一个专业资深测试是很难被替代的,但加强开发和测试的协作是很有必要的。 “现在有许多公司都在快速发布,快速迭代,您说他们时间宽裕吗,No,只是对质量要求不高而已。” 振聋发聩! 有一点我有不同意见在于快速发布快速迭代“并不都是”代表对质量要求不高,而是一种开发模式,一种在速度和质量上达到平衡的模式。比如说现在Windows是几个月发布一个版本,质量肯定是下降了,但同时另一个角度也更快的适应了市场的需要。
1 - beiler2019-06-01老师,最近公司需求,发现手动测试接口效率非常低,我计划做一套自动化测试框架,我之前试用了jmeter,发现写代码太费事,我计划用python写,这样我盯住接口协议即可,不知道老师你们用的接口协议管理软件是什么?是rap2还是swagger,这俩哪个更易于导出json接口,进行自动化测试
作者回复: 抱歉你问的这两个我都没用过。 我建议你可以写两个简单原型分别测试以下,看看哪个更适合你。 不管怎么样,自动化测试的大方向是没有问题的!
1 - 和2019-05-22我的单位,当然不是软件公司喽,但是企业内部也会开发一些业务类软件。可是从需求分析到设计,开发,测试,部署,运维,都是我一个人的工作。请问老师,这样的情况,您觉得如何工作,效果会更好一些呢
作者回复: 对于这个问题,我觉得你可以自己先分析一下,你觉得目前哪些地方做的好,哪些地方可以有改进? 可以从几个方面分析,比如: 工具: 有没有用源代码管理工具? 有没有用持续集成跑单元测试? 有没有用Bug/任务跟踪系统? 开发流程: 多长时间一个项目周期,一个功能从开发到上线要多长时间?质量如何? 有没有做需求分析和确认?会不会做出来东西不是业务部门想要的? 有没有开发前先做简单的技术设计? 有没有写一些基础的测试用例? 有没有开发后自己测试和找业务部门帮忙测试? 线上的故障有没有一个合适的流程去处理? 有没有写一些基本的文档,如果来一个新人了能否接手? 技术实践: 有没有写自动化测试? 有没有用好的技术框架或开源组件? 有没有自动化部署? 分析出问题,知道哪些地方做的不够好以后,就可以有一个改进的计划 ,看如何将改进方案落实下来。 还有就是一个人开发,缺少向其他人合作和学习的机会,可以有意识的创造更多这样的机会,比如内部多和其他部门合作。外面可以参与一些开源项目。
共 3 条评论1 - hua1682019-05-20老师,现在不是流行,测试驱动开发吗?不是先写测试代码再写实现代码的吗? 那还完写完再让专门的测试去测?
作者回复: 测试驱动是一种很好的开发实践,但普及率也不算很高。 可以看到自动化测试那一篇,测试驱动写的是单元测试,并不能保证不出Bug,只是说能有效提升代码质量。 还有就是开发人员测试自己代码,很容易遗漏编码时就没考虑到的逻辑。
1 - 纯洁的憎恶2019-05-15看来是否需要专职测试人员,在一定程度上需要视具体业务情境而定。不同的情境会有不同的异常情况和极端情况,需要有针对性的设计出完备的测试用例。而且在bug修复后,也要保证修复本身没有bug。所以测试也是一个系统性的工作,如果取消专职测试人员,不仅对开发业务水平要求更高,还需要项目自身的不确定性低一些。感觉有测试思维的发开人员,更有可能写出健壮的代码。
作者回复: 👍赞,非常好的总结分享。
1 - ifelse2022-07-04公司是否需要专职测试,还是取决于公司的具体情况,例如是否有大量优秀的工程师可以同时兼任开发和测试,有大量的自动化测试代码覆盖,有强大的发布和监控系统,进度宽松,用户对 Bug 容忍度较高。--记下来
- 胖虫子2019-11-19自动化测试不能代替测试
作者回复: 是的,不能完全替代,只能部分替代
- 六维2019-06-26有专职的测试。需要保留,因为公司项目进度紧,大多数都是直接定了deadline,开发基本上能做到这一点已经很不容易了。
作者回复: 👍是的,专职测试是能分担很多工作的!