单元测试的主要内容是什么?

2020-07-02 09:41发布

2条回答
老测试 - 华为资深测试
2楼 · 2020-07-03 09:04

主要内容:边界测试、错误处理测试、路径测试、局部数据结构测试、模块接口测试

Hello Tester
3楼 · 2020-07-03 09:06

单元测试大多数由开发人员来完成,测试人员技术背景较好或者开发系统软件时可能会安排测试人员进行单元测试,大多数进行的单元测试都是开发人员调试程序或者开发组系统联合调试的过程。讨论这个问题主要是扩充一下读者的视野。

单元测试一般包括五个方面的测试:

1. 模块接口测试:模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。模块接口测试也是集成测试的重点,这里进行的测试主要是为后面打好基础。测试接口正确与否应该考虑下列因素:

  • 输入的实际参数与形式参数的个数是否相同;

  • 输入的实际参数与形式参数的属性是否匹配;

  • 输入的实际参数与形式参数的量纲是否一致;

  • 调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;

  • 调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;

  • 调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;

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

  • 是否存在与当前入口点无关的参数引用;

  • 是否修改了只读型参数;

  • 对全程变量的定义各模块是否一致;

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

如果模块功能包括外部输入输出,还应该考虑下列因素:

  • 文件属性是否正确;

  • OPEN/CLOSE语句是否正确;

  • 格式说明与输入输出语句是否匹配;

  • 缓冲区大小与记录长度是否匹配;

  • 文件使用前是否已经打开;

  • 是否处理了文件尾;

  • 是否处理了输入/输出错误;

  • 输出信息中是否有文字性错误。

  • 局部数据结构测试;

  • 边界条件测试;

  • 模块中所有独立执行通路测试;

 2. 局部数据结构测试:检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确,局部功能是整个功能运行的基础。重点是一些函数是否正确执行,内部是否运行 正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:

  • 不合适或不相容的类型说明;

  • 变量无初值;

  • 变量初始化或省缺值有错;

  • 不正确的变量名(拼错或不正确地截断);

  • 出现上溢、下溢和地址异常。

3. 边界条件测试:边界条件测试是单元测试中最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错 误。边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点,边界测试执行的较好,可以大大提高程序健壮性。

4. 模块中所有独立路径测试:在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体做法就是程序员逐条调试语句。常见的错误包括:

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

  • 混合类型运算;

  • 变量初值错;

  • 精度不够;

  • 表达式符号错。

比较判断与控制流常常紧密相关,测试时注意下列错误:

  • 不同数据类型的对象之间进行比较;

  • 错误地使用逻辑运算符或优先级;

  • 因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;

  • 比较运算或变量出错;

  • 循环终止条件或不可能出现;

  • 迭代发散时不能退出;

  • 错误地修改了循环变量。        

模块的各条错误处理通路测试:程序在遇到异常情况时不应该退出,好的程序应能预见各种出错条件,并预设各种出错处理通路。如果用户不按照正常操作,程序就退出或者停止工作,实际上也是一种缺陷,因此单元测试要测试各种错误处理路径。一般这种测试着重检查下列问题:

  • 输出的出错信息难以理解;

  • 记录的错误与实际遇到的错误不相符; 

  • 在程序自定义的出错处理段运行之前,系统已介入;

  • 异常处理不当;

  • 错误陈述中未能提供足够的定位出错信息。 

tips:内容来源于网络,如有侵权,请联系作者删除~~

相关问题推荐

  • 回答 157

    虽然从事开发行业的女生越来越多,但女生的比例还是远比不上男生。软件测试的男女生比例则基本相当,软件测试要求细心、耐心,大部分女生也是比较适合学的。而且软件测试课程分为手工测试和自动化测试,手工测试分为功能测试、性能测试、接口测试。自动化测试...

  • 回答 121

    需要。很多人当初抱着测试不需要懂代码,才选择了这个行业,这个就要看对自己的职业定位了,是止步于月薪过万就可以了,还是往20k、30k去突破,如果这样的话,是肯定要会接口、会自动化,就必然要涉及到代码。如果真的看不懂代码,实际的测试后期的工作会出现...

  • 回答 91

    在我看来游戏开发挺难的,尤其像手游一类的还有网游,里面有很多的程序代码而且伤神又费力,不过也有女生在这方面做的很好的,如果你感兴趣,非常想学,可以试试

  • 回答 80

    软件测试专业现在很火热,很缺少人才,25岁学软件测试能学会,就业薪资也高,工作也相对轻松

  • 回答 11
    已采纳

    测试类型有:功能测试,性能测试,界面测试。功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用...

  • 回答 15
    已采纳

    这个其实和接口测试的场景密不可分的,比如说:外部接口测试:    必须先接口测试通过了,才能执行功能测试子系统或者各个模块之间的联调测试:    必须各子系统后台代码完成,并提供接口才可以完成测试,一般来说都要求各子系统功能测试通过后再进行...

  • 回答 6
    已采纳

    这个是会因为公司的架构不同而不同的,并不是固定的,但是一般是会有专门的测试部门,或者叫质量保证部,也有可能是叫别的名字。

  • 回答 43
    已采纳

    移动端测试,包括App兼容性测dao试,7*24小时稳定性测试,功耗性能测试,UI测试,交互测试等,课程主要学习的内容有:1、功能测试主要包括计算机基础、软件测试核心理论、Linux、数据库,学习目标是掌握软件测试核心理论,结合Linux、数据库等可实现移动端、w...

  • 回答 1

    标题  1. 首先要做一个标题党(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找  3. 缺陷的标题一定要描述在什么情况下发生了什么问...

  • 回答 1

    1、 缺陷报告可以记录缺陷2、可以对缺陷进行跟踪管理3、可以对缺陷报告进行分类 总结 统计

  • 回答 1

    1、缺陷编号(Defect ID),提交BUG的顺序。2、缺陷标题(summary),简明扼要的说明一下这个BUG。3、缺陷的发现者(DetectedBy) ,一般是自己。4、发现缺陷的日期(Detected on date),一般是当天。5、缺陷所属的模块(subject), 在测试哪个模块的时候发现的BUG...

  • 回答 1

    缺陷标题好的缺陷标题需要让相关人员一目了然,一般建议的格式是条件+失败。缺陷类型缺陷类型也是根据具体的项目而定的。但一般情况下分为功能、界面、建议。重现步骤重现步骤的编写规则可以参考测试用例中的操作步骤 ,一定要足够详细、说明清楚问题的操作顺...

  • 回答 1

    工具:NoSQLUnitJsTestDriverQTRunnerVenusFluintBuster.JSSQLUnitECUTQTestlibUnitilsgreatestDbUnitAbbotGoogleTest框架:JUnitMoqJSCaptureMockCUnitPyUnitCppUTestCppUnitzCUTcipra

  • 回答 1

    JunitTestNGGoogleTestpytestunittestJmockitJaCoCogcov、lcov、gcovrCoverage.pyEvoSuiteDiffblue Cover

  • 回答 1

      React Hooks测试库( Testing Library)是一个简单而完整的React Hooks测试工具。  React Hooks测试库让用户可以为React钩子创建简单的测试工具,自定义钩子的输入和检索输出,以处理在功能组件体内运行的情况。  使用React Hooks,用户不必为了测试而去担...

  • 回答 1

    1、单元测试注重代码逻辑,接口测试注重业务逻辑;2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;3、单元测试是白盒测试,接口测试是黑盒测试;4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实...

没有解决我的问题,去提问