软件测试-基本概念

news2024/11/25 15:22:55

软件测试-基本概念

1.什么是软件测试

测试指的是对我们生产出来的产品特性进行一些校验,例如对传感器、手机等的测试,而软件测试是对我们开发出的软件进行校验是否存在问题,测试软件特性是否符合用户需求。

2.软件测试的基本概念

软件测试的基本概念包括需求、测试用例、bug。

2.1什么是需求

分为两大类,分别是用户需求和软件需求。

用户需求:由用户提出的需求,比如用户要求制作一个点餐小程序等。该需求一般比较简略。自研产品的话,一般由产品经理提出需求。

例如:用户对点餐小程序提出需求

在这里插入图片描述

软件需求/功能需求:将用户需求转化为软件需求,详细描述开发人员需要实现的功能。

注意:用户需求不等于软件需求。用户需求不一定合理、需要对用户需求进行提取和分析。

软件需求是我们测试人员进行测试工作的基本依据,而用户需求不能。

2.2什么是测试用例

测试人员在执行测试前需要编写测试用例,测试用例的质量与产品的质量具有很大的关联关系,一份好的测试用例可以降低软件在线上环境出现问题的概率。但是任何测试样例都不能不能保证是完美的。

例如:对搜索框编写测试用例。

在这里插入图片描述

测试用例主要解决两个问题:测试什么、怎么进行测试。

测试用例的要素:测试环境、测试步骤、测试数据、预期结果等要素。

2.3什么是bug

bug的由来:格蕾丝·赫柏1945年9月9日,格蕾丝使用的Mark Ⅱ出现故障,导致工作无法进行。经过了近一天的检查,格蕾丝找到了故障的原因:继电器中有一只死掉的蛾子。蛾子被夹了出来。后来,”bug” (小虫) 和”debug” (除虫) 这两个本来普普通通的词汇成了计算机领域中特指莫明其妙的“错误”和“排除错误”的专用词汇而流传至今,而格蕾丝·赫柏也因此成了第一个发现“bug”的人。

软件缺陷的概念和界定:

当且仅当存在规格说明且正确时,程序与规格说明之间不匹配就是错误的,可以提出bug。

例如:登录页面,规格说明要求昵称为4-12个字符,而测试时发现2个字符也能注册成功,可以认定为bug。

当规格说明没有提到的功能,判断标准以用户体验为准,当程序没有实现用户合理预期的功能,也可以认为是软件错误,可以提出bug。

例如:选择框供选项的元素非常多,几十甚至几百个,影响用户体验,也能提出bug。

3.开发模型

开发模型:可以理解为开发流程/项目推进流程。软件从没有到上线的过程(软件的生命周期)。

软件的生命周期:需求分析->计划->设计->编码->测试->运行维护

需求分析:对用户需求进行分析、市场分析、技术分析。

计划:什么时候开始动工,什么时候结束,不同模块需要的时间等。

设计:将软件需求进行拆分,每个模块有谁来管理,设计哪些接口,采用哪些技术,使用什么框架等待。

编码:由开发人员参考需求文档和技术文档来进行编码。

执行测试:测试人员参考测试案例执行测试。

运行维护:

  1. 修复性维护,对项目中未发现的文件进行修复。
  2. 完善性维护:对功能进行完善,增强功能或预防维护。

3.1瀑布开发模型

在这里插入图片描述

瀑布模型是其他模型的基础框架,一个阶段结束才能开始下一个阶段,线性顺序进行的软件开发模式,

缺点:

  1. 很多风险往往后期的测试阶段才被发现。失去尽早纠正的机会(没有充分的了解客户需求,导致在开发阶段花费了大量时间和资源开发了一个不符合用户实际要求的程序,导致需要更多的时间来修复问题)
  2. 测试在后期开展,需要足够的时间来测试,否则容易造成测试不充分,软件问题直接暴露给客户。
  3. 运行的产品很迟才能被看到,不能够很好的迎接变化(变化需要消耗更多的时间和资源)。

使用场景:需求固定的小型项目

3.2螺旋模型

采用渐进式的开发模型,在瀑布模型的基础上添加了风险分析,然后生成新的原型。增加了风险分析阶段,团队需要耗费更多的时间和资金。

在这里插入图片描述

适用场景:初期阶段需求不确定,变化概率大的大型项目。

计划:制定一个详细的项目计划,包括项目目标、时间表等等。

风险分析:对潜在的风险进行评估、识别和管理,可能包含技术风险、需求风险等等。可以制定相应的风险应对策略。

原型阶段:根据计划阶段确定的需求和目标,构建一个可交互的软件原型,能够展示系统关键功能以及交互流程。通过原型,尽早的发现潜在的设计问题,验证技术可行性。

产品实施阶段:开发团队将原型转为实际的软件产品,并进行全面的测试。保证软件的质量。

3.3增量模型和迭代模型

增量模型:将项目进行模块化,使其每一个功能都能够独立开发和上线。

在这里插入图片描述

迭代模型:先完成功能的基础版本,在经历一次次的迭代优化,直到功能完善。

3.4敏捷模型

软件开发敏捷宣言特点:

  1. 强调人与人之间的沟通
  2. 轻文档
  3. 重视目标
  4. 重视产出

敏捷开发有很多种方式scrum是比较流行的一种。

scrum中的角色:

  1. 产品经理:负责整理用户需求,定义其商业价值等等
  2. 项目经理:负责召开各种会议,协调项目进度。
  3. 研发团队:紧密配合、完成每一次迭代交付产品。

迭代开发:scrum将产品的开发分解成若干个小的迭代,周期不等,一般不超过四周,每周要完成的需求是固定的。每一次迭代产生一定的交付。

scrum的基本流程:

  1. 需求发布会议:确定本次迭代要实现的需求。
  2. 迭代计划会议:将需求拆分成一个个任务,明确每个任务对应的负责人等等。
  3. 每日会议:回答三个问题,昨天做了什么?今天要做什么?遇到了什么问题。
  4. 演示会议:一次迭代结束后,展示完成的工作。
  5. 回顾会议:讨论并反思本次迭代中的优点和不足,以及需要改进的地方。

4.测试模型

软件测试的什么周期:需求分析->测试任务->测试设计于开发>-执行测试->测试评估

4.1V模型

明确了测试有不同类型,而且每个类型和前期的开发工作相对应。

在这里插入图片描述

缺陷:测试后置

4.2W模型

测试从最开始就介入,有利于尽早的发现问题。但是开发和测试虽然是同步的,但是仍然存在着前后的线性关系。

在这里插入图片描述
不支持敏捷模型。

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

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

相关文章

Itsycal for Mac: 精美日历软件的魅力之旅

在这个数字化时代,管理时间和日程变得尤为重要。macOS 平台上的 Itsycal 日历软件可以帮助你有效管理你的日程和时间。 Itsycal 是一款轻量级且直观的日历应用程序,专门为 macOS 用户设计。通过这款软件,你可以轻松查看、管理和跟踪你的日常…

分布式多级缓存SDK设计的思考

分布式多级缓存SDK设计的思考 背景整体架构多层级组装回调埋点分区处理一致性问题缓存与数据库之间的一致性问题不同层级缓存之间的一致性问题不同微服务实例上,非共享缓存之间的一致性问题 小结 之前实习期间编写过一个简单的多级缓存SDK,后面了解到一些…

Postman脚本——断言测试

pm对象提供了测试相关功能: pm.test(testName:String, specFunction:Function):Function:测试函数。pm.expect(assertion:*):Function → Assertion:允许在响应数据上做测试,使用ChaiJS expect BDD语法。 可以使用pm.response.t…

SQL模板-用户留存率计算

在这段实习中,我遇到了用户留存率计算的需求,这里做个总结。 首先来讲下,什么是用户留存? 在互联网行业中,用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用该应用的用户。用户留存一…

Windows账号和密码的获取与破解 相关工具集合

Windows账号和密码的获取与破解 相关工具集合 1.概述2.GetHashes3.gsecdump4.SAMInside5.oclHashcat 1.概述 在通过SQL注入等方式获取网站的WebShell后,就可以利用系统的各种漏洞进行提权,提权成功后,就可以通过远程终端登录系统。此时&…

什么是设备运维管理系统?它对企业有什么帮助?

如果企业在生产过程中遭遇设备故障的突发情况,不仅会对生产计划产生直接的影响,还会导致生产成本的不必要增加。这就是没有采用设备运维管理系统的潜在风险和问题。因此,许多制造企业已开始积极引入并实施设备运维管理系统,其主要…

kubevirt v1.1.0-alpha.0 offline deploy on kubernetes v1.23.17

文章目录 准备条件下载介质部署查看安装 virtctl 前天,kubevirt 更新了,尝鲜。 准备条件 二进制 Deploy Kubernetes v1.23.17 下载介质 export VERSION$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases | grep tag_name | grep -v…

uni-app 之 解决u-button始终居中问题

uView中u-button始终居中问题如何解决的简单方法&#xff1f; 1&#xff1a;给该元素margin-right: 0;可以达到向右靠齐&#xff1b; 2&#xff1a;给该元素的父元素设置float: right image.png <u-button style"width: 50px; margin-left: 0;" plain"t…

arm ubuntu 换源

sudo gedit /etc/apt/sources.list 将里面内容替换成下面 网址链接 清华源 截图如下 自行选着系统

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后&#xff0c;大家想做的基本上都是摸鱼&#xff0c;像我这种没什么手法的人不可能摸鱼打MOBA游戏&#xff0c;所以只能选择数独这种对时间要求不怎么急促的小游戏。然而&#xff0c;有时候搞半天才发现从一开始就错了&#xff0c;这让我很苦恼&#x…

毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计

基于stm32单片机的app视频遥控抽水灭火水泵小车设计 1、项目简介1.1 系统构成1.2 系统功能 2、部分电路设计2.1 L298N电机驱动电路设计2.2 继电器控制电路设计 3、部分代码展示3.1 小车控制代码3.1 水泵控制代码 4 演示视频及代码资料获取 1、项目简介 视频简介中包含资料http…

开源日报 0822 | 语音识别与推理

这些项目包括 JavaScript 算法示例、系统编程语言 Rust、高性能的自动语音识别推理项目 Whisper.cpp 以及键盘工作者的单词记忆与英语肌肉记忆锻炼软件 Qwerty Learner。 trekhleb/javascript-algorithms Stars: 174.1k License: MIT 这个项目是一个包含许多流行算法和数据结…

mmc20创建进程c/c++实现

背景 最近写了一份遍历clsid所有接口的代码&#xff08;链接点这里&#xff09;&#xff0c;在查找有意思的包含exe方法的时候发现了mmc20&#xff0c;且接口是6efc2da2-b38c-457e-9abb-ed2d189b8c38。 但常见的使用mmc20都是用的vbs和powershell来创建的进程&#xff0c;这里…

Hadoop的HDFS高可用方案

一、Hadoop高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用&#xff0c;两者的实现基本类似&#xff0c;但 HDFSNameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多&#xff0c;所以它的实现也更加复杂 1、HDFS系统高可用简介…

链家网房源价格信息的爬虫分析工具

导语 链家网是中国最大的房地产交易平台之一&#xff0c;提供了全国各地的房源信息&#xff0c;包括价格、面积、户型、楼层、朝向、小区、地理位置等。这些信息对于房地产市场的分析和预测有着重要的价值&#xff0c;但是链家网并没有提供方便的数据接口&#xff0c;因此需要…

用flask框架flask-sock和websocket创建一个自己的聊天界面

WebSocket 协议在10年前就已经标准化了(在2011年&#xff0c;你能相信吗?)所以我相信你不需要介绍。但是如果你不熟悉它&#xff0c;WebSocket 是 HTTP 协议的一个扩展&#xff0c;它在客户端和服务器之间提供了一个永久的、双向的通信通道&#xff0c;在这里双方可以实时地发…

91 # 实现 express 的优化处理

上一节实现 express 的请求处理&#xff0c;这一节来进行实现 express 的优化处理 让 layer 提供 match 方法去匹配 pathname&#xff0c;方便拓展让 layer 提供 handle_request 方法&#xff0c;方便拓展利用第三方库 methods 批量生成方法性能优化问题 进行路由懒加载&#…

亚马逊 CodeWhisperer 初体验

1、CodeWhisperer 介绍 CodeWhisperer 是亚马逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。类似 Cursor 和 Github Copilot 编码工具。 官网&#xff1a;AI 代码生成器 - Amazon CodeWhisperer - AWS 在编写代码时&#xff0c;它会自动根据您现…

Flink sql 1.17笔记

环境准备 # 启动hadoop集群 # 启动Flink yarn session (base) [link999hadoop102 flink-1.17.0]$ bin/yarn-session.sh -d# 启动finksql客户端 (base) [link999hadoop102 flink-1.17.0]$ bin/sql-client.sh -s yarn-session# 如果有初始化文件 bin/sql-client.sh embedded -s …

数据结构 - 二叉树

文章目录 目录 文章目录 前言 一 . 树型结构 1.1 树的概念(了解) 1.2 数的常用术语 (掌握) 1.3 树的应用(了解) 1.4 树相较于数组和链表的优势(了解) 二 . 二叉树(重点) 2.1 二叉树的概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的基本操作 2.4.1 二叉树的前序遍历 …