《软件测试之道》读后梳理(一)
刚入行不久,除了日常工作中的积累,还想看看现在主流的软件测试书籍,希望从中学到东西。该书算是本人第一本与软测相关的读物吧。后续亦会尝试去阅读更多的资料书籍,随手记录一下,也是对知识的巩固梳理吧。
第一章 Google软件测试介绍
1、质量不等于测试:我很认同这一点。对于Google的工程师而言,他们往往更重视产品的可靠性和稳定性。这也就意味着,工程师对自己产出的产品有足够的信心与质量的保证。也就解释了,质量不能单单由测试揪出来,而是需要开发与测试共同努力。
2、角色:Google中有不同的工程师角色,后续会有较大篇幅介绍。
①软件开发工程师(SWE):译为software engineer,就是我们传统上理解的开发,除了产品的开发工作,如上述所讲,他们还需要承担保证质量的责任,需要参与测试代码的编写。
②软件测试开发工程师(SET):译为software engineer in test,同样是一个开发角色,但是他们的工作重心在于可测试性和通用测试基础框架上,他们为质量服务。
③测试工程师(TE):译为test engineer,和SET关系密切。但是他们关注点不同,TE永远吧用户放在第一位考虑。他们会花大量的时间在模拟用户使用场景及自动化脚本或代码的编写上。
一般的,开发和测试人员都隶属于同一团队,理论上可以做到平等相处、患难与共。但是事实上,测试总是在为开发让步(深有体会)。可以见得TE的情商还是挺重要的。
3、版本:Google很重视版本的迭代更新
①金丝雀版本:据了解,17世纪中的英国人会将金丝雀放入煤矿井中去检测空气质量是否足够安全,也就是说该版本很有可能存在让人难以忍受的严重问题,一般只有产品的工程师会安装使用。
②开发版本:开发人员日常使用的版本,要求每个工程师都去安装并日常使用它。如果连日常工作都满足不了就会被退回到金丝雀版本。
③beta或发布版本:由非常稳定的测试版本演变来的,是经过考核的版本。
4、测试类型:Google没有使用代码测试、集成测试、系统测试等命名方式,而是使用小型、中型、大型测试这样的称谓。
①小型测试:一般的,小型测试更容易实现自动化,用于验证一个单独函数或独立功能模块的代码是否按照预期工作。
②中型测试:一般涉及到两个或两个以上的模块之间的交互,检查彼此调用时功能是否正确。通常也是自动化实现的,
③大型测试:使用真实用户使用场景和实际用户数据,涵盖三个或以上(通常更多)的功能模块,消耗较长时间才能完成。大型测试更加关注所有模块的集成,验证软件是否满足最终用户的需求。
不难发现,在Google中的测试,可以使用自动化完成的,都会使用自动化去节省人力。这也是为了让测试可以把更多的精力放在更重要的地方。善用工具使人类发展如此,就算在测试工作中也不要忘记善用工具,寻找“偷懒”的方法,提高效率。