《google软件测试之道》读书笔记

来源:互联网 发布:淘宝微能量运动旗舰店 编辑:程序博客网 时间:2024/05/29 04:32

google软件测试之道

 

假想的理想情况下,功能开发人员编写功能代码,思维模式是创建,重点在于考虑用户、使用场景和数据流程上;测试开发人员的思路是破坏,通过使用测试工具与框架帮助功能开发人员解决特定的单元测试问题;一个真正关心用户的角色被称为用户开发人员

现实情况是:google的测试工程师(TE)就是用户开发人员,负责从用户的角度来思考质量方面各种问题。从开发角度,编写用户使用场景方面的自动化用例代码。从产品的角度,评估整体测试覆盖度,并验证其他工程师在测试方面合作的有效性。

 

测试大小的定义:

1、小型测试:验证一个代码单元的功能,小型测试的运行不需要外部依赖,在google之外,通常就是单元测试。这种测试可以提供更加全面的底层代码覆盖率,他们的执行更加频繁,并且很快就可以找到问题。

2、中型测试:验证两个或多个模块应用之间的交互,小型测试会尝试走遍单独函数的所有路径,而中型测试主要的验证目的是指定模块之间的交互,在google之外,中型测试经常被称作集成测试

3、大型测试:验证整个系统作为一个整体是如何工作的,在google之外被称为系统测试,这涉及到应用系统的一个或所有子系统,该测试可能会依赖外部资源,如数据库、文件系统、网络服务等。

测试认证计划提供了小而清晰且可操作的步骤给团队去执行。级别1是做准备:建立测试运行的自动化机制、收集测试覆盖率、去除所有非确定性的测等;级别2开始着重提高增量覆盖率;级别3重点是测试新增代码;级别4的重点是测试历史遗留代码,通常情况下需要对可测试性进行一些重构;级别5要求更好的整体覆盖率,针对每个缺陷都增加测试用例,并要求使用已有可用的静态与动态分析检查工具。

 

发现bug、分类bug、修复bug、回归测试是软件质量的心跳和运作模式。

 

在淘汰手工测试用例的时候,google使用如下方针:

1、总是通过的测试,淘汰。在高优先级的测试都来不及做的时候,低优先级的测试用例淘汰。

2、确保正确理解即将淘汰的测试用例。从即将淘汰的领域中,挑选几个有代表性的测试。从即将淘汰的领域里,挑选几个有代表性的测试。如果可能就与原作者聊一聊,理解其意图,避免失误。

3、我们把释放出来的时间用于测试自动化、高优先级的测试或探索式测试。

4、抛弃之前可能发生过误报或者行为反常的自动化测试——它们只会发出错误警报,浪费工程师的时间。

 

测试的价值在于测试的动作,而不是测试产物。

 

术语

1、mock:当你调用一个不好在测试中创建的对象时,Mock框架可以模拟一个和真实对象类似的替身来完成相应的行为,是测试代码功能的方法。侧重于对功能的模拟。EasyMock使用动态代理实现模拟对象创建。

2、集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。集成测试是单元测试的逻辑扩展,最简单的形式就是把两个已经测试过的单元组合成一个组件,测试它们之间的接口。

集成测试过程:

计划阶段

定被测试对象和测试范围;评估工作量;确定角色分工和工作任务...

设计阶段

被测对象结构分析;集成测试模块分析;接口分析;工作量估计和安排...

实现阶段

集成测试用例设计;集成测试代码设计;集成测试脚本;集成测试工具...

执行阶段

执行集成测试用例,撰写集成测试报告。

集成测试的实施方案:自底向上集成测试、自顶向下集成测试...

3众包测试:众包(CrowdSourcing)的含义是一种分布式的解决方案和生产模式。企业利用互联网将工作分配出去、发现创意或解决技术问题。众包测试的特点非常鲜明,在以下四个方面具有无可比拟的优势:

    快速迭代:采用“短平快”的流程,尽量把问题暴露在上游。

    极低成本:在某些产品的测试成本上,与其雇佣一个高级测试员来编写Python 自动化测试用例,还不如众包给一百个普通用户进行人肉测试。(后者甚至是免费的)

获取需求:通过接近用户,可以获得最真实的用户需求。

树立品牌:通过组织社区,参与者会感到一种品牌建设的血缘关系,具有极高的黏性。

4、Googlebotgoogle抓包工具。

5、浏览器集成测试环境(BITE),是一个开源的Chrome扩展,目标是解决网页测试体验问题。这个扩展必须连接到一个服务器,这个服务器提供你的系统信息和bug信息。获得这些信息以后,BITE有能力提交bug报告,选择相应的模板,并提供相关的网站信息。

6、提交bug的时候,BITE自动抓取屏幕快照、链接和问题所在的用户界面元素,然后附加在bug报告里。这就为负责分析和()修复这个bug的开发人员提供了丰富的信息,可以帮助他们发现问题的根源和影响因素。在BITE中还包含了一个录制/回放(RPF)控制台,它将用户的手工测试自动化。和BITE的录制功能类似,RPF控制台会自动生成JavaScript代码,在将来可用于回放操作。RPF还可用于支持BITE中的bug场景。当工程师发现一个bug并使用BITE来提交的时候,BITE会附加一个指向生成的重现脚本的链接,查看bug的开发者可以点击回放。

 

0 0
原创粉丝点击