关于软件质量保障的体会

  首先,软件质量保障的重要性不言而喻,书中说软件质量体现在以下方面

  • 软件开发过程的可见性
  • 软件开发过程的风险控制
  • 软件内部模块,项目中间阶段的交付质量,项目管理工具的因素
  • 软件开发成本的控制
  • 内部质量指标的完成情况

  有一套较为成熟的理论来衡量各个软件工程的质量——CMMI(Capacity Maturity Model Integrateg),即能力成熟度模型集合。

  同时要达到一定的软件质量是需要付出一定的成本的,新功能的开发固然重要但是同时也必须要投入一定的成本来保证已有公的质量解决问题。这就是要各部门的人团队合作才能做到。

  无论QA(Quality Assurance)还是Test都是在为软件的质量作保障,不应过分独立开来。明确的分工固然是重要的,可以提升工作的效率和质量但是我觉得"合作是分工的基础",书中用足球来举例说明分工的重要性,说有专注进攻的,有专注防守的。但是不论进攻还是防守永远都是一个团队一个整体,竞技体育就更是如此了,其实你拥有世界上最优秀的前锋,最优秀的个人能力,也有可能被一个防守阵型弄的焦头烂额。同样,即使你的防守个人能力再好,也有可能被几个传切配合轻易撕破防线。团队协作是分工的基础,没有良好的配合分工只会无故平添烦恼,多增问题。邹老师在总结中有几个观点我觉得说的非常好:

  • 在初始阶段(新项目,团队进入一个新领域,人员刚进入一个新项目),每个团队成员都要尽量打通各个环节,多负责,把所有的事都搞懂,培养通才。
  • 当项目/产业发展到一定阶段(计入阵地战的时候),要大力提倡分工合作,培养专才。

  只有当你对所有的工作流程都理解,才能在根本上意识到自己的岗位的精髓所在。QA(Quality Assurance)本身就包括Test,所以我觉得两者本身并不冲突不应将这两者完全独立。

如果我是一个项目的QA我觉得我的工作职责范围是:

  我觉得一名优秀的QA必须是能全方位理解项目的从开发到测试都需要,不懂开发的人是必然的做不好QA的,同时其实无论QA(Quality Assurance)还是Test都是在为软件的质量作保障,不应过分独立开来。只要根本的了解开发,掌握开发,才能做好质量保障,同样的Dev也应该懂得测试,这两个种本身就是两个相辅相成的岗位,在良好和做的基础上才能建立明确的分工。

如果我是一名项目经理,我认为我得项目中不需要绝对的专职QA:


文章中有一句话说的是特别好的:

  

  不懂开发的人必然做不好测试。就像不懂开发的研发经理必然管不好研发团队一样。我越来越觉得Dev应该应该是做测试最合适的人选,这必然是未来的趋势 (因为我已经看到了中国程序员的进步,相比起10年前,今天的程序员已经是非常全面了,再来十年,必然证明我的观点是对的)。

  没错,不懂开发的人就是应该做不好QA,对一个项目本身的基础都不了解的人又凭什么可以去维护他的质量,作为一个QA可以不必对开发像大牛那么精通但是必须要有自己的理解,这就好比是在NBA优秀、传奇的教练员不一定是一个好的球员但是他一定对篮球本身有着很深的理解,有着自己的想法。所以我觉得不该存在绝对专职的QA,这样的QA即使能够工作也不会融入团队,做好各部门之间协调工作的。QA是保证质量的,但是质量并不是测试出来的,如果不从需求分析,软件设计,代码实现上做好控制。空有测试有何谈保证的只不过时发现BUG而已。关于QA和Test的问题上文我就已经提到了合作是分工的基础,无论QA(Quality Assurance)还是Test都是在为软件的质量作保障,不应过分独立开来。这也并不代表着就没人负责。团队是需要有负责人的,测试者本身就是一个合作的团队,出现问题是团队的责任,作为团队的负责人必须要为此负责,整理整个团队找出问题并解决。

                                                                        

                                                                          2019-09-22    13:18:38

软件质量保障初探_Chris的更多相关文章

  1. 质量保障&&质量体系建设

    一.质量保障 先引用一段 百度百科 上对软件质量保障的解释:软件质量保障是建立一套有计划,系统的方法,来向管理层保证拟定出的标准.步骤.实践和方法能够正确地被项目所采用.软件质量保证的目的是使软件过程 ...

  2. 推荐一本写给IT项目经理的好书

    原文地址:http://www.cnblogs.com/cbook/archive/2011/01/19/1939060.html (防止原文作者删除.只能拷贝一份了) 推荐一本写给IT项目经理的好书 ...

  3. 【SE】Week17 : 软件工程课程总结

    软工课程总结  总算结束了一个学期大部分的事情,可以静下心来写篇软工的总结了. 在本学期的软工课程中,我担任的角色是Chronos团队的PM兼开发人员.在课程之前,我认为PM的角色应该还蛮轻松的,无非 ...

  4. 【SE】Week1 : 个人博客作业

    快速看完整部教材,列出你不懂的 5 - 10 个问题,发布在你的个人博客上. 1)针对书中提到的NABCD模型中的N,如何发掘市场不明确的潜在用户需求? 2)PM是否负责团队职责的分配以及工程模块的设 ...

  5. 能力成熟度模型(CMM)

    能力等级 特点 关键过程 第一级 基本级 软件过程是混乱无序的,对过程几乎没有定义,成功依靠的是个人的才能和经验,管理方式属于反应式   第二级 重复级 建立了基本的项目管理来跟踪进度.费用和功能特征 ...

  6. 能力成熟度模型CMM

    能力成熟度模型(Capability Maturity Model,英文缩写为CMM)[1]是 一种开发模型.Carnegie Mellon大学的研究人员从美国国防部合同承包方那里收集数据并加以研究, ...

  7. 杂项:CMM

    ylbtech-杂项:CMM CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM.它是对于软件组 ...

  8. 聚焦性能技术和实践, MTSC全面揭秘PerfDog演进之路

    商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 12月14日,2019年度中国移动互联网测试开发大会(Mobile Testing Summit China,简称 MTSC)深圳站于深 ...

  9. MTSC2019大会日程重磅发布,腾讯WeTest独家Topic大揭秘!

    WeTest 导读 中国移动互联网测试开发大会 Mobile Testing Summit China(简称 MTSC)是由国内最大的移动测试技术社区 TesterHome 发起的软件测试行业技术会议 ...

随机推荐

  1. AES Base64 C++加密工具

    最近写了一段C++ 的AES 加密的工具,在github 上找了很多工具,都不太好用,Star数字比较的高的一个,只能加密16个字节的,加密数字长数据,会出现乱码,不能使用 这里附上代码,文件以供大家 ...

  2. 软考网络工程师、软件设计师等官方指定教材pdf文件

    软考计算机网络工程师教材pdf 链接:https://pan.baidu.com/s/1-UXeNye414UWYxYRC6bHuA 提取码:5z9w 软考计算机软件设计师第五版pdf 链接:http ...

  3. docker-网络驱动

    网络驱动程序 Docker的网络子系统是可插拔的,使用驱动程序.默认情况下存在多个驱动程序,并提供核心网络功能: bridge:默认网络驱动程序.如果未指定驱动程序,则这是要创建的网络类型.当的应用程 ...

  4. 二次排序LincodeNo.846

    846.Multi-keyword Sort 题目要求在已经排序好的序列上进行二次排序 那么改变一下比较方法即可 bool cmp(vector<int> a,vector<int& ...

  5. 【转】Matlab多项式拟合

    转:https://blog.csdn.net/hwecc/article/details/80308397 例: x = [0.33, 1.12, 1.41, 1.71, 2.19] y = [0. ...

  6. springmvc接收json数据的常见方式

    经常使用Ajax异步请求来进行数据传输,传的数据是json数据,json数据又有对象,数组.所有总结下springmvc获取前端传来的json数据方式:1.以RequestParam接收前端传来的是j ...

  7. 记录一下第一次用markdown写博客回滚过程

    前面写博客,一直用的是博客园的TinyMCE编辑器, 今天不知道哪根筋搭牢了,想试试用Markdown写. 于是在“选项”里面把默认编辑器修改为“Markdown”,鉴于本人有一定的Markdown基 ...

  8. Springboot2.1.1下的自定义拦截器而静态资源不能访问的问题

    1.项目结构 2.自定义拦截器 public class LoginHandlerlnterceptor implements HandlerInterceptor { //目标方法执行之前 @Ove ...

  9. python报错: invalid syntax

    invalid syntax: 无效的语法. 解决办法:查看当前语句中的  , 如果当前行没找到错误,依次往上找,往上找时可以利用是否有输出进行快速查找. 原因:python语法很严格,少了左括号.右 ...

  10. Redis 分布式锁的正确实现方式( Java 版 )

    前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...