【软件测试】测试基础知识

以下是软件测试小白关于软件测试基础知识的学习记录。
视频学习:

一、基础理论知识

1.1 软件测试的定义

  • 软件测试是一个复杂而系统的过程,它涉及多个方面的技术和方法,旨在通过技术手段验证软件的正确性、完整性、可靠性和易用性,从而确保软件产品能够满足用户需求并提高用户体验。

1.2 软件测试的目的

  • 为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。
  • 为了证明程序有错,而不能保证程序没有错误。
  • 为了确保软件产品最大限度地符合用户的需求。
  • 为了提高产品的用户体验以及产品的易用性。

1.3 主流测试技能

  • 功能测试:验证程序功能是否满足需求。
  • 自动化测试:使用代码或工具代替手工进行测试。
  • 接口测试:使用代码或工具对服务端提供的接口进行测试。
  • 性能测试:模拟多人使用软件,查找服务器缺陷。

1.4 软件生命周期

  • 问题定义 =》需求分析 =》软件设计 =》软件开发 =》软件测试 =》软件维护

1.5 软件开发模型

1.6 软件质量

  • 概念:指软件产品满足基本需求及隐式需求的程度。
  • 模型:衡量一个优秀软件的维度。
    • 功能性、性能、兼容性、易用性、可靠性、安全、可维护性、可移植性。
  • 影响软件质量的因素
    • 需求模糊
    • 软件开发缺乏规范性文件指导
    • 软件开发人员问题
    • 缺乏软件质量控制管理

1.7 测试分类

  • 按测试阶段划分
    • 单元测试:验证软件单元是否符合软件需求与设计,针对程序源代码进行测试。
    • 集成测试:将已测试过的软件单元组合,测试它们之间的接口。针对模块之间的访问地址(接口)进行测试。
    • 系统测试:将经过测试的软件在实际环境中运行,并与其他系统的成分组合进行的测试。
    • 验收测试:内测和公测,使用不同人群来发掘软件缺陷。
  • 按代码可见度(测试技术)划分
    • 黑盒测试:
      黑盒测试就是把软件当作一个有输入输出的黑匣子,把程序当作一个输入域到输出域的映射,只要输入的数据能输出预期结果即可,不必关心程序内部是怎么样实现的。
      黑盒测试方法:等价类划分法、边界值分析法、场景法、因果图法、判定表法、正交实验设计法、错误推测法等。
    • 灰盒测试:
      灰盒测试是介于白盒测试和黑盒测试之间的一种测试方法。灰盒测试既关注输入输出的正确性,也关注程序内部的结构和逻辑。测试人员可以通过一定的手段或工具(如接口测试、调试信息等)来获取部分程序内部状态或行为的信息,但又不像白盒测试那样需要深入到代码细节中。
    • 白盒测试:
      白盒测试又叫透明盒测试,指测试人员了解软件程序的逻辑结构、路径与运行过程,在测试时,按照程序的执行路径得出结果。白盒测试就是把软件(程序)当作一个透明的盒子,测试人员清楚的知道从输入到输出的每一步过程。
      白盒测试方法:逻辑覆盖法、程序插桩法等。

1.8 软件测试模型

1.9 测试流程

  • 需求评审:确保各部门需求理解一致。
  • 计划编写:测什么、谁来测、怎么测。
  • 用例设计:验证项目是否符合需求的操作文档。
  • 用例执行:项目模块开发完成开始执行用例文档实施测试。
  • 缺陷管理:对缺陷进行管理的过程。
  • 测试报告:实施测试结果文档。

1.10 测试用例

  • 测试用例:为测试项目而设计的执行文档。
  • 测试用例的作用:1.防止漏测。2.实施测试的标准。
  • 用例设计的编写格式:
    • 用例编号:项目_模块_编号
    • 用例标题:预期结果(测试点)
    • 项目/模块:所属项目或模块
    • 优先级:表示用例的重要程度或影响力(P0~P4,P0最高)。
    • 前置条件:要执行此条用例,有哪些前置操作。
    • 测试步骤:描述操作步骤。
    • 测试数据:操作的数据,没有可以为空。
    • 预期结果:期望达到的结果。
  • 例:测试QQ登录模块
    • 需求:1.账号为空。2.账号未注册。3.密码为空。4.密码错误。 测试用例表

二、用例设计方法

2.1 针对穷举场景设计测试点

  • 等价类划分法
    • 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分。
    • 分类:有效等价类(满足需求的集合)和无效等价类(不满足需求的集合)。
    • 步骤:1.明确需求。2.确定有效和无效等价类。3.提取数据编写测试用例。
    • 案例:验证某城市电话号码的正确性。
      • 要求(1.区号:空或者是三位数字。2.前缀码:非0且非1开头的三位数字。3.后缀码:四位数字)。
      • 步骤:
        1.明确需求(长度、类型、规则)。
        2.确定有效和无效等价类。
        在这里插入图片描述
        3.提取数据编写测试用例。
        在这里插入图片描述
        在这里插入图片描述

2.2 针对限定边界规则设计测试点

  • 边界值分析法
    • 边界范围节点:上点(边界上的点,正好等于边界点)、离点(离边界点范围最近的点,刚好大于、刚好小于)、内点(边界范围内的点)
    • 步骤:1.明确需求。2.确定有效和无效等价类。3.确定边界范围值。4.提取数据编写测试用例。
    • 案例:通过边界值分析法验证标题长度的合法性。
      • 要求(标题长度大于0,小于等于30个字符)。
      • 步骤:
        1.明确需求:长度(0<标题长度<=30)。
        2.确定有效和无效等价:只关注类型。
        3.确定边界范围值:上点(0,30)、离点(-1,1,29,31)、内点(15)。
        4.提取数据编写测试用例:测试点(标题为空、标题为30位字符、标题为1位字符、标题为29位字符、标题为15位字符)。
        在这里插入图片描述

2.3 针对多条件依赖关系设计测试点

  • 判定表法
    等价类划分、边界值分析法主要关注单个输入类条件的测试,并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试。
    • 定义:是一种以表格形式表达多条件逻辑判断的工具。
    • 组成:
      • 条件桩:列出问题中的所有条件,列出条件的次序无关紧要。
      • 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束。
      • 条件项:列出条件对应的取值,所有可能可能情况下的真假值。
      • 动作项: 列出条件项的、各种取值情况下应该采取的动作结果。
    • 规则:判定表中贯穿条件项和动作项的一列就是一条规则。假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则。
    • 案例:订购单检查
      1.如果金额大于500,又未过期,则发出批准单和提货单。
      2.如果金额大于500,但过期了,则不发批准单和提货单。
      3.如果金额小于等于500,则不论是否过期,都发批准单和提货单。
      4.在过期的情况下不论金额的大小还需要发出通知单。
    • 步骤:
      1.明确需求
      在这里插入图片描述
      2.画判定表
      在这里插入图片描述
      3.提取数据设计测试用例
      在这里插入图片描述
      在这里插入图片描述

2.4 针对项目业务设计测试点

  • 场景法
    • 说明:场景法也可以叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。
    • 意义:
      1.用户使用角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用。
      2.测试人员角度:平时测试的都是对单个功能点进行测试,容易忽略多个功能的组合测试。
    • 流程图
      流程图是一种直观、明确地表示动态过程从开始到结束全部步骤的图示方法。它通过图形符号和文字说明,清晰地描绘了系统或软件中的业务流程、逻辑顺序和决策路径。场景法正是基于这些业务流程和逻辑顺序来设计测试用例的,因此流程图成为场景法不可或缺的工具。
      学习文档:博主:mocas_wang 《必备画图技能:流程图》
    • 案例:验证ATM机取款流程。
      在这里插入图片描述
    • 步骤:
    • 1.根据业务流程绘制流程图(测试人员一般不需要画)。描述基本流(正常流程)和备选流(异常流程)。
      在这里插入图片描述
    • 基本流:插入银行卡->输入密码->进入主界面->选择取款和取款金额->更新账户余额、出钞->返回主界面
    • 备选流:
      • 1.插入银行卡错误->提示错误、退卡
      • 2.密码错误达3次->吞卡
      • 3.账户余额不足->提示错误、退卡
      • 4.取款金额错误->提示错误、退卡
      • 5.ATM机余额不足->提示错误、退卡
    • 2.根据流程图生成不同场景。
      • 场景1:用户取款成功。
      • 场景2:插入银行卡错误。
      • 场景3:输入密码错误达3次。
      • 场景4:取款金额大于账户余额。
      • 场景5:取款金额不是100的整数倍。
      • 场景6:取款金额大于ATM机余额。
    • 3.对每一个场景生成测试用例。
      在这里插入图片描述

2.5 拓展

  • 冒烟测试
    • 冒烟测试在软件测试中并没有严格地限定于某一个具体的测试阶段,而是可以贯穿于测试的任何一个阶段。它更像是一个测试活动或策略,用于快速验证软件的基本功能是否正常,以确保软件能够进行后续的测试工作。
    • 意义:在批量开始测试之前,执行业务正向用例,验证软件(程序)是否具备可测性。
    • 目的:避免由于项目不具备可测性,而投入时间和人力成本。
  • 错误推测法
    • 定义:通过经验推测系统/软件可能出现的问题。
    • 思想:根据经验列举出可能出现问题的清单,根据清单分析问题可能原因,推测发现缺陷。
    • 场景:时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试。

三、缺陷管理

3.1 缺陷介绍

  • 定义:软件缺陷就是通常所说的Bug,它是指软件中(包括程序和文档)存在的影响软件正常运行的问题。
  • 缺陷判定的标准:
    • 软件未实现需求说明书中明确要求的功能——少功能
    • 软件出现了需求说明书中指明不应该出现的错误——功能错误
    • 软件实现的功能超出需求说明书指明的范围——多功能
    • 软件未实现需求说明书中虽未明确指明但应要实现的功能——隐性功能错误
    • 软件难以理解、不易使用、运行缓慢,用户体验不好——不易使用
  • 产生原因:
    • 需求阶段——需求描述不易理解,有歧义、错误等。
    • 设计阶段——设计存在错误或缺陷等。
    • 编码阶段——代码出现错误。
    • 运行阶段——软硬件系统本身故障导致软件缺陷。
  • 缺陷的生命周期:软件缺陷的生命周期是指一个软件缺陷从被发现、报告,直到被修复并最终验证关闭的完整过程。
  • 缺陷的核心内容:
    • 缺陷的标题:描述缺陷的核心问题。
    • 缺陷的预置条件:缺陷产生的前提。
    • 缺陷的复现步骤:复现缺陷的过程。
    • 缺陷的预期结果:希望得到的结果。
    • 缺陷的实际结果:实际得到的结果。
    • 缺陷的必要附件:图片、日志等信息(证据)。
  • 缺陷提交的要素:
    • 缺陷报告编号:缺陷的唯一标志。
    • 严重程度:
      • 严重(S1):主功能。
      • 一般(S2):次要功能。
      • 微小(S3):易用性、界面。
      • 建议(S4):建议性问题。
    • 缺陷优先级:
      • priority0:24小时之内解决。
      • priority1:发布前必须修复。
      • priority2:可以在下一个版本中修复。
    • Bug类型:代码错误、兼容性问题、设计缺陷、性能问题。
    • 缺陷状态:
      • New:新建
      • Open:打开
      • Closed:关闭
      • Postponed:延期
  • 软件缺陷类型:功能错误、界面(UI)错误、兼容性、数据、易用性、改进建议、架构。

3.2 缺陷编写

  • 缺陷报告格式
    • 缺陷编号
    • 缺陷标题
      • 方式1:测试数据+执行结果(预期)
      • 方式2:测试数据+执行结果(需求)
      • 方式3:测试数据+预期+执行结果
    • 缺陷状态
    • 严重程度
    • 优先级
    • 所属模块
    • 缺陷描述
    • 附件
  • 例:
    在这里插入图片描述
    缺陷报告
    在这里插入图片描述
  • 缺陷的跟踪流程
    在这里插入图片描述
    • 提交缺陷:测试人员提交缺陷报告。
    • 分派缺陷:将缺陷分配给相应责任人。
    • 处理缺陷:开发人员分析和定位缺陷,修复缺陷。
    • 回归测试:测试人员再次验证缺陷,确认缺陷是否复现。
    • 关闭缺陷:缺陷修复并验证通过,将其状态标记为关闭。
  • 提交缺陷的注意事项
    • 可重现:缺陷可以复现。发现缺陷的第一件事不是提交,而是确认其可复现。
    • 唯一性:一个缺陷上报一个问题,不要重复提交。
    • 规范性:符合公司或项目要求。

3.4 缺陷管理工具

3.5 使用Xmind分析测试点

  • 项目测试流程:需求评审->测试计划->用例设计->用例执行->缺陷管理->测试报告
  • 测试思路
    • 1.根据项目测试计划自己所负责的内容制定个人实施内容。
    • 2.制定个人计划:
      • 1)熟悉自己负责的模块需求。
      • 2)根据需求设计测试点(等价类、边界值、判定表、场景法)。
      • 3)编写测试用例覆盖测试点。
      • 4)执行用例。
      • 5)缺陷管理。
      • 6)测试总结。
    • 案例:注册模块测试点分析。
      在这里插入图片描述
      1.根据项目需求罗列测试模块。
      在这里插入图片描述
      2.采用正向和逆向思维分析单个模块的测试点。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      3.整合单个模块正向和逆向测试点,分析项目总测试点。
      在这里插入图片描述
      在这里插入图片描述
      通过上述步骤可得知注册模块功能正向测试点共有3条,功能逆向测试点共有18条,即用例共有21条。
      非功能测试点分析:
      在这里插入图片描述

四、HTML基础知识

学习网站:菜鸟教程

4.1 HTML介绍

  • HTML标签
<br/><!--单标签-->
<b></b><!--双标签-->
<a href="http://www.baidu.com">百度</a><!--标签属性,属性格式:属性名="属性值"-->
  • HTML骨架标签
<!DOCTYPE html><!--声明文档类型为html-->
<html><!--根标签-->
	<head><!--头部标签,<head> 元素包含了文档的元(meta)数据-->
		<meta charset="utf-8"> 
		<title>文档标题</title>
	</head>
	<body><!--<body>元素包含了可见的页面内容-->
		<h1>我的第一个标题</h1>
		<p>我的第一个段落。</p>
	</body>
</html>

4.2 常用标签

  • 标题标签
<body>
	<!--HTML标题是通过<h1>~<h6>等标签进行定义-->
	<h1></h1><!--最大-->
	......
	<h6></h6><!--最小-->
</body>
  • 段落标签
<body>
	<p>段落</p>
</body>
  • 超链接标签
<body>
	<!--HTML使用标签 <a> 来设置超文本链接-->
	<a href="http://www.baidu.com" target="_bank">链接文本</a>
	<!--href:指定链接目标的URL-->
	<!--target:指定链接如何在浏览器中打开。常见的值包括 _blank(在新标签或窗口中打开链接)
	和 _self(在当前标签或窗口中打开链接)。-->
</body>
  • 图片标签
<body>
	<!--在 HTML 中,图像由<img> 标签定义-->
	<img src="image.jpg" alt="图片" width="304" height="228">
	<!--<img> 是空标签,只包含属性,没有闭合标签,src 指 "source",源属性的值是图像的 URL 地址-->
	<!--alt 属性用来为图像定义一串预备的可替换的文本-->
	<!--height(高度) 与 width(宽度)属性用于设置图像的高度与宽度-->
</body>
  • 空格与换行
<body>
	<p>空格&nbsp;</p><!--空格-->
	<p>换行<br></p>
<body>
  • 布局标签
<body>
	<!--div 元素是用于分组 HTML 元素的块级元素-->
	<!--大盒子,独占一行-->
	<div></div>
	<!--小盒子,一行可以有多个-->
	<span></span><span></span>
</body>
  • 列表标签
<body>
	<!--列表标签使用<li>-->
	<!--无序列表使用 <ul> 标签-->
	<ul>
		<li>无序</li>
		<li>列表</li>
	</ul>
	<!--有序列表始于 <ol> 标签。每个列表项始于 <li> 标签-->
	<ol>
		<li>有序</li>
		<li>列表</li>
	</ol>
</body>
  • 表单标签
<body>
	<!--<form> 元素用于创建表单,action 属性定义了表单数据提交的目标 URL,method 属性定义了提交数据的 HTTP 方法-->
	<!--<label> 元素用于为表单元素添加标签,提高可访问性-->
	<!--<input> 元素是最常用的表单元素之一,它可以创建文本输入框、密码框、单选按钮、复选框等。
	type 属性定义了输入框的类型,id 属性用于关联 <label> 元素,name 属性用于标识表单字段-->
	<!--<select> 元素用于创建下拉列表,而 <option> 元素用于定义下拉列表中的选项-->
	<form action="/" method="post">
    	<!-- 文本输入框 -->
    	<label for="name">用户名:</label>
    	<input type="text" id="name" name="name" required>
    	
    	<!-- 密码输入框 -->
    	<label for="password">密码:</label>
    	<input type="password" id="password" name="password" required>
    	
    	<!-- 单选按钮 -->
    	<label>性别:</label>
    	<input type="radio" id="male" name="gender" value="male" checked>
    	<label for="male"></label>
    	<input type="radio" id="female" name="gender" value="female">
    	<label for="female"></label>
    	
    	<!-- 复选框 -->
    	<input type="checkbox" id="subscribe" name="subscribe" checked>
    	<label for="subscribe">订阅推送信息</label>
    	
    	<!-- 下拉列表 -->
    	<label for="country">国家:</label>
    	<select id="country" name="country">
        	<option value="cn">CN</option>
        	<option value="usa">USA</option>
        	<option value="uk">UK</option>
    	</select>
    	
    	<!-- 提交按钮 -->
    	<input type="submit" value="提交">
	</form>
</body>

五、案例

5.1 项目功能测试

  • 黑马头条Web登录功能测试
    在这里插入图片描述
  • 需求
    • 1.输入注册手机号(11位):
      • 当文本框失去焦点时验证,红色为失败,绿色为成功。
    • 2.点击发送验证码:
      • 如果手机号文本框状态为绿色,弹出“点击按钮进行验证”;如果手机号文本框为红色,提示手机号不正确;
    • 3.点击按钮进行验证:
      • 拖拽图形到指定位置,按钮消失;拖拽图形未到指定位置,晃动提醒,滑块回到初始位置;超过5次,提示尝试过多,请点击重试;
    • 4.输入验证码:
      • 正确的验证码,并勾选“我已阅读并同意”,点击登录,进入系统。
      • 错误的验证码,并勾选“我已阅读并同意”,点击登录,提示验证码错误。
      • 正确的验证码,未勾选“我已阅读并同意”,点击登录,提示勾选。
    • 5.点击登录:
      • 手机号、验证码都为绿色,勾选“我已同意并阅读”,登录成功。
  • 步骤一测试点分析
    • 功能测试:验证登录功能(手机号、验证码、协议)、验证滑块功能。
    • 非功能测试:兼容性(这里只测兼容性)。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      通过分析得知,登录页面的功能测试点共12条,即需要12条测试用例覆盖测试点。
  • 步骤二用例设计
  • 编写测试用例
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 步骤三执行用例
    这里没有登录模块,只是作为案例练习。
  • 步骤四缺陷管理
    • 验证缺陷:确保缺陷可复现。
    • 提交缺陷
    • 关闭缺陷
  • 步骤五测试报告

六、总结

6.1 基础理论知识

  • 软件测试的定义:使用技术手段验证软件是否满足需求的过程。
  • 测试分类的区别
    在这里插入图片描述
  • 质量模型5项重点:功能、性能、兼容性、易用性、安全性。
  • 测试流程的6个步骤:需求评审、测试计划、用例设计、用例执行、缺陷管理、测试报告。
  • 什么是测试用例?:执行测试的文档。
  • 测试用例的作用:防止漏测、实施测试的标准。
  • 测试用例模板的8个要素:用例编号、用例标题、项目/模块、优先级、前置条件、测试步骤、测试数据、预期结果。

6.2 用例设计方法

  • 等价类划分法
    • 解决穷举场景如何测试的问题。
    • 步骤:1、明确需求。2、确定有效和无效等价类。3、提取数据编写测试用例。
  • 边界值分析法
    • 解决边界限制如何测试的问题。
    • 常与等价类划分法搭配使用。
    • 名词:上点(边界上的点)、内点(范围内的点)、离点(离上点最近的两个点)。
    • 用例数量:最多7条,可优化为5条(开内闭外、内点必选、上点必选)。
    • 步骤:1、明确需求。2、确定有效和无效等价类。3、确定边界范围值。4、提取数据编写测试用例。
  • 判定表法
    • 解决多条件限制依赖关系如何测试的问题。
    • 步骤:1、明确需求(分析条件和动作)。2、画判定表(列出条件和动作)。3、提取数据编写测试用例。
    • 用例的数量为:2的条件个数次方。
  • 场景法
    • 解决覆盖业务场景如何测试的问题。
    • 步骤:1、根据流程图梳理可能场景。2、编写用例覆盖场景。
  • 错误推测法
    • 使用场景:1、时间紧任务量大,根据经验推测有可能出现的故障。2、 测试完毕,时间充裕,根据经验或测试过程中出现的错误,进行复测。
  • 冒烟测试
    • 什么时候使用:在批量测试之前,开始执行,验证项目是否具备可测性。
    • 目的:避免由于项目不具备可测性,而投入大量时间和人力成本。

6.3 缺陷管理

  • 什么是缺陷:软件在使用过程中存在的各种问题都是缺陷。
  • 缺陷的优先级如何划分:1级(冒烟测试的正向业务用例)、2级(冒烟测试的逆向业务用例、单功能正向用例)、3级(单功能逆向、UI布局)、4级(建议)。
  • 发现缺陷后如何处理:首先要确保缺陷能够复现。
  • 缺陷类型:代码错误、UI错误、兼容性、易用性、架构。
  • 软件缺陷判定标准:少功能、多功能、隐性功能错误、功能错误、不易使用。
  • 缺陷管理流程:提交缺陷、验证缺陷、关闭缺陷。
  • 缺陷报告格式:缺陷编号、缺陷标题、缺陷状态、严重程度、所属模块、复现步骤、预期结果、实际结果、附件。

6.4 HTML基础知识

  • 常用HTML标签:标题标签、段落标签、超链接标签、图片标签、空格与换行标签、布局标签、列表标签、表单标签。

以上就是关与测试基础知识的全部学习记录内容,如有错误还请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值