设为首页收藏本站

安卓茶网

 找回密码
 我要注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 455|回复: 0

如何高效进行白盒单测

[复制链接]

19

主题

20

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2016-11-23 16:54:56 | 显示全部楼层 |阅读模式

之前为写了写单元测试的基础原理和简单的环境调试,这次就简述一下在进行单元测试是需要注意的东西和基础框架。
首先,要做好单测,首先要捋清楚开发的代码结构,为成功搭建单测环境奠定基础。对于一个比较复杂的代码工程,首先要找到程序初始化的入口,明确初始化需要的成员变量和初始化的步骤逻辑,然后找到程序的主要接口,明确各个接口的作用,如果有明确提测接口,就按提测接口一层层剖析下去。
还需注意程序的公用类,在测试准备阶段,大致了解公用接口的作用,方便测试过程中调用,也利于提高代码复用性。
那怎么提高单元测试的效率呢?
1. 注意测试工程的整体架构设计,把初始化操作提取出来作为公用步骤—减少代码冗余,便于统一修改
2. 每个case要注意保持隔离,不要互相依赖,比如在调用顺序,外部数据操作上。每个case结束要注意恢复测试环境,尤其是对测试数据的影响。
3. 每个case检查点要清晰,深入,不建议一个case测试多个点。
4. 初始化测试期望时,应该尽量与期望状态相反
5. case中的检查阶段,要及时输出。如果检查点处于多重嵌套,建议在代码中输出出错位置—方便及时处理异常。
接下来,写单元测试,一般都会用到一个或多个单元测试框架,JUnit4,今天就简单说说这个。
先需要思考的是单元测试框架能够为我们做什么呢?一个测试框架为我们做的最基本的事情,就是允许我们按照某种更简单的方式写测试代码,把每一个测试单元写在一个测试方法里面,然后它会自动找出所有的测试方法,并且根据你的需要,运行所有的测试方法,或者是运行单个测试方法,或者是运行部分测试方法等等。
举个例:
public class CalculatorTest {
@Test
public void testAdd() throws Exception {
Calculator calculator = new Calculator();
int sum = calculator.add(1 2);
Assert.assertEquals(3 sum);
}
@Test
public void testMultiply() throws Exception{
Calculator calculator = new Calculator();
int product = calculator.multiply(2 4);
Assert.assertEquals(8 product);
}
}
很容易看出JUnit4这个测试方法是测试了被测的类的那个方法,或者是测试了那个功能点等等。当然除了帮我们找出所有的测试方法,并且方便运行意外,单元测试框架还能帮我们做其他事情。
相对于白盒单侧的应用方面,我应用的较多的是移动应用上,就是app测试,目前都是基础的了,希望对新手有些帮助。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

本版积分规则



QQ|申请友链|手机版|安卓茶网 ( 豫ICP备13002090号 公安备案豫公网安备 41010202002428号  

GMT+8, 2017-4-29 13:31 , Processed in 0.282746 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表