软件测试 需求

news2024/11/17 3:28:32

文章目录

  • 1. 需求
    • 1.1 什么是需求
    • 1.2 为什么要有需求
    • 1.3 测试人员眼中的需求
    • 1.4 如何深入理解需求
  • 2. 测试用例的概念
    • 2.1 什么是测试用例
    • 2.2 为什么要有测试用例
  • 3. 软件错误(BUG)的概念
  • 4. 开发模型和测试模型
    • 4.1 软件的生命周期
    • 4.2 瀑布模型(Waterfall Model)
    • 4.3 螺旋模型(Spiral Model)
    • 4.4 增量、迭代
    • 4.5 敏捷
      • 4.5.1 敏捷宣言(敏捷思想)
      • 4.5.2 scrum
    • 4.6 软件测试V模型
    • 4.7 软件测试W模型


衡量软件测试结果的依据—需求


1. 需求

1.1 什么是需求

需求:我想要做什么事情

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

软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。

1.2 为什么要有需求

需求是开发人员的一个标准
需求是测试人员编写测试用例的一个依据

1.3 测试人员眼中的需求

在这里插入图片描述

1.4 如何深入理解需求

需求评审会议:产品经理会给大家交代清楚软件诞生的背景,软件需求是什么,预期收益,未来软件发展的规划

技术评审会议:研发主要讲需求(围绕着技术来展开)

积极参加各种会议
仔细阅读相关文档(需求文档,技术文档,看 BUG 库)

深入理解需求,目的是为了写出比较完善的测试用例

2. 测试用例的概念

2.1 什么是测试用例

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
测试用例解决了两大问题:测什么,怎么测

2.2 为什么要有测试用例

测试用例是测试人员执行测试的依据
测试用例可以降低测试工作的冗余度
测试用例也是执行自动化的依据

3. 软件错误(BUG)的概念

准确的来说:当且仅当规格说明(软件需求)是存在的并且正确,程序与规格说明之间的
不匹配才是错误。
当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误

4. 开发模型和测试模型

随着软件工程学科的发展,人们对计算机软件的认识逐渐深入。
软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。
软件工程还包括很多技术性的管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步地建立起了标准或规范

4.1 软件的生命周期

软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。
如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、、设计、编码、测试、运行维护


  • 需求分析:需求要干什么,需求是不是正确的,产品经理产出需求文档
  • 计划:开发开始时间,开发结束时间,测试开始时间,测试结束时间,谁开发,谁测试
  • 设计:1. UI/UE 设计师将需求转换成图,UI视觉稿;2. 技术人员产出技术设计文稿
  • 编码:写代码,实现软件
  • 测试:执行测试用例,验收BUG,产出测试报告
  • 运行维护:上线,如果上线后,项目有 BUG,需要解决 BUG,重新上线

4.2 瀑布模型(Waterfall Model)

在这里插入图片描述

  1. 特点:
    线性的
  2. 优点:
    在每个阶段应该干什么非常的明确
  3. 缺点:
    发现问题的时机太晚,太晚就会导致有些人力,时间资源产生浪费
  4. 适用于什么样的项目:
    适用于比较小的项目,风险较低的项目

4.3 螺旋模型(Spiral Model)

在这里插入图片描述

  1. 特点:
    软件每进入到下一个阶段的时候,都会进行风险分析
  2. 优点:
    风险分析可以避免一些问题出现在线上
  3. 缺点:
    如果风险分析错误,就会将问题暴露到线上
    风险分析需要具备一定的知识
  4. 使用项目:
    适用于大型项目,项目周期持续时间较长
    适用于风险较多的项目

4.4 增量、迭代

在这里插入图片描述
增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。
因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作

迭代:先大概开发每个模块,再进行细节上的雕琢
增量:先开发其中一个模块,再开发后面的模块,直到开发完毕

增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……
而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。

4.5 敏捷

4.5.1 敏捷宣言(敏捷思想)

个体与交互 重于 过程和工具

过程:测试过程中有一些流程
工具:用什么软件辅助工作

可用的软件 重于 完备的文档

公司中有许多文档(技术文档,测试用例,测试方案…)

客户协作 重于 合同谈判
响应变化 重于 遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者

4.5.2 scrum

scrum 重要的角色:
product owner(产品经理)、scrum master(项目经理) 和 team(研发团队) 组成
team 中包含:前端开发,后端开发,测试,设计

  • product owner 负责整理 user story(用户故事,需求),定义其商业价值,对其进行排序,制定发布计划,对产品负责
    这里需求非常多,PO 需要把这些需求进行优先级排序,哪个先实现,哪个后实现
  • scrum master 负责召开各种会议,协调项目,为研发团队服务
  • 研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品

scrum 流程是什么?
在这里插入图片描述
产品负责人 负责整理user story,形成左侧的 product backlog。

发布计划会议:product owner 负责讲解 user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。

迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。

每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。

演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。

回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果

4.6 软件测试V模型

在这里插入图片描述
用户需求:产品经理将用户需求进行收集,形成软件规格说明书

需求分析与系统设计:分析需求能不能做,需求对不对

概要设计:大概设计一下

详细设计:每个模块如何实现

编码:开发

单元测试:每个 class 方法,方法

集成测试:方法和方法之间的调用

系统测试:将项目全部运行起来,黑盒测试,功能测试

验收测试:产品经理、运营验收


特点:左边是开发,右边是测试
测试被划分成许多类型

缺点:测试介入太晚

4.7 软件测试W模型

在这里插入图片描述
W模型增加了软件各开发阶段中应同步进行的验证和确认活动。

W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。

W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

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

局限性:需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,
上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑

W模型,不能拥抱变化,也为之不适用于敏捷

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

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

相关文章

[SAP] ABAP注释快捷键修改

在使用ABAP编辑器的时候,原有的添加代码注释和取消代码注释的快捷键未生效,这时我们可以考虑对注释快捷键进行修改 在事务码SE38(ABAP编辑器)屏幕右下角,点击【Options选项】图标 在【键盘】|【命令】输入栏中输入"comment"关键字…

mac上更改vscode快捷键

以移动当前行代码为例 mac上的vscode,默认移动当前行代码的快捷键是⌥↑即option↑按键 现在我想改成command↑ 步骤如下 1.打开vscode-code-首选项-键盘快捷键 2.打开快捷键列表 3.输入move line,找到要改动的这个快捷键 当前行-右键-更改键绑定&…

LTspice(14) Noise仿真

LTspice(14) Noise仿真 好久没有更新LTspice的教程了,大家想了没? 截止目前LTspice已经更新到24.0.9。界面发生了一些变化,但主要功能并不受影响,新的版本改了UI,找东西更加方便了,界面如下图1所示。 图1…

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站,以提高网站性能、功能完善、用户体验等方面的优势,解决现有教学仪器设备销售网站的问题,并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…

checking file system on C

1、win7系统 开机检查C盘,虽然可以ESC取消检查,每次操作很麻烦,且没有意思 2、注册表清空BootExecute数值数据 1)打开注册表 WinR (快捷键)输入“regedit”,回车 2)位置HKEY_LOCAL…

怎么在运行框执行脚本和软件?

1.新建一个文件夹(随便命名) 2.右击此电脑点击属性 3.点击高级系统设置 4.点击环境变量 5.选中Path,点击编辑 6.点击编辑,粘贴你刚刚文件夹的地址 7.所有窗口全部点击确定 8.你可以把常用的软件快捷方式复制到文件夹里(比如微…

QT画图功能

QT画图功能 每个QWidget都自带的功能,继承了QPainteDevice都可以使用QPainter来进行绘图。 画图需要调用paintEvent绘制事件,paintEvent事件时QWidget类自带的事件。 重写paintEvent事件。(重写事件:如果父类有某个方法&#xff…

协程库项目—协程类模块

ucontext_t结构体、非对称协程 协程类 ucontext_t结构体 头文件中定义的四个函数(getcontext(), setcontext(), makecontext(), swapcontext())和两个结构类型(mcontext_t, ucontext_t)在一个进程中实现用户级的线程切换。 其中…

MySQL进阶之(五)InnoDB数据存储结构之表空间

五、InnoDB数据存储结构之表空间 5.1 数据页加载的三种方式5.1.1 内存读取5.1.2 随机读取5.1.3 顺序读取 5.2 区5.2.1 为什么要有区?5.2.2 碎片区5.2.3 区的分类 5.3 段5.4 表空间5.4.1 独立表空间5.4.2 系统表空间 在数据页结构中提到过,页的上层结构中…

RN开发搬砖经验之-如何处理FlashList组件加载后调用scrollToIndex没有滚动指定位置

前言 如题,这里只能说是处理,起正向作用的临时方案,因为我也着实没搞懂这个BUG的具体原因,看github上有提相关的issuesFor long lists with different item types scrollToIndex does not work reliable,但看官方没有…

PLC的FC与FB模块程序的功能解析

前文讲了在西门子系列的PLC中四个程序模块的描述,从S7-1200PLC开始就有FC和FB程序块了,但在使用的时候,一些使用者还是不好理解,以至于不知道该如何选择。今天,我们就用大白话的方式给大家讲解FC与FB的功能。 1、FC与…

前端学习之列表标签

目录 有序列表 结果 无序标签 结果 数据标签 结果 有序列表 &#xff08;注&#xff1a;注释是解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </…

Image Demoireing with Learnable Bandpass Filters

一、简介 标题:Image Demoireing with Learnable Bandpass Filters(https://openaccess.thecvf.com/content_CVPR_2020/papers/Zheng_Image_Demoireing_with_Learnable_Bandpass_Filters_CVPR_2020_paper.pdf) 期刊:CVPR 时间:2020 作者:Bolun Zheng, Shanxin Yuan, …

Google浏览器122.下载驱动

打开网址&#xff1a;Chrome for Testing availability (googlechromelabs.github.io) 选择stable 选择对应的驱动就行

前后端交互理解 简易表白墙(servlet)

前后端交互理解 简易表白墙&#xff08;servlet&#xff09; 文章目录 前后端交互理解 简易表白墙&#xff08;servlet&#xff09;后端核心内容前后端交互接口约定后端代码展示 上期介绍过 Servlet API &#xff0c;本篇文章目的是借助 servlet 做出一个完整的网站。在一个网站…

Spring Boot 面试题及答案整理,最新面试题

Spring Boot中的自动配置是如何工作的&#xff1f; Spring Boot的自动配置是其核心特性之一&#xff0c;它通过以下方式工作&#xff1a; 1、EnableAutoConfiguration注解&#xff1a; 这个注解告诉Spring Boot开始查找添加了Configuration注解的类&#xff0c;并自动配置它们…

怎么看待Groq

用眼睛看。 就是字面上的意思用眼睛看。 我属于第一波玩到的,先给大家一个直观的印象,Groq到底有多快。 目前Groq只能选Llama的70b,和Mixtral的MoE,那我选7*8的这个MoE模型来实验。 这么好些字大概花了不到1秒,流式响应,其实是不是流式已经没那么重要了 ,然后看每秒Toke…

第二十二周周报

论文研读&#xff1a;Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image 粗读10篇文献。 通过图2 我可以知道这个论文大概实现的这个姿态估计效果的方法&#xff0c;首先是把图片输入到DetectNet网络&#xff0c;该网络…

也就老炮知道:UI设计师和前端,以前叫美工和切片。

过去&#xff0c;UI设计师常常被称为美工&#xff0c;而前端开发人员被称为切片工。这是因为在过去的网页设计中&#xff0c;UI设计师主要负责设计网页的外观和用户界面&#xff0c;包括颜色、布局、图标等&#xff0c;类似于传统的美工工作。而前端开发人员则负责将UI设计师提…

搭建nacos集群,并通过nginx实现负载均衡

nacos、eureka、consul、zookeeper等都是常用的微服务注册中心&#xff0c;这篇文章详细介绍一下在Ubuntu操作系统上搭建一个nacos的集群&#xff0c;以及通过nginx的反向代理功能实现nacos的负载均衡。 目录 一、安装nacos 1、安装nacos 2、修改nacos配置文件 3、创建naco…