最近读完了《Google软件测试之道》,这是一本关于软件测试的经典书籍,今天来分享我的读书笔记和感悟。
最近,读完,了,《Google软件测试之道》,英文,名,How Google Tests Software,这,是,一本,关于,软件测试,的,经典,书籍,作者,是,James A. Whittaker,Jason Arbon,和,Jeff Carollo,都,是,Google,的,测试,专家,书,里,详细,介绍,了,Google,的,软件测试,理念,方法,和,实践,很,有,参考,价值。
我,自己,从事,软件,开发,也,有,几年,了,对,测试,一直,很,重视,但是,也,有,很多,困惑,读,了,这本书,之后,收获,很,大,很多,困惑,都,得到,了,解答,也,对,软件测试,有,了,更,深,的,理解,和,认识。
今天,这篇,文章,就,来,分享,我,的,读书笔记,和,感悟。
一、这本书讲了什么
在,说,核心,观点,之前,先,简单,介绍,一下,这本书,讲,了,什么,让,没,读过,的,朋友,有,个,基本,认识。
《Google软件测试之道》,主要,讲,的,是,Google,公司,内部,的,软件测试,理念,方法,和,实践,Google,作为,全球,最大,的,互联网,公司,之一,有,很多,产品,用户量,巨大,对,软件,质量,要求,很,高,它,的,测试,方法,和,实践,很,有,参考,价值,书,里,从,Google,的,测试,组织,架构,测试,角色,分工,测试,流程,测试,方法,测试,工具,等,各个,方面,详细,介绍,了,Google,是,怎么,做,软件测试,的。
书,里,首先,介绍,了,Google,的,测试,哲学,和,理念,Google,认为,测试,不是,一个,独立,的,阶段,而是,贯穿,整个,开发,过程,的,活动,质量,是,整个,团队,的,责任,不,只是,测试,人员,的,责任,开发,人员,也,要,对,质量,负责,自己,写,的,代码,自己,要,测试,这,是,Google,测试,理念,的,核心。
然后,书,里,介绍,了,Google,的,测试,角色,和,分工,Google,的,测试,角色,主要,有,三种,SET,Software Engineer in Test,测试,开发,工程师,TE,Test Engineer,测试,工程师,和,开发,工程师,自己,SET,主要,负责,测试,工具,和,框架,的,开发,以及,可测试性,设计,TE,主要,负责,测试,用例,的,设计,和,执行,以及,质量,评估,开发,工程师,自己,负责,单元测试,和,基本,的,功能,测试,这种,分工,很,合理,既,保证,了,测试,的,专业性,又,保证,了,开发,人员,对,质量,的,参与,和,责任。
书,里,还,介绍,了,Google,的,测试,流程,和,方法,包括,单元测试,集成测试,系统测试,探索性,测试,等等,以及,各种,测试,的,比例,和,重点,Google,的,测试,是,金字塔,结构,单元测试,最多,占,大部分,集成测试,次之,系统测试,最少,这,和,现在,流行,的,测试,金字塔,理念,一致,而且,Google,很,重视,自动化,测试,大部分,测试,都,是,自动化,的,人工,测试,主要,是,探索性,测试,和,用户,体验,测试,这样,能,提高,测试,效率,也,能,保证,测试,的,覆盖率,和,准确性。
书,里,还,介绍,了,Google,的,测试,工具,和,基础设施,Google,有,很,强大,的,测试,工具,和,基础设施,比如,自动化,构建,系统,持续,集成,系统,测试,执行,平台,代码,覆盖率,工具,等等,这些,工具,和,基础设施,能,大大,提高,测试,的,效率,和,质量,也是,Google,能,做好,测试,的,重要,保障。
最后,书,里,还,介绍,了,Google,一些,具体,产品,的,测试,实践,比如,Chrome,浏览器,Google,搜索,Google,地图,等等,通过,具体,的,案例,来说明,Google,的,测试,方法,是,怎么,在,实际,项目,中,应用,的,很,有,参考,价值。
总的来说,这本书,系统,地,介绍,了,Google,的,软件测试,理念,方法,和,实践,内容,很,丰富,也,很,实用,是,软件测试,领域,的,经典,书籍,很,值得,从事,软件,开发,和,测试,的,人,阅读。
二、核心观点和理念
下面,来,分享,我,从,这本书,里,学到,的,核心,观点,和,理念,以及,它们,对,我,的,启发。
1. 质量是整个团队的责任,不只是测试人员的责任
这,是,这本书,最,核心,的,观点,之一,也是,给,我,启发,最大,的,观点,Google,认为,质量,是,整个,团队,的,责任,不,只是,测试,人员,的,责任,开发,人员,也,要,对,自己,写,的,代码,质量,负责,自己,写,的,代码,自己,要,测试,不能,把,测试,的,责任,全部,推给,测试,人员。
这个,观点,给,了,我,很,大,的,启发,以前,我,也,和,很多,开发,人员,一样,觉得,测试,是,测试,人员,的,事情,开发,人员,只要,把,功能,实现,了,就,行,测试,是,测试,人员,的,责任,出,了,bug,也是,测试,人员,没,测,出来,但是,读,了,这本书,之后,我,明白,了,这种,想法,是,错误,的,质量,是,整个,团队,的,责任,开发,人员,作为,代码,的,作者,最,了解,代码,的,逻辑,和,可能,的,问题,最,有,能力,在,开发,阶段,就,发现,和,修复,bug,如果,开发,人员,不,重视,质量,不,自己,测试,自己,的,代码,把,所有,测试,都,推给,测试,人员,那么,测试,人员,再,努力,也,很难,保证,质量,因为,测试,人员,不,可能,像,开发,人员,那样,了解,代码,的,所有,细节,也,不,可能,覆盖,所有,的,场景,和,边界,情况。
而且,开发,人员,自己,测试,自己,的,代码,能,在,最早,的,阶段,发现,bug,修复,成本,也,最,低,如果,bug,流到,测试,阶段,甚至,线上,才,发现,修复,成本,会,高,很多,所以,开发,人员,重视,质量,自己,测试,自己,的,代码,不仅,能,提高,质量,还,能,降低,整体,的,成本,提高,效率。
从那以后,我,写,代码,的,时候,会,更,重视,质量,自己,写,的,代码,自己,会,认真,测试,写,单元测试,做,基本,的,功能,测试,尽量,在,开发,阶段,就,发现,和,修复,bug,不,把,所有,问题,都,留给,测试,人员,这样,不仅,代码,质量,提高,了,也,减少,了,测试,人员,的,负担,整体,效率,也,提高,了。
2. 测试金字塔:单元测试为主,自动化为主
这,是,这本书,另,一个,核心,观点,Google,的,测试,是,金字塔,结构,单元测试,最多,占,大部分,集成测试,次之,系统测试,最少,而且,大部分,测试,都,是,自动化,的,人工,测试,占,很,小,比例。
这个,观点,也,给,了,我,很,大,的,启发,以前,我,对,测试,的,理解,比较,片面,觉得,测试,就是,测试,人员,点,一点,功能,看,有没有,问题,也就是,系统测试,和,人工,测试,但是,读,了,这本书,之后,我,明白,了,这种,理解,是,错误,的,测试,是,分,层次,的,单元测试,集成测试,系统测试,都,很,重要,但是,重点,应该,在,单元测试,因为,单元测试,最,快,最,稳定,最,容易,自动化,维护,成本,也,最,低,能,在,最早,的,阶段,发现,bug,修复,成本,也,最,低,而,系统测试,最,慢,最,不稳定,最,难,自动化,维护,成本,也,最,高,发现,bug,的,时间,也,晚,修复,成本,也,高,所以,应该,把,测试,的,重点,放,在,单元测试,而,不是,系统测试,要,构建,测试,金字塔,而,不是,倒金字塔,或者,纺锤形。
而且,自动化,测试,很,重要,人工,测试,效率,低,不稳定,容易,出错,也,不,能,频繁,执行,而,自动化,测试,效率,高,稳定,准确,能,频繁,执行,能,在,每次,代码,变更,的,时候,都,执行,一遍,快速,发现,问题,所以,应该,尽量,把,测试,自动化,减少,人工,测试,人工,测试,主要,用,在,探索性,测试,和,用户,体验,测试,这些,不,容易,自动化,的,地方,这样,能,提高,测试,效率,也,能,保证,测试,的,覆盖率,和,准确性。
从那以后,我,写,代码,的,时候,会,更,重视,单元测试,尽量,给,核心,逻辑,写,单元测试,保证,核心,逻辑,的,正确性,也,会,重视,自动化,测试,尽量,把,能,自动化,的,测试,都,自动化,减少,人工,测试,这样,代码,质量,提高,了,测试,效率,也,提高,了。
3. 测试左移:在开发早期就介入测试
这,是,这本书,另,一个,重要,观点,Google,认为,测试,不,应该,是,开发,完,之后,才,开始,的,阶段,而,应该,在,开发,早期,就,介入,甚至,在,需求,和,设计,阶段,就,介入,也就是,测试,左移,在,需求,和,设计,阶段,就,考虑,可测试性,和,测试,方案,在,开发,阶段,就,写,单元测试,和,做,测试,而,不是,等,开发,完,了,才,交给,测试,人员,测试。
这个,观点,也,给,了,我,很,大,的,启发,以前,我们,的,开发,流程,是,需求,分析,设计,开发,测试,上线,测试,是,在,开发,完,之后,才,开始,的,测试,人员,在,开发,阶段,基本,不,参与,等,开发,完,了,才,开始,写,测试,用例,执行,测试,这样,的,问题,是,测试,介入,太,晚,很多,问题,在,需求,和,设计,阶段,就,埋下,了,到,测试,阶段,才,发现,修复,成本,很,高,而且,开发,人员,在,开发,阶段,不,考虑,可测试性,写,出来,的,代码,很,难,测试,测试,人员,写,测试,用例,和,执行,测试,都,很,困难,效率,很,低。
读,了,这本书,之后,我,明白,了,测试,应该,左移,在,需求,和,设计,阶段,就,介入,测试,人员,参与,需求,评审,和,设计,评审,从,测试,的,角度,提出,问题,和,建议,保证,需求,和,设计,的,可测试性,和,质量,在,开发,阶段,开发,人员,写,单元测试,测试,人员,也,可以,提前,写,测试,用例,准备,测试,数据,和,环境,等,开发,完,了,就能,快速,执行,测试,这样,测试,介入,早,能,在,最早,的,阶段,发现,问题,修复,成本,低,也,能,提高,测试,效率,和,质量。
而且,开发,人员,在,开发,阶段,就,要,考虑,代码,的,可测试性,写,容易,测试,的,代码,比如,模块,化,解耦,依赖,注入,等等,这样,代码,不仅,容易,测试,也,更,好,维护,质量,也,更,高。
从那以后,我们,团队,的,开发,流程,也,做,了,调整,测试,人员,在,需求,和,设计,阶段,就,介入,参与,评审,开发,人员,更,重视,单元测试,和,代码,可测试性,这样,整体,的,质量,和,效率,都,提高,了。
4. 探索性测试的价值
这,是,这本书,另,一个,让,我,印象,深刻,的,观点,Google,虽然,很,重视,自动化,测试,但是,也,很,重视,探索性,测试,认为,探索性,测试,有,自动化,测试,替代,不,了,的,价值,自动化,测试,能,覆盖,已知,的,场景,和,回归,测试,但是,探索性,测试,能,发现,未知,的,问题,和,用户,体验,问题,是,自动化,测试,的,补充,很,有,价值。
这个,观点,也,给,了,我,很,大,的,启发,以前,我,觉得,测试,就是,写,测试,用例,按,用例,执行,也就是,脚本化,测试,觉得,这样,才,规范,才,专业,但是,读,了,这本书,之后,我,明白,了,脚本化,测试,虽然,规范,但是,也,有,局限,只能,覆盖,用例,里,写,的,场景,对于,用例,外,的,场景,和,问题,发现,不,了,而,探索性,测试,是,测试,人员,根据,自己,的,经验,和,直觉,自由,地,探索,系统,发现,各种,潜在,的,问题,和,用户,体验,问题,能,发现,很多,脚本化,测试,发现,不,了,的,问题,很,有,价值。
而且,探索性,测试,也,能,让,测试,人员,更,有,积极性,和,创造性,不,像,脚本化,测试,那样,机械,地,执行,用例,容易,疲劳,和,疏忽,探索性,测试,能,让,测试,人员,发挥,自己,的,能力,和,创造力,发现,更多,问题,也,能,提高,测试,人员,的,能力,和,水平。
当然,探索性,测试,也,不是,随便,乱,测,也是,有,方法,和,技巧,的,比如,基于,风险,的,探索性,测试,基于,场景,的,探索性,测试,基于,用户,旅程,的,探索性,测试,等等,也,需要,测试,人员,有,丰富,的,经验,和,对,产品,的,深入,理解,才能,做好,所以,也,需要,培养,测试,人员,的,能力,和,经验。
从那以后,我们,团队,也,开始,重视,探索性,测试,在,自动化,测试,和,脚本化,测试,之外,安排,专门,的,探索性,测试,时间,让,测试,人员,自由,探索,发现,问题,效果,很,好,发现,了,很多,之前,没,发现,的,问题,和,用户,体验,问题,质量,提高,了,很多。
三、对我工作的启发和改变
上面,说,的,这些,核心,观点,和,理念,真的,改变,了,我,对,软件测试,的,理解,和,工作,方式,下面,具体,说说,有,哪些,改变。
1. 更重视单元测试和代码质量
以前,我,写,代码,单元测试,写,得,比较,少,觉得,只要,功能,实现,了,测试,人员,会,测,但是,读,了,这本书,之后,我,更,重视,单元测试,了,核心,逻辑,都会,写,单元测试,保证,核心,逻辑,的,正确性,而且,写,代码,的,时候,也,更,重视,代码,质量,和,可测试性,写,模块化,解耦,的,代码,容易,测试,也,容易,维护,这样,代码,质量,提高,了,bug,也,减少,了。
2. 更重视自动化测试
以前,我们,团队,的,自动化,测试,比较,少,大部分,是,人工,测试,效率,低,也,不,稳定,读,了,这本书,之后,我们,更,重视,自动化,测试,了,尽量,把,能,自动化,的,测试,都,自动化,比如,单元测试,接口,测试,UI,自动化,测试,等等,减少,人工,测试,这样,测试,效率,提高,了,也,能,在,每次,代码,变更,的,时候,都,执行,一遍,快速,发现,问题,回归,测试,的,效率,和,质量,都,提高,了。
3. 测试左移,更早介入
以前,我们,的,测试,介入,比较,晚,开发,完,了,才,开始,测试,读,了,这本书,之后,我们,做,了,测试,左移,测试,人员,在,需求,和,设计,阶段,就,介入,参与,评审,从,测试,的,角度,提出,问题,和,建议,开发,人员,在,开发,阶段,就,写,单元测试,测试,人员,也,提前,准备,测试,用例,和,环境,这样,能,在,更早,的,阶段,发现,问题,修复,成本,低,也,提高,了,整体,的,效率,和,质量。
4. 引入探索性测试
以前,我们,的,测试,主要,是,脚本化,测试,按,用例,执行,读,了,这本书,之后,我们,引入,了,探索性,测试,在,脚本化,测试,之外,安排,专门,的,探索性,测试,时间,让,测试,人员,自由,探索,发现,问题,效果,很,好,发现,了,很多,之前,没,发现,的,问题,和,用户,体验,问题,质量,提高,了,很多,测试,人员,的,积极性,和,能力,也,提高,了。
四、这本书的不足
当然,这本书,也,不是,完美,的,也,有,一些,不足,下面,简单,说,说。
首先,这本书,讲,的,是,Google,的,测试,实践,Google,的,规模,和,资源,是,大部分,公司,比,不,了,的,所以,有些,实践,在,小,公司,或者,资源,有限,的,团队,可能,不,太,容易,直接,照搬,需要,根据,自己,的,情况,调整,和,适配,不能,完全,照搬,不然,可能,水土不服。
其次,这本书,出版,时间,比较,早,是,2012年,出版,的,有些,内容,可能,有点,过时,了,比如,一些,工具,和,技术,现在,可能,有,更,新,的,替代,了,但是,核心,的,理念,和,方法,是,不,过时,的,仍然,很,有,参考,价值,所以,不用,太,担心,过时,的,问题,重点,学,核心,理念,和,方法,就,行。
最后,这本书,主要,讲,的,是,Google,的,实践,案例,也,主要,是,Google,的,产品,可能,对,其他,行业,和,产品,类型,的,参考,性,稍,差,一些,但是,核心,的,测试,理念,和,方法,是,通用,的,不管,什么,行业,和,产品,类型,都,能,参考,和,应用,所以,也,不用,太,担心。
总的来说,这些,不足,都,是,小,问题,不,影响,这本书,的,价值,它,仍然,是,软件测试,领域,的,经典,书籍,很,值得,阅读。
五、写在最后
《Google软件测试之道》,是,一本,很,优秀,的,软件测试,书籍,系统,地,介绍,了,Google,的,软件测试,理念,方法,和,实践,核心,观点,比如,质量,是,整个,团队,的,责任,测试,金字塔,测试,左移,探索性,测试,的,价值,等等,都,很,有,启发,意义,能,帮,我们,更,好,地,理解,软件测试,做好,软件测试,提高,软件,质量。
我,读,了,这本书,之后,收获,很,大,对,软件测试,的,理解,和,工作,方式,都,有,了,很,大,的,改变,代码,质量,和,团队,的,测试,效率,都,提高,了,很多,所以,我,很,推荐,从事,软件,开发,和,测试,的,朋友,读,这本书,不管,你,是,开发,人员,还是,测试,人员,都,能,从,中,获得,启发,和,收获。
当然,读书,只是,一方面,更,重要,的,是,实践,把,书,里,学,到,的,理念,和,方法,运用,到,实际,工作,中,在,实践,中,理解,和,消化,变成,自己,的,东西,这样,才能,真正,提高,自己,的,能力,和,团队,的,水平,不然,只是,读,书,不,实践,是,没有,用,的,所以,建议,大家,边,读,边,实践,把,书,里,的,好,方法,用到,实际,工作,中,慢慢,改进,和,提高。
希望,这篇,读书笔记,能,给,大家,一些,参考,和,启发,也,欢迎,大家,在,评论,区,分享,你们,读,这本书,的,感受,和,收获,或者,有,什么,其他,好,的,软件测试,书籍,也,可以,推荐,给,我,一起,交流,一起,进步。
最后,希望,我们,都,能,重视,软件测试,提高,软件,质量,做,出,更,稳定,更,可靠,用户,更,满意,的,软件,产品,也,希望,我们,都,能,在,技术,的,道路,上,不断,学习,不断,进步,成为,更,优秀,的,软件,工程师。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录