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

第二集 测试概念

文章目录

  • 需求的概念
    • 用户需求
    • 软件需求
  • 开发模型
    • 实际上的模型
    • 软件的生命周期
  • 常见的开发模型
    • 瀑布模型
      • 优缺点:
    • 螺旋模型
    • 增量模型、迭代模型
      • 区别
    • 敏捷模型
      • scrum
    • 测试模型
      • V模型
      • W模型

需求的概念

需求分两部分:一部分是用户需求,另一部分则是软件需求。

用户需求

理解为甲方所提出的需求,或者最终使用者的要求。

软件需求

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

开发模型

实际上的模型

模型的工作流程:

需求收集——>需求定义——>产品设计——>编码——>测试——>发布
需要如上几步

软件的生命周期

指的是软件从需求开始,经历需求的计划、设计、程序的开发、程序的测试等阶段,直到软件不在进行维护便到了生命的重点。

常见的开发模型

瀑布模型

在这里插入图片描述
瀑布模型在软件工程中有着重要地位 ,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性的开发模式。

优缺点:

可以运行的产品很迟才能被看见,会给项目带来很大的风险,尤其是集成的风险。因为如果在需求引入的一个缺陷要到测试阶段才可能会被发现,甚至更后的阶段。通常会导致前面阶段的工作大面积返工。
所以现在很多企业在其瀑布模型的线性思想上面,做出了修改,列如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。
正在瀑布模型中,测试往往处于软件实现后,这意味着必须在代码完成后又足够的时间预留给测试的活动,否则会导致测试不充分,把缺陷直接遗留给用户。

螺旋模型

在这里插入图片描述

一般在开发初期对需求不是很明确时,采用的则是渐进式的开发模式。

适用于那些规模庞大、复杂程度高、风险大的项目尤其适合。要求就是不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。

增量模型、迭代模型

在这里插入图片描述
增量开发能显著降低 项目风险,结合软件持续构建机制,构成了当今软件工程最佳实践之一。

区别

比如画一幅画
增量模型:

先画人的头部(对其打草、勾线、上色后完整的画面),在画身体,在画手脚。

迭代模型:

先打草整体、在勾线整形、最后上色整体。

敏捷模型

敏捷模型是一种以迭代、增量和协作为核心的软件开发方法,强调快速响应变化、持续交付价值和紧密的团队协作。与传统的瀑布模型不同,敏捷模型通过短周期的迭代逐步完善产品,更适应需求频繁变动的项目。
敏捷模型中有⼀个⾮常重要的《敏捷宣⾔》,宣⾔内容:

个体与交互重于过程和⼯具
可⽤的软件重于完备的⽂档
客⼾协作重于合同谈判
响应变化重于遵循计划

四个特点:轻⽂档,轻流程,重⽬标,重产出。

scrum

scrum是敏捷模型中的一种,又叫做迭代式增量软件开发模型。

测试模型

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

V模型

在这里插入图片描述

优点:
• 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间
各阶段的对应关系,有效提升测试的质量和效率。
• V模型指出:
◦ 单元和集成测试应检测程序的执⾏是否满⾜软件设计的要求;
◦ 系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
◦ 验收测试确定软件的实现是否满⾜⽤⼾需要或合同的要求
缺点:仅仅把测试作为在编码之后的⼀个阶段,未在需求阶段就介⼊测试。缺点同瀑布模型。

W模型

在这里插入图片描述

特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进⾏的
优点:
• 有利于尽早地全⾯的发现问题。例如,需求分析完成后,测试⼈员就应该参与到对需求的验证和确
认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项⽬难度和测试⻛险,
及早制定应对措施,显著减少总体测试时间,加快项⽬进度。
缺点:
• 需求、设计、编码等活动被视为串⾏的;
• 测试和开发活动也保持着⼀种线性的前后关系,上⼀阶段完全结束,才可正式开始下⼀个阶段⼯
作。
• 重流程,⽆法⽀持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理
⾯临着困惑。

http://www.dtcms.com/a/320289.html

相关文章:

  • 8月7号打卡
  • python---函数的形参与实参
  • C++的入门学习
  • 拷贝数组练习
  • 瞬态吸收光谱仪的基本原理
  • Ubuntu 系统 Docker 启动失败(iptables/nf\_tables)
  • 【CodeButty + 自制MCP】给AI装上翅膀,快速绘制思维导图
  • 驱动-设备树插件注册子系统
  • 【机器学习深度学习】大模型应用落地:微调与RAG的角色与实践
  • 为什么需要日志收集系统
  • 人工智能——自动微分
  • 大数据中需要知道的监控页面端口号都有哪些
  • C语言学习笔记——文件
  • 基于Python的实习僧招聘数据采集与可视化分析,使用matplotlib进行可视化
  • iptables封堵实验
  • Java——详解形参实参方法的重载
  • 《C语言》函数练习题--3
  • (易视宝)易视TV is-E4-G-全志A20芯片-安卓4-烧写卡刷工具及教程
  • Docker国内可用镜像列表(长期免费)
  • 三重移相的TPS双有源桥(DAB)变换器【simulink仿真模型】
  • python见缝插针小游戏源码。(可复制)
  • 【tips】css模仿矢量图透明背景
  • 目前常用于视频会议的视频编码上行/下行带宽对比
  • mysql_mcp_server_pro源码部署及启动报错新手指南:让智能体长出手来直接获取到最底层的数据
  • AI应用案例全景分析:从理论到实践
  • dmctlcvt工具介绍数据文件路径变化后如何拉起数据库
  • 基于 FreeMarker 实现 SQL 模板动态生成的完整指南
  • 移动端项目框架推荐
  • Effective C++ 条款27: 尽量用const、enum、inline替换 #define
  • restTemplate禁用url编码