软件测试复习资料
输入条
有效等价类
无效等价类
件
地区码 以0开头的3位区码 以0开头的小于3位的数字串
以0开头的4位区码 以0开头的大于4位的数字串
以非0开头的数字串
以0开头的含有非数字的字符串
电话号 以非0、非1开头的7位
以0开头的数字串
码
号码
以1开头的数字串
以非0、非1开头的8位 以非0、非1开头的小于7位数字
号码
3、评审方法
各种方法交替使用,不同阶段和场合选取合适的方法 临时评审:设计、开发和测试人员自行进行。 轮查:邮件分发评审内容,搜集评审意见。 互为审查(同行评审):适用于两个工作内容和技术相近的人员(团 队)。 走查:从头到尾进行检查。 会议审查:系统化、严密的集体评审方法,用于最可能产生风险的工作 成果(需求分析报告、系统架构设计、核心模块的代码)。
串
以非0、非1开头的大于8位数字
串
以非0、非1开头的含有非法字符
7或者8位数字串
测试用 010 6123456 覆盖1、7 01 81234567 覆盖3,8
例 025 81234567 覆盖1、 05511 6123456 覆盖4,7
8
10 81234567 覆盖5,8
0551 7123456 覆盖2、 025g 81234567 覆盖6,8
5、软件测试流程图 需求测试、单元测试、集成测试、系统测试、系统测试、性能测试、验 收测试、回归测试 6、软件测试和开发的关系
1、评审(属于静态测试)的概念:检验产品(需求或设计文档)是否 正确地满足以往建立的规范、是否符合客户的需求。 技术评审:对产品及各阶段的输出内容进行评估;查找需求、架构、逻 辑、功能和算法上的错误。 文档评审:对各文档的格式、内容等进行评审。如市场需求说明书、功 能设计说明书、测试计划、测试用例…。 2、缺陷修正成本 VS 时间
1、单元测试概念:针对软件设计的最小模块——程序模块,进行正确 性检验的测试工作。
内容:接口;局部数据结构;边界条件;独立路径;错误处理路径 2、单元测试的方法:主要采用白盒测试法,辅以黑盒测试法。 白盒测试法:用于代码评审、单元程序检验 黑盒测试法:用于模块、组件等大单元的功能测试之中 3、黑盒测试法:把程序看作一个不能打开的黑盒子,不考虑程序内部 结构和特性,而是考察数据的输入、条件限制和数据输出,完成测试。 4、白盒测试法:也称结构测试或逻辑驱动测试,根据模块内部结构, 基于内部逻辑结构,针对程序语句、路径、变量状态等来进行测试,检 验程序中的各个分支条件是否得到满足、每条执行路径是否按预定要求 正确的工作。 5、驱动程序和桩程序 驱动程序(driver),对底层或子层模块进行(单元或集成)测试时所 编制的调用被测模块的程序,用以模拟被测模块的上级模块 桩程序(stub),对顶层或上层模块进行测试时,所编制的替代下层模 块的程序,用以模拟被测模块工作过程中所调用的模块。
1、缺陷的严重等级 缺陷严重等级 描述
0级:致命
最严重等级,缺陷导致系统任何一个主要功能完全 丧失、用户数据受到破坏、系统崩溃、悬挂、死机
1级:严重
系统的主要功能部分丧失、数据不能完整保存,系 统的次要功能完全丧失,系统所提供的功能或服务 受到明显的影响
2级:一般
系统的次要功能没有完全实现,但不影响用户的正 常使用。例如提示信息不太准确;或用户界面差、 操作时间稍长等
7
010 06123456 覆盖9,1
0571 92345678 覆盖 0551 1123456 覆盖10,2
2、8
0551 612345 覆盖11,2
0571 912345678 覆盖12,2
0571 912345ab 覆盖13,2
1、手工测试:发现缺陷率高;容易实施;创造性、灵活性;覆盖率量 化困难;重复测试效率低;不一致性、可靠性低;依赖人力资源 自动测试:高效率(速度);高复用性;覆盖率容易度量;准确、可 靠;不知疲劳;激励团队士气;机械、难以发现缺陷;一次性投入大 2、两者相互补充: 手工测试适用于:功能逻辑测试、验收测试、适用性测试、交互性测 试…不稳定、开发周期短或一次性的软件 自动测试适用于:单元测试、集成测试、系统负载或性能测试、可靠性 测试… 工具本身缺乏想象力和创造性 自动测试:发现15%的缺陷;手工测试:发现85%的缺陷
白盒方法的目标 语句覆盖:使程序中每一条可执行语句至少被执行一次。<最弱> 分支覆盖:又称判定覆盖,使程序中每一个分支都至少被执行一次。 条件覆盖:程序中每一个条件至少有一次被满足。 路径覆盖:对程序模块的所有独立的基本路径至少要测试一次。<最强>
共四条路径: Path1:1-2-3-4;Path2:1-2-3;Path3:1-3-4;Path4:1-3 7、基本路径覆盖 路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路 径。 基本路径测试法是在程序控制流图的基础上,通过分析环路复杂性,导 出基本可执行路径集合,从而设计测试用例的方法。 设计出的测试用例要保证每个可执行语句至少被执行一次。是路径覆盖 的一个变体。 8、环路复杂性 三种方法: 1. V(G) = 区域数目 2. V(G) = 边界数目 – 节点数目 + 2 3. V(G) = 判断节点数目 + 1
此方法不仅自两头向中间集成,而且保证每个模块得到单独的测试,使 测试进行得比较彻底。
1、功能测试用例的设计 针对输入数据,采用:等价类划分法、边界值分析法 针对系统受多因素影响,采用: 因果图、决策表分析 2、等价类划分法:把所有可能的输入数据,划分成若干个子集(即等 价类),然后从每一个等级类中选取少数具有代表性的数据作为测试用 例。 要同时考虑有效和无效两种等价类。因为软件不仅要能接收合理的数 据,也要能经受意外的考验。 3、边界值法的设计方法 (1)确定边界情况 (2)选取正好等于、刚刚小于或刚刚大非渐增式测试模式:先分别测试每个模块,再把所有模块按设计 要求放在一起结合成所要的程序,如大棒模式。 (2)渐增式测试模式:把下一个要测试的模块同已经测试好的模块结 合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测 试。 10、自顶向下法
自底向上法
改善的三明治集成方法
1、系统测试 定义:针对非功能特性展开的,验证软件产品符合这些质量特性的要 求,从而满足用户和软件企业自身的非功能性需求。 分类:负载测试、性能测试、容量测试、安全性测试、兼容性测试、可 靠性测试等 2、定义 负载测试:通过模拟实际软件系统所承受的负载条件、改变系统负载大 小和方式来发现问题。更多地体现了一种方法或技术,可以为性能测试 和压力测试所采用。 压力测试:在强负载情况下(如大数据量、大量并发用户连接等)稳定 性进行测试,确认系统是否具有良好的容错能力和可恢复能力。 性能测试:为获取或验证系统性能指标而进行的测试。 3、输入参数:负载测试是通过模拟用户的操作方式来考察系统的行 为,所以人们肯定会问:如何模拟用户的行为? (1)并发用户数;(2)思考时间:用户发出请求之间的间隔时间; (3)加载的循环次数或持续时间;(4)请求的数据量;(5)加载方 式 <输入参数设计:模拟系统实际运行时的外部条件> 5、输出参数 数据传输的吞吐量;数据处理效率;数据请求的响应时间;内存和CPU 使用率 <目的:监控负载测试的过程,分析测试的结果> <系统的行为表现,资源消耗情况> 6、性能指标 时间:如响应时间、处理时间、下载时间… 容量:如最大并发在线用户数… 数据吞吐量:如每秒处理的请求数… 系统资源占用率:如CPU使用率不超过70%…
1、测试用例的元素 测试目标,测试环境要求,输入数据,操作步骤,期望输出(重要的) 2、如何设计出高质量的测试用例: (1)客户需求导向的设计思路;(2)责任到人; (3)灵活的设计方 法 (4)测试用例设计不能局限于输入数据 (5)避免含糊/冗长/复杂 的测试用例(6)将具有类似功能的测试用例抽象并归类
1、软件缺陷的表现: (1)功能、特性没有实现或部分实现(2)设计不合理(3)实际结果 和预期结果不一致(4)运行出错,包括运行中断、系统崩溃、界面混 乱(5)数据结果不正确、精度不够(6)用户不能接受等其他问题,如 存取时间过长、界面不美观 2、软件缺陷的产生 (1)技术问题:算法错误、语法错误、计算和精度问题、接口参数传 递不匹配 (2)团队工作:误解、沟通不充分 (3)软件本身:文档错误、用户使用场合;时间上不协调/不一致性所 带来的问题;系统的自我恢复或数据的异地备份、灾难性恢复等 3、软件测试的发展4阶段 (1)1957~1978年,以功能验证为导向,测试是证明软件是正确的 (正向思维)。 (2)1978~1983年,以破坏性为导向,测试是为了找到软件中的错误 (逆向思维)。 (3)1983~1987年,以质量评估为导向,测试是提供产品的评估和质 量度量。 (4)1988年起,以缺陷预防为导向,测试是为了展示软件符合设计要 求,发现缺陷、预防缺陷。 4、软件测试定义的两面性
示例计算结果:V(G) =4 保证每个可执行语句至少被执行一次。 每个分支也能得到测试。 一条新的路径必须包含有一条新边。 基本路径:A-C-E-F-H;A-C-E-G-H;A-B-C-E-G-H;A-C -D-C-E-G-H
6、对于处于提交审批状态的单据,数据完整率达到80%以上或已经过业 务员确认,则进行处理。 输入条件: C1:处于提交审批状态 C2:数据完整率达到80%以上 C3:已经过业务员确认 输出结果: E1:处理 E2:不处理
1. 条件桩:列出问题的所有条件 2. 动作桩:列出可能针对问题所采取的操作 3. 条件项:针对所列条件的具体赋值(可取真值和假值) 4. 动作项:列出在条件项组合情况下应该采取的动作 5. 规则:任何一个条件组合的特定取值及其相应要执行的操作
5、因果图法 通过因果图确定输入条件组合和输出之间的逻辑关系,有利于设计全面 的测试用例。
响应时间:用户的关注点 容量和数据吞吐量:产品市场团队的关注点 系统资源占用率:开 发团队的技术关注点 7、兼容性测试的内容 硬件兼容性测试:如打印机 数据兼容性测试:如不同格式的文件