软件测试概述
任何一款软件或应用在上线之前都必须要经过各种功能,性能等的测试,本篇将带你快速了解软件测试相关的基础知识。
一、概述
1)简单理解,什么是软件?
软件:即控制计算机硬件工作的工具。
2)软件基本组成
3)软件产生过程
4)简单理解,什么是软件测试?
软件测试:即使用技术手段验证软件是否满足使用需求
以用户登录验证为例:
5)软件测试目的
减少软件缺陷(bug),保障软件质量
二、测试主流技能
1、功能测试
功能测试主要验证程序的功能是否满足需求
同样以用户登录为例
2、自动化测试
使用代码或工具代替手工,对项目进行测试
3、接口测试
使用代码或工具对服务端提供的接口进行测试,验证程序中的接口是否访问正常。
4、性能测试
模拟多人使用软件,查找服务器缺陷。
1)工具实现
2)代码实现
5、就业方向选择
1)功能测试+接口测试
2)功能测试+性能测试
3)功能测试+web自动化
当然,多多益善,时间有限的情况下选择上面的一种组合学习即可
三、测试分类
1、按阶段划分
1)单元测试
是指针对程序源代码进行测试。
2)集成测试
又称接口测试,针对模块之间访问地址进行测试。
3)系统测试
对整个系统进行测试包括功能、兼容、文档等测试。
4)验收测试
主要分为内测、公测,使用不同人群来发掘项目缺陷。
2、按代码可见度划分
1)黑盒测试: 不关注源代码,针对程序UI功能进行测试。
对应系统测试(功能测试)
2)灰盒测试: 针对程序部分代码进行测试(接口)
对应集成测试(接口测试)
3)白盒测试: 针对程序源代码进行测试
对应单元测试
注:性能测试归属专项测试,自动化测试归属功能测试
四、软件质量模型
即衡量一个优秀软件的维度
主要衡量指标如下:
功能性、性能、兼容性、易用性、安全性、可靠性、可移植性、可维护性
五、测试流程
1)需求评审
通过需求评审,确保各部门需求理解一致
2)计划编写
决定测什么、谁来测、怎么测
3)用例设计
验证项目是否符合需求的操作文档
4)用例执行
项目模块开发完成,开始执行用例文档实施测试
5)缺陷管理
对缺陷进行管理的过程
6)测试报告
实施测试结果文档
六、测试用例
1、概述
1)用例
即用户使用的案例
2)测试用例
简单理解,就是为测试项目而设计的执行文档
3)测试用例的作用
1、防止漏测
2、实施测试的标准
2、用例编写格式
2.1 示例
注:关于优先级,一般是P0~P4四级。其中P0的优先级最高,正确的能成功的一定是用P0
2.2 各字段详细说明
1)用例编号
书写格式:项目_模块_编号,如 qq_login_001
2)用例标题
预期结果(测试点)
3)模块/项目
所属项目或模块
4)优先级
表示用例的重要程度或者影响力P0~P4(P0最高)
5)前置条件
要执行此条用例,有哪些前置操作
6)测试步骤
描述操作步骤
7)测试数据
操作的数据,如果没有可以为空
8)预期结果
期望达到的结果
3、入门案例
根据如下QQ登录需求编写测试用例
测试用例如下
七、用例设计方法
1、等价类划分法
1.1 概述
1)概念
是指在所有测试数据中,对具有某种共同特征的数据集合进行划分。
2)分类
1、有效等价类: 满足需求的数据集合
2、无效等价类: 不满足需求的数据集合
3)步骤
1、明确需求
2、确定有效和无效等价类
3、提取数据编写测试用例
1.2 案例1
1)需求
验证QQ账号的合法性,要求: 6~10位自然数(长度+类型)
2)分析
3)编写用例结果
注意优先级:合法为P0,不合法这里都设置为P1
1.3 案例2
1)需求
验证某城市电话号码正确性
要求:(长度+类型+规则)
1、区号: 空或者是三位数字
2、前缀码: 非“0”且非“1”开头的三位数字
3、后缀码: 四位数字
2)分析
关于正向和逆向,简单理解,正向即符合要求;逆向即不符合要求。
1、正向: 一次尽可能将多个正确数据组合
2、逆向(错误): 一次只能覆盖一个
由上可以看出,正向的往往需要将多种情况组合考虑;而逆向的不用,因为有一个不满足的情况就算一条。
3)编写用例结果
根据上述分析编写用例,如下给出的是两条合法的用例;照猫画虎,自行补充剩余8条不合法的。
1.4 适用场景
主要是针对需要有大量数据测试输入,但是没法穷举测试的场景。如输入框、下拉列表、单选复选框等。
典型代表: 页面的输入框类测试。
2、边界值分析法
解决边界限制如何测试的问题
2.1 概述
1)边界范围节点
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
1、上点: 边界上的点(正好等于)
2、离点: 距离上点最近的点(刚好大于、刚好小于)
3、内点: 范围内的点(区间范围内的数据)
注:上点不带小数,则离点也不带小数;一般情况下内点选居中的点
2)步骤
1、明确需求
2、确定有效和无效等价类
3、确定边界范围值
4、提取数据编写测试用例
3)优化
之前我们说测试点最多有7个,但其实可以优化到5个。
3.1)原则如下:
上点: 必选(不考虑区间开闭)
内点: 必选(建议选择中间范围)
离点: 开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)
优化离点,理解“开内闭外”原则
10<a<=20 –>使用开闭区间表达: (10,20]
开区间指的是区间边界的两个值不包括在内,如(a,b)
闭区间指的是区间边界的两个值包括在内,如[a,b]
同理半开闭(左开右闭,左闭右开)
2.2 示例
需求:20<=b<60
则选取的测试点为:
上点:20,60
内点:30
离点:19,59
关于离点,“开内闭外”原则其实很好理解。如上20为闭,60为开,如果测试20通过了,就没有必要测试21,因为没有意义(闭外)。同理,如果测试60发现不通过,就没有必要测试61,因为没有意义(开内)
如果需求改为:20<=b<=60,同理分析
总结:5个点必测(上点2个,内点1个,离点开内闭外2个)
为什么内点必须测?
答:验证范围的连续性
练习(开内闭外)
[10,50) –>测试点为:10,50,35,9,49
(30,50) –>测试点为:30,50,40,31,49
(12,80] –>测试点为:12,80,50,13,81
2.3 适用场景
1)在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
2)常见词语描述: 大小、尺寸、重量、最大、最小、至多、至少等修饰词语
3)典型代表: 有边界范围的输入框类测试
3、判定表法
解决多条件限制依赖关系如何测试的问题
3.1 判定表法的引用
1)案例: 验证“若用户欠费或者关机,则不允许主被叫”功能的测试
2)说明:
- 等价类边界值分析法主要关注单个输入类条件的测试
- 并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试。
3.2 判定表定义及组成部分
上述案例的测试用例
3.3 案例2
1)案例及分析
2)编写测试用例
4、场景法
解决覆盖业务场景测试的问题
4.1 概述
1)定义
场景法又称流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。
2)意义
用户使用角度
用户平时使用的不是单个功能,而是多个功能组合起来进行使用
测试人员角度
平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试
3)案例:ATM取款流程
注:冒烟测试,是指在批量开始测试之前,执行业务正向用例,验证软件是否具备可测性。冒烟测试的目的:避免由于项目不具备可测性,而投入的时间和人力成本
5、错误推荐法
5.1 定义
通过经验推测系统可能出现的问题
5.2 思想
根据经验列举出可能出现问题的清单,根据清单分析问题可能原因,推测发现缺陷
5.3 场景
1、时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试
2、时间宽裕通过该方法列出之前出现问题较多的模块再次测试