1.黑盒测试
又称为功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。测试人员一般把被测程序当作一个黑盒子(看不见)。
a.黑盒测试主要测到的错误类型有:不正确或遗漏的功能;接口、界面错误;性能错误;数据结构或外部数据访问错误;初始化或终止条件错误等等。
b.常用的黑盒测试方法有:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
2.白盒测试
为什么要考虑白盒测试呢?举个栗子说明,设x=0,y=5, 程序设计z=y/x, 如果只考虑输入输出的黑盒测试,我们看不出程序内部的逻辑错误(分母不能为零),即使我们使用黑盒测试的测试用例覆盖的再全也发现不了这个问题,这个时候就要考虑使用白盒测试了。
而什么是白盒测试呢?白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。
白盒测试需要遵循的原则有: 1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环。
白盒测试方法有:
· 静态测试&动态测试
静态测试是不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。动态测试则需要执行代码,也是我们用的最多的一种测试,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。
· 单元测试
· 代码检查
· 同行评审
· 技术评审
要检验测试的效果,就要去看测试的覆盖率,当覆盖率越大,说明测试成效越好,软件的缺陷越少。但覆盖率不是目标(质量才是目标)而只是一种手段。测试覆盖率包括功能点覆盖率和结构覆盖率,其中,功能点覆盖率大致用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系;而结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率和路径覆盖率等等。
而逻辑覆盖法中根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为:语句覆盖; 判定覆盖;条件覆盖;判定/条件覆盖;组合覆盖;路径覆盖,且这些覆盖程度越往后越全。