一文带你快速了解软件测试相关的基础知识!

任何一款软件或应用在上线之前都必须要经过各种功能,性能等的测试,本篇将带你快速了解软件测试相关的基础知识。

44acbd3f2a19738e82af939ead34658f.jpeg

一、概述

1)简单理解,什么是软件?

软件:即控制计算机硬件工作的工具。

2)软件基本组成

3090e0281db30567a3b2a9726ed21f88.png

3)软件产生过程

cab1199a53e5cc5219759e5da2332bf7.png

4)简单理解,什么是软件测试?

软件测试:即使用技术手段验证软件是否满足使用需求

以用户登录验证为例:

566166803d3476d35e3f3c3172af1881.jpeg

5)软件测试目的

减少软件缺陷(bug),保障软件质量

二、测试主流技能

1、功能测试

功能测试主要验证程序的功能是否满足需求

同样以用户登录为例

5bdd895d82dcf9bfa2f1c41d4e5634fb.jpeg

2、自动化测试

使用代码或工具代替手工,对项目进行测试

33cdb4a060d0ed7eec5d31c35be93881.jpeg

3、接口测试

使用代码或工具对服务端提供的接口进行测试,验证程序中的接口是否访问正常。

14e9ab4c11a1c75c9f79e79fd2290da9.jpeg

4、性能测试

模拟多人使用软件,查找服务器缺陷。

1)工具实现

32b80bb1b6ddf9633c13f57fbad43aaa.jpeg

2)代码实现

4be849ff075f681e54c16926d8ce5b3d.png

5、就业方向选择

1)功能测试+接口测试

2)功能测试+性能测试

3)功能测试+web自动化

当然,多多益善,时间有限的情况下选择上面的一种组合学习即可

三、测试分类

1、按阶段划分

1)单元测试

是指针对程序源代码进行测试。

2)集成测试

又称接口测试,针对模块之间访问地址进行测试。

3)系统测试

对整个系统进行测试包括功能、兼容、文档等测试。

4)验收测试

主要分为内测、公测,使用不同人群来发掘项目缺陷。

2、按代码可见度划分

1)黑盒测试: 不关注源代码,针对程序UI功能进行测试。

对应系统测试(功能测试)

2)灰盒测试: 针对程序部分代码进行测试(接口)

对应集成测试(接口测试)

3)白盒测试: 针对程序源代码进行测试

对应单元测试

7b831c49299a15ad37c884fa56deaafc.jpeg

注:性能测试归属专项测试,自动化测试归属功能测试

四、软件质量模型

即衡量一个优秀软件的维度

主要衡量指标如下:

功能性、性能、兼容性、易用性、安全性、可靠性、可移植性、可维护性

五、测试流程

1)需求评审

通过需求评审,确保各部门需求理解一致

2)计划编写

决定测什么、谁来测、怎么测

3)用例设计

验证项目是否符合需求的操作文档

4)用例执行

项目模块开发完成,开始执行用例文档实施测试

5)缺陷管理

对缺陷进行管理的过程

6)测试报告

实施测试结果文档

六、测试用例

1、概述

1)用例

即用户使用的案例

2)测试用例

简单理解,就是为测试项目而设计的执行文档

3)测试用例的作用

1、防止漏测 2、实施测试的标准

2、用例编写格式

2.1 示例

2f1bdb5b04b08787de4983c4735644d9.jpeg

注:关于优先级,一般是P0~P4四级。其中P0的优先级最高,正确的能成功的一定是用P0

2.2 各字段详细说明

1)用例编号

书写格式:项目_模块_编号,如 qq_login_001

2)用例标题

预期结果(测试点)

3)模块/项目

所属项目或模块

4)优先级

表示用例的重要程度或者影响力P0~P4(P0最高)

5)前置条件

要执行此条用例,有哪些前置操作

6)测试步骤

描述操作步骤

7)测试数据

操作的数据,如果没有可以为空

8)预期结果

期望达到的结果

3、入门案例

根据如下QQ登录需求编写测试用例

820b456290033b3657c1ade0b14a66a0.jpeg

测试用例如下

b4c58f9c29cafbd3308c096dcdcaf9e2.jpeg

七、用例设计方法

1、等价类划分法

1.1 概述

1)概念

是指在所有测试数据中,对具有某种共同特征的数据集合进行划分。

2)分类

1、有效等价类: 满足需求的数据集合 2、无效等价类: 不满足需求的数据集合

3)步骤

1、明确需求

2、确定有效和无效等价类

3、提取数据编写测试用例

1.2 案例1

1)需求

验证QQ账号的合法性,要求: 6~10位自然数(长度+类型)

2)分析

fca81ea62588d07257c7965e7dfc98ad.png

3)编写用例结果

beb92120c692b095b646764746b575d2.png

注意优先级:合法为P0,不合法这里都设置为P1

1.3 案例2

1)需求

验证某城市电话号码正确性

要求:(长度+类型+规则)

1、区号: 或者是三位数字

2、前缀码: 非“0”且非“1”开头三位数字

3、后缀码: 四位数字

2)分析

b3fb608830cf8af9c88a3b8ccc0fc83b.png

关于正向和逆向,简单理解,正向即符合要求;逆向即不符合要求。

1、正向: 一次尽可能将多个正确数据组合

2、逆向(错误): 一次只能覆盖一个

由上可以看出,正向的往往需要将多种情况组合考虑;而逆向的不用,因为有一个不满足的情况就算一条。

3)编写用例结果 

根据上述分析编写用例,如下给出的是两条合法的用例;照猫画虎,自行补充剩余8条不合法的。

bb95816d8ab2db7c20ae237bd1768b79.jpeg

1.4 适用场景

主要是针对需要有大量数据测试输入,但是没法穷举测试的场景。如输入框、下拉列表、单选复选框等。

典型代表: 页面的输入框类测试。

2、边界值分析法

解决边界限制如何测试的问题

2.1 概述

1)边界范围节点

选取正好等于、刚好大于、刚好小于边界的值作为测试数据

96bd20609fe2fed4ca0134cd2761fdf2.png

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 判定表定义及组成部分

89f036c30f05991e6b9634c21488cbf1.jpeg

上述案例的测试用例

a262b6179b1c583d0797844d5b0372db.jpeg

3.3 案例2

1)案例及分析

28d8adda2f16bc9e29dc6e8317f212c1.jpeg

2)编写测试用例

81bb538050dbc703bec5329d49f225d1.jpeg

4、场景法

解决覆盖业务场景测试的问题

4.1 概述

1)定义

场景法又称流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。

2)意义

用户使用角度

用户平时使用的不是单个功能,而是多个功能组合起来进行使用

测试人员角度

平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试

3)案例:ATM取款流程

67eb97ce06d742a834599dc77233aafc.jpeg

注:冒烟测试,是指在批量开始测试之前,执行业务正向用例,验证软件是否具备可测性。冒烟测试的目的:避免由于项目不具备可测性,而投入的时间和人力成本

5、错误推荐法

5.1 定义

通过经验推测系统可能出现的问题

5.2 思想

根据经验列举出可能出现问题的清单,根据清单分析问题可能原因,推测发现缺陷

5.3 场景

1、时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试

2、时间宽裕通过该方法列出之前出现问题较多的模块再次测试

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农后端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值