测试 —— 基础概念、开发模型、测试模型、BUG的描述

news2024/9/23 1:34:09

目录

一、什么是软件测试?

1. 调试和测试的区别

2. 优秀的测试人员需要具备的哪些素质

 二、基本名词的概念

1. 什么是需求?

2. 什么是BUG?

3. 什么是测试用例?

4. 软件的生命周期?软件测试的生命周期?

三、开发模型

1. 瀑布模型

2. 螺旋模型

3. 增量模型 和 迭代模型

4. 敏捷模型

4.1 scrum 

四、测试模型

1. V模型

2.  W模型(双V模型)

五、BUG

1. BUG 的描述

2. BUG 的等级

3. BUG 的生命周期


 

一、什么是软件测试?

        软件测试就是验证软件产品特性是否满足用户需求。

1. 调试和测试的区别

(1)目的不同

        调试:为了发现并解决软件中的缺陷

        测试:为了发现软件中的缺陷

(2)参与的角色不同

        调试:开发人员

        测试:测试人员、开发人员(单元测试、集成测试...)

(3)执行阶段不同

        调试:编码阶段

        测试:贯穿于软件的整个生命周期

2. 优秀的测试人员需要具备的哪些素质

(1)综合素质

        快速学习能力

        沟通能力

        文字能力

        开发能力

(2)掌握自动化技术

(3)优秀的测试用例的编写能力

(4)探索性思维

(5)兴趣

(6)责任感和抗压能力

 二、基本名词的概念

1. 什么是需求?

        需求是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。

用户需求:甲方提出的需求,但当没有甲方时,比如一个软件微信等,用户需求就是客户端用户使用的需求(这个软件要完成的任务),一般都比较简陋。

软件需求:是开发人员要实现的功能,比较详细。一般要将用户需求转为软件需求(转换的过程还要进行市场分析和可行性分析),然后又开发人员实现。

2. 什么是BUG?

(1)当软件需求文档(规格说明)是存在的并且正确的情况下,程序与文档(规格说明)之间的不匹配是错误的;

(2)软件需求文档(规格说明)中没有提到的功能,判断标准由用户为准。当程序没有实现用户所需要的需求功能时,就时错误的。

3. 什么是测试用例?

        测试用例是 为了实施测试而向被测试的系统提供的一组集合,包括(标题)、测试环境、测试数据、测试步骤、预期结果等。

4. 软件的生命周期?软件测试的生命周期?

        软件的生命周期:需求分析、计划、设计、编码、测试、运行维护。(软件测试贯穿于整个软件的生命周期

需求分析:分析需求的各个方面。有没有需求量、是否能实现该需求......

计划:实现这个需求,什么时候开始、什么时候结束、要用多长时间... 

设计:将需求进一步细化,要用什么接口、用什么技术、用什么框架...

编码:根据产生的需求文档和技术文档进行开发编码。

测试:测试人员参考测试用例进行测试。

运行维护:项目上线后,依然需要进行维护。(修复性维护、完善性维护、预防性维护...)

软件测试的生命周期: 需求分析、测试计划、测试设计与开发、执行测试、测试评估

需求分析:分别站在用户角度和开发角度对需求进行分析。

测试计划:指定需求计划文档(测试排期、测试工时、测试方法....)

测试设计与开发:设计测试用例;有的项目部分做好了后,由经验丰富的白盒测试人员进行单元测试。

执行测试:依据测试用例执行测试。

测试评估:对于测试执行时的记录,进行回归改进。

三、开发模型

1. 瀑布模型

特点:线性流程、不能够应对变换的需求。

缺陷:

        ① 风险往往在后期测试阶段才会被发现,失去及时尽早修复的机会;

        ② 测试被后置,很可能测试不充分,把缺陷遗留给用户。

适用场景:需求固定的小项目。

2. 螺旋模型

特点:引入全流程的风险分析,每次分析完后都会产生一个新的原型。

缺陷:项目的时间拉长了,同时对进行风险分析的人员的要求十分严格,需要庞大的人员和资金的投入。

适用场景:规模庞大、复杂度高、风险大的项目。

3. 增量模型 和 迭代模型

        有一个需求,功能包含A、B、C 。

增量模型: 

开发完 A 直接上线给用户使用;

开发完 B 直接上线给用户使用;

开发完 C 直接上线给用户使用;

迭代模型:

先开发一个基础版本,可能包含A 、B、C 的功能比较简陋(可能只实现了一部分),然后再在每个这个简陋基础上对 A、B、C继续优化。

4. 敏捷模型

        敏捷宣言:

个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者。
特点 :轻流程、轻文档、重目标、重产出

4.1 scrum 

        scrum 是敏捷开发的一种。其中包含了:三个角色和五个会议。

三个角色:产品经理、项目经理、研发团队。

五个会议

① 发布计划会议:产品经理从需求池中,对需求进行整理和排序。

② 迭代计划会议:将需求进一步细化分配给人员,并确定工时的确定。

③ 每日例会:人员对自己的需求进行昨天做了什么、今天要干什么、遇到了什么问题。

④ 演示会议:产出了可交付的软件,对软件进行演示。并且可能会有新的需求的修改,再从头开始进行一个周期。

⑤ 回顾会议: 回顾这次周期中的不足之处,进行总结。

四、测试模型

1. V模型

概要设计:设计整体架构、框架;

详细设计:模块和模块之间的详细设计。 

特点: 

        ① 明确标注了测试类型;

        ② 明确标注了测试阶段和开发阶段之间的对应关系。

缺点:

        测试被后置,很可能测试不充分,把缺陷遗留给用户。 

2.  W模型(双V模型)

开发模型 + 测试模型

特点:

        ① 测试从需求开始阶段就介入了。

        ② 重文档、重过程;因此不支持敏捷模式。

缺点:

        ① 上个阶段完成下个阶段才能开始(线性);

        ② 开发模型和测试模型也保持的一种前后的线性关系。

五、BUG

1. BUG 的描述

        描述一个 BUG:

① 发现问题的版本

② 发现问题的环境

③ 发现问题的步骤

④ 预期的结果

⑤ 实际的结果

⑥ 其他....(BUG类型、等级...)

2. BUG 的等级

        崩溃、严重、一般、次要。(有的不同的公司,等级不一样)

崩溃:BUG影响到项目的运行打开、死循环、数据库数据丢失...

严重:部分功能丧失...

一般:功能实现了,但是有一点点问题,这个问题不影响功能的使用。

次要: 功能都正常,只是页面有一点问题(需要优化)。

3. BUG 的生命周期

 

 

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

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

相关文章

实验六 触发器与存储过程

实验六 触发器与存储过程 目录 实验六 触发器与存储过程 1、SQL触发器:删除学生数据题目代码题解 2、SQL触发器:创建成绩表插入触发器题目代码题解 3、 SQL存储过程:查询订单题目代码题解 4、SQL存储过程:建立存储过程&#xff0c…

ESP32设备驱动-Si4703调频收音机模块驱动

Si4703调频收音机模块驱动 文章目录 Si4703调频收音机模块驱动1、Si4703介绍2、硬件准备3、软件准备4、驱动实现1、Si4703介绍 Si4702/03 FM 无线电接收器系列通过小尺寸和电路板面积、最少的组件数量、灵活的可编程性以及卓越的、经过验证的性能,增加了向移动设备添加 FM 无…

4。计算机组成原理(5)总线和I/O

嵌入式软件开发,非科班专业必须掌握的基本计算机知识 核心知识点:数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统 一 总线概述 总线是一组能实现多个部件间信息传输的线路 按功能分类 1)片内总线(片…

【iOS】多线程以及GCD和NSOperation

iOS多线程 线程基础进程与线程NSThread类 GCD认识GCD任务队列队列与任务结合线程间通信队列组dispatch group延迟执行操作 NSOperation简介基本使用NSOperation、NSOperationQueue 常用属性和方法归纳NSOperation 常用属性和方法NSOperationQueue 常用属性和方法 小结 线程基础…

网易Android framework开发岗面试经历分享(附面试题汇总+案例解析)

背景 今年可以说是非常难,部门被拆,很多同事都被变相裁员了,虽然说去其他部门工作可以给我们的放宽一点要求,但我还是想在Android开的岗位上发展,所以也提出了离职;离职后的两个月中,投了一些A…

类ChatGPT逐行代码解读(1/2):从零实现Transformer、ChatGLM-6B

前言 最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代…

tensorflow GPU训练环境布置

tensorflow GPU训练环境布置 一、显卡驱动安装1.1 如何处理**Failed to initialize NVML: Driver/library version mismatch的问题**1.2 卸载旧的版本1.3 驱动安装 1.3.1 利用apt 安装1.3.2 手动安装 二、安装CUDA2.1 确定CUDA版本2.2 下载文件1. 找匹配版本2. 选合适的平台 2…

微服务---Redis实用篇-黑马头条项目-商户查询缓存功能(缓存穿透,缓存雪崩,缓存击穿问题及解决思路)

1、商户查询缓存 1.1 什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震…

libcad.so Crack,转换为多种文件格式

libcad.so Crack,转换为多种文件格式 支持所有流行的2D和3D CAD格式。 高速准确的可视化。 轻松访问CAD实体属性,包括坐标、文本、图层等。 转换为多种文件格式。 从DWG和DXF文件生成G代码。 Unicode支持。 libcad.so是一个用于Linux的库。它可以将CAD功能添加到不同…

【笔试强训选择题】Day11.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

MyBatis--原生的 API--注解的方式和MyBatis--mybatis-config.xml-配置文件详解

目录 原生的 API&注解的方式 MyBatis-原生的 API 调用 为了大家的观看我把基于xml的配置和类也展示了如果你想要详细的观看可以看 连接这个博客 创建Monster 创建MonsterMapper接口 创建MonsterMapper.xml 配置mybits的xml 创建MyBatisUtils 原生的 API 快速入门-代…

《计算机网络—自顶向下方法》 第二章Wireshark实验:DNS协议分析

域名系统 DNS(Domain Name System) 是互联网使用的命名系统,用于把便于大家使用的机器名字转换为 IP 地址。许多应用层软件经常直接使用 DNS,但计算机的用户只是间接而不是直接使用域名系统。 互联网采用层次结构的命名树作为主机的名字,并使…

Pytorch高级训练框架Ignite详细介绍与常用模版

引言 Ignite是Pytorch配套的高级框架,我们可以借其构筑一套标准化的训练流程,规范训练器在每个循环、轮次中的行为。本文将不再赘述Ignite的具体细节或者API,详见官方教程和其他博文。本文将分析Ignite的运行机制、如何将Pytorch训练代码转为…

Kubectl-AI: 一款 OpenAI GPT 自动生成应用 K8s yaml神器

首页: 官网 下载安装 wget https://github.com/sozercan/kubectl-ai/releases/download/v0.0.10/kubectl-ai_linux_amd64.tar.gz tar xvf kubectl-ai_linux_amd64.tar.gz -C /usr/local/bin/kubectl-ai需要OpenAI API密钥或Azure OpenAI服务 API密钥和端点以及有效的Kubernet…

系统移植——linux内核移植——分析内核编译过程

uImage镜像文件 1.进入linux内核源码目录 ubuntuubuntu:~$ cd FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61/ 打开Makefile文件 vi Makefile 搜索include 因为 $(SRCARCH)->arm 所以上述指令为 arch/arm/Makefile 2.进入linux内核源码目录下,arch/arm目录下…

Windows 11 本地部署 Stable Diffusion web UI

Windows 11 本地部署 Stable Diffusion web UI 0. 什么是 Stable Diffusion1. 什么是 Stable Diffusion web UI2. Github 地址3. 安装 CUDA Toolkit 11.84. 安装 cuDNN v8.9.1 for CUDA 11.x5. 配置环境变量6. 安装 Python 3.10.67. 安装 Stable Diffusion web UI8. 启动 Stabl…

吊打面试官的Java项目经验一:物流系统

引言: java面试一般分为两部分,技术面试和项目面试,相信大多数小伙伴们都刷过很多技术性的面试题,连博主本人也刷过很多无聊的面试题,但是对于项目经验的面试,可能很多刚入行小伙伴属于一个空白期&#xff…

【软考|软件设计师】编辑距离算法

目录 编辑距离算法: 步骤: 实例: 题: 完整代码如下: 调试: 代码解析: 具体过程参考: 编辑距离算法: 是一种计算两个自符串之间差异程度的方法,它通过…

现场工程师出马:VMware+LVM卷快速在windows Server上部署Kafka集群

最近遇到的疑难现场问题层出不穷,本次遭遇的挑战是在4台windows Server 服务器上部署Kafka集群。这是一种比较少见的操作,原因是有些依赖的驱动对虚拟化支持不好,只能运行在实体win机上。 原有的上层业务是由B团队开发运维,现在B…

今年的博客数量上两百了

今年的博客数量上两百了 不知不觉在 C S D N CSDN CSDN中写了那么多篇文章。与 C S D N CSDN CSDN相伴的生活中,我过得很充实。