· 自顶向下增式测试:首先对主模块进行单元测试,然后把下一级模块和主模块联结起来,然后再增加下一级模块。
特点:逐步求精,测试数据难以生成。
· 自底向上增式测试:首先测试最底层模块,然后增加上一级模块,最后增加主模块。
特点:由于最后一层模块没有完成,不能开始测试;所以设计和测试工作不能交叉进行。
特点:差错逐步暴露,辅助模块较少,部分模块得到频繁考验。
确认测试:检验所开发的软件是否能够按照顾客的要求运行。
确认测试准则:需要根据需求规格说明书,完成测试规格说明书。
配置审查:确保所开发的软件所有资料完整。
系统测试:
恢复测试:采用各种方法干预软件出错,进而检验系统的恢复能力。
安全测试:验证安装在系统内的保护机能够对系统进行保护,使之不受各种非正常的干扰。
强度测试:检验系统的能力最高实际限度。
性能测试:检验安装在系统内的软件运行性能。
第四章:人工测试
审查会:inspection
评审:review
程序检查:program inspection
代码审查:code inspection
代码静态检查:desk checking
评审的目的是在于找出软件产品的问题。评审的对象是软件产品而不是开发者。
评审的作用:
· 利用评审数据提高软件质量。
· 发现遗漏、多余、错误这三类问题。
第四部分:黑盒测试
第一章:等价类划分
把程序的输入划分为若干部分,然后从每个部分中选取少数代表性数据当错测试用例。
· 划分集合:使用集合中的一个输入条件作为测试数据进行测试,不能发现程序中的错误,那么使用集合中的其他输入条件进行测试也不可能发现错误。
· 有效等价类:对程序的规格说明是有意义的、合理的输入数据所构成的集合。
· 无效等价类:对程序的规格说明是不合理的或无意义的输入数据所构成的集合。
等价类的划分方法
· 如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类。
· 输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可能有一个有效等价类和一个无效等价类。
· 如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应该将等价类进一步划分为更小的等价类。
测试用例的设计:
· 为每个等价类划分唯一的编号。
· 设计一个测试用例,使其可能多的覆盖尚未覆盖的有效等价类。
· 设计一个测试用力,使其覆盖一个无效的等价类。重复覆盖会忽略某个错误。
第二章:因果图
步骤:
· 分析原因和结果,原因是输入,结果是输出。
· 分析程序规格说明书中的描述语义的内容。并将其表示成联结各个原因和各个结果的因果图。
· 有些原因和结果的组合情况是不可能出现的。标明约束条件。
· 将因果图转换为判定表。
第三章:正交试验设计法
从大量的试验点中挑选中适量有代表性的点,依据正交表,合理安排试验的一种科学的试验设计方法。
第四章:边值分析
· 如果输入条件规定了取值范围,则应该取边界值及其稍大和稍小的值。
· 针对规格说明的每一个输入条件使用上述原则。
· 如果程序规格说明中提高的输入或输出域是个有序的集合,应该注意选取有序集的第一个和最后一个元素作为测试用例。
· 分析规格说明,找出其他可能的边界条件。
第五章:判定表驱动测试
· 规格说明以判定表形式给出,或是很容易转换成判定表。
· 条件的排列顺序不会也不影响执行那些操作。
· 规则的排列顺序不会也不影响执行那些操作。
· 每当某一规则的条件满足,执行定要的操作后,不必检验别的规则。
第六章:功能测试
第五部分:白盒测试
第一章:程序结构分析
控制流分析:控制流图,程序流程图。
数据流分析:针对代码优化,查找变量。
信息流分析:验证程序变量之间信息的传输遵循的保密要求。
第二章:逻辑覆盖
语句覆盖:在测试时,每个语句至少执行一次。
判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,判断的真假值均曾被满足。
条件覆盖:程序中每个判断中,每个条件的可能取值至少满足一次。
判定-条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次。并且每个判断本身的判定结果也至少出现一次。
路径覆盖:测试用例覆盖程序中所有可能的路径。
第三章:域覆盖
域错误:执行路径对于输入域的一类情况,如果程序的控制流有错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为域错误。
第四章:符号测试
允许程序的输入不仅是具体的数值数据,而且包括符号值。就是用符号代替具体的值。
第五章:路径分析
检验程序从入口开始,执行过程中经历的各个语句,直到出口。
第六章:程序插装
借助往被测程序中插入操作来实现测试目的的方法。
第七章:程序变异
错误驱动测试方法,该方法是针对某类特定程序错误制定的。
· 程序强变异
· 程序弱变异