动态测试:软件在实际运行的时候进行的测试。 静态测试:看文档以及代码的逻辑检查,阅读的过程就是静态测试。 常见的一些质量标准:缺陷密度,覆盖率,性能要求,测试用例上线之前的通过率 例:假如我们写了100条测试用例--10条不通过--10个缺陷,换算缺陷密度10% 技术评审: 1.代码评审:对当前版本的功能相关的代码进行评审 2.接口评审:前后端进行数据交互 3.测试评审:测试人员输出测试用例之后评审 圈复杂度:代码越复杂,圈复杂度越高;代码越简单,圈复杂度越低。 注释:也就是代码的翻译文档 控制流:涉及到一些逻辑判断 数据流:涉及到数据流向,数据从哪里来到哪里去 测试技术:分为白盒测试,黑盒测试,灰盒测试 白盒测试:透明盒子测试,代码测试,单元测试--一般是开发去做,开发自测自己的代码,白盒测试就是测试已知产品内部的一个工作流程(代码的实现过程),验证每个流程(每个操作)是否符合概要设计,详细设计的要求。 黑盒测试:主要是对功能进行验证。不需要看到程序内部是怎么实现的(不需要看代码),直接根据需求文档上描述的功能进行测试,主要是根据需求文档验证软件的功能是否符合需求。 灰盒测试:介于白盒和黑盒测试之间,既要对功能进行测试也要检查代码的逻辑测试,常见的灰盒测试有接口测试。 圈复杂度的计算:流程图里面独立路径的数量 例:下图到6的独立路径 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7740\wps1.jpg 1-2-3-2-5-6 1-2-3-7-6 1-2-5-6 1-4-5-6 1-4-6 共5条,圈复杂度为5 判断节点===》判定==》是否 判断节点:1,2,4,3 圈复杂度的公式: 第一个:V=E-N+2 10-7+2=5 V:圈复杂数 E:结构图的边数 N:节点数 第二个:V=区域数 通过各个节点划分出来的区域 第三个:V=P+1(P为判定节点) 独立路径 例: a-d-e-f x=1000 y=300 z=0 x满足 y不满足 a-d-g x=98 y=456 z=0 x不满足 y不满足 z不满足 a-b-c x=101 y=501 x满足a y满足a file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7740\wps2.jpg && 与符号---同时满足,且 || 或符号 --- 只有满一个,或者 编写测试用例的流程: 测试人员是根据需求文档进行测试,首先是通过需求进行提炼测试点(涉及到测试设计方法),根据提炼出来的测试点进行测试用例的编写(描述清楚测什么,怎么测) file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7740\wps3.jpg 要学的测试用例设计方法: 等价类(重点)-----几乎所有测试都涉及到等价类 边界值(重点)-----与数值相关的都要涉及 判定表 因果图 输入域0-100分 等价:效果是相同的(软件可接收的有效输入例如:输入域为0-100的情况下-1与101则为无效输入) 在0-100之间不管输入哪个数值对我们的打分系统都是有效,任何数字都是等效的。程序都是可以正常的识别 等价类里面任意的输入对象都是等效(效果相同的) 如果不是0-100有两种情况,一种是小于0(0至负无穷),另外一种大于100的(101至正无穷),也就是两种集合 在这个打分系统里面的无效等价类有两种情况 6-10个字符:有效等价类就是满足条件的,无效等价类就是不满足条件的情况,小于6个字符,大于10个字符 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7740\wps4.jpg 例:qq密码由6-10个数字字符组成 无效等价类: 从数字字符长度规则进行违反找到无效等价类 1,密码小于6位 2,密码大于10位 从字符类型规则去违反找到无效等价类 1,字母字符 2,特殊字符?,。:!@等等 3,中文字符 往往发现bug就是在无效等价类里面发现的 常见可以划分等价类的地方 1. 数值范围 (微信红包) 2. 重复次数 (账号) (手机锁屏密码限制次数,银行卡密码次数) 3. 字符串长度 (输入框的长度限制) 4. 字符串组中字符的个数 (['dcs30','gzdcs','szdcs']) 5. 文件命名--上传文件的格式支持 6. 文件大小--支持1-100M的文件 7. 屏幕的颜色种类 8. 超时时间(验证码的有效时间,ATM的操作时间) 等价类很多时候都是结合边界值去使用的 编写测试用例的一些注意点: 1,前置条件要求说明测试前准备的东西,测试时需要使用到的和测试步骤关联的一些条件 2,用例标题要求是唯一的,说明该测试用例需要测试的测试点或者场景 3,Excel表中单元格换行Alt+enter 4,用例标题需要和预期结果首尾呼应 5,验证一些规则的时候,例如长度规则,没必要和其他规则进行组合,减少重复测试的情况 6,用最少测试用例覆盖最多的有效等价类 7,每一条无效等价类必须写一条测试用例,同一条测试用例不能覆盖多个无效等价类 8,用例步骤描述的是操作的动作,预期结果描述的结果的现象 9,用例编号的组成是‘需求编号+顺序编号’,‘顺序编号’ 10,用例标题需要尽可能的简洁描述你的测试内容或测试场景。 11,输入框的测试都需要考虑一下完全不输入的情况,以及输入空格的情况 12,用例步骤,预期结果,一般不会超出6点,每一步都要标清楚且序号后面接的符号要统一(,。) 13,有时候,一个测试步骤的流程特别长,此时就可以用前置条件说明些必要做好的步骤或者准备的条件,用来压缩测试步骤 14,测试用例分两种: 15,测试用例是需要进行执行的,编写时需要确定可验性 先对需求进行分析==》提炼测试点(XMind(一个思维导图工具),Excel)==》写测试用例(Excel,word) 需求:对某个同学的成绩进行打分0-100分 有效:0--100 无效:小于0,大于100 0和100是边界,而且是满足条件,在边界值的定义是上点 0到100以内的值,也是满足条件的,但是没必要去进行验证,在边界值的定义是内点 小于0,大于100,是0-100以外的值,其中-1,101是靠近上点最近的一个值,在边界值的定义位离点,不满足条件的,一般作为无效等价类的选取值。 上点:边界上的值,可以取到的值===》作为正常场景(有效等价类)进行测试 内点:在区域的值==》一般不考虑测试 离点:离上点最近的值,而且是不在输入范围的值==》作为异常场景(无效等价类)进行测试 边界值要考虑最小的单位 0.00-100.00 上点0.00,100.00 离点-0.01,100.01 区间:闭区间,开区间,半闭半开区间,半开半闭区间 闭区间:【0,100】==》0<=x<=100 正常:0,100,异常:-1,101 开区间:(0,100)==》0<x<100 正常:1,99 , 异常0,100 半闭半开区间【0.0,100.00)0.0<=x <100.00 正常:0.0,99.99 异常:-0.1,100 半开半闭区间(0.000,100.000】0.000<x<=100.000 正常:0.001,100.000 异常:0.000,100.001 边界值是适用于有序的集合1-10 (1,3,6,8,10)这并不是一个有序的集合,只是验证1和10的时候,不能保证3,6,8能正常使用 常见的有序集合:: 一周7天:星期一,星期二,星期三,星期四,星期五,星期六,星期日 没离点,也需要测试上点:星期一,星期天 一年四季:春,夏,秋,冬,取春,冬进行测试 时间维度,需要注意最小的单位,年,月,日,时,分,秒,毫秒 需求:筛选出最近24个小时的订单,订单统计维度为15分钟 现在的时间为2021-6-6 11:51 每小时取00,15,30,45 最近一天的订单统计应该是看2021-6-5 11:45---2021-6-6 11:45 为什么不是看离11:51最近的12:00,因为11:51在11点45--12:00区间的,该时间段订单数还没有完整的统计,所以只能往前最近的11:45进行取值 判定表:适用于一些多逻辑条件的需求,通过不同的条件组合获得不同结果情况,把不同条件组合一一列举出来,避免场景漏测的情况 需求:以12306登陆为例,账号、密码、验证码进行登陆,登陆结果分别是登陆成功、登陆失败 例:某学生管理系统规定,对于总分大于450分且各科成绩均大于85分或是优秀毕业生的同学,应做优先录取,其他情况做其他处理,请根据题目画出判定表图并且编写测试用例 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7740\wps5.jpg 列出条件桩与结果桩 因果图: 1、原因与结果之间的关系 C==原因 E==结果 恒等:== 等于 equal a=1 b=1 a==b 非:≠ ‘!=’ 不等于、不、否、not、~ 或:或者、or、/、||、|、v 与:且、和、and、&、&&、^、+ 2,原因与原因之间的关系 异:非必选的选择框,当出现一个原因之后,另外的原因不能再出现,但是这个原因不一定要选择。可以都不出现,但是出现的话只能出现一个 或:常见场景为多选题,可以同时选上,也可以只选一个 唯一:常见的场景为性别必选框,只能选一个且必选一个 要求:当我在广州,省份必须要求选择广东 3,结果与结果之间的关系 强制:投保成功与投保失败只能出现一个 面试题:你是怎么理解因果图的? 我们公司之前有因果需求的地方,首先把因果图里面的原因转换为判定表里面的条件桩,再把因果图里面的结果转换为判定表里面的结果桩,从而把因果图转换为判定表,以防漏测的情况出现 面试题:输入三个正整数a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形,等腰三角形,一般三角形)用判定表方法。 例: file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7740\wps6.jpg 场景法一般分为两种,基本流(一个正常流程),备选流(多个异常流程) ATM取钱的流程: 基本流: 1,插入卡片 2,验证卡片有效 3,输入密码,密码正常 4,输入取款金额 5,取款 6,退卡 7,ATM恢复初始状态 备选流(异常分支流程:这个正常取款流程中可能出现一些异常情况) 1,插入无效的卡、被锁的银行卡 2,密码错误(没有超过最大的错误次数) 3,密码错误(超过最大的错误次数) 4,不输入密码 5,超出银行卡余额 6,每日最大限额 7,单次最大限额 8,输入金额不是10的倍数 9,不取款 10,不完全取走 11,没有取卡 12,断电、断网 人事考勤系统:离职流程有哪些? 基本流: 1,登陆人事考勤系统 2,创建离职申请,填写离职原因 3,提交 4,领导审批 5,工作交接 6,离职成功 备选流: 1,审批不通过 2,超时未审批 3,不配合工作交接 单个功能可以通过等价类和边界值进行设计测试用例,组合场景会使用场景法和状态迁移去设计测试用例
测试用例设计的综合策略 一,使用各种测试方法思路 1.在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强; 2.必要时用等价类划分方法补充一些测试用例; 3.用错误推测法再追加一些测试用例(依靠经验); 4.如果程序的功能说明中含有输入条件组合情况,则可选用因果图/判定表; 5.对业务流程场景清晰的系统,使用场景法贯穿; 6.检查已设计的测试用例的覆盖程度; 7.最后要考虑异常分析,再进行综合使用。 二,测试用例的设计步骤 1.构造根据设计规格得出的基本功能测试用例 2.边界值测试用例 3.状态转换测试用例 4.错误猜测测试用例 5.异常测试用例 6.其它测试类型测试用例(如性能测试,易用性测试,安全测试等) 三,优化测试用例的方法 1.利用设计测试用例的10种方法不断的对测试用例进行分解与合并 2.采用遗传算法理论进化测试用例 3.在测试时利用发散思维构造测试用例。
|