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

article/2025/9/23 11:15:48

测试理论基础知识

文章目录

  • 一、软件的定义与分类
    • 1、软件定义
    • 2、软件分类
      • (1)按照功能划分
      • (2)按照技术架构划分
  • 二、软件测试的定义及目的
    • 1、定义:
    • 2、目的
  • 三、软件测试流程
  • 四、V模型(重点)
    • 1、软件测试V模型:
    • 2、软件缺陷
  • 五、软件测试分类
    • 黑盒测试
    • 白盒测试
    • 灰盒测试
  • 六、软件测试原则

一、软件的定义与分类

1、软件定义

计算机系统中与硬件相互依存的一部分(程序+数据+相关文档

2、软件分类

(1)按照功能划分

系统软件: 能够直接和硬件交互的软件。例如:win10、linux、操作系统
应用软件: 能够为用户提供某种特定条件的应用服务的软件,应用软件通常运行在系统软件中。例如:QQ运行在windows操作系统上

(2)按照技术架构划分

单机软件:直接在单个计算机上安装并运行的软件,如画图工具

C/S 结构软件:C指的是客户端(Client),S指的是服务器端(SERVER),这种软件是基于局域网或互联网的,需要有一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。不便于升级和维护(升级时需要重新安装每一个客户端)

B/S 结构软件:B是指浏览器(Browser),S指的是服务器端(SERVER).这种软件是基于局域网或互联网的,不需要安装客户端,只需要有浏览器即可,便于升级和维护(升级时只需要升级服务器即可)

二、软件测试的定义及目的

1、定义:

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

2、目的

就是尽可能多的发现软件缺陷。bug是测试过程中的产品而非目标。检查系统是否满足要求,站在用户角度思考产品或项目功能实现的正确性。
测试目的不仅仅为了找出错误,通过分析错误产生的原因和错误的分布特征,帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。

三、软件测试流程

在这里插入图片描述

四、V模型(重点)

1、软件测试V模型:

V模型:从左到右,描述了开发过程和测试过程步骤。
在这里插入图片描述

需求分析:明确客户需求,要求分析师能准确的把客户所需要达到的功能、实现方式,等表述出来,给出分析结果,写出需求规格说明书。

概要设计:主要是架构的实现。架构师搭建架构、表述各模块功能、模块接口连接和数据传递的实现等事务。

详细设计:对概要设计中各个模块进行深入分析,对各模块组合进行分析。该阶段要求达到伪代码级别,把程序的具体实现的功能,现象等描述出来。其中需要包含数据库设计说明。

软件编码:按照详细设计好的模块功能表,编程人员编写出实际的代码。

单元测试:按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同,比如有具体到模块的测试,也有具体到类,函数的测试等。

集成测试:在单元测试的基础上,通过单元模块组装成系统,在进行测试,检查模块之间接口的正确性。

系统测试:针对整个产品进行测试,验证系统是否满足需求文档,对实现的系统进行正确性和性能两方面测试。(包括对功能、性能以及软件所运行的软硬件环境进行测试 。系统测试由黑盒测试员来完成,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,是否存在漏洞,以及在不同的软硬件环境中的兼容性,主要依据是《系统需求规格说明》文档 。)

验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据用户需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。包括功能确认测试、安全可靠性测试、易用性测试、可扩充性测试、兼容性测试、资源占用率测试、用户文档资料验收等。

α测试:非正式验收测试,由用户、测试人员、开发人员共同参与的内部测试

α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过α测试调整的软件产品称为β版本。

β测试:内测后的公测,即将正式发布,完全交给最终客户的测试。

β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。β测试主要衡量产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持),着重于产品的支持性,包括文档,客户培训和支持产品生产能力。
注:α测试和β测试均不能由程序员和测试员完成

2、软件缺陷

软件未达到客户需求的功能和性能
软件超出了客户需求的范围
软件出现客户需求不能容忍的错误
软件的使用未能符合客户的习惯和工作环境

五、软件测试分类

1、按开发阶段分类:
单元测试、集成测试、系统测试、验收测试

2、软件结构和算法角度:
黑盒测试、白盒测试、灰盒测试

3、按软件的测试面划分:
功能测试、性能测试、空间性能、时间性能

4、按是否手工执行划分:
手工测试、自动化测试

5、软件的测试周期划分:
冒烟测试、回归测试、随机测试、安全测试

冒烟测试:在对一个新版本进行大规模的系统测试之前,先验证软件的基本功能是否实现,是否具备可测性

回归测试:开发人员修改bug后,修饰旧代码,重新进行测试,确保修改后不会引入新的错误或者导致其他代码出错。

随机测试:所有输入的数据都是随机产生。目的模拟用户真实操作,发现边缘性错误。

安全测试:开发过程完成到发布阶段,对产品进行校验,验证产品符合安全需求定义,产品质量标准。

注:软件所处的阶段和使用的测试技术没有关系

黑盒测试

也称为功能测试。通过测试来检测每个功能是否实现,把程序比喻成黑盒,在完全不考虑程序内部实现的情况下,对程序接口进行测试,功能 对比 需求文档 检查是否实现。

白盒测试

白盒测试对软件代码实现的细节做细致检查。程序员必须全面了解程序的内部逻辑结构,对逻辑结构进行测试。

灰盒测试

介于黑、白盒测试之间。灰盒关注输入数据,输出数据正确性,同时也关注内部实现,关键关注内部实现不像白盒测试那么详细、完整。只是通过一些表象,标志来判断内部运行状态,有时内部程序出了问题,输出结果正确。白盒测试效率低。

六、软件测试原则

◎所有测试的标准都是建立在用户需求之上
◎软件测试必须基于”质量第一”的思想区开展各项工作,当时间和质量冲突时,时间要服从质量。
◎事先定义好产品质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
◎软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始测试。
◎穷举测试是不可能的。
◎软件测试计划是做好软件测试工作的前提。
◎测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法区设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
◎ 对发现错误较多的程序段,应进行更深入的测试,一般来说,一段程序中已发现的错误数越多,其中存在的错误率越大。
◎ 重视文档,妥善保存一切测试过程文档(测试计划,测试用例,测试报告等)
◎ 应当把“尽早和不断的测试”作为测试人员的座右铭
◎ 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见
◎ 测试应从“小规模”开始,逐步向”大规模”转变
◎ 不可将测试用例置之度外
◎ 必须彻底检查每一个测试结果
◎ 一定要注意测试中错误的集中出现,这和程序猿的编程水平以及习惯息息相关
◎ 对测试错误结果一定要有一个确认的过程


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

相关文章

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

软件测试(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…

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

转载,原文链接:http://blog.csdn.net/xingzhemoluo/article/details/39677891 SQL左右连接中的on and和on where的区别 在使用left join时,on and和on where条件的区别如下: 1、on条件是在生成临时表时使用的条件,它不管on中的条…

左连接 oracle条件查询,sql 左连接查询条件and与where

用一条SQL查询一张表中不同级别的字段(字段名称相同)。 需求:用一条SQL同时查出城市id、城市name、省份id和省份name。 版本一如下 SELECT tlUp.LOCATION_ID as cityId, tlUp.LOCATION_NAME as cityName, tlDown.LOCATION_ID as provinceId, tlDown.LOCATION_NAME as province…

oracle左连接优化,关于SQL左连接效率问题

项目在开发新功能,涉及到一张表,里面数据有一百多W的条,表字段竟然有一百多个。。实在是没法再往下新增加字段了,于是就新增了一张表,用做扩展吧,通过表key来关联。后来涉及到以扩展表中某个字段作为查询条…

oracle 左连接 简写,SQL左连接

原标题:SQL左连接 今天分享一下开发中何时运用左连接进行关联查询(大牛请忽视~)。 废话不多说,直接上表结构。只有两张表作为例子,Person表为人员信息,Types为人员类型辅助表,没有定义外键关联。 记住这句话——运用左…

SQL中的左连接和右连接

SQL中的左连接和右连接 SQL中的左连接和右连接 为什么面试官喜欢问这个问题?为什么自己明明会SQL但是这个问题却模棱两可?今天为大家解决这个问题。话不多说,直接上案例~ 创建两张表 首先创建第一张表class,字段如下图所示。 …

SQL查询左连接、右连接、内连接

1、左连接的定义:是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。 下边以A表和B表为例子,A…

sql的左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)的详解

sql的左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)的详解: 这里以两个表的连表为例: 创建表1:为人员表,这里将它当做左表; CREA…