测试理论基础

article/2025/9/23 10:50:09

测试基础

1.软件测试的概念

软件测试(Software testing):是一种实际输出与预期输出间的审核或者比较过程。

经典定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

IEEE定义(1983):使用人工或自动的手段来运行或测定某个软件系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别

2.测试的目的

  1. 测试是为了发现程序中的错误而执行程序的过程
  2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
  3. 成功的测试是发现了至今为止尚未发现的错误的测试
  4. 测试并不仅仅是为了找出错误,通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进
  5. 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性
  6. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法
  7. 另外,根据测试目的的不同,还有回归测试(bug回归、版本迭代回归)、冒烟测试(主要功能或者流程跑一边)、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等

3.软件测试的七大原则:(重点)

  1. 原则一:测试可以显示缺陷(BUG)的存在
  2. 原则二:穷尽测试是不可能的
  3. 原则三:测试应该要尽早介入
  4. 原则四:缺陷的集群效应,即测试对象中发现的80%的缺陷来自20%的模块
  5. 原则五:杀虫剂悖论,即同样的测试用例被重复执行多次,将不能发现新的缺陷
  6. 原则六:测试活动依赖于测试对象的背景
  7. 原则七:不存在缺陷并不代表是有用的系统

4.测试结束标准

  • 符合客户的需求(满足需求文档的要求)
  • 1,2,3级的BUG都已经全部解决了
  • 测试用例100%都执行了
  • 测试文档都完成了

常见的开发模型(了解)
在这里插入图片描述

敏捷开发

在这里插入图片描述

5.软件测试的分类

  • 按测试执行阶段划分:单元测试(单元测试属于白盒测试的一种)、集成测试(集成测试属于灰盒测试的一种)、系统测试、验收测试(正式验收测试、Alpha测试、Beta测试)

    • 单元测试:对软件中的最小可测试单元(函数、类、方法)进行检验
    • 集成测试:组件测试或接口测试(内部接口测试、第三方接口测试)
      • 集成测试中所使用的对象应该是已经经过单元测试的软件单元
      • 把两个已经测试过的单元组合成一个组件,测试它们之间的接口
    • 系统测试:是针对整个产品系统进行的测试(软件、硬件、外设、网络等其他元素结合)
      • 分类:功能测试、健壮性测试、安全测试、性能测试、安装测试…
    • 验收测试:是部署软件之间的最后一个测试操作
      • Alpha阿尔法测试:α测试在开发环境下,先于β测试;是对一个早期的、不稳定的软件版本所进行的验收测试
      • Beta贝塔测试:β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试;不能有程序员或测试员完成;是对一个晚期的、更加稳定的软件版本所进行的验收测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vatnwxN0-1647517758135)(images/image-20220304094901279.png)]

  • 按测试技术划分:白盒测试、黑盒测试、灰盒测试

    • 白盒测试:对代码的测试(函数、方法),一般来说很少专门进行白盒测试
    • 灰盒测试:测试接口
    • 黑盒测试:对应系统测试,不关注于代码层面的
  • 按测试对象是否运行划分:动态测试、静态测试(文档检查、代码走查、界面检查)

  • 按不同的测试手段划分:手工测试、自动化测试

  • 按测试包含的内容划分:功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试、压力测试、负载测试、恢复测试

  • 其他测试:冒烟测试、回归测试、探索性测试/自由测试(测试思维)

6.软件开发&测试流程

软件开发流程

项目计划:可行性分析(经济可行性、技术可行性、社会背景可行性等)

需求分析:根据功能收集需求,出说明文档

概要设计:设计软件总体的结构,有哪些子系统、角色

详细设计:详细设计软件的各个子系统功能

编码:开发人员

测试:测试人员(根据需求文档编写测试计划、测试用例、测试总结)

发布:发布软件、说明文档

运维:软件维护

测试流程

  • 制定测试计划与测试方案:对要测试的产品进行分析,制定测试计划,由组长制定

    • 测试目的
    • 测试范围:要测的功能模块
    • 测试策略:要用到测试的方法
    • 测试人员、时间安排
    • 风险和意外的处理
  • 测试需求分析:

    • 针对需求分析测试功能点
    • 分析模块和模块或者功能和功能之间业务联系
  • 测试设计阶段(用例编写、用例评审)

  • 测试执行阶段:搭建环境、执行测试

  • 测试总结

    测试报告

    1. 测试过程
    2. 测试情况分析
    3. 测试BUG统计分析
    4. 测试BUG记录
    5. 遗留问题清单
    6. 评估结果
    7. 改进建议

你们公司的测试流程?各个阶段有哪些产物(面试)

【参考答案】
我们首先会召开需求分析会议,参加人员有产品、开发和测试,主要是探讨需求主要的一些功能点,完了之后,开发就排期进行开发,我们测试会按照测试主管写的测试计划进行任务分配。先会参考需求规格说明书及原型图提取出要测得功能点,然后写测试用例,写完之后会进行用例评审,用例评审以后要修改的就修改整理形成最终的用例版本,之后开发人员版本编译完成后,我们会先进行冒烟测试,如果冒烟测试不通过,直接返回给开发进行修改。冒烟测试通过,依据测试用例进行系统测试,测试过程中,提交bug,跟踪bug,进行回归测试直至不存在严重bug,满足用户需求,测试完后编写测试报告,发布上线后,关注软件是否正常运行。

7.测试用例

BUG划分(重点):

  1. 致命的 --系统无法使用
  2. 严重的 --系统里面主要或者核心的功能无法使用
  3. 一般的 --一般的功能无法使用
  4. 轻微的 --显示、提示信息,不影响客户使用

测试用例定义

为了某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求

目的是能够将软件测试的行为转化成可管理的模式

为什么要编写测试用例

  • 避免测试点的遗漏
  • 可以提高测试效率
  • 便于重复测试
  • 便于团队交流
  • 便于统计跟踪

测试用例八要素(重点)

  • 用例编号
    • 唯一标识作用
  • 测试项目/模块
  • 标题
    • 对一条用例的说明
    • 不要包含是否、可能等不确定词汇
  • 预置条件
  • 操作步骤
  • 输入数据
  • 预期结果
  • 优先级

测试用例设计技术

  • 等价类划分法:把所有可能的输入数据,即程序的输入划分为若干类别,然后从每一类中选取少数有代表性的数据作为测试数据

    • 有效等价类:代表对程序的有效输入(符合需求规定的数据);一条测试用例覆盖多个有效等价类,有效减少测试用例的条数,提高测试效率
    • 无效等价类:代表的则是其他任何可能的输入;对于每一个无效等价类至少编写一条相应的测试用例,用于覆盖代码中的异常处理,不然可能会造成某一类测试数据的逻辑处理代码漏测

    等价划分法流程:1.对测试数据进行分类2.对每类数据划分等价类(列出等价类表)3.选取测试用例/数据三步

  • 边界值分析法

    • 边界值点的定义–任何值的测试的范围的临界点,可分为
      • 边界值:明确地定义在规格说明书中
      • 次边界:隐含在软件需求中必须经过分析才能获得
    • 上点、离点、内点
      • 上点:就是指边界上的点,开区间上点在域外,闭区间上点在域内(就是给的范围的两个数)
      • 离点:就是离上点最近的点,开区间离点在域内,闭区间离点在域外
      • 内点:域内的任意点都是内点
  • 流程分析法:是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例

    • 关注的重点是流程是否能走下去,每个节点的功能并不关注
    • 适用范围:
      • 业务流程测试
      • 安装流程测试
      • 审批流程测试
    • 流程分析法设计用例步骤
      1. 画出业务流程图
      2. 编写测试用例
  • 正交分析法

    • 因子:所有影响试验标准的条件,要测试的功能点
    • 水平:影响试验因子的状态,即单个因素能够取得的值的最大个数
  • 判定表分析法:是根据不同的条件组合选择不同动作的分析工具

    • 一张判定表的田字形结构:条件桩、条件项、动作桩、动作项
  • 错误猜测法

测试用例设计方法选择原则

在这里插入图片描述
在这里插入图片描述

8.缺陷管理

缺陷管理的目的

  • 缩短沟通时间
  • 解决问题更高效
  • 容易跟踪缺陷
  • 便于缺陷统计与分析

缺陷管理工具

行内现在一般用的都是禅道

开发处理BUG几种可能

重复BUG

其他测试人员提交过的BUG

不能重现的BUG应该怎么处理(面试)

1、出现bug后,首先截图,查看日志,把对应日志保留下来

2、尝试重现这个bug ,思考这个bug可能产生的原因, 然后每个原因逐步验证,如果重现不出来,可以找开发帮忙 , 这个步骤是为了准确找到重现bug 的步骤, 开发修改的时候就容易多了,不然又会和开发来来回回扯皮

3、如果实在重现不出来, 还是要提交bug 的, bug单一定要写清楚bug出现的环境, 版本、步骤, 错误截图, 对应的日志, 尽可能多的提供出现bug时的信息, 方便开发定位

设计如此

本来的设计就是这样的

外部原因

网络、环境等

当你提了一个bug,开发认为这不是bug,怎么处理?(面试)

答:首先确认开发环境是否跟自己测试环境一致,确认在测试环境能重现,如果确认是缺陷跟开发保持有效沟通,如果是级别较低的建议性bug,可以先记录到 bug 平台,先保留沟通。如果是 bug 级别较高的问题,对应需求文档的预期结果跟开发说明,更有说服力;耐心讲解BUG的危害,不行就找产品确认,确实是BUG注明情况并再次指派给开发

bug提交流程(重点)

在这里插入图片描述

提交bug给测试主管审核,如果是有效bug,指派给开发;如果是无效bug,回指给测试。开发判断bug是否需要修复,如果是,开发修改完bug后回指给测试,测试验证bug,通过验证就由测试关闭bug;如果不需要修复,根据开发回指过来的理由,对应分析解决bug。

管理工具禅道

提交bug填写内容(重点、面试)

  • bug标题
  • 所属模块
  • bug等级
  • 重现步骤
  • 指派给谁
  • 附件

提交bug重现步骤内容

  1. 发现环境 (测试环境 URL、生成环境(正式环境))
  2. 操作账号 admin 密码:****
  3. 操作步骤:第一步打开登陆页面,第二步输入账号,,,(所有操作步骤)
  4. 结果,填写BUG描述
  5. 期望结果
  6. 附件:截图

缺陷处理流程(重点)

  • 发现缺陷
  • 上报缺陷
  • 判断缺陷
  • 修复缺陷
  • 验证缺陷
  • 关闭缺陷

9.Linux服务端环境搭建

Nginx作用

  • 反向代理

  • 负载均衡

  • 动静分离

    • 不需要访问数据库的资源,如图片等,不用访问后端服务器,直接访问Nginx就可以拿到

http://chatgpt.dhexx.cn/article/OVtD2TbY.shtml

相关文章

测试理论----测试设计方法论

【原文链接】 1、测试用例格式 (1)用例编号:用例的唯一标识,要求具有易识别性和易维护性,能能够根据用例编号识别用例的目的和作用,一般格式为:A-B-C-D 其中 A:一般表示产品或者项…

测试基础理论

一,理清测试相关概念 1,质量 : 实体特性的总和,满足明确或隐含要求的能力 2,软件质量 :软件特性的总和,软件满足规定或潜在用户需求的能力 在1991年软件产品质量评价,国标标准ISO9126中定义是:软件满足规定或潜在用户需求特性的总和。 …

【软件测试】软件测试基础理论

软件测试基础理论 黑盒测试、白盒测试、灰盒测试 (1)黑盒测试 黑盒测试 又叫 功能测试、数据驱动测试 或 基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。 采用这种测试方法,测试工程师把测试对象看作一个黑盒子&…

软件测试 - 功能测试(测试理论+用例设计)

一、测试理论基础 1.软件的定义 软件:是计算机程序、程序所用的数据以及有关文档资料的集合 软件分为 系统软件 和 应用软件 系统软件:是生成、准备和执行其他程序所需要的一组文件和程序,比如:操作系统 应用软件:计…

测试理论概述

一、测试基础 1、什么是测试? 弄清楚产品实际功能与需求的差别的过程。 2、软件测试的目的: 根本目的是检验产品是否满足用户的需求。除此之外,可细分为三个层面: (1)证明:证明软件可用 (2)检测:发现缺陷&…

测试理论总结(一)

1.你是如何把控、推进测试流程的? 首先,测试之前,我会做好测试计划、测试人力分配、工作量的估算、测试策略、测试风险评估等;其次,测试中,我会尽量严格按照测试计划来执行,如果实际测试中出现…

超详细的测试理论基础知识

测试理论基础知识 文章目录 一、软件的定义与分类1、软件定义2、软件分类(1)按照功能划分(2)按照技术架构划分 二、软件测试的定义及目的1、定义:2、目的 三、软件测试流程四、V模型(重点)1、软…

测试基本理论-看这篇就够了

软件测试(Software Testing):在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 一、软件的分类? 1、按照功能划分: 【系统软件】:如操作…

测试理论基础(重点)

软件测试的原则 1. 只能证明软件存在问题,不能把证明不存在问题 2. 不能进行穷尽测试,应该分类别测试 3. 测试工作尽早介入,降低修复成本 4. 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷 5. 测试依赖环境 6.…

sql左连接出现重复数据

情况说明:只需左表数据,右表数据只作为条件存在,左表数据与右边有1:n关系,左连接出现重复数据 原因分析:由于1:n关系,右边数据连接后处于隐藏状态(类似)&…

sql 左连接数据出现重复

数据出现数据重复问题,排查后发现竟然是,这里用简单demo举例,项目SQL不便展出~ 目录 一、简化举例 二、查询结果 一、简化举例 1、表aa 2、表bb 二、查询结果 1、无条件查询 2、左连接查询 右表数据有重复时,连接关系如下 111122 …

sql 左连接行数增加本质

sql 左,右,内连接 转载自:http://323229113.blog.163.com/blog/static/2185362820070172553209/ 感谢作者. 相信做数据分析的朋友,对数据库都比较敏感,作为一名数据分析人员,我们处理数据时总会遇见各种各样的问题,包括连接方式的选择,今天和大家分享一下…

SQL(左连接,右连接,内连接)

连接(Join):SQL语句采用JOIN的目的是关联两张及两张以上的表。 连接的使用方式:表1 Join 表2 On 关联条件 1 左连接(Left Join) 左连接(Left Join):多表拼接时,以左边的表为基准&a…

SQL语句理解左右连接和where

这里以左连接 left join 为例,说明 on 后面的条件与 where 后面条件的区别 创建测试表:TAB_1、TAB_2 create table TAB_1 as (select c as A,d as B,3 as C,4 as D from dualunion allselect a as A,b as B,1 as C,2 as D from dual); create table TA…

sql的内连接、左连接、右连接

多表联查时,有些数据没有对应另一个表的数据,即对应为空。 內连接:仅选出两张表中互相匹配的记录,有对应为空的则筛选出去,这些数据就不会被搜索出来。内连接是两个表中都必须有连接字段的对应值的记录,数…

SQL Server左连接

LEFT JOIN 子句用于查询来自多个表的数据。它返回左表中的所有行和右表中的匹配行。 如果在右表中找不到匹配的行,则使用 NULL 代替显示。 以下图说明了两个结果集的左连接结果: 以下说明如何使用 LEFT JOIN 子句来连接两个表 T1 和 T2 : 在…

SQLserver 外连接查询-左连接查询

外连接包括 : (左外连接 右外连接 全连接 简称 为:左连接 右) 先上定义: /*左连接 left join on 返回左表的所有行,对应右表中数据有一对多的联系,则全部展示,右表中没有匹配 上 &am…

SQL左连接数据变少

前一段时间,同学写sql碰到一个问题:两段sql连接看似一样,但是条数却不一样。原因是在左连接之后的where条件对数据进行了筛选,使得数据变少了。两段sql如下: select count(1)from (select *from KXAPP.I_CASH_LOAN_WH…

SQL 左连接中on后面加where和加and的区别

阅读目录 1、首先来谈谈什么是left join 2、再来谈谈on后面使用and和where的区别 3、总结 今天的最佳表现应该作为明天的最低要求 1、首先来谈谈什么是left join left join即左连接,比如表1左连接表2,以左表为主,表示以表1为主&#xff0c…

SQL 内连接、左连接、右连接案例

概念 左连接(Left Join):以左表为主表,左表中每条数据都会跟右表所有数据进行对比一次,当所有条件不满足时,对应的右表数据以 null 显示 1 语法:select * from tbl1 Left Join tbl2 on tbl1.ID…