一、软件及测试
1.什么是软件?
控制计算机硬件工作的工具。
●应用软件
●系统软件
2.软件基本组成
3.软件产生过程
4.什么是软件测试?
使用技术手段验证软件是否满足使用需求
5.软件测试目的
减少软件缺陷(bug),保障软件质量。
二、测试主流技能
1.功能测试:验证程序的功能是否满足需求。
2.自动化测试:使用代码或工具代替手工,对项目进行测试。
3.接口测试:使用代码或工具对服务端提供的接口进行测试,验证程序中是否访问正常。
工具实现:API文档+工具
代码实现:
4.性能测试:模拟多人使用软件,查找服务器缺陷。
工具+代码
三、测试分类
1.按测试阶段划分
2.按代码可见度划分
黑盒:不关注源代码,针对程序UI功能进行测试。
灰盒:针对程序部分代码进行测试(接口)。
白盒:针对程序源代码进行测试。
3.专项
性能测试
安全
四、模型
衡量一个优秀软件的维度。
重点五项:功能、性能、兼容、易用、安全
质量模型
功能性
性能
兼容性:浏览器、操作系统、手机
易用性
可靠性
安全
信息的传输和信息存储
可移植性
可维护性
五、测试流程
六、测试用例
1.什么是用例?
用例:用户使用的案例
2.什么是测试用例?
是为测试项目而设计的执行文档
目的
●防止漏测
●实施测试的标准
项目模块编号
用例设计编写格式
用例编号 | 用例标题 | 项目、模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
项目 _ 模块 _ 编号 | 预期结果(测试点) | 所属项目或模块 | 表示用例的重要程度或者影响力P0~P4 | 执行此条用例时,有哪些前置操作 | 描述操作步骤 | 操作的数据,没有的话为空 | 期望达到的结果 |
For Example:
测试QQ登录:
用例编号 | 用例标题 | 项目、模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
QQ_login_001 | 登录失败(账号为空) | 登录 | P1 | 1.打开登录界面2.网络正常 | 1.输入账号2.输入密码3.点击登录 | 1.账号:空2.密码:12345 | 登录失败,提示账号不可为空 |
QQ_login_002 | 登录失败(账号未注册) | 登录 | P1 | 1.打开登录界面2.网络正常3.账号未注册 | 1.输入账号2.输入密码3.点击登录 | 1.账号:未注册2.密码:12345 | 登录失败,提示账号未注册 |
QQ_login_003 | 登录失败(密码为空) | 登录 | P1 | 1.打开登录界面2.网络正常3.账号已注册 | 1.输入账号2.输入密码3.点击登录 | 1.账号:已注册2.密码:12345 | 登录失败,提示密码不可为空 |
QQ_login_004 | 登录失败(密码错误) | 登录 | P1 | 1.打开登录界面2.网络正常3.账号已注册 | 1.输入账号2.输入密码3.点击登录 | 1.账号:已注册2.密码:错误 | 登录失败,提示密码错误 |
解决穷举场景
七、等价类划分法
重点:有效等价和单个无效取一个即可。
步骤:
1.明确需求
2.划分有效等价和无效等价
1.明确需求 | 要求6~10位自然数 分析需求拆取规则 |
长度 6-10位 | |
类型 自然数 | |
2.划分有效等价和无效等价 | 有效 无效 |
8位自然数 3位自然数、12位自然数、8位非自然数、为空 | |
3.提取数据编写用例 | 12345678 124、123456789012 |
电话练习实践
1.明确需求
2.划分有效等价和无效等价
3.提取数据编写用例
。。。。。。
1.等价类划分法适用场景
针对:需要有大量数据测试输入,但是没法穷举测试的地方
输入框
下拉列表
单选复选框
典型代表:页面的输入框类测试
2.解决穷举场景
使用等价类划分法
1.1等价类划分法
1.2案例。
需求:验证6-10位自然数的qq合法
1.3案例
需求:验证某城市电话号码正确性
要求:
1.区号:空或者是三位数字
2.前缀码:非“0”且非“1”开头的三位数字
3.后缀码:四位数字
划分有效和无效等价
提取数据
重点:
1正向用例,一条尽可能覆盖多条
2.逆向用例,每一条数据都是一条单独用例。
解决边界限制问题
八、边界值分析法
1需求:判断输入的数据是否小于-99或者大于99,若小于-99或大于99给出错误提示。
1.边界范围节点
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
上点:边界上的点(正好等于)
离点:距离上点最近的点(刚好大于、刚好小于)
内点:范围内的点(区间范围内的数据)
Tips:有关范围限制,最多7条用例(暂时未优化)
边界值能解决位数问题,但无法解决类型问题(需结合等价类)
2.边界值法设计用例步骤
(1)明确需求
(2)确定有效和无效等价类
(3)确定边界范围值
(4)提取数据编写测试用例
3.练习
练习1
需求:通过边界值法验证标题长度的合法性
1.明确需求:标题长度大于0,小于等于30个字符
4.提取数据编写用例
练习2
1.明确需求6-10位自然数
2.划分有效和无效等价(类型)
有效 | 无效 |
自然数 | 非自然数 |
3.确定边界范围
上点 | 离点 | 内点 |
6,10 | 5,7,9,11 | 8 |
4.提取数据编写用例
用例编号 | 用例标题 | 项目、模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
项目 _ 模块 _ 编号 | 预期结果(测试点) | 所属项目或模块 | 表示用例的重要程度或者影响力P0~P4 | 执行此条用例时,有哪些前置操作 | 描述操作步骤 | 操作的数据,没有的话为空 | 期望达到的结果 |
qq_001 | 不合法(8位非自然数) | | p1 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 1234567a | 不合法 |
qq_002 | 合法(6位非自然数) | | p0 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 123456 | 合法 |
qq_003 | 合法(10位非自然数) | | p0 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 0123456789 | 合法 |
qq_004 | 不合法(5位非自然数) | | p1 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 12345a | 不合法 |
qq_005 | 合法(7位自然数) | | p0 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 12234567 | 合法 |
qq_006 | 合法(9位自然数) | | p0 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 123456789 | 合法 |
qq_007 | 不合法(11位自然数) | | p1 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 12345678901 | 不合法 |
qq_008 | 合法(8位自然数) | | p0 | 打开qq验证程序 | 1.输入qq2.点击验证按钮 | 12345678 | 合法 |
4.案例优化
结论:七个优化为5个点
上点:必选(不考虑区间开闭)
内点:必选(建议选择中间范围)
离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)
5.总结
强调:单个输入框,常用的方式:边界+等价类
(1)在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
(2)常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
(3)典型代表:有边界范围的输入框类测试
面试题:最常用的用例设计方法有哪些?
等价类、边界值
解决多条件有依赖关系测试
九、判定表法
1.判定表法的引入
案例:验证“若用户欠费或者关机,则不允许主被叫”功能的测试
说明:
●等价类边界值分析法主要关注单个输入类条件的测试
●并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试
2.判定表定义及组成部分
定义:是一种以表格形式表达多条件逻辑判断的工具
组成:
条件桩:列出问题中的所有条件,列出条件的次序无关紧要。
动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束。
条件项:列出条件对应的取值,所有可能情况下的真假值。
动作项:列出条件项的各种取值情况下应该采取的动作结果。
规则:
判定表中贯穿条件项和动作项的一列就是一条规则
假设有n个条件,每个条件的取值有两个(0,1),全组合有==2的n次方种规则==
3.判定表法设计用例步骤
(1)明确需求
(2)画出判定表:
●列出条件桩和动作桩
●填写条件项,对条件项进行全组合
●根据条件项的组合确定动作项
●简化、合并相似规则(有相同的动作)
(3)根据规则编写测试用例
4.案例
案例1
明确需求:
1).如果金额大于500元,又未过期,则发出批准单和提货单;
2).如果金额大于500元,但过期了,则不发批准单与提货单;
3).如果金额小于等于500元,则不论是否过期都发出批准单和提货单;
4).在过期的情况下不论金额大小还需要发出通知单。
画出判定表:
提取数据,编写用例
案例2
明确需求:
1)、输入的第一列字符必须是A或B
2)、第二列字符必须是一个数字
3)、如果第一列字符不正确,则给出信息L
4)、如果第二列字符不正确,则给出信息M
5)、如果两列字符输入正确,则修改文件成功
画判定表:
提取数据,编写用例
5.使用场景
●有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
●判定表一般适用于条件组合数量较少的情况(比如四个条件以下)
业务测试覆盖
重点
覆盖业务测试需要使用流程图
先测试业务。再测试单功能,单模块,单页面
十、场景法
流程图:用于梳理业务用例
1、介绍
说明:
场景法也叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例
意义:
用户使用角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用
测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试
十一、错误推荐法
应用场景当项目用例都执行完毕,且bug修复完成,离上线还有一段时间,在这段时间中可使用错误推荐法复制主要业务或测试未覆盖的功能
1.介绍
定义:通过经验推测系统可能出现的问题
思想:根据经验列举出可能出现问题的清单,根据清单分析问题可能原因,推测发现缺陷
场景:(1)时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试
(2)实践宽裕通过该方法列出之前出现问题较多的模块再次测试
缺陷
1.定义
软件在使用过程中存在的任何问题都叫软件的缺陷,简称bug
2.缺陷的判定标准
●软件未实现需求(规格)说明书中明确要求的功能 少功能
●软件出现了需求(规格)说明书中指明不应该出现的错误 功能错误
●软件实现的功能超出需求(规格)说明书指明的范围 多功能
●软件未实现需求(规格)说明书中未明确指明但应该实现的要求 隐性功能错误
●软件难以理解,不易使用,运行缓慢,用户体验不好 不易使用
3.产生缺陷的原因
●需求阶段:需求描述不易理解,有歧义、错误等
●设计阶段:设计文档存在错误或者缺陷
●编码阶段:代码出现错误
●运行系统:软硬件系统本身故障导致软件缺陷
4.软件缺陷的生命周期
5.软件缺陷的核心内容
6.缺陷提交要素
7.软件缺陷类型
功能错误 错误界面UI 兼容性 数据 易用性 改进建议 架构
工作流程
1.设计用例->执行用例(执行测试)->缺陷(提交、验证、关闭)
2.缺陷定义:任何问题(Bug)
3.缺陷标准:多功能、少功能、错误、缺少隐性功能、易用性
4.描述缺陷重点:缺陷标题、前置条件、复现步骤、预期结果、实际结果、附件备注
5.提交缺陷信息:指派人、缺陷等级、修复优先级、类型、状态
缺陷编写
1.缺陷报告示例
2.缺陷跟踪流程
3.提交缺陷注意事项
4.缺陷编写规范
缺陷管理工具
项目管理工具-管理缺陷(禅道、JIRA、TFS)
Excel管理缺陷
禅道
地址:https://demo.zentao.net/project-view-15.html
特点:
国产、免费、开源、简单、轻量技 三管联合(产品管理、项目管理、质量管理)
禅道使用流程
HTML
1.HTML介绍
超文本标记语言,由一套标记标签组成,用来描述网页的一种语言。
2.测试点
注释:注释的合理性
图片:必须要有title属性(悬停和未加载显示)
空格与换行:$nbsp;&
布局标签:
按钮:统一使用value进行赋值
提示:普通按钮默认没有执行效果,需要配合js来实现
实操
1.项目介绍及登录需求
2.明确需求之后如何开始测试
●分析需求
●提取测试点
●设计用例
●用例评审
●执行用例
●缺陷管理
●测试报告