软件测试与开发流程

软件测试简介

        软件测试是对软件进行检测和评估,以确定其是否满足所需结果的过程和方法。它是在规定的条件下对程序进行操作,发现程序错误,从而衡量软件质量,并对其是否满足设计要求进行评估的过程。

        与计算机系统操作有关的计算机程序文档数据都可称为软件。程序、文档、数据这三者结合起来就是完整的软件。

软件开发模型

瀑布模型

优点:软件开发的各个阶段比较清晰,强调早期计划和需求调查,比较适合需求稳定的产品开发

缺点: 整个过程是线性的,测试排在最后,系统的早期错误可能后期才能被发现。

敏捷开发模型

适用于产品需求频繁变化和产品需要快速开发的场景。常见的敏捷开发模型有XP和Scrum。

XP(Extreme Programming,极限编程)

XP是一种近螺旋式的开发模型。它是把复杂的周期分解为一个个相对简单的小周期。极限编程从编程方法、小组实践、交付与发布三个维度来组织开发流程。

Scrum 

在Scrum模型中,最基本的概念就是Sprint。Sprint通俗来说就是一个迭代周期。

DevOps开发模型 

        DevOps(Dev和Ops的组合词)涉及软件整个开发生命周期中的各个阶段。DevOps是一个非常关注开发人员(Dev)、运维人员(Ops)以及测试人员之间沟通合作的开发模型。DevOps是通过自动化方式完成软件测试交付流程的,以便在构建、测试、发布软件能够更加快捷、频繁和可靠的运行。

 DevOps生命周期:

 (1)持续开发

  • 计划阶段
  • 编码阶段
  • 构建阶段

(2)持续测试

(3)持续集成(CI)

(4)持续部署

(5)持续监控

常见测试流程

单元测试

单元测试是对软件中的基本组成单位进行的软件测试。目的是检验软件的基本组成单位的正确性 

测试方法:白盒测试

集成测试  

集成测试是对软件系统集成过程中进行的测试,目的是检查软件模块之间的接口是否正确

测试方法:黑盒与白盒结合

冒烟测试

冒烟测试是在软件开发过程中针对软件基本功能的一种快速验证,是对软件基本功能进行确认验证的手段

测试方法:黑盒测试(手工或自动化测试方式)

系统测试

系统测试是对已集成好的软件系统进行彻底的测试,验证软件系统的正确性和性能等是否满足其规约所指定的要求。一般系统的主要测试工作都集中在系统测试阶段。在系统测试中,又包括功能测试、性能测试、安全测试、兼容性测试

测试方法:黑盒测试

验收测试

验收测试是部署软件之前的最后一种测试。验收测试的目的是确保软件准备就绪。

测试方法:黑盒测试

软件测试模型

V模型

V模型是开发模型中瀑布模型的一种改进。瀑布模型将软件生命周期划分为计划、分析、设计、编码、测试和维护这六个阶段。V模型改进了瀑布模型的缺点,在软件开发时期,开发活动和测试活动几乎同时开始。 

优点:明确标注了测试过程中存在着哪些不同的测试类型,并且可以清楚地表达测试和开发各阶段的对应关系。

缺点:顺序性,进入测试后发现的bug不容易找到根源。如果有较大的需求变更,会导致返工量较大。

W模型

W模型是从V模型演化过来,相对于V模型,在软件各开发阶段中W模型增加了应同步进行的验证和确认环节。W模型由两个V组成,分别代表测试过程和开发过程。测试与开发同步进行,有利于尽早、全面地发现系统中的问题。

优点:测试与开发同步进行,而且测试对象不仅仅是程序,还包括需求和设计。这样可以尽早发现软件缺陷,降低软件开发成本。

缺点:开发与测试依然是线性关系,项目的需求变更和调整依然不方便。如果前期工作中没有产生文档,根本无法执行W模型。

H模型 

H模型把测试完全独立出来,形成一个完成独立的工作。将测试准本工作和测试执行工作清晰地体现出来。

图中的其他流程可以是任意的开发流程。测试流程是灵活的,只要满足测试条件,并且完成测试准备活动,测试就可以进行了。

优点:在H模型中软件测试活动可以尽早准备、尽早执行,具有很强的灵活性。而且软件测试可以根据被测对象的不同而分层次、分阶段、分次序执行,同时也是可以被迭代的。

缺点:对于项目管理要求很高、对于测试人员的技能要求也很高、测试就绪点的分析也比较困难。

3种测试模型对比:

  • V模型适用于中小企业
  • W模型适用于中大型企业
  • H模型对测试人员的技能要求非常高,使用比较少 

系统测试工作流程

 Bug管理流程

 

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

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

相关文章

使用Python绘制堆积柱形图

使用Python绘制堆积柱形图 堆积柱形图效果代码 堆积柱形图 堆积柱形图(Stacked Bar Chart)是一种数据可视化图表,用于显示不同类别的数值在某一变量上的累积情况。每一个柱状条显示多个子类别的数值,子类别的数值在柱状条上堆积在…

基于Redis和阻塞队列的 异步秒杀业务

异步前 之前的秒杀业务的查询优惠券、查询订单、减库存、创建订单都要查询数据库,而且有分布式锁,使得整个业务耗时长,对此采用异步操作处理,异步操作类似于餐厅点餐,服务员负责点菜产生订单、厨师负责根据订单后厨做…

IDEA越用越卡?教你轻松解决IDEA内存占用过高问题

大家好,我是瑶山,最近IDEA越用越卡了,刚刚内存卡爆,带着整个电脑也卡的飞起,只能重启了电脑。 虽然重启后又恢复到了流畅,但是问题还是如鲠在喉,痛定思痛,还是决定处理下&#xff01…

基于SpringBoot+Vue的招生管理系统(带1w+文档)

基于SpringBootVue的招生管理系统(带1w文档) 通过招生管理系统的研究可以更好地理解系统开发的意义,而且也有利于发展更多的智能系统,解决了人才的供给和需求的平衡问题,招生管理系统的开发建设,由于其开发周期短&…

在 PostgreSQL 中,如何处理大规模的文本数据以提高查询性能?

文章目录 一、引言二、理解 PostgreSQL 中的文本数据类型三、数据建模策略四、索引选择与优化五、查询优化技巧六、示例场景与性能对比七、分区表八、数据压缩九、定期维护十、总结 在 PostgreSQL 中处理大规模文本数据以提高查询性能 一、引言 在当今的数据驱动的世界中&…

555定时器

硬件大杂烩 1. 555定时器内部结构 各引脚定义作用 引脚1: GND (地),功能:接地,作为低电平(0V)。 引脚2: TRIG (触发),功能:当此引脚电压降至1/3VCC (或由控制端决定的阈值电压)时,输出端给出高电平。 引…

【CUDA】 由GPGPU控制核心架构考虑CUDA编程中线程块的分配

GPGPU架构特点 由于典型的GPGPU只有小的流缓存,因此一个存储器和纹理读取请求通常需要经历全局存储器的访问延迟加上互连和缓冲延迟,可能高达数百个时钟周期。与CPU通过巨大的工作集缓存而降低延迟不同,GPU硬件多线程提供了数以千计的并行独…

YOLOv8改进 添加轻量级注意力机制ELAttention

一、ELA论文 论文地址:2403.01123 (arxiv.org) 二、Efficient Local Attention结构 ELA (Efficient Local Attention) 被用于处理自然语言处理任务中的序列数据。它旨在提高传统注意力机制的效率,并减少其计算和存储成本。 在传统的注意力机制中,计算每个输入位置与所有其…

MYSQL 四、mysql进阶 6(索引的创建与设计原则)

一、索引的声明和使用 1.1 索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从 功能逻辑 上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 按照 物理实现方式 ,索引可…

Apache Seata配置管理原理解析

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata配置管理原理解析 说到Seata中的配置管理,大家可能会想到Seata中适配…

47.HOOK引擎优化支持CALL与JMP位置做HOOK

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 上一个内容:46.修复HOOK对代码造成的破坏 以 46.修复HOOK对代码造成的破坏 它的代码为基础进行修改 优化的是让引擎支持从短跳JMP(E9&…

美光科技在2024年1γ工艺技术在10纳米级别启动EUV试产

美光科技(Micron)在2024年针对其1γ(1-gamma)工艺技术在10纳米级别启动EUV(极紫外光刻)试产,这标志着存储行业巨头在EUV采用上的重要一步,尽管相比英特尔和台积电等其他半导体制造商…

【PWN · ret2shellcode | sandbox-bypass | 格式化字符串】[2024CISCN · 华东北赛区]pwn1_

一道栈ret2shellcodesandbox(seccomp)格式化字符串的题目 前言 ret2shellcode,已经不是简单的放到栈上、ret这样一个简单的过程。套一层seccomp的沙箱,打ORW又遇到open受限等等,考虑的蛮多。过程中收获最多的可以说是…

Hugging face Transformers(2)—— Pipeline

Hugging Face 是一家在 NLP 和 AI 领域具有重要影响力的科技公司,他们的开源工具和社区建设为NLP研究和开发提供了强大的支持。它们拥有当前最活跃、最受关注、影响力最大的 NLP 社区,最新最强的 NLP 模型大多在这里发布和开源。该社区也提供了丰富的教程…

【系统架构设计师】计算机组成与体系结构 ⑩ ( 磁盘管理 | 磁盘移臂调度算法 | 先来先服务算法 | 最短寻道时间优先 | 扫描算法 | 循环扫描算法 )

文章目录 一、磁盘移臂调度算法1、磁盘移臂调度算法简介2、先来先服务算法3、最短寻道时间优先4、扫描算法5、循环扫描算法 二、最短寻道时间优先算法示例 一、磁盘移臂调度算法 1、磁盘移臂调度算法简介 磁盘 数据块读取 的 性能 主要由 寻道时间旋转延时 决定 ; 旋转延时 …

ROS 2官方文档(基于humble版本)学习笔记(四)

ROS 2官方文档(基于humble版本)学习笔记(四) 2.客户端库使用colcon构建包(package)创建工作空间(workspace)构建工作空间执行测试(tests)导入环境&#xff08…

第十四届蓝桥杯省赛C++B组G题【子串简写】题解(AC)

题目大意 给定字符串 s s s,字符 a , b a, b a,b,问字符串 s s s 中有多少个 a a a 开头 b b b 结尾的子串。 解题思路 20pts 使用二重循环枚举左端点和右端点,判断是否为 a a a 开头 b b b 结尾的字符串,是则答案加一…

Stable Diffusion:最全详细图解

Stable Diffusion,作为一种革命性的图像生成模型,自发布以来便因其卓越的生成质量和高效的计算性能而受到广泛关注。不同于以往的生成模型,Stable Diffusion在生成图像的过程中,采用了独特的扩散过程,结合深度学习技术…

2024亚太杯数学建模竞赛(B题)的全面解析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024亚太杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

【C++:类的基础认识和this指针】

C的类与C语言的struct结构体有啥区别? 默认的访问限定符不同 类的简要 关键字:class{}里面是类的主体,特别注意:{}后面的;不可以省略类中的变量叫做成员变量,类中的函数叫做成员函数类中访问有三种访问权限…