测试开发概念篇

2023-11-03

目录

前言

几个常见的名词 

需求

什么是BUG

测试用例

软件生命周期

开发模型

瀑布模型 

螺旋模型

增量和迭代模型

敏捷模型 


前言

什么是软件测试

  • 软件测试就是验证产品特性是否满足用户需求
  • 开发软件是为了盈利,必须满足用户才会盈利

测试和调试的区别

  • 目的  测试是为了找出软件中的错误,调试是找出错误并解决错误
  • 人员  测试有测试人员和开发人员     调试只有开发人员(单元测试,集成测试)
  • 阶段  测试是贯穿整个软件的生命周期  调试是在编码阶段

优秀的测试人员需要的能力

  • 快速学习能力
  • 沟通能力
  • 文字能力
  • 开发能力
  • 掌握自动化技术   (项目测试+技术事务)
  • 编写优秀的测试用例
  • 探测性思维
  • 责任感和抗压能力
  • 对测试感兴趣

几个常见的名词 

需求

  • 满足用户的期望或者正式文档(合同,标志,规范)所具有的条件和权能,包含用户的需求和软件需求
  • 用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成 的任务。该需求一般比较简略。
  • 软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。
  • 大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求
  •  需求是测试人员开展软件测试工作的依据,因为测试用例依赖于需求

需求的重要性 

  1. 从软件功能需求出发,无遗漏的识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率
  2. 对于识别出的每个测试需求点,需要采用具体的设计测试用例的方法来进行测试用例的设计

如何才可以深入理解被测试软件的需求

  1. 在需求分析和设计阶段就开始介入,因为这个阶段是理解和掌握软件的原始业务需求的最好 

什么是BUG

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

测试用例

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

实例

为什么要设计测试用例 

围绕着软件需求去设计测试用例,防止重复测试,原则:防止测试用例用过即弃

软件生命周期

  1. 需求分析:分析用户的需求是否合理,转换为软件需求,由产品经理完成(市场分析,技术分析..)->软件需求文档
  2. 计划:制定需求执行计划
  3. 设计:将需求细化成一个个子任务,进行技术设计(设计那些接口,采用那些技术)——>设计文档
  4. 编码:开发人员按照需求文档以及设计文档来进行编码
  5. 测试:测试人员参考调用用例来执行测试
  6. 运行维护:项目上线后对产品进行先上的维护 修复性维护,完善性维护 预防性维护

开发模型

瀑布模型 

  • 瀑布模型最主要的特点就是线性开发,就是一定要按照这些步骤执行
  • 缺陷:不能去应对需求的变化 测试被后置 风险往往在后期才显现,因而失去了及早修正的时间 必须要有足够的时间预留给测试活动,否则测试不充分,从而直接把缺陷留给用户  可运行的产品很迟才能被看见
  • 优点 强调开发的阶段性; 强调早期计划及需求调查;
  • 适用场景 需求固定的小项目 
  • 但是它是其他模型的基本框架

螺旋模型

  • 其基础还是瀑布模型,就是在瀑布模型每个阶段到下一个阶段添加了风险分析
  • 逻辑模型引入了全流程的风险分析,每次分析完之后都会生成一个新的原型
  • 适合那些规模庞大,复杂度高,风险大的场景 
  • 优点: 强调严格的全过程风险管理。 强调各开发阶段的质量。 提供机会检讨项目是否有价值继续下 去。
  • 缺点: 引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。
  • 风险分析能力与产品遗留风险成反比

增量和迭代模型

明确增量和迭代的区别

敏捷模型 

敏捷宣言

 scrum

  •  三角色,五个会议
  • 产品经理:收集用户的需求。编写需求文档,对产品负责的人
  • 项目经理:负责召开各种会议,协调项目,为研发团队服务
  • 研发团队:开发人员,测试人员,ui设计人员等

五个会议

 例子

测试模型 

软件测试v模型

​​​​​​​

  • 每个开发阶段对应测试阶段
  • 概要设计整体构建,框架
  • 详细设计设计模块与模块之间的详细设计
  • 集成测试和单元测试通常由开发人员来执行
  • 特点:明确标注了测试的类型 明确标注了测试阶段和开发阶段之间的对应关系
  • 缺点:测试任然是在开发之后才执行,测试后置

软件测试W模型

  • 测试从需求阶段就开始介入了
  • 缺点:1上一个阶段完成了下一个阶段才能完成 2开发模型和测试模型也保持着一种前后的线性关系
  • 优点:有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度
    和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。
  • 重文档,重过程,不支持其敏捷模式 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试开发概念篇 的相关文章

  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • Grizzly 和 Servlet 容器上下文

    我试图在我编写的 在 Grizzly 上运行的 Servlet 中获取一些注入的上下文 例如 Session 或 HttpServletRequest 但我所做的似乎都不起作用 整个过程似乎过早地停止了 并出现以下错误 SEVERE Mis
  • 在 Java 中跨平台地播种随机生成器,无需时间

    我几乎同时在两个线程上初始化两个随机数生成器 并且我希望这两个生成器的行为完全不同 我会打电话Random nextInt 7 经常一个接一个地在两台发电机上运行 使用System currentTimeMillis 这不是一个好主意 因为
  • Java 多头中的斐波那契计算显示负值

    我的斐波那契计算器工作正常 但当数字增加时 结果会出现负值 就像它是一个Integer超过其最大值 它正在使用缓存java util Map
  • Java 的 System.arraycopy() 对于小数组有效吗?

    是Java的System arraycopy 对于小数组来说是高效的 或者它是本机方法这一事实是否使其可能比简单的循环和函数调用效率低得多 本机方法是否会因跨越某种 Java 系统桥梁而产生额外的性能开销 稍微扩展一下 Sid 所写的内容
  • 如何限制用户键入时 JTextPane 中的字符数 (Java)

    我需要不允许在输入 X 后输入任何字符 我需要在输入 X 个字符后发出蜂鸣声 我知道如何在用户按 Enter 键后执行此操作 但我需要在用户按 Enter 键之前执行此操作 我从 Oracle 站点找到的方法是将 DocumentSizeF
  • 为什么Java HashMap的最大容量是1<<30而不是1<<31?

    Why is the maximum capacity of a Java HashMap 1 lt lt 30 and not 1 lt lt 31 even though the max value of an int is 231 1
  • JPA 为每个项目选择最新实例

    假设我有一个会议实体 每次会议都有一个与会者和一个会议日期 在我的会议表中 我可能为每个与会者举行多个会议 每个会议都有不同的日期 我需要一个 JPA 查询 该查询将为所有与会者仅选择最新的会议 例如 如果我的桌子看起来像这样 Meetin
  • Java中通过FTP创建文件夹层次结构

    Java 是否有现成的功能可以在远程 FTP 服务器上创建文件夹层次结构 Apache Commons 确实提供了 FTP 客户端 但我找不到创建目录层次结构的方法 它确实允许创建单个目录 makeDirectory 但创建整个路径似乎并不
  • 创建一个 int 类型的随机数组。爪哇

    我需要创建一个随机的 int 数组 并按我自己的类对其进行排序 这是我制作数组的地方 public class MyProgram9 public static void main String args int list new int
  • Restful WS 中的 WSDL 等价物是什么?如果没有,消费者如何生成所需的客户端类?

    比如说 我在java中有生产者 在 net中有消费者 生产者有一个方法 需要 员工作为方法参数并在数据库中创建员工 对于基于 SOAP 的 ws dot net 客户端将调用 WSDL 并创建存根 包括 dot net 中的员工数据表示 现
  • jsf 中的类型未找到属性

    我正在尝试调用 jsf 中使用 primefaces 的属性 但我有错误 500 在托管bean PersonelBean 类型上找不到 我正在使用 hibernate jsf 和 spring PersonelBean java Mana
  • 这个finally子句包含close()调用的原因是什么

    我正在学习在线java课程 使用 Java 编程简介 http math hws edu javanotes index html 在 I O 章节中 引入了以下代码 顺便说一下 在本程序的末尾 您将发现我们第一个有用的 try 语句中的
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • 在同一台计算机上设置 JBoss 的多个实例

    我在 JBoss 社区中找到了下一页 http www jboss org community wiki ConfigurePorts http www jboss org community wiki ConfigurePorts 有下一
  • Google App Engine数据存储区字符串编码问题

    你好 我正在使用 Google App Engine 进行一个项目 并且需要存储一些字符串 我正在使用 Java 和JDOHelper getPersistenceManagerFactory transactions optional 在
  • 如何检测java控制台中而不是GUI中的箭头键? [复制]

    这个问题在这里已经有答案了 我正在编写一个应用程序 我需要检测其中的箭头键 C 有getch 函数 我们想要获取输入 然后添加对 ASCII 值的检查 我们如何检测输入箭头键 谢谢 我写了一个Java类原始控制台输入 http www so
  • JTable中动态加载大量数据

    这是我的问题 我目前有一个 JTable 其中包含 5 000 到超过 200 000 行 你知道我要说什么了 数据已经加载到内存中了 这不是问题 但是如何 我可以创建一个高效的 JTable 以便它只加载以下行 是可见的 并且任何事件仅作
  • Java 中的可迭代求和?

    有没有一个库可以做到这一点 public class Iterables private Iterables public static
  • JBoss 5 截断 base64 cookie 字符串的尾部 =

    从 JBoss 4 升级到 JBoss 5 后 我注意到最烦人的回归 它截断 base64 cookie 值的尾部等号 我花了很长时间才明白问题不是我的代码而是 JBoss 的 我用 google 搜索了一下 发现这是一个已知的问题issu

随机推荐

  • 了解 ceil 和 floor 函数:C++ 中的取整函数

    在许多实际应用中 我们需要对浮点数进行取整操作 C 中提供了两个非常有用的函数 即 ceil 和 floor 用于进行向上取整和向下取整 这两个函数是 C 标准库 头文件中的函数 下面我们分别来了解一下它们的具体用法和示例 ceil 函数
  • ReactiveUI 入门

    ReactiveUI入门 ReactiveUI使您能够使用MVVM模式构建反应式 可测试和可组合的UI代码 请参阅我们的ReactiveUI文档手册 我们还有一个完整的跨平台演示应用程序 入门 要开始使用 请访问我们的 安装 页面 在引人注
  • CG v-光照着色探索:Educoder

    CG v 光照着色探索 Educoder 光照着色是计算机图形学中一个关键的概念 它可以使得渲染出的场景更加逼真和具有立体感 在本文中 我们将深入探讨光照着色的原理和实现 并使用源代码来演示 首先 让我们来了解一下什么是光照着色 在计算机图
  • 隐马尔可夫模型(HMM)攻略

    隐马尔可夫模型 Hidden Markov Model HMM 最初由 L E Baum 和其它一些学者发表在一系列的统计学论文中 随后在语言识别 自然语言处理以及生物信息等领域体现了很大的价值 平时 经常能接触到涉及 HMM 的相关文章
  • [Spring Boot]03 Maven常用的打包(packaging)类型

    目录 什么是pom xml Maven常用的打包类型 jar war pom 什么是pom xml POM是项目对象模型 Project Object Model 的简称 它是Maven项目中的一个XML文件 pom xml 此文件用于管理
  • 常见编译Warning的解决方法

    Warning 1 always inline redefined enabled by default 意思是 always inline 重复定义了 位置分别是gcc arm none eabi 4 8 4 include fixed
  • java实体类根据某个或多个属性排序

    public class ListUtils 对list的元素按照多个属性名称排序 list元素的属性可以是数字 byte short int long float double等 支持正数 负数 0 char String java ut
  • cv2.resize

    import cv2 img cv2 imread home img python png cv2 IMREAD UNCHANGED print Original Dimensions img shape scale percent 60
  • shell脚本学习-04

    65 IFS 文本分隔符 默认的文本分隔符是 但是可以手动设置为其他的 如 cities Delhi chennai bangaluru kolkata old ifs IFS IFS for place in cities do echo
  • Chrome 浏览器的 PDF 插件使用了 Foxit PDF SDK

    Chrome 浏览器的 PDF 插件使用了 Foxit PDF SDK 2010年8月22日 Chrome的内置PDF插件实际上有使用Foxit的PDF SDK 如果你查看这个网页会找到Chromium的一些PDF功能多次用到Foxit的S
  • 【C++】C++的四种类型转换

    文章目录 一 隐式类型转换和显示类型转换 二 C 的四种类型转换 2 1 static cast 相似转化 2 2 reinterpret cast 不同类型转化 2 3 const cast 去除const属性 2 4 dynamic c
  • 利用枚举类型变量求从5种颜色球中取3个不同颜色球的取法

    利用枚举类型变量求从5种颜色球中取3个不同颜色球的取法 C程序设计 第二版 谭浩强 著 11 9 例11 3 口袋里有红 黄 蓝 白 黑5种颜色的若干个 每次从口袋中取出3个球 问得到3种不同色的球的可能取法 输出每种排列的情况 程序 在V
  • CASAIM与南京航空航天大学在自动化叶片曲面分析系统开展合作,推动航空航天发动机零部件自动化3D检测进程

    近期 CASAIM与南京航空航天大学在自动化叶片曲面分析系统展开深入合作 充分发挥双方在航空航天和智能检测领域优势 共同推动航空航天发动机零部件自动化3D检测进程 南京航空航天大学创建于1952年10月 是新中国自己创办的第一批航空高等院校
  • 【python】python求解矩阵的转置(详细讲解)

    博 主 米码收割机 技 能 C Python语言 公众号 测试开发自动化 获取源码 商业合作 荣 誉 阿里云博客专家博主 51CTO技术博主 专 注 专注主流机器人 人工智能等相关领域的开发 测试技术 python求解矩阵的转置 详细讲解
  • pytorch:交换tensor的维度

    在pytorch中 tensor有两个成员函数可以实现维度交换 分别时transpose 和permute transpose 该函数可以交换tensor的任意两个维度 但是该函数一次只有两个参数 即一次只能交换两个维度 import to
  • Solr 检索结果集List<SolrDocument> 转换为指定业务对象总结

    前提说明 从solr结果集中取数据 取到了结果集 但是结果集是一个map 而我想要得到的是一个对象 怎么处理呢 我总计如下三种方法 第一种 solrDocument中提供了一个获取每个field对应值的方法 使用此方法获取所有的field对
  • SWOT、PDCA、SMART……这些对你绝对有用!

    企业的成功一定是有办法的有技巧的 君子性非异也 善假于物也 SWOT分析法帮助企业从四个维度进行综合分析 正确识别自己在市场中所处的地位 扬长避短 聚焦优势资源 在500强工作的员工 SWOT分析是必须具备的技能 特别是做市场的员工 全面的
  • [orin] nvidia orin 上安装 pytorch 和 torchvision 实操

    请看这个博主写的链接 写的非常好 目前我已经安装成功了 不同的是我是在Anaconda虚拟环境中安装的 原博客链接 https blog csdn net beautifulback article details 125717717 这次
  • TEASER-plusplus 安装

    https github com MIT SPARK TEASER plusplus 下载https codeload github com MIT SPARK TEASER plusplus zip v2 0 下载GoogleTest太慢
  • 测试开发概念篇

    目录 前言 几个常见的名词 需求 什么是BUG 测试用例 软件生命周期 开发模型 瀑布模型 螺旋模型 增量和迭代模型 敏捷模型 前言 什么是软件测试 软件测试就是验证产品特性是否满足用户需求 开发软件是为了盈利 必须满足用户才会盈利 测试和