云上测试系列第一讲:有效的测试用例分层
测试用例的分层很重要,因为它决定了测试策略和测试重点。良性高效的测试金字塔应当是主要为代码级测试,而不是轻量级的端到端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- 功能测试。这种测试用例分布是业界所谓测试左移和质量控制上游化
作者:吴昊
- 点赞
- 收藏
- 关注作者
评论(0)