这里写目录标题
一、黑盒测试二、白盒测试一、黑盒测试
黑盒测试概述
黑盒测试也称功能测试或数据驱动测试。它已知产品所应具有的功能,通过测试来检测每个功能是否能够正常使用,主要针对软件界面和软件功能。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入的测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
常见黑盒测试方法
等价类划分法:
定义:把程序的输入划分为若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类的其他值。在设计测试用例时,要同时考虑这两种等价类,因为软件不仅要能接收合理的数据,也能接受意外的考验。用户不知道程序的使用,需要考虑意外情况。
有效等价类:满足需求的数据;
无效等价类:不满足需求的数据;
等价类划分步骤
1、明确需求
2、确定有效等价类和无效等价类
3、编写测试用例
边界值法
定义:对输入或输出的边界值进行测试的一种方法,通常边界值分析法作为等价类划分法的补充,在这种情况下,其测试用例来自等价类的边界值。
边界情况:取正好等于,刚刚大于或刚刚小于边界的值作为测试数据。一般都是大1或小1的数作为测试数据。
边界值分析法步骤:
1、明确需求
2、确定有效等价类和无效等价类
3、确定边界值
4、编写测试用例
上点:处于边界上的点,对于闭区间,上点是有效数据,离点是无效数据;
离点:离上点最近的点,对于开区间,上点是无效数据,离点是有效数据
内点:取值范围内的点,不管开闭,都是有效数据
因果图法
定义:利用图解法分析输入的各种组合情况,从而设计用例的方法,它适合于检查程序输入条件的各种组合情况。
对比等价法和边界值法:等价类划分法和边界值分析法都是着重考虑输入条件的内容,但没有考虑输入条件的各种组合,输入条件之间的制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽略了。
因果图法步骤:
1、分析:输入输出数据
2、关联:不同组合间的关联、约束,形成因果图
3、转换:将因果图转化为判定表
4、从判定表导出测试用例
场景法
在测试软件时,场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,称为软件的基本流;而凡是出现故障或缺陷的过程,就用备选流加以标注。备选流可以从基本流来,也可以从备选流引出。
举例:
基本流:导入正确的文件,能成功导入
备选流1:导入的文件是空文件
备选流2:导入的文件格式不对…
正交实验法
定义:从大量的(实验)数据(测试用例)中挑选适量的,有代表性的例子,从而合理地安排实验(测试)的一种科学实验设计方法。利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明书中得到。往往因果关系非常庞大以至于据此因果图而得到的测试用例数目多地惊人,给软件测试带来承重的负担,为了有效合理地减少测试的工时与费用,可用正交实验设计方法进行测试用例的设计。 正交实验法是研究
正交表的行数的确定:试验次数(行数) = 因子数*(状态数-1)+ 1
选择正交表的原则:
1、正交表因素数 >= 因素数
2、正交表每个因子 >= 每个因子数
3、取行数最少的一个
正交实验法步骤:
1、有哪些因素(变量)
2、每个因素有哪几个水平(变量)
3、选择行数最少的正交表
4、把变量的值映射到正交表中
5、把每一行的各因素水平的组合作为一个测试用例
6、加上认为可疑且没有在表中出现的组合
判定表法
定义:分析和表达逻辑条件下执行不同的操作的情况下的工具。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例集合。
场景:有多个输入和多个输出,而且输入与输入之间有相互的组合关系,输入和输出之间有相互的制约和依赖关系。
判定表的四个组成部分:
1、条件桩:列出来问题的所有条件,列出的条件次序无关紧要;
2、动作桩:列出了问题规定可能采取的操作;
3、条件项:列出针对它左列条件的取值,在所有可能的情况下的真假值(输入值);
4、动作项:列出在条件项的各种取值的情况下应采取的动作(输出值);
设计步骤:
1、明确需求;
2、画出判定表:
明确条件桩、动作桩
填写条件项,对条件项进行组合
明确各个条件项组合对应的动作项
3、生成测试用例,每行对应一条测试用例
举例:
错误推测法:根据测试经验来判断容易出问题的地方。
功能图分析法:
定义:由状态转移图和布尔函数组成。
用流程图描述用户的使用场景,然后通过覆盖流程路径设计测试用例,从流程图开始到结束,由几条路径就是几个测试用例,一条路径对对应一条测试用例。
功能图分析法步骤:
1、明确需求
2、画出流程图
3、编写测试用例
二、白盒测试
定义:白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。
目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态一样。
白盒测试需要遵循的原则:
1、保证一个模块中的所有独立至少被测试一次;
2、所有逻辑值需要测试真(true)和假(false);
3、检查程序的内部数据结构,保证其结构的有效性;
4、在上下边界及可操作范围内运行所有循环。
常见白盒测试方法:
静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。
动态测试:需要执行代码,通过运行程序遇到问题,包括功能确定与接口测试、覆盖率分析、性能分析、内存分析等。
**逻辑覆盖:**白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
1、语句覆盖每条语句至少执行一次;
2、判定覆盖每个判定的分支至少执行一次;
3、条件覆盖每个判定表达式的每个条件应取到各种可能的值
4、判定/条件覆盖同时满足判定覆盖和条件覆盖;
5、条件组合覆盖每个判定中各条件的每一种组合至少出现一次;
6、路径覆盖使程序中每一条可能的路径至少执行一次。