作为一个测试人员,这本书我读的中文版,看了一部分,感觉有些受益,特此记录!
本书中把软件的测试角色分为三种:软件开发工程师(SWE)、软件测试开发工程师(SET)、测试工程师(TE)。SWE和SET都是必须要编写代码的,差别是WET是开发工程师,侧重点是开发功能、提高系统性能;SET是测试开发工程师,侧重点是测试代码的质量。TE与SET归属于测试团队,不同的是TE把用户放在第一位来思考问题,代表用户利益,需要花费大量时间模拟大量用户场景和编写自动化脚本,推动产品发布;而SET的关注对象数开发人员,负责测试支持,能够很熟悉的应用测试框架,非常近距离的观察代码的质量与风险。理想状态是SEW和WET两个角色可以互相转换需要开发功能的时候一起开发,需要测试的时候一起测试,但是现实中是既懂开发又懂测试的开发人员很少,既懂测试又懂开发的测试人员也很少,这就充分说明了WET的稀缺性。所以作为测试人员,无论处于哪个阶段编写脚本、提高代码编写能力都是很必要的。
书中把产品发布版本也分为4个阶段:金丝雀版本、开发版本、测试版本、beta或发布版本。
金丝雀版本:每日更新一版,安装在自己的设备上,内部测试,过滤掉不合适宜的版本,可能导致自己的设备无法正常工作,需要极强的容忍度(成员涉及:开发人员、测试人员、管理人员);
开发版本:开发人员日常使用的版本,每周发布一个,满足真实工作需求,如果不能够能满足日常真实工作需求,将会被打回金丝雀版本(成员涉及:开发人员);
测试版本:通过了持续测试的版本,近一个月的最稳定最信任的最佳版本,内部尝鲜(dog food),若该版本有比较持续的优良表现,会作为beta测试的候选版本;
beta或发布版本:由非常稳定的测试版本演变而来,经过内部使用和通过所有质量考核的一个版本,也是对外发布的第一个版本。
书中还涉及测试人员在软件运行周期的作用和参与测试的程度与时机。很多测试人员都以为测试越早进行越好,实则不然,在测试代码设计初期强调测试是一件非常愚蠢的事情,一个产品如果在概念上还没有成型时就去关心质量,这是优先级混乱的表现。当然,也不能太晚,不然质量“债”会拖慢产品发布。所以在软件开发的各个阶段,测试人员的测试重点都是不一样的,这一点我们必须要明确。软件测试的必要性在于产品的重要性,只有在软件产品变得重要的时候,质量测试才会显得重要,否则测试就会显得徒劳。
对于软件产品设计及其他文档,相信大家都并不陌生,接下来介绍一下我们阅读产品文档的关注点。
完整性:文档是否有软件背景知识?读者是否能完整了解整个产品?文档结构是否完整?
正确性:语法、拼写、标点符号等。
一致性:确保配图与文字描述一致,与其他相关文档不相悖。
设计:设计流程、设计框架。
接口与协议:清晰定义、与期望一致。
测试:是否具有易测试性?预估需要做哪些工作?
在现在的软件行业,其实软件测试并不是只是测试人员的事情,在开发初期SWE也会进行自测,SET要比TE更早的接触测试,只有软件在形成一个产品雏形的时候TE才会接触产品测试,TE更相当于一个产品专家。管理、开发、测试,这些都是测试的主体,大家都有发现bug的权利和义务,只有相互学习、共同致力于产品质量才能增强软件产品的健壮性,促使软件的可持续发展。