IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 单元测试个人总结 -> 正文阅读

[开发测试]单元测试个人总结

单元测试个人总结

1、 单元测试概述

单元测试,即对软件基本组成单元进行的测试,一般由编码者自行测试,若特殊情况(项目要求或其他)可由独立于编码者的测试人员进行。

其测试对象、优缺点、意义以及适用项目如图3-1所示:
在这里插入图片描述

2、 工作阶段及任务
2.1 工作阶段:
在这里插入图片描述
单元测试位于编码阶段,即根据详细设计说明书完成单元代码编制、审查后便可进行,无需等系统全部集成。

2.2 阶段任务:
在这里插入图片描述

获取详细设文件和源码文件后,设计测试用例,编写测试代码,对单元代码进行测试,将测试结论填写到单元测试报告和Bug清单中。把软件Bug清单和测试用例执行结果提交负责人。
对源码文件进行的测试,视程序存在缺陷的情况,可能要重复进行,直至问题解决

3、测试流程
在这里插入图片描述
3.1 单元测试计划:
1)测试范围:

单元测试的对象为软件设计的最小单位——模块(组件、单元),作为单元能够实现一个特定的功能,并和其他单元有明确的接口定义。

测试范围的确定由以下几个因素构成,根据因素确定优先级,最后敲定测试范围:

  • 使用频率:越高优先级越高;
  • 复用性:未被复用过(即全新代码)的代码优先级高,复用代码无需测试;
  • 复杂度:复杂度7级(McCabe复杂度)以上的代码。
    注:复杂度计算详见白盒用例设计

2)评估标准:

单元测试的评估标准:代码覆盖率、需求覆盖率。

覆盖类型:语句覆盖、分支覆盖、条件覆盖、分支-条件覆盖、组合覆盖和路径覆盖(按照发现错误的能力呈由弱到强的变化排序)。在这里插入图片描述
各种覆盖的优缺点如下表所示:
在这里插入图片描述
单元测试评估标准的选择也需根据项目实际情况而定,目前较为常用的路径覆盖率。
3.2 单元测试设计
1)测试策略
测试策略以及各自的优缺点如下图所示:
在这里插入图片描述
在实际测试过程中可能包括大量函数,不可能对所有的函数进行单元测试,所以需根据测试范围去敲定合适的测试策略(推荐孤立策略)。
注:桩函数和驱动函数介绍详见后续章节。
2)测试用例设计
测试用例的编制可从两方面进行设计:黑盒用例设计方法、白盒用例用例设计方法。

  • 黑盒设计

从该单元功能上确定输入和预期输出,不关注代码本身。一般考虑以下方面的数据输入:正常输入、异常输入和边界输入(边界输入不一定有)

  • 白盒设计(基本路径测试法)

基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

具体步骤如下:

  • 将代码转换成流程图;
  • 将流程图转换成数据流图;
    数据流程图:由边(线)和节点(圆圈)组成;流程图与数据流图的关系以及复杂度计算如下图所示。

在这里插入图片描述

  • 根据数据流图设计测试用例
    根据数据流图计算:基本路径的数量=圈复杂度V(G)=e-n+2(e代表边,n代表节点)。
    根据流图找出V(G)条独立路径并进行数据设计。
    3.3 案例分析
    被测代码(vbs):
    在这里插入图片描述
    转换成流程图:

在这里插入图片描述
数据流图:
在这里插入图片描述
根据数据流程图计算:
V(G)=e-n+2=10-7+2=5,即代码复杂度为5级,实现独立路径覆盖的测试用例数为5个。
独立路径:即和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。上图的独立路径如下:
路径1:1->4->6->7
路径2:1->4->5–>7
路径3:1->2->4->6->7
路径4:1->2->4->5->7
路径5:1->2->3->4->5->6->7
测试用例编写如下::
在这里插入图片描述
覆盖率分析:
在这里插入图片描述
以上基本路径法用例设计基本达到了语句覆盖100%,条件覆盖100%,分支覆盖100%,但未考虑不符合程序规范的输入,需辅以黑盒设计方法。
根据参数描述“IntA,IntB,IntX均为非0正整数”黑盒测试用例如下:
在这里插入图片描述
综合以上测试用例便为该程序较为完整的测试用例。

3.4测试实现
实现阶段任务主要为:根据项目情况,搭建测试环境、选择测试框架、完成测试代码的编写(要求实现数据与代码分离)。

测试代码类型包含:驱动代码、桩代码和mock代码,三者的关系如下:

在这里插入图片描述

  • 驱动代码:指调用被测函数的代码。在单元测试过程中,驱动模块包括调用被测函数前的数据准备、调用被测函数以及验证相关结果(即断言)三个步骤。断言的功能是当预期的输出与实际的输出不符时,自动报告错误。
  • 桩代码:模拟外部依赖的临时代码,一般模拟函数,仅控制执行路径,不验证测试结果。例如,某个函数A的内部实现中调用了一个尚未实现的函数B,为了对函数A的逻辑进行测试,那么就需要模拟一个函数B,从而保证A函数的按照预期的执行路径执行,这个模拟的函数B的实现就是所谓的桩代码。
    案例分析:
    在这里插入图片描述
    B函数未知,使用桩函数替代
    在这里插入图片描述
    用例:
    在这里插入图片描述

驱动代码:
在这里插入图片描述

  • Mock代码:模拟外部依赖的临时代码,一般模拟接口,需验证测试结果。mock对象用来判断测试是否能通过,也就是用来验证测试中依赖对象间的交互能否达到预期。
    案例分析:
    在这里插入图片描述
    利用真实的对象进行测试只能等到下午五点不现实,此时可利用mock对象来进行测试。
    Mock对象:增加时间赋值函数并将播放音频状态输出以便进行测试结论分析。
    在这里插入图片描述
    驱动代码:
    在这里插入图片描述
    3.5 单元测试执行:
    根据数据文件和测试代码执行测试用例,并记录执行结果,对执行结果进行评估,并输出测试结果文件。
    输出:
  • 源程序文件
  • 单元测试用例,格式可参照附件1;
  • 单元测试记录;
  • 软件Bug清单(如有),格式可参照附件2;
  • 单元测试报告。
    4.附件
    附件1
    在这里插入图片描述

附件2
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:59:21  更:2021-12-09 11:59:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:47:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码