软件测试概念

news2025/1/12 18:07:49

目录

基础概念

1、软件测试的概念

2、软件测试的目的

3、基本要求

4、测试的工作流程

5、开发模型

1、瀑布模型

2、增量模型

3、快速模型

4、螺旋开发模型

5、迭代开发模型

6、敏捷开发模型

6、测试模型

1、V模型

2、W模型

7、软件测试的分类

1、测试开发的阶段

2、是否覆盖源码

8、测试用例

9、测试用例设计方法

1、等价类

2、边界值

3、因果图法

4、判定表

5、正交表

6、场景法

7、错误猜测法

10、软件缺陷报告


基础概念

1、软件测试的概念

简单来说,就是在软件中找bug

具体概念:检查软件产品是否满足用户的需求

2、软件测试的目的

以最少的人力,物力,财力找到软件潜在的缺陷和错误

3、基本要求

外观界面测试+功能测试+易用性测试+性能测试+兼容性测试+安全性测试

外观界面测试:界面排版符合要求,窗口缩放等

功能测试:产品是否符合客户要求

易用性测试:产品使用是否符合正常逻辑,是否方便用户操作

性能测试:产品性能检测

兼容性测试:产品在不同平台、不同版本、不同系统等是否可以正常使用

安全性测试:用户信息加密存储等

4、测试的工作流程

  1. 需求分析
  2. 测试计划和测试方案
  3. 测试用例制定
  4. 测试用例执行
  5. 评估阶段,测试报告

1)需求分析:阅读需求文档,明白需求内容,分析需求的测试点。参与需求评审来排除不合理的需求

2)制定测试计划和测试方案:

测试计划:测试整个项目的安排(人力,时间等),测试范围,测试策略,测试地点,风险评估,风险规避等。

测试方案:测试目标,测试工具,测试方法,测试重点等

3)测试用例的设计与执行

4)测试项目的评估,撰写测试报告

5、开发模型

1、瀑布模型

 瀑布模型是最原始的开发模型

1、计划时期:进行项目整体分析,研究需求的正确性,可行性

2、开发时期:针对项目进行需求分析,针对需求进行软件设计和代码编写

3、运行时期:针对写出来的项目进行测试,测试通过后发布,上线之后也要进行维护

a)特点:

1、一个过程执行结束之后,才可以继续执行下一步,也就是阶段之间具有顺序性和依赖性

2、一个阶段结束之后才可以继续执行下一步,每一个阶段都设计了测试点,保证了每一个阶段的质量

b)优点:

1、每一个阶段设置了检查点

2、此阶段完成之后,就只需要关注后序阶段

c)缺点:

不支持需求模糊或者需求经常变动的项目

2、增量模型

将软件看作一系列相互联系的模型的增量,每次完成一个增量。

将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。

a)特点:可以根据功能划分模块

b)优点:

1、开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。

2、将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。

3、快速模型

快速建立起可以在计算机上运行的程序。

即先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统。

4、螺旋开发模型

(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;

(3)实施工程:实施软件开发和验证;

(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

5、迭代开发模型

开发出来一个功能之后,在此功能上迭代,增加新的功能

迭代开发模型不可并行,增量模型各个功能可以并行

6、敏捷开发模型

简单设计,快速实现。

敏捷开发以用户的需求进化为核心,采用迭代,循序渐进的方法进行软件开发。
在敏捷开发中,软件项目在构建初期被切分成多个子系统,各个子系统的成果都经过测试,具备可视,可集成和可运行使用的特征。换言之,就是把一个大的项目分为多个相互联系,但也可以独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。


6、测试模型

1、V模型

 缺点:测试介入太晚,如果需求出现问题,之前的工作就可能要做出很大的改正。

优点:每一个阶段都清晰明了,便于控制每一个阶段

2、W模型

 双V模型,测试伴随着项目始终。

7、软件测试的分类

1、测试开发的阶段

  • 单元测试:编码完成后运行 (比如写完一个方法,一个类,检测这个内容能否正确运行) 参与人员:开发人员 白盒测试人员
  • 集成测试:单元测试结束之后,主要检测模块和模块之间的内容测试  参与人员:开发人员 白盒测试人员
  • 系统测试:集成测试结束之后,检测整个项目  参与人员:开发人员 白盒测试人员 黑盒测试人员
  • 验收(交付)测试:系统测试之后,可以内测(α测试)和公测(β测试)

2、是否覆盖源码

1、黑盒测试没有源码;包括功能测试和性能测试

功能测试主要包括:

  1. UI测试:检验界面是否符合要求,界面排版,窗口缩放等
  2. 功能测试:主要功能是否符合预期
  3. 兼容性:是否支持各种平台、各种系统、各种版本;软件自身的新、旧版本是否可以兼容;对其他软件的兼容性;数据之间的兼容性
  4. 文档测试:检测需求文档是否正确
  5. 易用性测试:是否符合用户的平时使用习惯
  6. 安装和卸载测试:软件的安装和卸载是否正常

性能测试:

  1. 请求的响应时间(响应速度)
  2. 对资源的利用(CPU,内存大小)
  3. 稳定性测试(服务器稳定性,程序稳定性)
  4. 负载测试(服务器的负载容量如果是5万,就要看能不能扛到5万的并发访问)
  5. 压力测试(项目可以正常运行时,到达不会崩溃的极限)

2、白盒测试有源码

  • 语句覆盖
  • 判断覆盖
  • 条件覆盖
  • 路径覆盖

就是保证 每一种情况 每一个语句 都会被考虑到

3、灰盒测试:不是完全的黑盒,白盒 介于两个之间。

关心输入和输出,同时可以考虑输入输出过程内程序运行的状态

8、测试用例

为了测试某一个功能,编制的一组输入数据

测试用例基本要素:1、测试用例编号 2、测试项目(测试模块) 3、前置条件 4、测试输入 5、预期输出 6、操作步骤 7、测试用例标题 8、级别

9、测试用例设计方法

1、等价类

在输入数据穷举时,测试数据才可以说是完美的。然而,穷举是无法实现的,使用等价类划分,选取一类中的某一个数据,代表这一类

比如:程序规定了用户名长度。用户注册时输入用户名,就要符合规范。

如果长度规定在[4,8],那么有效等价类 长度就是4 5 6 7 8的不包含特殊字符的字符串,无效等价类就是其他数字长度的字符串或者包含特殊字符的字符串

长度为4的有效等价类,就可以选取数据 ’1234‘ 作为所有长度为4的用户名的代表,输入结果作为所有长度为4的用户名的结果

测试用例编号测试模块前置条件测试输入预期输出操作步骤测试用例标题级别测试人员测试结果
1注册网络正常10000注册成功

1、输入此用户名和符合要求的密码"123"

2、点击注册

用户名注册长度检测重要张三通过
2注册网络正常100

注册

不成功

1、输入此用户名和符合要求的密码"123"

2、点击注册

用户名注册长度检测重要张三通过

2、边界值

 选择数据的边界进行测试

3、因果图法

使用因果图描述 不同输入和输出之间的对应关系

4、判定表

将因果图的结果使用表格表示

5、正交表

使用最少的测试过程集合获取最大的测试覆盖率。

当条件过多,产生的组合就可能有n种。(比如A,B两个条件,可能组合就有AB同时满足,A满足B不满足,B满足A不满足,AB都不满足),这时是很难覆盖到每一个组合情况的。

测试方法是从大量的测试情况中找出具有代表性的测试情形,利用正交表,结合等价类划分、边界值等方法来编写测试用例。

 覆盖到每一个测试用例 有 3*3*3*3种可能性。我们使用选取少数排列组合的测试结果,表示测试的结果

6、场景法

设置一个场景,走完所有的流程

7、错误猜测法

根据经验,重点测试容易出错的位置

10、软件缺陷报告

包括测试过程中的bug,没有满足用户需求的点等

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css设置渐变边框色

如上图所示,需设置渐变边框色,左右边框颜色固定,上边框从左到右开始渐变,下边框从右到左开始渐变。 思考了很久,如果看作是一个div,则需要用到 border-image属性设置渐变色。也可以看作是两个div&#xff0…

PS不能完成命令,因为没有足够内存(RAM)

PS无疑是一款非常好用的图像编辑软件,对于电脑小白来说操作非常困难,比如提示“不能完成命令,因为没有足够内存(RAM)”要怎么办呢?下面就来看看小编为大家提供的解决办法吧。 一、解决没有足够内存RAM的问题…

c++特殊类

目录 1.实现一个只能在堆上创建对象的类(了解思想) 2.实现一个只能在栈上创建对象的类(同样思想最重要) 3.单例模式(有实际应用价值) 1.实现一个只能在堆上创建对象的类(了解思想)…

MOAT: ALTERNATING MOBILE CONVOLUTION AND ATTENTION BRINGS STRONG VISION MODELS

MOAT: ALTERNATING MOBILE CONVOLUTION AND ATTENTION BRINGS STRONG VISION MODELS一、引言二、实现细节(一)、MBConv block(二)、Transformer block(三)、Comparing MBConv and Transformer blocks(四)、MOAT block(五)、Macro-level network design三、实验部分(一)、ImageN…

传奇GOM引擎登录器配置教程

登录器教程大分类目录引导说明 (01): 解压配置器文件包后,打开KEY文件夹然后选择KEY (02): 战盟官方提供5种不同功能KEY,请打开KEY文件夹里面有载图说明功能,选择你需要…

[附源码]Python计算机毕业设计Django打印助手平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

PG::SunsetDecoy

nmap -Pn -p- -T4 --min-rate1000 192.168.133.85 nmap -Pn -p 22,80 -sCV 192.168.133.85 查看80端口的页面,是一个压缩包 下载压缩包后尝试打开,需要密码,所以直接尝试爆破 得到解压密码 manuel 在/etc/shadow中找到了可以利用的地方 …

终于成功把家里的灯光换掉了

这个周末做过最有意义的事情莫过于把家里的客厅和餐厅的两个黄色吊灯都换上白色灯光的了。为什么说最有意义,因为这件事我已经拖了一年多了,这个黄色的灯光我就一直觉得不舒服,想换掉,可是我不会换,也不知道灯要买什么…

内存取证——ABC包

1、获取数据包的镜像信息 2、获取主机名字 3、 列出文件中曾使用的进程信息 题目要求我们去查看管理员的信息 使用命令查找列出有关管理员的信息继续操作(这里发现管理员注册表) 这个文件里存放着管理员的一些基本信息 已发现此的虚拟地址 打开查看 4、获取管理员用户密码

RationalDMIS 2020 轮廓度评价注意事项2021

用偏差算轮廊度值的常用方法 常见的检测设备都使用ISO和美标来评价轮廓,两者有点差异,ISO标准相对美标要更加严格。在评价轮廊度是有只管控形状和管控形状位置两种,用偏差来计算轮廊度的算法不一样。 ASMEY14.5轮廊度计算规律: (1)当最大值和最小值均三0时,轮廓度测定…

报名即将结束!11 大云原生领域开源技术干货一场拿下

距离 12 月 03 日上海站微服务x容器开源开发者 Meetup 活动正式开幕还有不到一周时间,线下席位即将约满。请感兴趣的同学抓紧报名哦! 本次活动由阿里云云原生应用平台与飞天 Club 共同打造,整体内容聚焦容器 & 微服务方向。活动将围绕云…

位深度/像素/分辨率/图像大小的计算/帧率/刷新率

有关图像的基本名词解释: 位深度: 在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种,它只有黑、白两种颜色,也就是说它的每个像素只有1位颜色&#x…

[附源码]Python计算机毕业设计Django的低碳生活记录网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

MacBook Pro完整卸载及安装激活VMware Fusion13.0.0教程

目录一、MacBook Pro 卸载原有的VMware Fusion二、MacBook Pro下载并安装激活VMware Fusion2.1 下载并安装于Ventura 13.0.1系统2.1.1 下载地址2.1.2 安装2.1.3 激活 VMware Fusion 13.0.0一、MacBook Pro 卸载原有的VMware Fusion 具体操作过程可以详见: mac完整卸…

使用PyTorch实现简单的AlphaZero的算法(3):神经网络架构和自学习

神经网络架构和训练、自学习、棋盘对称性、Playout Cap Randomization,结果可视化 从我们之前的文章中,介绍了蒙特卡洛树搜索 (MCTS) 的工作原理以及如何使用它来获得给定棋盘状态的输出策略。我们也理解神经网络在 MCTS 中的两个主要作用;通…

程序员真的有必要把GC算法好好过一遍,因为它是进大厂必备的

GC算法概述 最早的GC算法可以追溯到20世纪60年代,但到目前为止,GC的基本算法没有太多的创新,可以分为复制算法(Copying GC)、标记清除(MarkSweep GC)和标记压缩(Mark-Compact GC&am…

pte学习_SQL注入1

一、phpstudy使用及mysql数据库基础 ①进入mysql安装路径的/bin中打开cmd mysql -u root -p //登录MYSQL数据库 show databases; // 查看数据库 drop database mysql; //删除mysql数据库 create database pte; //创建pte数据库 use pte; //进入数据库 show tables; //查…

如果把网络原理倒过来看,从无到有,一切都清晰了(上)

长歌吟松风,曲尽河星稀。 前言 我发现绝大数人和我一样对网络原理充满困惑,不是因为不好理解,而是它往往都是直接告诉你它是什么,但它并不告诉你为什么要这样。 而我让离网络最近的一次距离是在一个偶然停电的深夜,周…

实现响应式布局有几种方法

目录 🔽 什么是响应式布局 响应式与自适应区别 🔽 响应式布局方法总结 响应式布局方法一:CSS3媒体查询 响应式布局方法二:百分比% 响应式布局方法三:vw/vh 响应式布局方法四:rem 响应式布局方法五&…

IPv6进阶:OSPFv3 路由汇总实验配置

实验拓扑 实验需求 R1、R2完成接口IPv6地址的配置;R1、R2按图示运行OSPF。R2的三个Loopback接口并不直接激活OSPFv3,而是以重发布的形式注入;在R1、R2上分别执行OSPF路由汇总,使得双方的路由表中关于对方的Loopback只学习到一条汇…