`
zhouxiaoli521
  • 浏览: 562602 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

单元测试方法

    博客分类:
  • TDD
阅读更多

单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。
单元测试任务
  单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。
  模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑下列因素:
  1 输入的实际参数与形式参数的个数是否相同;
  2 输入的实际参数与形式参数的属性是否匹配;
  3 输入的实际参数与形式参数的量纲是否一致;
  4 调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
  5 调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
  6调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
  7 调用预定义函数时所用参数的个数、属性和次序是否正确;
  8 是否存在与当前入口点无关的参数引用;
  9 是否修改了只读型参数;
  10 对全程变量的定义各模块是否一致;
  11是否把某些约束作为参数传递。
  如果模块内包括外部输入输出,还应该考虑下列因素:
  1 文件属性是否正确;
  2 OPEN/CLOSE语句是否正确;
  3 格式说明与输入输出语句是否匹配;
  4缓冲区大小与记录长度是否匹配;
  5文件使用前是否已经打开;
  6是否处理了文件尾;
  7是否处理了输入/输出错误;
  8输出信息中是否有文字性错误;
  检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:
  1 不合适或不相容的类型说明;
  2变量无初值;
  3变量初始化或省缺值有错;
  4不正确的变量名(拼错或不正确地截断);
  5出现上溢、下溢和地址异常。
  除了局部数据结构外,如果可能,单元测试时还应该查清全局数据(例如FORTRAN的公用区)对模块的影响。
  在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。此时设计测试用例是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。此时基本路径测试和循环测试是最常用且最有效的测试技术。计算中常见的错误包括:
  1 误解或用错了算符优先级;
  2混合类型运算;
  3变量初值错;
  4精度不够;
  5表达式符号错。
  比较判断与控制流常常紧密相关,测试用例还应致力于发现下列错误:
  1不同数据类型的对象之间进行比较;
  2错误地使用逻辑运算符或优先级
  3因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
  4比较运算或变量出错;
  5循环终止条件或不可能出现;
  6迭代发散时不能退出;
  7错误地修改了循环变量。
  一个好的设计应能预见各种出错条件,并预设各种出错处理通路,出错处理通路同样需要认真测试,测试应着重检查下列问题:
  1输出的出错信息难以理解;
  2记录的错误与实际遇到的错误不相符;
  3在程序自定义的出错处理段运行之前,系统已介入;
  4异常处理不当;
  5错误陈述中未能提供足够的定位出错信息。
  边界条件测试是单元测试中最后,也是最重要的一项任务。众的周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。
单元测试过程
  一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。
  应为测试模块开发一个驱动模块(driver)和(或)若干个桩模块(stub,下图显示了一般单元测试的环境。驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块,被测试模块被调用后,“主程序”打印“进入-退出”消息。
  驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用。若驱动和桩模块比较简单,实际开销相对低些。遗憾的是,仅用简单的驱动模块和桩模块不能完成某些模块的测试任务,这些模块的单元测试只能采用下面讨论的综合测试方法。
  提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显著减少,模块中的错误也更容易发现。

分享到:
评论

相关推荐

    Testbed工具手册—单元测试方法V1.0.doc

    Testbed工具手册—单元测试方法V1.0.doc Testbed工具手册是软件测试领域中的一种重要工具,旨在帮助开发者和测试工程师对软件进行单元测试。下面是Testbed工具手册的详细知识点解读: 一、单元测试简介 ----------...

    基于VisualUnit的Linux项目单元测试方法研究.pdf

    "基于VisualUnit的Linux项目单元测试方法研究" 本文主要研究基于VisualUnit的Linux项目单元测试方法,介绍了VisualUnit的功能特色,并详细介绍了使用该工具构建Linux项目测试工程的方法。同时,对使用过程中的技巧...

    VSTS单元测试方法

    VSTS单元测试方法

    Java单元测试方法与技术

    总的来说,Java单元测试方法与技术包括选择合适的测试框架(如JUnit),理解如何编写测试用例,使用模拟对象来隔离测试,实践TDD以及采用CI工具确保代码质量。熟练掌握这些技能将对提高软件质量和可维护性产生积极...

    软件单元测试方法(共93张PPT).pptx

    【软件单元测试方法】 软件单元测试是软件开发过程中的关键环节,它主要目的是验证软件的最小可测试单元,如函数、方法或类,确保它们按照预期正常工作。本PPT详细介绍了单元测试的重要性和实施方法。 1. **序言**...

    NUnit单元测试方法

    NUnit 执行单元测试方法,包含public, private, protected 方法的测试方法。 NUnit单元测试 私有(private)方法单元测试 protected方法单元测试 public 方法单元测试

    SpringBoot2种单元测试方法解析

    SpringBoot2种单元测试方法解析 在本文中,我们将详细介绍两种常用的 SpringBoot 单元测试方法,并通过示例代码对其进行了详细的介绍。 普通测试类 在 SpringBoot 中,我们可以使用 JUnit 框架来编写单元测试。...

    spring集成TestNG与Mockito框架单元测试方法.pdf

    Spring集成TestNG与Mockito框架单元测试方法的文档详细介绍了如何在Java Spring项目中,利用TestNG和Mockito框架进行单元测试。这种测试方法可以帮助开发者快速上手单元测试,并确保代码质量。文档涉及了多个方面,...

    基于退火遗传算法的自动化单元测试方法分析.rar

    本文将深入探讨一种结合了退火遗传算法的自动化单元测试方法,该方法旨在优化测试用例的选择和执行,从而提高测试效率和覆盖率。 退火遗传算法是一种混合优化技术,它融合了模拟退火算法和遗传算法的优点。模拟退火...

    持续集成技术与单元测试方法

    持续集成技术与单元测试方法 内容包括以下: 持续集成技术 – 持续集成的基本概念 – 持续集成的作用和优点 – 如何实施持续集成 • 单元测试技术 – 单元测试基本方法 – 单元测试实践中常见的问题 – 单元...

    代码检查走查方法和错误列表、单元测试方法和用例设计、调试方法

    代码检查走查方法和错误列表、单元测试方法和用例设计、调试方法

    FPGA可编程逻辑单元测试方法研究.pdf

    本文研究了FPGA可编程逻辑单元(LE)的测试方法,提出了基于扫描链的逻辑资源遍历测试方法,并以Altera公司的Cyclone系列FPGA为例,探讨了如何在超大规模集成电路测试系统CATT400上实现FPGA的在线配置和功能测试。...

    通过spring管理的web工程的junit单元测试方法四

    在Spring框架中,进行Web工程的JUnit单元测试是软件开发中的关键步骤,它能确保代码的质量和可维护性。本文将深入探讨如何利用Spring管理的Web工程进行单元测试,以及如何借助工具提升测试效率。 首先,理解“通过...

    关于WEB单元测试操作规程

    这种测试方法强调的是软件的外部行为,而非内部结构或实现细节。 测试内容主要分为三个方面:UI界面、校验提示信息和功能性。对于UI界面,测试人员需要确保界面设计符合规范,大小、风格、标题、按钮布局以及文字...

    基于退火遗传算法的自动化单元测试方法分析.pdf

    基于退火遗传算法的自动化单元测试方法分析.pdf

Global site tag (gtag.js) - Google Analytics