UT Workshop教学重点
前置课程
POS机V0~V2做完
总览
UT Workshop教学重点
第一问 xAxB
引导大家写出xAxB的函数,带领大家就代码进行评论 主要讲解或引导大家讨论:
- 写函数名等价于任务划分
- 通过等价类划分,边界条件来确定写几个测试
- 测试成本->安全感可以做为一种简化的判断方法
- 代码即文档,测试即是函数的contract,以及简单提一下业务名词
- TDD给了我们一个机会,站在调用者角度思考,其实也是面向接口编程
- 谁来保证测试的正确性?强调测试的目的不是为了防止有人恶意的欺骗,而是低级的错误。
第二问 随机数生成
讲解或引导大家思考
- 在写程序的时候,何时深度优先的思考,何时广度优先的思考。这个题目很多人一下就钻进去思考怎么写随机,怎么测随机了。这是一种典型的深度优先的思考。
- 对不可控的依赖进行控制的一个练习。我们认为随机是不可控的,那么我们该怎么做。在真实环境下,很常见有些系统不到最后集成的时候不让碰。这也是某种不可控。
- 要发现基于不可控系统之上可控的部分,抽离逻辑的能力,有些人觉得四位不重复随机数是一个逻辑。这就属于典型的细化能力不足。
第三问
- 写15分钟即show代码,第一次看到mock难免陷入思维转换的境地,半天转不过弯来。所以开始不要给大家太多时间,不然就会沉浸在这个问题里太久出不来。
- 展示集成的单元测试
- 展示集成测试
- 再就是讲解集成本身的测试和集成的概念,不是全部集成才叫集成。理解胶水代码。
第四问
- 上一问涉及到的mock是无法揭示出如何测输入输出的,要引导去google
- 引导思路和单元测试
- 这一问主要是看对于mockito之类的工具的深入使用。涉及verify,matcher,InOrder等的使用。
- 也可以看看设计,当然也可以在第五问看设计。
- 强调为什么要在这一层做安全性检测,而不是在第一问中进行。