软件测试 需求

文章目录

  • 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.mzph.cn/news/734984.shtml

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

相关文章

【深度学习笔记】6_10 双向循环神经网络bi-rnn

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 6.10 双向循环神经网络 之前介绍的循环神经网络模型都是假设当前时间步是由前面的较早时间步的序列决定的,因此它们都将信…

STM32---IIC通信协议(含源码,小白进)

写在前面:在前面的学习过程中,我们学习了串口通信的USART(通用同步异步收发器),本节我们将继续学习一种串行通信协议——IIC通信协议。之前我使用51单片机也分享过相关的IIC通信的知识,其实本质的知识是相通…

去哪里找视频素材?这几个视频素材资源网您看看

朋友们,是不是在抖音短视频的创作过程中感觉自己的视频素材库就像饭后的草莓派,美好但不够充实?别担心,我这就给你们送上几个超级赞的素材网站,保证让你的创作素材库瞬间丰富起来 1,蛙学府 这个网站简直就…

Delphi 的Read 与Readln 的区别

结合运行窗口,你输入1 2 3 4 这是一行ReadLn在读入时把这四个数当成一行,read(a,b)只读入了前两个数:1 2,就准备读下一行了,下一行输入3,再下一行输入2,所以输出1232; Read是逐个读…

Python列表及其操作详解,从此不再迷茫!

在前面的文章中,我们详细讲了六大数据类型中的数字类型,字符串类型。相信大家都能够熟练的掌握了。那么今天我们来讲解列表(list)。 这是一种常用且重要的数据类型,List可以用来存储一系列的元素,对于后期…

怎么看待Groq

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

MongoDB官网查看 MongoClient 驱动API 文档的详细步骤

目录 MongoDB官网查看 MongoClient 驱动API 文档的详细步骤1、先进入[mongodb的官网](https://www.mongodb.com/zh-cn),点击【服务器文档】2、点击这个 [MongoDB Documentation](https://www.mongodb.com/docs/) 文档。3、然后点开【Java】的驱动文档4、先查看同步的…

【数据结构】详解时间复杂度和空间复杂度的计算

一、时间复杂度(执行的次数) 1.1时间复杂度的概念 1.2时间复杂度的表示方法 1.3算法复杂度的几种情况 1.4简单时间复杂度的计算 例一 例二 例三 1.5复杂时间复杂度的计算 例一:未优化冒泡排序时间复杂度 例二:经过优化…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

2024年【P气瓶充装】考试报名及P气瓶充装复审考试

题库来源:安全生产模拟考试一点通公众号小程序 P气瓶充装考试报名是安全生产模拟考试一点通总题库中生成的一套P气瓶充装复审考试,安全生产模拟考试一点通上P气瓶充装作业手机同步练习。2024年【P气瓶充装】考试报名及P气瓶充装复审考试 1、【多选题】《…

WIN32部分知识介绍

🌈前言:此篇博客是为下一篇的《贪吃蛇》的做的前戏工作,这篇会讲到贪吃蛇所用到的一些工具以及函数。 首先在讲WIN32的内容时我们想了解一下他的基本概念: Windows 这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外…

vscode插件-TONGYILingma

通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/API 的使用场景调优,为开发者带来高…

react-beautiful-dnd组件报Unable to find draggable with id

一、问题现象 项目中使用react-beautiful-dnd组件实现可拖拽,但拖了1次后可能会出现拖拽异常(元素拖不动),打开控制台会发现有报错 二、解决方案 给Draggable组件和其下方的div添加了key就正常了,以下是我自己简单写的一个dem…

磁盘无法访问?别慌,这里有解决之道!

电脑中,那块储存着重要文件与数据的磁盘,突然之间无法访问,是不是让你感到惊慌失措?面对这样的突发状况,很多人可能会感到手足无措。但别担心,本文将为你解析磁盘无法访问的原因,并提供实用的数…

期刊《Computers Security》简介

官网截图 方式 同时支持订阅和OA 范围 latest issue Volume 140 In progress (May 2024) This issue is in progress but contains articles that are final and fully citable. 本期内没有image encryption相关论文。 Volume 139 April 2024 本期内没有image encryptio…

论文学习——一种新的具有分层响应系统的动态多目标优化算法

论文题目:A Novel Dynamic Multiobjective Optimization Algorithm With Hierarchical Response System 一种新的具有分层响应系统的动态多目标优化算法(Han Li , Zidong Wang , Fellow, IEEE, Chengbo Lan, Peishu Wu , and Nianyin Zeng , Member, IE…

基于Java的在线课程教学系统(Vue.js+SpringBoot)

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

阿里云服务器多少钱1月?2024年最新版报价

阿里云服务器一个月多少钱?最便宜5元1个月。阿里云轻量应用服务器2核2G3M配置61元一年,折合5元一个月,2核4G服务器30元3个月,2核2G3M带宽服务器99元12个月,轻量应用服务器2核4G4M带宽165元12个月,4核16G服务…

【物理排序】(最小交换环 | 大体量表排序 | 泛型算法)

设想一下,如果待排元素不是一个简单的整数,而是一个庞大的结构体,移动元素的时间不能忽略不计。 元素需要频繁互换,那么移动这些元素的时间将会非常长久,效率很低 typedef very_large_item {int comparable;Tp very_…