51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 33021|回复: 56
打印 上一主题 下一主题

单元测试的基本方法[转帖]

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-8-10 10:50:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。
    单元测试任务
  单元测试任务包括: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错误陈述中未能提供足够的定位出错信息。
  边界条件测试是单元测试中最后,也是最重要的一项任务。众的周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

57#
发表于 2012-5-9 15:47:27 | 只看该作者
看了收益非浅!好帖
回复 支持 反对

使用道具 举报

该用户从未签到

56#
发表于 2011-4-11 20:04:07 | 只看该作者
很好耶!学到了东西!!谢谢!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2023-9-19 19:52
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    55#
    发表于 2010-4-21 21:23:53 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    54#
    发表于 2009-8-5 20:06:59 | 只看该作者
    谢谢分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    53#
    发表于 2009-7-30 17:05:01 | 只看该作者

    会作已经很了不起了
    还能总结的如此细致
    厉害
    高手中的高手
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    52#
    发表于 2009-4-7 16:02:46 | 只看该作者
    还不完全哦。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    51#
    发表于 2009-3-6 12:17:20 | 只看该作者
    看过了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    50#
    发表于 2009-2-19 14:50:15 | 只看该作者
    感谢分享!~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    49#
    发表于 2009-1-5 09:22:58 | 只看该作者
    不错不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    48#
    发表于 2008-9-5 16:31:20 | 只看该作者
    多谢多谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    47#
    发表于 2008-7-16 14:04:00 | 只看该作者
    非常好,谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    46#
    发表于 2008-7-8 10:55:14 | 只看该作者
    看了收益非浅!好帖
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    45#
    发表于 2008-6-16 13:17:28 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    44#
    发表于 2008-6-12 13:33:52 | 只看该作者
    单元测试好象很难..
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    43#
    发表于 2008-4-18 18:11:25 | 只看该作者
    厉害,我也顶,正在做单元测试呢,有一定的难度,首先要是阅读别人写的代码,这本身就是一件头疼的事情,然后在设计案例,不过.lz的思路挺清晰的,谢谢了,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    42#
    发表于 2008-1-28 15:01:24 | 只看该作者
    好东西 收了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41#
    发表于 2007-10-21 21:05:18 | 只看该作者
    还不是很了解单元测试,看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40#
    发表于 2007-10-8 16:04:51 | 只看该作者
    顶一个。 现在正在做这方面呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39#
    发表于 2007-10-3 22:26:42 | 只看该作者
    谢谢啦.谢谢..
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-28 13:15 , Processed in 0.091275 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表