软件测试
目的1测试是程序的执行过程,目的在于发现错误2一个好的测试用例在于能发现至今未发现的错误3一个成功的册数是发现了至今为发信的错误的测试
原则
1应当把”今早地和不断地进行软件测试”作为软件开发者的座右铭
2测试用例应由测试输入数据和对应的预期输出结果这两部分组成
3程序员避免检查自己的程序
4 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
测试信息流 软件配置,测试配置,测试工具,测试结果分析,排错,修正后的文档再测试
测试过程是依相反顺序安排的自底向上,逐步集成的过程
测试方法 黑盒测试功能 白盒测试逻辑
白盒测试
逻辑覆盖
语句覆盖 设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次
判断覆盖 设计若干个测试用例,运行被测程序,使得程序中每个判断的区真支和取假分支至少经历一次
条件覆盖 使得每个判断的每个条件的可能取值至少执行一次
判断条件覆盖 设计足够的测试用例,使得判断中 每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次
条件组合覆盖,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次
路径测试 覆盖程序中所有可能的路径
循环测试路径选择 简单循环,嵌套循环,连锁循环,非结构循环
黑盒测试的测试用例设计
等价类划分,边界值分析,错误推测法,因果图
等价类划分方法,把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数代表性的数据作为测试用例
有效等价类 无效等价类
如果输入条件规定了取值范围 或值的个数,则可以确立一个有效等价类和两个无效等价类
如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类
如果输入条件是是一个布尔量,则可以确定一个有效等价类和一个无效等价类
如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理
如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类,和若干个无效等价类
边界值分析
首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值作为测试数据
错误推测法 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
因果图 如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例。
软件测试的策略 单元测试,组装测试,确认测试和系统测试
单元测试的内容
组装测试 一次性组装 增殖式组装
确认测试 有效性测试,任务式验证软件的功能和性能及它特性是否与用户的要求一致
1进行有效性测试(黑盒测试) 2 软件配置复查
系统测试 α测试 开发者到现象,用户操作,β测试开发者不到现场用户把错误信息给开发者
测试种类
功能测试 验证功能 所有功能
可靠性测试 测试系统的可靠性
强度测试 检查系统运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试
性能测试 检测系统是否满足在需求说明书中规定的性能
恢复测试 证实在克服硬件故障后,系统能否正常的继续进行工作,并不对系统造成任何伤害
启动 停止检测 验证在机器启动及关机阶段,软件系统真确处理的能力
配置测试 检查 计算机内部各个设备或各个资源之间的相互联接和功能分配中的错误
安全性测试 系统安全性,保密性措施是否发挥作用,有无漏洞
可使用性测试 验证系统的支持策略,对于公司与用户方面是否切实可行
安装测试 不是找软件的错误 找安装的测试
过程测试 用户的不同角色,测试
文档测试 检查用户文档的清晰性和精准性
调试 在进行了成功的测试之后的工作 进一步的诊断和改正程序中的潜在错误
步骤
1从错误的外部表现形式入手,确定程序中出错位置
2研究有关部分的程序,找出错误的内在原因
3修改设计和代码,以排除这个错误
4重复进行保罗了这个错误的原始测试或某些有关测试
调试方法
强行排错 直接打印错误数据
回溯法调试 一旦发现了错误,人们先分析错误征兆,确定最先发现症状的位置
归纳法 从一些线索,通过分析它们之间 的关系来找出错误
3w1h 形式
演绎法调试 一种从一般原理或前提出发,经过排除和精华的过程来推到出结论的思考方法
调试原则
修改错误的原则
在出现错误的地方,很可能还有别的错误
当心修正一个错误的同时会有可能引入新的错误