实施单元测试的设计思路

 

  单元测试任务包括: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、错误陈述中未能提供足够的定位出错信息。

  边界条件测试是单元测试中最后,也是最重要的一项任务。众的周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。

  2. 单元测试用例及用例设计 

  了解了单元测试的任务,下面介绍测试用例,测试用例也是单元测试的核心,决定你的单元测试是否成功。测试用例的核心是输入数据。预期输出是依据输入数据和程序功能来确定的,也就是说,对于某一程序,输入数据确定了,预期输出也就可以确定了,至于生成/销毁被测试对象和运行测试的语句,是所有测试用例都大同小异的。 

  单元测试测试用例一般采用逻辑覆盖法和基本路径法进行设计。

  2.1. 逻辑覆盖法

  逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,这一方法要求测试人员对程序的逻辑结构有清楚的了解。逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖与路径覆盖。


  1. 语句覆盖就是设计若干个测试用例,运行所测程序,使得每一可执行语句至少执行一次。 

  2. 判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。

  3. 条件覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。 

  4. 判定--条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果也至少执行一次。 copyright 领测软件测试网

  5. 条件组合覆盖就是设计足够的测试用例,运行所测程序,使得每个判断的所有可能的条件取值组合至少执行一次。

  6. 路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。

  2.2. 基本路径法

  基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。基本路径测试法包括以下5个方面:

  1. 程序的控制流图:描述程序控制流的一种图示方法。 

  2. 程序环境复杂性:McCabe复杂性度量;从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行依次所必须的测试用例数目的上界。

  3. 导出测试用例。

  4. 准备测试用例,确保基本路径集中的每一条路径的执行。

  5. 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 功能测试用例设计思路可以参考以下步骤: 1. 确定测试目标:明确要测试的功能模块或系统的功能点。 2. 理解需求:仔细阅读需求文档或用户故事,确保对功能的理解准确。 3. 划分功能点:将功能模块或系统的功能点划分为独立的测试项。 4. 设计测试用例:根据功能点,设计测试用例,包括输入数据、预期结果和执行步骤。 5. 考虑边界条件:在设计测试用例时,考虑各种边界条件,包括最大值、最小值、空值等。 6. 考虑异常情况:设计测试用例时,考虑各种异常情况,包括错误输入、异常操作等。 7. 优先级排序:根据测试目标和需求的重要性,对测试用例进行优先级排序,确保重要功能得到充分测试。 8. 执行测试用例:按照设计测试用例,执行功能测试,记录测试结果。 9. 分析测试结果:根据测试结果,分析功能是否符合需求,是否存在缺陷。 10. 缺陷管理:对发现的缺陷进行记录、跟踪和管理,确保缺陷得到及时修复。 以上是一种常见的功能测试用例设计思路,根据具体项目和需求的不同,可能会有一些差异。\[1\] #### 引用[.reference_title] - *1* [设计测试用例(万能思路 + 六种设计用例方法)(详细 + 图解 + 实例)](https://blog.csdn.net/weixin_60358891/article/details/130608467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值