前段时间面试,被面试官问到了很多关于测试方面的问题,最近一段时间学习一些关于测试方面的知识作为扩展补充。
单元测试属于白盒测试的一种方式;
白盒测试:
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
白盒与功能:
如果功能测试足够充分,那么白盒测试就没有必要;
白盒测试具有有易于衡量测试完整性的优点,对于衡量测试的完整性是功能测试的主要缺陷,二者互补;
软件工程流程图
立项—>需求–>设计–>编码和单元测试–>集成测试–>确认测试–>系统测试–>系统实施
常见工具
测试工具分为几下几类:
代码检测工具
覆盖率测试工具
内存检查
性能检查
质量分析工具
常用工具有以下几种:
代码检查:LINT
覆盖率:TrueCoverage
内存检查:BounderChecker
性能检查:TrueTime
单元测试:
是最小粒度的测试,以测试某个功能或代码块。
单元测试的对象是软件设计的最小单位——模块。
单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,
以便发现模块内部的错误。
单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试;
单元测试的内容:
单元功能测试:
单元设计的功能点是否全部实现。
运算的优先级和先后执行顺序是否正确。
计算中精度的处理是否正确。
计算中的误差是否会无限放大。
模块接口测试:(对内或对外)
接口的依赖性、接口里的参数、可选参数和必选参数的组合、
参数的类型、参数的长度;
内部数据流测试:
不正确或不一致的数据类型说明。
使用尚未赋值或尚未初始化的变量。
错误的初始值或错误的默认值。
变量名拼写错误或书写错误。
不一致的数据类型。
全局变量对模块是否产生影响。
逻辑路径测试:
是否达到重要的功能点路径。
逻辑判断的边界点是否正确。
异常/错误处理。
比较完善的模块设计要求能预见异常或出错的条件,并设置适当的异常处理和出错处理,以便在程序出现异常或错误时,能对出错程序重新进行安排,保证逻辑上的正确性。
重点考虑一下几个问题:
- 异常或出错的描述是否可以理解。
- 异常处理是否合理、出错后对错误的定位是否准确。
- 提示的错误与实际的错误是否一致。