云上测试系列第一讲:有效的测试用例分层

举报
开发者学堂小助 发表于 2018/02/23 15:41:28 2018/02/23
【摘要】 测试的根本问题是ROI,高效低成本的操作是有竞争力的标志,我们的测试活动和计划都要从此出发。

ScreenShot00320.png

测试用例的分层很重要,因为它决定了测试策略和测试重点。良性高效的测试金字塔应当是主要为代码级测试,而不是轻量级的端到端UI测试。

代码的质量决定了产品质量。大量的代码级测试可以低成本和高效的测试和发掘根本问题,因为可以并发和没有依赖性(Mock, Stub, Fake, etc)。低效的测试金字塔用大量端到端的UI测试去发现质量问题是费时费力费财,测试用例维护陈本高效率低。测试的根本问题是ROI,高效低成本的操作是有竞争力的标志,我们的测试活动和计划都要从此出发。

我们不要陷入纯学术的泥潭,因为测试是要为商业结果负责。传统单元测试(Unit Test)UT定义通常过于教条,例如函数测试原则等等,而要想这些UT有没有用,我常看到UT 100%结果问题拦截并不理想,测试自动化的有效性应当是我们常要思考的问题,不是为了测试而测试,不是以活动为导向而是以结果为导向。

基于以上的观点和业界的实践,以下的测试用例基于依赖性分层被证明很有效。有些团队花了几年时间从低效的的测试金字塔用大量端到端的UI测试转变到主要为代码级测试的良性高效测试金字塔:

L0-测试用例没有依赖性 (例如用Mock 框架Moq和微软Fake 框架(Stubs,Shims,etc))70%

L1-测试用例依赖SQL,没有办法有效MOCK (完全MOCK SQL费时费力不现实)15%

L2-测试用例需要部署, 回归测试和集成测试 (有些认证服务可以被mock掉等)15%

L3-生产线端到端测试 (几个用例)

L0/L1--"Unit Test" L2/L3- 功能测试。这种测试用例分布是业界所谓测试左移和质量控制上游化

ScreenShot00319.png


作者:吴昊

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。