开发者测试

开发者测试

  1. 定义

开发者测试(DT),是指开发者所做的测试,有别于专职测试人员进行的测试活动。
DT目标是在软件交付转验收测试前,发现和解决绝大多数代码缺陷,而其理论依据是业界
研究反复揭示的“前端发现问题的代价远小于后端”。

  1. 开发者测试优势
  • 测试环境依赖低
  • 功能覆盖成本低、质量高
  • 作为防护网,自动化程度高、反馈快,高效可信重构的前提
  • 开发者测试能有效降低前端缺陷,代码质量更高,发布周期更快。

First原则

  • F:Fast (测试执行要快)
  • I:Independent (独立)
  • R:Repeatable (可重复)
  • S:Self-Validaing (自确认)
  • T:Timely (及时)

测试用例写作规范

Android开发者模式 弱网测试 开发者测试百度百科_Android开发者模式 弱网测试


白盒测试

  • 语句覆盖: 所有语句执行一次
  • 判定覆盖: 每个分支至少执行一次
  • 条件覆盖: 每个条件真假都至少覆盖一次
  • 判定/条件覆盖: 条件分支和判断都至少覆盖一次
  • 条件组合: 每个判定的条件取值组合至少覆盖一次
  • 路径覆盖: 每条路径至少覆盖一次

黑盒测试

  • 单因子:
  • 等价类
  • 边界值: 最小-1,最小,中间,最大,最大+1
  • 错误推测发
  • 因果图发
  • 判定表驱动法
  • 多因子
  • AC : (计算:所有因子的积) 每个测试因子都要进行组合
  • EC : (计算:最多的因子可能) 选定一组因子作为basic因子,每次变更其中一个因子
  • BC : (计算:所有因子和 - 因子数量 + 1) 每一个因子的每一个取值只需要用到一次
  • N-wise(Pair-wize是N=2(最大两个因子积)) 每两个因子的取值组合至少覆盖一次

Junit

  • 注解说明
  • Android开发者模式 弱网测试 开发者测试百度百科_测试工具_02

  • 断言
  • Android开发者模式 弱网测试 开发者测试百度百科_Test_03

  • @Test(expected=XX.class)

这个参数表示我们期望会出现什么异常,比如在除法中,我们1/0会出现ArithmeticException异常,那这里
@Test(expected=ArithmeticException.class)。在测试这个方法的时候依然能够通过

  • @Test(timeout=毫秒)

这个参数表示如果测试方法在执行的timeout内没有完成,就会强制停止。

  • @RunWith(Parameterized.class)

Parameterized类是Junit自带的,用于使用多组参数执行同一个testcase

  • @RunWith(Suite.class)

Suite类的作用是使Junit通过这个类将多个相关的测试类看做是一个测试套件一起测试

  • 单元测试规则
  • 每一个测试方法上使用@Test进行修饰
  • 每一个测试方法必须使用public void进行修饰 (BeforeClass和AfterClass用public static void修饰)
  • 每一个测试方法不能携带参数
  • 测试代码和源代码在两个不同的项目路径下
  • 测试类的包应该和被测试类保持一致
  • 测试单元中的每个方法必须可以独立测试。
  • Mockito
  • 创建Mock对象 Mockito.mock(B.class) @Mock
  • 设置方法调用的预期 Mockito.when().thenReturn() Mockito.when().thenThrow()
  • 验证方法调用结果
  • 验证方法调用过程 Mockito.verify(mocked,times(3)).add(1) Mockito.verify(mocked,times(3)).add(anyInt())