单元测试测什么?

单元测试测什么?

当然是测试代码中的单元模块。

但是究竟怎么来完成单元模块的测试呢?

有些项目组的单元测试用例与软件其他测试级别的测试用例完全相同——一样的功能测试用例、一样的性能测试用例和一样的接口测试用例。

程序员在编写完代码之后,通过编译来确保代码的语法正确;通过单元测试来确保代码的语义正确。

而一个几乎和配置项测试的用例完全一样的单元测试,它还能够确保代码语义的正确性吗?

好的单元测试用例设计不应与其他测试级别的测试用例雷同,它应当包含以下几个方面的测试内容:

  1. 测试单元模块的接口参数

对单元接口参数的测试,应该包括:

  • 测试输入的实际参数与形式参数的个数是否相同、属性是否匹配。

  • 测试调用其他模块时所给实际参数与被调模块的形参个数是否相同、属性是否匹配。

  • 测试调用预定义函数时所用参数的个数、属性和次序是否正确。

  • 测试是否存在无关的参数引用。

  • 测试是否修改了只读型参数。

  • 测试各模块对全局变量的定义是否一致。

  • 测试是否把某些约束作为参数传递。

如果模块内包括外部输入和输出,还应该包括:

  • 测试文件属性、文件的OPEN/CLOSE语句是否正确。

  • 测试输入/输出的数据格式与代码中定义是否匹配。

  • 测试缓冲区大小是否满足要求。

  • 测试文件使用前是否已经打开,是否处理了文件尾。

  • 测试是否处理了输入/输出错误,测试输出信息中是否有文字错误。

  1. 测试单元模块的数据结构

对单元数据结构的测试,应该包括:

  • 测试有无不合适或不相容的数据类型说明。

  • 测试有无变量没有赋初值。

  • 测试变量的初始化或默认值是否正确。

  • 测试有无不正确的变量名(拼错或不正确地截断)。

  • 测试有无出现地址异常。

  1. 测试单元模块的执行路径

单元测试的基本任务是保证单元模块中每条路径至少执行一次。而这些路径测试应能发现因错误计算、不正确的比较和不适当的控制流造成的错误。常见的错误包括:

  • 误解或用错了运算符优先级。

  • 混合类型的数据运算。

  • 错误的变量初始值。

  • 数据精度不够。

  • 错误的表达式符号

其他的测试内容还包括:

  • 测试是否错误地使用逻辑运算符或优先级。

  • 测试是否因为计算机精度造成的理论上相等而实际上不相等的错误。

  • 测试比较运算或变量是否出错。

  • 测试循环终止条件是否合理。

  • 测试迭代发散时有无不能退出的错误。

  • 测试是否存在错误地修改了循环变量的情况。

对于出错处理路径应着重测试下列问题:

  • 测试输出的出错信息是否难以理解。

  • 测试记录的错误与实际遇到的错误是否相符。

  • 测试是否存在异常处理不当。

  • 测试错误信息中是否能提供足够的定位出错信息。

另外,单元测试也需要关注软件的可维护性。单元模块的可维护性测试要覆盖:代码结构、模块化、代码注释的质量、标准符合性、可理解性、文档化等。

总之,单元测试是为了确保代码语义与我们的期望是一致的,单元测试的测试用例不可能与集成测试、配置项测试等其他级别的测试用例完全相同。

这正是:

单元测试测什么,全由目的来决定

深入结构和逻辑,语义正确我看行

参考书目:软件测试管理,作者:郑文强,马均飞,出版社:电子工业出版社

(0)

相关推荐

  • 动态单元测试的详细设计文档

    随着汽车日益互联化.智能化和电动化,硬件组件的抽象化,软件功能变得愈发复杂--汽车正在从基于硬件的创新转向基于软件的创新,并且软件安全和质量越来越受到制造商和消费者的关注,而传统的工具和流程可能无法满 ...

  • 新手入门软件测试,这些知识点须牢记

    新手入门软件测试,这些知识点须牢记

  • MLOps具有模型单元测试的连续交付

    在本系列文章中,我们将引导您完成将CI/CD应用于AI任务的过程.最后,您将获得一个满足GoogleMLOps成熟度模型第2级要求的功能管道.我们假设您对Python,深度学习,Docker,DevO ...

  • 怎么测自己的婚姻变化

    怎么测自己的婚姻变化 如果想让我说三个字我会说,我想你,人说天下没有不散的宴席,或许,今天你还在,明天我们便分离,我害怕失去,珍惜每一刻,那最美好的时光,不要让这最美好的时光里,留下什么遗憾,爱情的美 ...

  • 男女肾虚“自测表”:有4条以上,别不承认,你可能肾虚了?

    论伤害男人最狠的一句话 不是"你是个好人" 而是"你不行...." 它能直接将男人"打入18层地狱" 不要以为 肾虚只是指的男人 女人也是一 ...

  • 测测你们的缘分指数

    测测你们的缘分指数 有很多的人放弃,是不被珍惜,主动,换不来心动,在乎,得不到看重,眼里没有你的人,你何必放在心里,情里没有你的份,你何苦一往情深,对爱情有所期待的人都希望拥有旺盛的桃花运,好让自己从 ...

  • 测测自己的恋情失恋要多久走出

    测测自己的恋情失恋要多久走出 古有山川之美,我则认为真正的美在心灵的深处,那是一朵幽蓝幽蓝的花,在心灵深处发出炙热的光,那是一个火红的太阳,温暖着人们的内心,其实最好的婚姻,不一定要轰轰烈烈的恋爱过程 ...

  • 小升初数学毕业考试测评卷,难度大,可以挑...

    小升初数学毕业考试测评卷,难度大,可以挑...

  • 测一下今年的财运如何

    测一下今年的财运如何 财富人人都想拥有,但现实社会中贫富差距却很大,生辰八字可以反映一个人一生各方面的运势情况,当然也包括财运,所以通过一个人的生辰八字我们即可了解其未来财运如何,有没有成为有钱人的可 ...

  • 测测你和她的缘分

    测测你和她的缘分 美好的时光,都会浓缩成为一部忘却的历史:往事只能回味,过去的已不再回来,未来的还得继续走下去,很多的事情,经过时间的打磨,只有当自己经历过后,一切都是那么的顺其自然,只要耐心的不停去 ...

  • 65岁后心脏好不好,血压值告诉你,哪类人要定期测血压?

    心脏和血压并不是孤立的两个存在,它们之间是有联系的,大家可以想象一下,如果心脏泵血的力量不够,器官等不到血液滋养,血管流动的速度较慢,这时就会出现低血压的症状,比如说蹲下后站起来,或者是从床上起身,突 ...