读书笔记:Google 软件测试之道【三】
1、测试规模分类
在 Google 里面,测试分为以下三种:
小型测试
小型测试是为了验证一个代码单元的功能,一般与运行环境隔离,它是不需要依赖于外部,一般集中于函数级别的测试,即我们平时所说的单元测试。
中型测试
中型测试主要是验证两个或以上模块或应用间的交互,它一般通过 mock 对其他外部环境进行隔离,即我们平时所说的“集成测试”,只是这里的集成测试更多是需要验证的那些模块的集成,其他外部依赖一律通过 mock 进行隔离。
大型测试
大型测试主要是系统级别的测试,主要验证系统作为一个整体是如何运作的(这里包含了涉及到该业务功能的所有上下游系统如何协同工作),是我们平时所说的“端到端测试”。
在 Google,针对不同测试规模有相对明确的时间及资源使用情况的定义。
针对不同测试规模的测试执行时间的目标与限制
针对不同测试规模的资源使用情况
Google 通用测试框架利用上述测试规模的定义,去优化整个平台运行的测试调度。如测试人员把这个测试在平台上打完标签(小中大型测试)并执行测试任务,如平台发现测试超时或资源消耗超过这个测试所定义的资源限度,则会自动取消这个测试任务并生成错误报告,这样可以迫使工程师提供合适的测试规模标签。
2、测试规模的优缺点
每种测试规模肯定会带来相应的一些好处,这里罗列一下具体的优缺点。
在 Google 中,虽然有很多不同类型的项目,但是针对上述所说的三种测试类型总体上还是有一定的经验法则,即 70/20/10 原则:70%是小型车上,20%是中型测试,10%是大型测试。(这个是不是有点跟 Martin Fowler 的测试金字塔不谋而合)
3、测试认证
很多开发同学觉得测试工作是测试人员的事情,但是这事在 Google 则是通过另外一种方式推广,其中的关键方法被称为一个叫“测试认证”(Test Certified)的计划。
当我们在团队中尝试去推开测试实践的时候发现真的太难了,后面想了一下是否跟以下问题有关:
开发团队中缺乏测试文化
缺乏测试专家指导
缺乏测试标准
缺乏测试指标导向。
为了解决以上问题,我们是否可以借助以下办法去在一定程度上解决。
1、建立一系列测试相关的指标,如紧急投产率、一次构建失败率(当然这个构建过程包括代码构建和冒烟测试自动化);
2、引进 Google 这样的测试认证,通过测试认证的阶梯,我们给团队一个清晰的实现目标的层级结构;同时,针对做得好的个人或团队,给与荣誉和物质上的激励。
参考:
https://mike-bland.com/2011/10/18/test-certified.html
版权声明: 本文为 InfoQ 作者【Man】的原创文章。
原文链接:【http://xie.infoq.cn/article/883b0a6009fa5a7fecdccedae】。文章转载请联系作者。
评论