单元测试的内容
来源:互联网 发布:郧西七夕节网络歌曲 编辑:程序博客网 时间:2024/04/28 03:29
单元测试由一组独立的测试构成,每个测试针对软件中的一个单独的程序单元。单元测试并非检查程序单元之间是否能够合作良好,而是检查单个程序单元行为是否正确。在单元测试时,测试人员根据详细设计说明书和源程序清单,了解到该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理和不合理的输入都要能鉴别和响应。这就要求对程序所有的局部和全局的数据结构、外部接口和程序代码的关键部分进行桌面检查和代码审查。
在单元测试中进行的测试工作主要在5个方面对被测模块进行检查:
1. 模块接口测试
在单元测试开始时,应该对通过所有被测模块的数据流进行测试。如果数据不能正常地输入及输出,那么其他的全部测试都说明不了问题。Myers在关于软件测试的书中为接口测试提出了一个检查表:
● 模块输入参数的数目是否与模块形式参数数目相同。
● 模块各输入的参数属性与对应的形参属性是否一致。
● 模块各输入的参数类型与对应的形参类型是否一致。
● 传到被调用模块的实参的数目是否与被调用模块形参的数目相同。
● 传到被调用模块的实参的属性是否与被调用模块形参的属性相同。
● 传到被调用模块的实参的类型是否与被调用模块形参的类型相同。
● 引用内部函数时,实参的次序和数目是否正确。
● 是否引用了与当前入口无关的参数。
● 用于输入的变量有没有改变。
● 在经过不同模块时,全局变量的定义是否一致。
● 限制条件是否以形参的形式传递。
● 使用外部资源时,是否检查可用性并及时释放资源,如内存、文件、硬盘、端口等。
当模块通过外部设备进行输入/输出操作时,必须扩展接口测试,附加如下的测试项目:
● 文件的属性是否正确。
● Open与Close语句是否正确。
● 规定的格式是否与I/O语句相符。
● 缓冲区的大小与记录的大小是否相配合。
● 在使用文件前,文件是否打开。
● 文件结束的条件是否安排好了。
● I/O错误是否检查并做了处理。
● 在输出信息中是否有文字错误。
2. 局部数据结构测试
模块的局部数据结构是最常见的错误来源,应设计测试用例以检查以下各种错误:
● 不正确或不一致的数据类型说明。
● 使用尚未赋值或尚未初始化的变量。
● 错误的初始值或错误的默认值。
● 变量名拼写错或书写错—— 使用了外部变量或函数。
● 不一致的数据类型。
● 全局数据对模块的影响。
● 数组越界。
● 非法指针。
3. 路径测试
检查由于计算错误、判定错误、控制流错误导致的程序错误。由于在测试时不可能做到穷举测试,所以在单元测试时要根据“白盒”测试和“黑盒”测试用例设计方法设计测试用例,对模块中重要的执行路径进行测试。重要的执行路径指那些处在完成单元功能的算法、控制、数据处理等重要位置的执行路径,也指由于控制较复杂而易错的路径,有选择地对执行路径进行测试是一项重要的任务。应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误,对基本执行路径和循环进行测试可发现大量的路径错误。
在路径测试中,要检查的错误有:死代码,错误的计算优先级,算法错误,混用不同类的操作,初始化不正确,精度错误—— 比较运算错误、赋值错误,表达式的不正确符号—— >、>=;=、==、!=,循环变量的使用错误—— 错误赋值以及其他错误等。
比较操作和控制流向紧密相关,测试用例设计需要注意发现比较操作的错误:
● 不同数据类型的比较。
● 不正确的逻辑运算符或优先次序。
● 因浮点运算精度问题而造成的两值比较不等。
● 关系表达式中不正确的变量和比较符。
● “差 1 错”,即不正常的或不存在的循环中的条件。
● 当遇到发散的循环时无法跳出循环。
● 当遇到发散的迭代时不能终止循环。
● 错误的修改循环变量。
4. 错误处理测试
错误处理路径是可能引发错误处理的路径及进行错误处理的路径,错误出现时错误处理程序重新安排执行路线,或通知用户处理,或干脆停止执行使程序进入一种安全等待状态。测试人员应意识到,每一行程序代码都可能执行到,不能自己认为错误发生的概率很小而不去进行测试。一般软件错误处理测试应考虑下面几种可能的错误:
● 出错的描述是否难以理解,是否能够对错误定位。
● 显示的错误与实际的错误是否相符;
● 对错误条件的处理正确与否;
● 在对错误进行处理之前,错误条件是否已经引起系统的干预等。
......
本文转载自51Testing软件测试网,查看全文:http://www.51testing.com/html/17/n-238717.html
- 单元测试的内容
- 1. 单元测试的内容
- 单元测试内容
- 软件测试之单元测试的内容与步骤
- Nhibernate 同 asp.net ,泛型,单元测试的最佳实践(同文章里的内容)
- ContentProvider学习心得(中)--通过单元测试的方式完成对通讯录内容的操作
- 单元测试-四(测试那些内容)
- 【学习笔记】单元测试概念和测试内容
- 单元测试与单元测试的基本方法
- 单元测试军规:如何编写更好的单元测试
- 单元测试军规:如何编写更好的单元测试
- 单元测试军规:如何编写更好的单元测试
- 【Android单元测试系列】真正的异步单元测试
- Java的单元测试和集成spring单元测试
- 单元测试军规:如何编写更好的单元测试
- 重要的单元测试
- 单元测试的基本过程
- 有效的写单元测试
- C# 牛人必备知识
- Struts 1 和 Struts 2 的线程安全
- 从CSDN改版说起
- 马踏棋盘
- 在sharepoint中获取“当前用户”方法
- 单元测试的内容
- 快速开发模式与敏捷模式的关系
- 固态电容
- js -显示时间
- java IO 练习感悟!
- 英语
- 英语
- 英语
- 技术与生活