软件测试的两个关键问题,单元测试实践的主要问题与解决(2)

二、单元测试实践的主要问题

单元测试有个特点:测试简单独立的代码很容易,但要在实际工作中做好单元测试却很困难。

根据我们的经验,企业在实施单元测试时,通常会面对四大问题——

● 不愿做:程序员没有单元测试习惯。

● 没时间:编写测试代码需要耗费大量的时间,项目的周期可能不允许。

● 做不了:代码具有较高的耦合性,使单元测试难以进行。

● 做不好:测试效果不能令人满意。我们通常会以覆盖率来衡量测试效果,但要实现高标准的测试覆盖很困难。

三、解决思路和方法

如何解决上述问题呢?接下来,谈谈一些思路和方法,使用的工具是Visual Unit。Visual Unit,简称VU,是可视化的C/C++单元测试工具。

3.1 如何解决“不愿做”和“没时间”

对于“不愿做”,我们采用的对策是可视化,这个可视化,是指程序行为可视,后面我会用案例来演示;对于“没时间”,采用的对策是自动化,通过自动生成测试代码、自动打桩等功能,让测试的时间成本最小化。这两者结合起来,就是ETDD开发模式。

那么,ETDD是什么呢?

首先来介绍一下TDD,TDD就是测试驱动开发,这个大家可能听得比较多了。ETDD就是Easy TDD,即:易行版的TDD。ETDD具有以下一些特点:

● 可视化,在开发过程中,程序行为可视。

● 自动化,除了测试数据需要人工设定外,其他基本上都自动完成。

● 现实化,不一定要测试所有代码,在开始阶段,可以只测试功能逻辑复杂的20%代码。

下面,我用一个案例,讲解一下ETDD的过程:

假如我要编写一个函数,它的功能是删除字符串左边的空格。

先写好函数的框架,能通过编译就行。在编写代码前,程序员必须要做的一件事情,是想清楚代码的功能。如果我们想的时候,顺手把它记录下来,就可以让代码的功能更清晰、更明确。

755ade020c9aa4f6f23f5dca943bcb6e.gif

我们现在来记录代码的功能。这里的记录,不是文字形式的宠统说明,而是数据形式的精确定义,也就是用输入和输出的方式来记录。

首先,记录最基本的功能,也就是最基本、最常见的输入和输出。输入一个左边有空格的字符串,输出是删除左边空格后的字符串,返回值跟参数的输出是一样的。

174933fc787cc4a09db87e85ae6abe3f.gif

31/3123>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值