当前位置: 首页 > news >正文

初识软件测试

目录

一、需求

1.1 用户需求

1.2 软件需求

二、开发模型

2.1 软件的生命周期

2.2 常见的开发模型

1)瀑布模型

2)螺旋模型

3)增量模型、迭代模型

4)敏捷模型

三、测试模型

1)V模型

2)W模型


一、需求

在软件测试开发中,我们会接触到两种需求。一种是用户需求,另一种是软件需求。

1.1 用户需求

用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般计较简略,通常是一句话。

用户需求是简略且五花八门的,往往只是一句话。比如:实现一个声控灯,实现一个软件的xxx功能等。

1.2 软件需求

软件需求或者叫功能需求,改需求会详细描述开发人员必须实现的软件功能。软件需求是测试人员进行测试工作的基本依据。

用户需求和软件需求有什么区别呢?举个例子:

用户需求:

甲方老板说:我要一个邮箱注册功能。这是一个用户需求,很简短一句话。

软件需求:

需要我们和甲方老板反复沟通了解更加详细具体的需求,来制定解决方案。最终理解清楚用户需求之后,再去研究功能改如何实现、能否实现以及实现的具体步骤,这是软件需求。


二、开发模型

随着软件工程科学的发展,人们对计算机软件的认识逐渐深入。软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件的生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。

模型

2.1 软件的生命周期

认识具体的开发模型之前先了解一下软件的生命周期。

生命周期指的是从生命的开始到生命结束的⼀段时间。以人为例,人类的生命周期是从⽣命孕育的开始,中间会经历幼年,童年,少年,青年,老年,最终直至死亡。

软件的生命周期也是如此,需求的开始时软件生命的起点,中间会经历需求的计划、设计,程序开发,程序测试等阶段,直至软件不再进行维护便到了生命的终点。

因此我们就得到了软件的生命周期: 需求分析->计划->设计->编码->测试->运行维护

对于软件的生命周期,每个阶段都在做什么呢?

阶段具体内容产出
需求分析分析用户需求是否合理,分别从市场、技术等方面进行分析该阶段会输出需求等文档
计划
对成立的需求执行需求计划,多长时间内完成该需求,每段时间具体完成哪些功能。
该阶段会输出计划等文档
设计将需求细化成一个个任务(如何进行架构设计、设计哪些接口、采用什么技术)该阶段会输出技术等文档
编码开发人员参考上面产出文档进行代码的编写会输出代码文件等文档
测试测试人员介入到软件测试中,依靠测试用例对软件进行测试
测试用例、测试设计与计
划、测试报告等文档
运行维护
项目测试结束之后,项目需要进行上线,并对产品进行线上的维护。线上的维护主要分为三个方面。分别为修复性维护、完善性维护和预防性维护。
修复性维护:对项目中未发现的问题进行修复。
完善性维护:对功能进行完善。
预防性维护:居安思危,为了避免产品在线上出现⼀ 些其他不可预料的问题,进行⼀些防护的手段。

2.2 常见的开发模型

1)瀑布模型

瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。该模型的每个阶段仅执行一次,属于线性顺序的软件开发方法。

瀑布模型的特点:

  • 强调开发的阶段性
  • 线性结构,每个阶段只执行一次
  • 是其他模型的基础框架

瀑布模型的缺点:

  • 测试后置:
    1.前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会。
    2.必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户
  • 周期太长,产品很迟才能被看到和使用,可能会导致需求或功能过时

瀑布模型的适用场景:需求固定的小项目

2)螺旋模型

在软件开发初期需求尚不明确时,常采用渐进式开发模型。螺旋模型是渐进式开发模型的典型代表之一。

该模式尤其适用于规模庞大、高度复杂且高风险的项目。迭代式开发模型为软件测试带来了新的要求——不允许存在独立的测试周期或阶段。测试必须与开发迭代同步进行。因此,回归测试的重要性不言而喻。

螺旋模型的优点:

  • 强调严格的全过程风险管理
  • 强调各开发阶段的质量
  • 增加风险分析和原型

螺旋模型的缺点:

  • 项目中存在的风险性与风险管理人员的技能水平有直接关系
  • 需求人员、资金、时间的增加和投入、可能会导致项目的成本太高

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

3)增量模型、迭代模型

增量开发

增量式开发模型鼓励用户反馈,并推动开发团队在每次迭代中以周期性、可预测的方式推进产品。因此,在这种开发方法中,每次迭代都可能涉及需求变更和生成新的可执行软件版本。这也意味着测试必须频繁进行,要求测试人员与开发人员更紧密地协作。 

与此类似的有⼀个迭代开发,增量开发和迭代开发往往容易被人混淆,但是其实两者是有区别的。增量是逐块建造的概念,迭代是反复求精的概念。

适用场景:大型项目、需求不明确 

4)敏捷模型

敏捷模型具有四个特点:轻文档,轻流程,重目标,重产出。敏捷开发模型有很多方式,其中scrum是比较流行的一种。Scrum又称为迭代式增量开发模型。

三、测试模型

测试模型中有两个非常重要且具有标志性的测试模型:V模型和W模型。

1)V模型

V模型的优点:

  • 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试的质量和效率。
  • V模型指出:
    1)单元和集成测试应检测程序的执行是否满足软件设计的要求
    2)系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标
    3)验收测试确定软件的实现是否满足用户需求或合同的要求

V模型的缺点:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就介入测试。缺点跟瀑布模型差不多。

2)W模型

W模型将V模型中测试后置的缺点解决了。

W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。W模型的特点是:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步的。

W模型的优点:

  • W模型有利于尽早地全面发现问题。例如需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时对需求的测试也有利于及时了解项目难度和测试风险,尽早制定应对措施,显著减少总体测试时间,加快项目进度。

W模型的缺点:

  • 需求、设计、编码等活动被视为串行的;
  • 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可以开始下一级段工作
  • 重流程,无法支持敏捷开发模型。
http://www.dtcms.com/a/289035.html

相关文章:

  • Redis 详解:从入门到进阶
  • Hiredis 构建 Redis 命令实战指南
  • 基于pi/4-QPSK扩频解扩和gardner环定时同步的通信系统matlab性能仿真
  • 绝对定位 vs 浮动:CSS布局核心差异解析
  • Spring 源码阅读(二) 核心概念解析 ApplicationContext、类型转化
  • 企业安全防护:堡垒机技术解析
  • 数据结构与算法汇总
  • spring-cloud使用
  • 再谈文件-ext2文件系统
  • NISP-PTE基础实操——XSS
  • PPT科研画图插件
  • 力扣-55.跳跃游戏
  • 【C语言】内存函数介绍(上)
  • axios二次封装-单个、特定的实例的拦截器、所有实例的拦截器。
  • 【机器学习深度学习】量化与选择小模型的区别:如何理解两者的优势与局限?
  • 嵌入式硬件篇---核心板制作
  • nginx定期清理日志
  • 【面向对象】C++类实现计数器:从理论到实践的编程之旅
  • RK3588 编译 Android 13 镜像方法
  • 基于有监督学习的主动攻击检测系统
  • Softhub软件下载站实战开发(十九):软件信息展示
  • MCP与智能问数技术全面指南:从协议设计到智能化数据查询
  • Flink高频考点:Checkpoint与Savepoint的高可用实战指南
  • 购物--贪心例题
  • LLM指纹底层技术——噪声鲁棒性机制
  • 英伟达:拓展LLM训练过程
  • Day1||Vue指令学习
  • 小红书 MCP 服务器
  • MLA:KV Cache 的“低秩跃迁”
  • Android 项目中如何在执行 assemble 或 Run 前自动执行 clean 操作?