总结:其他测试用例设计方法应该结合和补充。 例如,软件边界测试方法是最有能力检测错误的。 这里,cause代表输入条件,result是对输入进行一组计算后得到的输出。 或者,用一个值就意味着某种状态不会出现,然后就意味着某种状态会出现。
1. 理解基本测试术语动态测试:通过执行软件组件或系统来测试软件静态测试:审查组件规范和静态代码执行正式审查:具体审查审查过程和需求文档(组内)评估标准: 测量所使用的方法或标准 审查者: 参与审查人员的记录 秘书: 审查会议记录的记录。 技术审查:同行之间对技术的审查,目的是就技术实施达成共识。 演练:文档作者逐步浏览文档以收集信息。 而且我也同意里面的内容。 复杂性:系统或组件的设计和内部结构的复杂程度以及难以理解、维护和验证的程度。 圈复杂度:程序中独立路径的数量。 您可以衡量组件模块决策结构的复杂性。 控制流:组件或系统执行的一系列顺序路径。 数据流:表示数据对象成功或状态变化的过程 (1) 状态变化:预定付款 - 已付款 - 预定发货 - 已发货 - 预定签名 - 已签名 - 预定评估 - 已评估 (2) 金额流程:卡绑定(客户)→收费(平台)平台接入银行-财务管理(资金管理平台或选定平台) 平台接入银行将资金划转至财务管理项目对应账户 ---[k4 ] 平台资金扣减控制流程图和复杂的循环 控制流图概念 • 控制流图(CFG,Controlflowgraph),也称为控制流图,是进程或程序的抽象表示。 循环复杂度:程序中独立路径的数量使我们能够测量组件模块的顺序确定结构的复杂度。 • 计算目标为结构图或程序图,程序图包括控制流程图和流程图
if (x>100&&y>500) then Score=score+1 else if ( x> = 1000| |z>5000)则score=score+2
三种计算圈复杂度的方法: (1) 圈复杂度 = 区域数 圈复杂度 = 3 (2) 圈复杂度 = number 的个数边 [ k4 ] 节点数 + 2 圈复杂度 = v - e + 2 圈复杂度 = 7 [ k4 ] 6 + 2 = 3 (3) 圈复杂度 = 决策节点 + 1 圈复杂度 = 2 + 1
============================================== === === 2.用例设计方法 1.等价类 等价类:指各个输入条件相等的一组输入字段。 等价类通常分为两种情况。 (1) 有效等价类:对程序规范有意义的适当输入数据。 手机号码:11 位 15949613302 (2) 无效等价类:未指定程序 有意义且无效的输入数据 案例 1:输入手机号码:11 位 159496133021(超过 11 位) 案例 2:输入手机号码:11 位 159496133 (小于11位)案例3:输入手机号码:11位15949613:qq(非纯数字)
(3)等价类划分的用例思路设计:
查找输入条件对于每个输入条件,找到每个等价类的有效和无效等价类。 编号以涵盖最少的用例最有效的等价类(重点)每个无效等价类都有一个用例(重点)并非所有有效等价类都覆盖无效等价类,它们可以重复覆盖(4)总结:等价类设计用例覆盖原则:4.1 每个用例覆盖尽可能多的有效等价类。 4.2 每个用例仅涵盖一个无效的等价类。
案例练习:我们有一个现有的文件管理系统,允许用户输入年份和月份。 在搜索档案文件时,系统允许用户输入年份和月份。 将查询条件中输入的年份和月份限制为1990年1月至2049年12月,规定日期必须由6位数字组成,前4位代表年份,后2位代表月份。 搜索条件:(1)1990年1月-2049年12月(总计)(2)6位数字(3)前4位数字为年份(4)后2位数字为月份
常见的等价类可以分割的地方:
数值范围内的重复次数、字符串长度、字符串组中的字符数、文件名、文件大小、颜色 屏幕类型、超时时间等。
等 价类的优缺点:考虑单个输入域中的不同情况,避免盲目或随机选择输入数据的不完整性和覆盖不稳定。 缺点:该方法简单易用,但组合考虑不周。 它应该与其他测试用例设计方法相补充。 例如,边界值
======================================== == === ======== 边界值(1)在软件中,边界值测试方法是最能发现错误的方法。
QQ账号平仓范围:上分:5 13 客分:4 14 内分:6到12 8代表
开仓范围:上分: 5 13 离群点:6 12 内点:7-11
(2)边界条件分析:
输入条件用于明确数值范围或或指定一个值。 数值输入条件阐明有序集
(3) 边界值分析原理 1. 当输入(输出)条件指定一个值范围时,该范围内和边界附近的值是值作为测试用例 2。 如果输入(输出)条件指定了值的个数,则使用最大个数、最小个数、比最小个数少一、比最大个数多一作为测试数据3。 程序规范中提到的输入或输出是有序集。 您应该小心选择有序集的第一个和最后一个元素作为测试数据。
案例:贷款金额输入框:100-5000 闭区间上限:100 5000 客场积分:99 5001 内线积分:101-4999
= =================
最高分 开盘分:100 5000,客分:101 4999,内分:102-4998
================== ============== 判断表:(组合时) (1)决策表定义:分析表达多种逻辑条件下不同操作的执行情况
(2)结构:由四部分组成。 1) 条件存根:列出问题中的所有条件(通常条件的顺序并不重要)。 2) 条件输入:列出该条件的值(所有情况下的真值和假值)。 3)操作存根:列出根据问题可以执行的操作(顺序不受限制)。 4)动作条目:列出各种条件下需要执行的动作。
创建步骤: 1)确定规则数量:如果有N个条件,则每个条件值下有两个; ^n 规则。 2) 列出所有条件堆和动作堆。 3) 输入条件项。 4) 输入操作项,获取初判表。 5) 简化(合并相似规则) 6) 创建测试用例
案例:2个条件,2个值(填充或不填充)2平方= 4 案例1:来自对于大功率输出的车辆50马力以上、维修记录不完整的机器或使用10年以上的机器,应优先维修……”
了解:1. 50马力以上机器及不完整保养记录(优先)2. 已运行10年以上的机器(优先) *条件为3×2的3次方=8次。 8次即可覆盖所有案例组合: 简化初始决策表: 决策表的特点: 利用决策表根据不同情况枚举复杂问题,评估组合值即可进行不同的操作。 各种逻辑条件
============================== 鱼骨图(1)鱼骨图:提供鱼骨图将规格转换为决策表的系统方法,从中可以生成测试数据。 其中,原因代表输入条件,结果是对输入进行一系列计算后得到的输出。
因果图产生的最终结果是决策表。 适合检查软件输入条件的各种组合(强调是后加的) (2) 特性图中的四种基本关系。 在鱼骨图的基本符号体系中,图左侧的节点 ci 表示输入状态(或原因),右侧的节点 ei 表示输出状态(或结果)。 ci和ei取值0或1,其中0表示特定条件不发生,1表示特定条件发生。 Ø恒等式:如果c1为1,e1也为1,否则e1为0。 ØNon:如果c1为1,则e1为0,否则e1为1。 Ø 或:如果 c1 或 c2 或 c3 为 1,则 e1 为 1 Ø 如果 c1 和 c2 都为 1,则 e1 为 1,否则 e1 为 0。 因果图中的约束 在实际问题中,输入和输出状态之间可能存在某些依赖性。 ,这称为“约束”。 输入条件约束有四种类型:E、I、O 和 R。 输出条件只有 M 个约束。 ØE约束(不包括):a和b最多有一个为1。 即a和b不能同时为1。 ØI 约束(或):a、b、c中至少有一个必须为1。 即a、b、c不能同时为0。 ØO约束(唯一):a和b中只有一个必须为1。 ØR约束(要求):如果a为1,则b一定为1。 也就是说,如果a为1,b一定不能为0。 ØM约束(必填):如果结果a为1,则结果b被迫为0。
(3) 鱼骨图步骤: 1. 将大型系统规范分解为可测试的规范块。 2. 分析被测系统的分解规格,找出哪些是原因,哪些是影响。 3. 画出因果关系。 图 4. 将因果图转换为决策表 5. 简化决策表 6. 使用决策表的每一列生成测试用例
因果图案例:自动自动售货机 这是一家加工每单位 5 美分饮料的公司。 规格如下。 投入5分或1元硬币,按【橙汁】或【啤酒】按钮即可获得相应饮料。 如果自动售货机没有零钱,红灯就会亮起,表示“没有零钱”。 这时如果插入1元硬币并按下按钮,饮料不会出来,1元硬币也会弹出。 如果您有零钱,表示“零钱已完成”的红灯将会熄灭,50 美分的硬币将在您提供饮料的同时退还。
(4)如何将因果图转换为决策表:
将因果图中的所有条件(原因)写入到决策表的条件堆中决策表。 当您转换因果图中的所有动作(原因)时,结果将填充到决策表的动作堆中。 根据特征图确定每个条件组合对应的动作,确定决策表中每个规则的条件项和动作项,并根据需要优化决策表
(5) 因果图 优点/缺点 优点:
等价类方法 考虑每个输入条件可能出现的错误,但忽略多个输入条件组合的错误情况。 2. 鱼骨图可以帮助您遵循特定的过程,有效地选择测试用例,并为多个输入条件的组合设计用例。 3、鱼骨图分析还可以指出程序规范描述中的问题。 缺点:可能很难从软件需求中确定输入条件和输出结果之间的因果关系。 即使在规范中获得了这些因果关系,但因果关系也很复杂,因此因果关系图也会非常大,测试用例的数量也会非常多。
具体的软件规范包括要求:第一列中的字母必须是 A 或 B,第二列中的字母必须是数字。 在这种情况下,文件将被修改,但如果第一列的字母错误,将显示消息“L”。 如果第二列中的字符不是数字,则显示消息 M。 :根据问题的意思,原因和结果如下。 原因:1——第一列的字母是A。 2——第一列的字母是B。 3——第二列的字符是数字。 结果:21——修改文件。 22——提供信息L。 23——给出信息M。 对应的因果图如下: 11是中间节点。 考虑到原因1和原因2不能同时为1,我们对因果图施加E约束。
场景法:
(1)场景法主要应用于测试场景类型,也称为场景过程分析法。 流程分析是将软件系统中的某个流程视为一条路径,利用路径分析技术来设计测试用例。 按照流程的顺序依次加入,这样就可以到达流程的所有分支。
举例:1》HR考勤系统:终止流程是什么?(2)网上购买物品的步骤是什么? 练习:练习1:测试ATM机取款流程我会。 基本流程是:
用户将卡插入ATM,验证卡并输入密码。 ATM机将确认您的密码并输入金额。 系统验证金额并发放资金,数据库扣除账户内金额。 如果用户选择取款,ATM机返回初始状态。
使用xmind工具创建思维导图:
(1)xmind工具:(2)流程分析步骤:
绘制业务流程图 注:条件分支描述正常处理和异常处理确定(功能路径) 注:确认设计路径的优先级并确认测试路径 注:选择时考虑路径覆盖率 数据构建用例 注:选择要组合的数据 选择性等价类别边界值分析
=== ============================= 正交数组
正交实验设计是选择适当数量的科学实验从大量测试点中提取代表点,并使用源自伽罗瓦理论的“正交阵列”。 合理安排实验。 设计方法
正交常用术语指标:决定测试结果质量的标准通常称为测试指标系数。 影响测试指标的所有条件 级别值:影响测试系数的值 系数:3级 数值:2的2的3次方 8的公式:实验数量 = 因子 * (级别数 -1) + 1 3 * (2 - 1) + 1 = 4 种
案例:因子:7 级别数:2 数实验次数:7 *(2-1)+1 = 8种
正交数组的特点:1》可以适当比较同一个正交数组中,每个水平的出现次数因子完全相同。 由于实验中每个因素的每个水平与其他因素的每个水平参与实验的概率完全相同,这就保证了每个水平最大限度地排除其他因素水平的干扰。 2》平衡方差 在同一个正交数组中,任意两列(两个因子)的水平组合(水平形成的数字对)完全相同。 这确保了测试条件均匀分布在因子水平的完整组合中,从而更容易获得具有良好代表性的测试条件。
使用正交数组设计测试用例的步骤:(1)有哪些因素(变量或条件)?(2)每个因素(变量或条件的值)的水平是多少? (3) 选择合适的正交数组以满足良好的可比性 (4) 将变量的值映射到表中(确保第一行全为 true 或全 false)(推荐) (5) 获取每个因子组合将每行的级别添加到测试用例 (6) 中,并添加您认为可疑的未出现在表中的任何组合。
==================== ======= ======= 状态转移图的定义:系统状态 和 ,通过描述导致系统状态转换的事件来表示系统的行为。
案例: l 致电航空公司订票 → 如果机票信息为“已完成”状态 l 客户支付机票后 -> 如果机票信息为“已付款”状态 l 行程开始当日到达机场并取票后 -> 机票信息变为“已发行”状态 l 登机办理登机手续后 -> 机票信息变为“已使用”状态 变更 l 您可以取消您的机票在登机前随时查看预订信息。 如果您已支付机票费用,您还可以退款或取消。 之后—>预订信息将处于“已取消”状态。
状态转移图设计测试用例步骤: 1. 绘制状态转移图 2. 通过状态转移图绘制状态转移树 3. 从状态转换树估计测试路径。 4、根据测试路径编写合法(成功)或非法(异常)测试用例。 注意:确保从状态转移树的根节点到每个节点的所有路径都匹配。 叶节点设计至少一个测试用例。
情况2:
您可以将黄、红、蓝三种颜色相互转换。 状态转移图: 状态转移树: (3) 测试路径推导: Red --[ k4]-Yellow-Red-Red---- Yellow-Blue Red -蓝色 - - - 黄色 红色 - - - - - 蓝色 - - - - 红色
练习: 1. 状态转移图: 2. 转换为转移树
3. 使用推导测试的示例
=============== == ====================== ===== ==== 黑盒测试方法: 等价类边界值确定表 因果关系图 正交数组 场景方法 状态转换方法
============ ====== ============== 经验测试方法: (1)错误的猜测方法错误猜测法又称错误猜测法,包括经验猜测、存在的缺陷等。 (2)异常分析法 系统异常分析法是指对因软件或硬件缺陷而可能发生的系统异常进行分析的方法。设计具有潜在问题的系统的异常行为和故障。 相应地创建测试用例。 主要测试系统的容错能力和故障恢复能力。 (3)随机测试 随机测试是指测试中的所有输入数据都是随机生成的,目的是模拟用户交互。 实际工作:在真实的环境中,尤其是软件刚刚发布的时候,会有成千上万的人对软件进行输入和测试。 因此,在发布软件之前,对模拟用户进行随机测试可以发现您可能会错过的事情。 软件缺陷
==================================== 测试用例设计综合策略 1.使用测试方法的不同思路 1. 应该在任何情况下使用边界值分析技术凭经验表明,使用该技术设计测试用例可以提供最强大的检测程序错误的能力。 2. 如有必要,使用等价类分解方法补充一些测试用例。 3. 使用错误猜测技术添加一些测试用例(依赖于您的经验)。 4、如果程序的功能描述涉及输入条件的组合,可以使用因果图/决策表。 5. 对于业务流程场景定义明确的系统,采用场景方式运行。 6. 审查设计的测试用例。 7、最后综合使用前应考虑异常分析。
2. 测试用例设计步骤 1. 根据设计规范构建基本功能测试用例 2. 边界值测试用例 3. 状态转换测试用例 4. 错误推断测试用例 5. 异常测试用例 6. 测试其他测试类型的用例(例如性能测试、可用性测试、安全测试) 不断分解和合并测试用例
======================= == === ==== == 白盒测试
定义:白盒测试也称为透明盒测试。 检查程序的内部结构和路径是否符合规范,代码是否符合规范。 因此,也称为结构测试或逻辑驱动测试。
(一)白盒测试常用方法: 1、语句覆盖率。 2、判断目标范围(也称“分支目标范围”) 3、条件目标范围。 4、判断、条件应用范围 5、条件组合应用范围; 6、路径覆盖:6.1z路径 6.2独立路径
============== 详细解释:( 1)语句覆盖率:指设计多个测试用例。 每个可执行语句在程序执行期间至少执行一次。
(2)决策覆盖(分支覆盖):指设计多个测试用例,使得每个决策条件的真分支和假分支在程序执行过程中至少执行一次。 指设计多个测试用例。 测试用例保证每个测试条件中每个测试表达式的每个 true 和 false 值在程序运行时至少执行一次。
(4)判断与条件范围 指设计若干个测试用例,使程序执行时各个判断条件的真值与假值发散。(5)条件组合覆盖是指程序执行时,每个判断条件的所有内部判断表达式都以真或假的方式组合至少执行一次。 这就是逻辑覆盖测试中最强大的“覆盖能力”。
(6)路径覆盖的目的是保证程序内所有特定的路径方案都能成功执行。 路径覆盖法:独立路径覆盖是指覆盖所有独立路径的测试。 所谓的独立路径必须至少包含一条在任何其他路径中从未见过的边。
b. Z 路径覆盖是一种路径覆盖技术,用于减少实际项目中复杂程序的循环数量。 也就是说,我们只考虑循环体经过0次的两种情况,而不管我们实际执行了多少次循环体。 一次
0 第二次循环:直接跳过循环体,直接从循环体入口到出口。 1个循环:传递一次循环体
============== 白盒测试 这种方法的优点: 1、深入挖掘程序,细粒度测试。 2、它是测试用例设计方法的一个组成部分,是对黑盒测试方法的有力补充。 3.为自动化和性能测试奠定基础。 白盒测试方法的缺点: 1.过于关注代码本身,容易偏离SRS的实际需求 2.对相应编程语言要求高,人力成本高
=== = === ======= 黑盒测试+白盒测试+基于经验的测试 黑盒测试+白盒测试+基于经验的测试
评论前必须登录!
注册