c语言ut测试白盒测试方法,白盒测试

测试理论回顾:

黑盒测试:是针对整个产品系统进行的测试,验证系统是否满足需求规格的定义,及软件产品的正确性和性能等是否满足其需求规格的要求。

灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码内部在算法,路径,条件等等中的缺点或者错误,进而加以修正。

单元测试:

单元测试是针对程序的最小单元来进行正确性检验的过程。单元:一个单元可能是单个程序、类、对象、方法(函数)等。 优点是可以减少BUG;快速定位BUG;提高代码质量;减少调试时间。缺点是周期时间长;耗费资源(主要是人力资源);能力要求高。

一、单元测试流程

1. 单元测试-计划:1) 确定要测试代码范围;2) 评估标准(确定被测代码的覆盖率)

2. 测试策略-设计:1) 拿到开发代码进行调整(保证单元间可独立执行)

3. 测试策略-实现:1) 根据调整好的代码-画流程图;2) 根据流程图画流图-确定复杂度、路径;3) 根据复杂度和路径确定测试用例(测试数据)

4. 单元测试-执行:1) 使用测试框架(UnitTest)编写单元测试用例;2) 测试用例(代码)和测试数据分离;3) 生成测试报告

二、单元测试-计划

确定要测试代码以及确定这些被测代码的评估标准、优先级等说明:1. 确定单元测试范围(哪些代码要做单元测试);评估标准-(被测代码的逻辑覆盖率)

1.1、如何确定20%代码

确定单元测试的代码测试范围,我们依据:二八原则(20%的代码中隐藏了80%的缺陷)

1. 频率:使用频率高的代码段;

2. 复用性:(是否已被复用,是否被别的地方引用,如果被别的地方调用这个函数,没问题,基本不用测)

1). 全新(指没有被复用的代码)

2). 部分复用

3). 全部复用

3. 开发人员:

1). 技术(指由技术水平不那么高的开发人员写的代码)

2). 业务(指由对业务不那么熟悉的开发人员写的代码)

4. 复杂度:业务逻辑复杂度(一般认为圈复杂度在7级以上代码包括在20%的代码中)

最后,我们会得到一张表,来列名我们要测的代码范围:

f50bed9a3e9a

测试范围

1.2、评估标准(覆盖率)如何确定逻辑覆盖率

例如,我们拿到一段代码,实现的一个需求,我们首先要画流程图(使用统一规定标准图形,描述程序运行的具体步骤),然后以此来确定覆盖率,并且以后可以根据流程图画流图    1. 语句覆盖率,说明:非分支非判断的代码,覆盖率计算方式:被覆盖语句/总语句,例如,流程图里有3个语句,对于一个测试数据,它能覆盖2个语句,则语句覆盖率为2/3

2. 分支覆盖率,说明:判断语句的分支,例如if判断有两个分支,覆盖率计算方式:覆盖分支/总分支数,例如流程图里的if判断有2个分支,对于一个测试数据,它能覆盖1个分支,则分支覆盖率为1/2

3. 条件覆盖率,说明:一个条件有两个结果 true、false,所以一个条件分母为2,两个条件分母为4...例如:if username=='admin' and pwd=='123456':这里就有两个条件,分母为4

注意:条件之间使用逻辑符 and连接,第一个条件如果失败,不会在去判断第二个条件,如果测试数据是username==ad, pwd就不会判断,覆盖率为1/4;如果为or第一个条件失败回去判断第二条件

4. 路径覆盖率,说明:路径就是从开始-到结束的过程, 覆盖率计算方式:覆盖路径/全部路径

注意:路径的分子永远为1, 有时候看流程图路径有4条,但有一条永远不可成立,所以实际路径为3条,计算路径覆盖率时分母就为3

5. 分支条件覆盖率,说明:分支和条件的组合,1.分子=分支覆盖率的分子+条件覆盖率的分子;2.分母=分支覆盖率的分母+条件覆盖率的分母

三、单元测试策略-设计

单元测试策略:针对单元测试选择测试的一种方式;

单元测试策略方式:

1. 自上到下,方式:从最上层函数往下开始逐层测试,缺点(成本高)

2. 自下到上,方式:从最底层函数往上开始逐层测试,缺点(周期长,需要开发写完所有代码才能开始测试)

3. 孤立策略【推荐使用】方式:选择需要进行测试的函数进行测试,优点:选择重要的代码进行测试,测试构成中免不了测的某些函数会调用别的函数,所以一定要学会打桩

注意:打桩-->打桩就是模拟编写一个我们需要引用的函数,模拟定义被调用的函数名,提示:一般我们只模拟写个函数名,直接返回相应的结果即可(return 结果;pass)

示例:def fun_1(self):

return true

四、单元测试策略-实现

测试策略实现:把我们选定的代码,而且保证选定的代码能独立运行(已经打完桩),转向流程图、流图及用例的过程

测试策略实现如何操作:1. 将测试代码转换成流程图;2. 根据流程图转换为流图,有了流图测试用例就出来了

f50bed9a3e9a

流程图

<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值