目录
软件测试的目的
(1)测试是程序的执行过程,目的在于发现错误
(2)一个好的测试用例在于能发现至今为止未发现的错误
(3)一个成功的测试是发现了至今未发现的错误的测试
软件测试原则
1、应把“尽早的和不断地进行软件测试”作为软件开发者的座右铭
2、测试用例应有测试输入数据和对应的语气输出结果这两部分组成
3、程序猿应避免检查自己的程序
4、在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
测试信息流
软件配置
测试配置
测试工具
测试结果分析
排除(调试)
修正后的文档再测试
测试与软件开发各阶段的关系
软件开发过程是一个自顶向下,逐步细化的过程
测试用例设计
两种测试方法:
黑盒测试:把测试对象看做一个黑盒子,检查程序的功能是否符合他的功能说明
白盒测试:把测试对象看做一个透明的盒子,对程序所有逻辑路径进行测试
逻辑覆盖:是以程序内部的逻辑结构为基础的设计测试用例技术。属于白盒测试。
语句覆盖;判定覆盖;条件覆盖;判断-条件覆盖;条件组合覆盖;路径覆盖
语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次
判定覆盖:就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次
条件覆盖:设计若干个测试用例,运行被测程序,是程序中每个判断的每个条件的可能取值至少执行一次
判断-条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次
条件组合覆盖:设计足够的测试用例,运行被测程序,使得每个判断的所有可能的取值至少执行一次
路径测试:设计足够的测试用例,覆盖程序中所有可能的路径
条件测试路径选择:当程序中判定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型分支结构
循环测试路径选择
(1)简单循环
(2)嵌套循环
(3)连锁循环
(4)非结构循环
黑盒测试的测试用例设计
等价类划分:把所有可能的输入数据,即程序的输入域划分为若干部分,然后从每一部分中选取少数有代表性的输入作为测试用例。划分为有效等价类和无效等价类
原则:(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类
(2)如果输入条件规定了输入值的集合,或者规定了“必须如何”的条件,这时可确定一个有效等价类和一个无效等价类
(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类
(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理
(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类和若干个无效等价类
边界值分析:使用边界值分析方法设计测试用例,首先应确定便捷情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据
原则:1.如果输入条件规定了取值范围,则应对该范围的边界内附近,恰好在边界和边界外附近设计测试用例
2.如果输入条件规定了数据的个数,则应对最小个数,最大个数,比最少个数少1,比最大个数大1等情况设计测试用例
3.针对规格说明中的每个输入条件使用前面的1 和2原则
4.如果程序规格说明中提到的输入或输入域是个有序的集合。应选有序集的第一个和最后一个元素作为测试用例
错误推测法
因果图
软件测试的策略:
单元测试。组装测试、确认测试。系统测试
单元测试:又称模块测试,是针对软件设计的最小单元-程序模块,进行正确性检验的测试工作
组装测试:把模块组装成系统的方式有两种:一次性组装方式和增殖式组装方式
确定测试:又称有效性测试。任务是验证软件的功能和性能以及其它特性是否与用户的要求一致
系统测试:将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试