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

31 | 软件测试要为产品质量负责吗?

项目负责人
开发人员
软件测试
项目负责人
软件测试人员
开发人员
用户
人人为产品质量负责需要建立重视质量的文化
软件质量体现在功能质量、代码质量和过程质量
制度鼓励
工种融合
团队拆小
扁平化管理
排序:项目负责人 > 开发人员 > 软件测试
主要角色
责任和权力的对等
三个考量方面:功能、结构和流程
不同人对软件质量的评判角度
总结
如何做到“人人为产品质量负责”?
谁该为产品质量负责?
什么是软件产品质量?
软件测试要为产品质量负责吗?

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

你好,我是宝玉。从这一篇开始,我们将进入软件工程中的测试模块的学习。
说到软件测试,你一定不会陌生,尤其是如果你做开发相关岗位的话,一定是对测试又爱又恨,一方面测试从你的程序找出 Bug,然后你还要费心去修复;另一方面测试帮你发现 Bug,修复后能很好的提升质量。
正因为测试能发现软件中的质量问题,通过测试能有效提升软件质量,慢慢的大家就觉得软件测试能保障质量,所以测试要对质量负责。开发也会对测试产生依赖心理,很多功能模块实现后,就扔给测试人员去测试。
上线后,如果因为有测试漏测导致的 Bug,测试人员还要为质量问题背锅,受到责备。上面这样的场景到现在也还在很多软件项目中上演。但这对测试人员其实是不公平的。
因为软件开发是多个环节组成的,从最开始的需求,到后面的设计、开发,每个环节都可能会导致质量问题,而测试只能对已经开发完成的软件产品进行检测,并不能干预整个过程。
比如说测试是无法对开发写的代码直接测试的,只能基于软件功能去测试,也就是说对于代码的质量,测试人员其实是没有什么办法的。
那到底谁应该为产品质量负责呢?在回答这个问题之前,你不妨先思考一个更本质的问题:什么是软件产品质量?

什么是软件产品质量?

确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文探讨了软件测试在软件产品质量中的责任问题,强调了软件质量是由功能、结构和流程共同决定的。在讨论责任问题时,文章认为项目负责人应该首要负责产品质量,其次是开发人员,最后才是软件测试。文章还提到了敏捷开发中的理念,强调项目所有人一起为产品质量负责。文章结合实际案例,强调了开发人员对代码质量和功能质量负责的重要性,以及敏捷开发理念的可取之处。文章提出了建立重视产品质量的文化的方法,包括扁平化管理、团队拆小、工种融合和制度制定等。最后,文章呼吁读者思考在团队中如何建立重视质量的文化,并分享讨论。 文章强调了软件质量是一个多方共同决定的问题,提出了项目负责人、开发人员和测试人员在产品质量中的责任分工。同时,文章还介绍了建立重视产品质量的文化的方法,为读者提供了实用的建议。

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

全部留言(20)

  • 最新
  • 精选
  • 易林林
    产品设计、软件开发、软件测试都应该对产品质量负责。 产品设计要重视产品需求的完整性,提升用户的操作舒适感,展现流畅的页面逻辑设计,这是产生良好软件质量的开端。在进行产品设计评审的时候,除了评审人员外,相应的软件开发团队和软件测试团队一定要派人员参加,不能坐等任务分配。有的开发团队和测试团队不去了解需求和产品设计情况,只是一味的等待产品的UI设计,久而久之,就形成了少交流多看文档的习惯,于是大家就开始机械般各顾各的,做完了扔出去就好,就很难在产品质量上达成共识。 软件开发是核心,开发人员对产品的理解程度和自身的技术水平决定了产品的质量和迭代周期。如果开发团队不去与产品团队交流,不去与测试团队核对测试用例,那么在开发过程中大多只会去关注是否实现和能否实现,至于产品质量出现的问题就不是他们关注的重点。然后就会自私的认为产品设计需要增删改是产品团队的原因,产品上线出现bug是测试团队没有覆盖到,部门之间的战争就开始酝酿直至爆发。 软件测试更多的是发现问题、监督问题和约束行为。发现问题的重点在于通过完善的测试覆盖,去找到开发过程中的盲点,而不是去为别人的疏忽大意导致的错误埋单,比如:开发提交的产品有错别字什么的,这种错误就是开发负责人应该承担的。在明确发现问题后,测试团队有权利去监督开发团队解决问题,直至问题得以彻底解决。除此之外,测试团队可以对开发团队行为进行约束,双方协作完成自动化测试体系和流程的构建,共同遵守规则:开发团队负责单元测试、集成测试和系统测试的代码编写,测试团队负责查缺补漏和必要的人工测试。 因此,个人认为,产品、开发、测试的紧密合作是保障产品质量的必备条件。

    作者回复: 👍👍感谢分享! 非常有价值的补充!

    2019-05-11
    11
  • 陈丹
    测试原则中有一条是不能测试自己的代码,facebook开发自己测试自己的代码,也会有问题,除非交叉测试

    作者回复: 👍是的,自己测试自己的代码是很容易有盲区的,需要交叉测试

    2019-08-22
    5
  • 蓝黑
    个人觉得过程质量很大程度影响代码质量和功能质量,没有项目经理对整个项目的把控,例如在开发过程中不设立代码审查环节,开发人员随意签入低质量代码,从而影响软件代码质量,还有在开发过程中没有做好需求评审环节的工作,从而影响软件的功能质量,所以高的过程质量可以很大程度上提高软件的代码质量和功能质量

    作者回复: 👍支持你的观点,对过程的质量把握至关重要。

    2019-07-05
    3
  • hua168
    质量是怎么打分的?算进KPI考核吧? 直接用代码质量管理软件(如sonar)实现自动检查可以吧?

    作者回复: 很遗憾,都不好量化,软件检查只是辅助,可以作为一个参考。 代码质量要看满足需求,是否设计良好,代码简洁逻辑清晰,可维护、可测试、安全高性能 过程质量要看开发过程对软件工程和项目管理知识的应用 功能质量要看客户满意度

    2019-05-12
    3
  • 我们公司团队小,每次app开发完成后,要求测试人员组织开发全体测试2次,用于保证质量。团队小测试人员技术有限,性能,安全等一般难以保证。

    作者回复: 其实即使是小团队,也应该加大对自动化测试对投入,绝对是磨刀不误砍柴工,这样App开发完成后,很多测试就可以自动化完成,节约时间和人力。 当然在没有自动化测试的覆盖的话,这也是很好的一种测试方式。

    2019-05-12
    3
  • 行与修
    项目负责人为软件质量总责任人。功能,代码,过程都要关注,并不一定要亲力亲为,因为除了质量他还要兼顾范围、时间和成本。提升质量意识最理想状态是组员有质量人人有责的意识与行动,但实际上这很难。如果自下而上做不到,就自上而下用制度强推,有奖有罚。最后补充一点就是推行质量保障是需要公司层面作为支持的,否则在推行过程中会有不少阻力,也许在强人项目经理的推动下,个别项目能做的很好,但心会很累~

    作者回复: 赞,确实还要考虑金三角的因素。 软件项目呢,也并非一定要有强人项目经理,其实只要按照软件工程,踏踏实实做好每一个环节,质量就不会差到哪去。 比如说在需求上多花点时间精力,把需求确认清楚,这就成本一半了,然后再基于确定的需求做好架构设计再开发,最后开发后做好测试,那么质量就有了基本保障了。

    2019-05-11
    3
  • javaadu
    有一定影响,刚开始很不习惯(现在也有不少同事不习惯),没有测试为开发写测试用例了,作为开发者就要有更好的测试意识,要自己组织测试评审,有些好的核心的测试用例要及时加入到集成测试中。测试人员也转型为测试开发,将精力投入到测试平台的打造上。

    作者回复: 👍有测试意识能提升代码质量,其实挺好的

    2019-05-24
    2
  • 纯洁的憎恶
    解铃还须系铃人,要想提高软件质量,就要着眼于整个生产链条,每一个环节都要为提高质量出力,而绝不能仅仅依靠质量监控岗位或部门。相反,很多企业设置了类似的部门或岗位,并把质量、安全的重担压在他们肩上,但又没有赋予足够的权力去介入、影响整个链条,结果可想而知。不谋全局者不足以谋一域啊。 把整体质量按照生产链条或链条上的不同角色,划分为若干子部分。通过有机的把控各个子部分质量,形成合力,达到提高整体质量的目的。

    作者回复: 👍是的,很多都只要求QA为质量负责,而不赋予权力! 有时候单纯子质量和全局质量还是有冲突,比如开发追求代码质量可能会导致延期影响过程质量。不仅要有之部分质量目标,还是大家有共同的质量目标。做好确实不容易

    2019-05-15
    2
  • Charles
    目前理论上我们整体质量负责是项目经理 但是团队小,所以一碰到线上问题,基本上boss都知道是哪一块出的问题,直接找对应的岗位了,然后通过这个人出发去解决问题,这个人发现需要协调,人少就自己直接对接,人多就项目经理协调 另外我认为除了老师说的这些流程和自动化来保证产品质量,可能对于小团队而言,人的因素也很重要,发自内心的责任感、对产品的认可并且产品数据持续增长还有boss福利给到位,产品质量就已经有一大半成功了

    作者回复: 对,人是很重要的因素。自动化测试就是可以减少对人的依赖,当然这也有点像先有鸡还是先有蛋的难题,还是要先有人才能把流程、自动化这些建设起来:)

    2019-05-11
    2
  • javaadu
    产品经理(pd)为功能质量负责 项目经理(pm)为过程质量,代码质量负责,开发人员经常兼任技术pm 没有测试人员,有完整的ci基础平台

    作者回复: 👍感谢分享 你觉得没有测试人员,软件质量有没有受影响呢?

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