测试包:http://anychat.storage.aliyun.com/AnyChatCoreSDK_Win32(MBCS)_V4.6.zip数据库
单元测试是对软件基本组成单元/模块进行的测试,又称为模块测试。基本单元/模块能够是函数、类实例、方法、存储过程,也能够是任何具备明确功能、规格定义、明确接口定义、而且其规模是通常比较小的程序代码模块的组合体。安全
一、概述ide
单元测试是对软件基本组成单元/模块进行的测试,又称为模块测试。基本单元/模块能够是函数、类实例、方法、存储过程,也能够是任何具备明确功能、规格定义、明确接口定义、而且其规模是通常比较小的程序代码模块的组合体。函数
单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决。工具
单元测试中多采用白盒测试和黑盒测试相结合的方法,既关注单元功能,也关注程序模块的逻辑结构。二者结合起来,既能够避免因为过多关注路径而致使测试工做量很大的问题,又能够避免因从外部设计测试用例而可能丢失一些路径的问题。性能
现今,更多观点认为单元测试应该由编码人员实施,笔者认为这种观点是有道理的。毕竟由测试人员实施单元测试比编码人员实施的工做量更大。固然,若是对于测试航空、航天、医疗等关系重大生命、财产的软件系统来讲,须要投入大量的资源来保证系统质量时,则能够采用测试人员实施单元测试的策略。单元测试
单元测试的重点应该以功能测试为主,同时统计测试的覆盖率,而且测试模块的输入/输出接口是否正确,内部的数据流是否正确等。学习
功能测试主要测试模块是否正确实现了设计要求的功能,以及有无遗漏的功能。这里有一个功能覆盖的概念。由于被测试模块可能包括多个功能点,在作测试时,设计测试用例要覆盖这些功能点,以保证这些功能点通过测试。通常要求功能覆盖100%。测试
覆盖率通常要求进行语句覆盖率和分支覆盖率,同时要求测试全部的关键路径。关键路径的表达不是很明确,可是若是要求作基本路径集覆盖测试,即便是一个比较小的模块也是很难作到的。若是使用单元测试工具(如CppUnit、Junit等),则能够统计覆盖率。编码
单元测试结束后,若是有些分支因为各类条件没法覆盖,则须要给出缘由说明。
二、单元测试的步骤
单元测试过程包括计划、设计、执行、评审等几个步骤,分别以下所述。
① 计划:肯定测试需求,制订测试策略,肯定测试所用资源(如人员、设备等),建立测试任务的时间表。这部分工做能够简单描述。
② 设计:设计单元测试模型,制订测试方案,制订具体的测试用例,建立可重用的测试脚本。
③ 执行:执行测试用例,对单元模块进行测试,验证测试的结果并记录测试过程当中出现的缺陷。
④ 评审:对单元测试的结果进行评审。主要进行测试完备性评估。
因为单元模块每每不是一个独立的程序,在设计时,要考虑单元模块同其余模块的联系,用桩模块和驱动模块模拟所测模块相联系的其余模块。由被测试模块、驱动模块和桩模块共同构成可运行的程序。
驱动模块和桩模块的定义以下所述。
驱动模块:至关于被测试模块的主程序,用于接收数据或产生数据,把数据传递给被测试模块,再输出实测结果,或把实测结果同预期结果进行比对。
桩模块:也称为存根模块。用以代替被测试模块调用的子模块。桩模块能够用作数据处理,不须要把模块的全部功能都模拟,能够简单地返回一个值。
三、单元测试的内容
1)单元功能测试
单元功能测试的内容以下:
2)模块接口测试
在单元测试的开始,应对所测模块的数据流进行测试。若是数据不能正确地输入和输出,就不能进行其余测试。
对模块接口可能须要进行下面的测试外包项目:
3)内部数据流测试
内部数据流测试包括如下几点:
4)逻辑路径测试
逻辑路径测试包括如下几点:
以上提到的不少内容在编码规范或代码检查单中大多已经包含,若是模块在进入单元测试以前,已经进行了桌前检查和同行评审,则模块中潜在的缺陷就可能比较少。
四、单元测试用例设计
单元测试中几乎能够运用全部测试用例设计方法。
单元测试过程以下所述。
① 单元模块运行设计第一个测试用例。第一个测试用例通常是使用最简单的方法执行被测单元。当这个用例能够执行时,就能肯定测试环境和测试单元是可用的。
② 设计被测试单元测试用例。阅读相关的设计说明,每个测试用例就是经过有针对性地测试说明书中的一项或者多项内容,用以验证设计说明书所对应的功能是否实现。
③ 设计测试功能异常处理方面的测试用例。用可能致使模块功能失效的无效数据,测试模块对无效数据的反应是否合理,以及对异常或错误的处理后模块的反应如何,验证模块有没有作不该该作的工做。
④ 设计其余的测试用例,验证设计对模块的要求。例如计算精度、性能、可恢复性、安全性等。
⑤ 加载测试用例运行程序,须要查看和记录测试结果,尤为是测试结果与预期结果不一致的状况。
⑥ 补充测试用例,执行前面测试用例运行没有覆盖到的主要分支和 语句。
⑦ 重复上面的1~6步,直到功能覆盖、主要逻辑覆盖、异常条件和边界覆盖等。
但愿经过本文对单元测试的介绍,可以给你带来帮助。
对本文有疑问能够加Q:2256985656,欢迎学习交流。