第5讲 测试技术与测试设计 常见术语 1、动态测试:比如微信支付功能 聊天功能 有数据交互 2、静态测试:需求评审 ui图 这个过程就是静态测试 3、正式评审:交叉评审 组内评审 会议评审 4、度量:木匠用的尺子等 软件:bug密度可以衡量一个软件的好坏 5、记录员:参加需求评审的人都是 6、评审员:需求主讲==》产品经理 、测试用例==》测试人员 7、技术评审: 1)对当前迭代的功能代码进行评审 2)对当前迭代的功能新增的接口进行评审 8、走查:需求评审和用例评审 9、复杂性:组合场景多,越复杂 10、圈复杂度:代码写的越复杂,圈复杂度越高;代码写的越简单。圈复杂度越低 圈复杂度的计算方法及公式:以下图为例1 ①v=独立路径的数量:1-4-6、1-2-5-6、1-4-5-6、1-2-3-7-6、1-2-3-2-5-6共5个 ②v= e-n +2==》10-7+2=5(e:结构图边数、n:节点数) ③ V = p+1 ==》1,2,3,4是判定节点,总共4个预判节点数==》5,
判定节点:只要有2 个箭头指向别处就是判定节点 ④v=区域数 例子2:右图 独立路径的数量 && 代表“与” ==》且,两个为真且为真 || 代表“或 ” ==》只要有一个为真则为真 路径:a-d-g ==》x =100 y=500 z =5000 路径:a-b-c ==》x=101 y=501 路径:a-d-e-f==》x =100 y=500 z =5001 11、控制流:登录功能的逻辑==》画出一个控制流程图 12、数据流:数据从哪里来往哪里去,比如我们的微信,注册的信息==》微信后台数据库 13、控制流图:开发实现功能的时候自己画一个流程图帮助理解 14、功能设计用例的方法(黑盒设计用例的方法) 测试时考虑为空的情况,这种情况往往容易出现bug ①等价类【重点】、②边界值【重点】、 ③判定表、④因果图、⑤状态迁移图、⑥场景法 ⑦正交表 1)、等价类:指某个输入域的集合,在集合中各个输入的条件都是等效的。 例子1 需求:搜索框对公司绩效考核进行打分1-100分正整数 输入域:1-100 集合:1-100之间的任意正整数,比如 2,6,88,99 等效:等价类当中的这些集合都是等效的 通常等价类划分为2种情况: 有效等价类:对程序规格说明有意义的、合理的输入数据 1,6,7,88,99,100 ==》有效等价类 无效等价类:对程序规格说明无意义的、 不合理的输入数据 0,-1,101,多测师,duoceshi,% @ 空 ==》无效等价类 例子2:微信聊天输入框:现有功能 有效等价类:文字 数字 特殊符 英文 中文表情 视频 图片 文件 链接 语音 红包 无效等价类:长度超出 图片大小 文件大小 语音超时 语音为空 红包额度 最低额度 规定了输入规则时,可以划分出一个有效的等价类(符合规则) 和若干个无效等价类(从不同的角度违反规则)==》怎么样去理解 需求:qq 密码是由6-10位数字或英文或下划线组成 有效等价类:123456 abcdef ------ 无效等价类:12345 =》长度违反、多测师多测师=》类型违反、!@#¥%& =》类型违反 15、例子:需求:QQ 密码是由6-10位数字或英文或下划线 组成, 等价类划分的设计用例思路: 找输入条件 为每个输入条件找有效、无效等价类 为每个等价类编号 用最少的用例覆盖最多的有效等价类 ==》注意数据的合理性 每一个无效等价类都是一个用例 ==》不能跨两个无效等价类 并非所有有效等价类都有无效 ==>性别 男女 等价类的覆盖可以重复覆盖=>abc12 ==>跨了那几个编号 1,3 以上图片是针对某一需求进行分析的过程图,在写测试用例时相当于草稿,不需要体现在文档内 设计测试用例包括哪些内容?(用例的要素) ①用例编号:每一条用例的id 序号 ②用例标题:用简洁的语言描述着用用例需要验证什么 ③用例步骤:详细记录操作过程(需要备注验证数据) ④预期结果:通过操作过程会达到什么预期(需要符合需求) ⑤前置条件:作下一步之前首先做好了什么 ⑥优先级: 高 中 低(根据功能重要性确定) ⑦场景法:正常 异常 ⑧测试后可以再加一栏:是否通过 以上是关于等价类用例的两个例子 编写用例需要注意哪些事项 1)用例一般以验证开头 2)用例标题和用例步骤内容相呼应 3)用例标题和预期结果要相呼应 4)等价类设计用例方法描述一般用大于、小于、等于在什么之间 5)标题不要出现判断语句 注意数据的合理性 有效等价类:123456、1234567890、abcdef、abcdefghij、abc123、abc___、123___、ab12__、abc1234567、abc__________、1234567___、acb123456_ 无效等价类:12345、12345678901、abcde、abcdefghijk、abc12、abc__、123__、ab12_、abc12345678、abc___________、1234567____、acb123456__、特殊字符 ==》@#¥%&*、中文 ==》多测师多测师、空 16、档案管理系统(测试用例在上面文档内) 怎么来规范数据合理性 有效等价类:199001 ==》验证年份在1990-2049(月份)、204901 ==》验证年份在1990-2049、199012 ==》月份、204912 ==》月份、200002 ==》中间时间 无效等价类:非数字 ==》中文 英文 特殊字符、19900 ==》长度小于6位、1990011 ==》长度大于6位、1990多测 ==》含有中文、19900ab ==》含有英文、 1990@# ==》含有特殊符、198901 ==》年份小于1990、205012 ==》年份大于2049、199000 ==》月份小于01、199013 ==>月份大于12、为空 17、常见的能够划分等价类的地方 数值范围 ==》0—100 重复次数 ==》银行取钱密码输入错误次数超出3次锁定 字符串长度 ==》输入框规定输入规则师6-10英文字符 字符串组中字符的个数 ==》[123,456, 文件命名 ==》如图片.png .gif .jpg 文件大小 ==>规定了上传文件5-10mb 屏幕的颜色种类 ==》红色 绿色 超时时间 ==》查询页面返回不能超过5s 18、边界值【重要】 上点:边界上的点
离点:离上点最近的点 (即上点左右两边最邻近的点) 内点:在域范围内的点 闭区间:[ ] 开区间:( ) 半闭半开区间:[ )、( 离点的确定:闭外开内 注:离点不一定是正常的点 例子1 需求:搜索框对公司绩效考核进行打分1-100分正整数[1,100]闭区间 上点 ==》1,100 离点 ==》0,101 内点 ==>88 ①闭区间[1,100]==>正常测试点:1,100,88 异常测试点:0,101 上点 ==》1,100 离点 ==》0,101 内点 ==>88 ②半闭半开[1,100)==》正常测试点:1,99,88 异常测试点:0,100 上点 ==》1,100 离点 ==》0,99 内点 ==>88 ③半开半闭(1,100] ==》正常测试点:2,100,88 异常测试点:1,101 上点 ==》1,100 离点 ==》2,101 内点 ==>88 ④开区间(1,100) ==>正常测试点:2,99,88 异常测试点:1,100 上点 ==》1,100 离点 ==》2,99 内点 ==>88 总结:一个输入域的边界值设计用例方法测试点取几个点?5个点 :两个上点、两个离点、一个内点 例子1:qq注册密码是8-16为数字字符[8, 上点 ==》8,16 离点 ==》7,17 内点 ==>10 例子2:由11位纯数字字符组成的手机号 ==》10位 11位 12位 边界值的描述: 验证输入框输入11位数字字符组成的手机号 验证输入框输入10位数字字符组成的手机号 验证输入框输入12位数字字符组成的手机号 等价类的描述: 验证输入框输入等于11位数字字符组成的手机号 验证输入框输入小于11位数字字符组成的手机号 验证输入框输入大于11位数字字符组成的手机号 19、场景法 场景法:用于流程方面 基本流程:==》正常流程 备选流程:==》异常流程 例子1:登录功能的逻辑 正常流程:输入正确的账号 密码登录成功 异常流程 1)正确的账号,错误的密码登录失败 2)错误的账号 正确的密码登录失败 3)错误的账号和密码登录失败 4)账号为空,密码正确登录失败 5)账号正确,密码为空登录失败 5)账号密码都为空登录失败 6)重复登录同一账号失败 7)账号被锁定了登录失败 8)手机端和电脑端是否可以同时登录 例子2:取款机 主流程:插入正确的银行卡=》输入正确的密码=》选择服务=》输入金额=》取款成功 异常流程 1)插入银行卡方向不正确 2)插入的卡消磁了 3)插入的卡挂失了 4)插入的卡缺失 5)输入错误的密码 6)插入卡后取消 7)输入的金额大于银行卡的余额 8)输入的金额大于取款机的余额 9)输入的金额大于当日银行卡的限额 10)输入的金额小于100元 11)输入的金额是小数点 20、状态迁移图(例如:订单的状态) 已下单=》已取消订单=》待付款=》已付款==》取消付款==》待配货=》已配货=》已发货=》待收货 =》取消收货=》已签收
|