目录
一、软件测试的目的和原则
软件测试的目的
软件测试的原则
软件测试的对象
测试信息流
测试与软件开发各阶段的关系
软件测试的目的
-1测试时程序的执行过程,目的在于发现错误
-2一个好的测试用例在于能发现至今未发现的错误
-3一个成功的测试是发现了至今未发现的错误的测试
软件测试的原则
-1应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭
-2测试用例应由测试输入数据和对应的预期输出结果这两部分组成
-3程序员应避免检查自己的程序
-4在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
测试信息流
三个输入 | -软件配置 -测试配置 -测试工具 |
三个输出 | -测试结果分析 -排错 -修正后的文档再测试 |
测试与软件开发各阶段的关系
软件开发过程是一个自顶向下,逐步细化的过程
测试过程是依相反顺序安排的自底向上,逐步集成的过程
二、测试用例设计
分为黑盒测试和白盒测试
白盒测试:内部结构透明,主要测试程序逻辑路径,又称结构测试---逻辑驱动测试
1、逻辑覆盖
语句覆盖、判断覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖
-语句覆盖:设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次
判定覆盖:设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次
-条件覆盖:设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次
-判定-条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少 执行一次
条件组合覆盖:条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次
2、路径测试:设计足够的测试用例,覆盖程序中所有可能的路径
条件测试路径选择:当程序中判定多于一个时,形成的分支结构可以分为两类 -嵌套型分支结构和连锁型分支结构
循环测试路径选择:简单循环、嵌套循环、连锁循环、非结构循环(尽量转化为结构循环)
黑盒测试:把测试对象看成一个黑盒,主要测试功能,又称功能测试---数据驱动测试
测试用例设计:
等价类划分、边界值分析、错误推测法、因果图
等价类划分:把所有可能的输入数据,即程序的输入域化粪池若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例
分为有效等价类和无效等价类
等价类划分原则:
-1输入条件规定了取值范围或值的个数,则可以确立一个有效等价类和两个无效等价类
-2如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类
-3如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类
-4如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理
-5如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
边界值分析
边界值分析设计测试用例应遵循原则:
1、如果输入条件规定了取值范围,则应对范围的边界内附近,恰好在边界和边界外附近(无效等价类中)设计,测试用例
2、如果属入条件规定了数据的个数,则应对最小个数,最大个数,比最少个数少1,比最大个数大1等清空设计测试用例
等价类和边界值方法的区别
1、边界值不是从等价类中随便取一个数据作为代表,而是选一个或几个特定值,使这个等价类的每个边界都作为测试的目标
2、边界值分析不仅要考虑输入条件,而且要考虑输出条件(输出等价类)
一般联合使用等价类划分和边界值分析两种种方法
错误推测法:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例
因果图:如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,因果图方法最终生成的就是判定表
基本步骤
1、分析软件规格说明描述中,哪些是原因,哪些是结果,并给每个原因和结果赋予一个标识符
2、分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图
3、由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件
4、把因果图转换成判定表
5、把判定表的每一列拿出来作为依据 ,设计测试用例