测试概念以及测试bug

关于测试的概念

什么是需求?

需求分为用户需求和软件需求。

软件需求可以作为开发和测试工作的依据,而用户需求不一定是合理的,这里的不合理有很多的角度:技术角度上,市场需求上,投入成本和收益比噔噔。

关于开发模型

首先软件开发生命周期大致分为以下:
需求分析-计划-设计-编码-测试-运行维护

 

常见开发模型 

瀑布模型:
 如上图可以看到,整个开发流程都是串行化的,也就是线性的开发流程。

优缺点:


优点:

1.强调开发的周期性

2.因为是线性结构,所以每个阶段只执行一次。

3.是其它模型的基础框架。

缺点:
1.测试后置:
a.

前⾯各阶段遗留的⻛险推迟到测试阶段才被发现,导致项⽬⼤⾯积
返⼯,失去了及早修复的机会
b.
必须留有⾜够的时间给测试活动,否则导致测试不充分,将缺陷直
接暴露给⽤⼾(产品质量差)
2.周期太⻓,产品很迟才能被看到和使⽤,可能会导致需求/功能过时。

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

螺旋模型

⼀般在软件开发初期阶段需求不是很明确时,采⽤渐进式的开发模式。螺旋模型是渐进式开发模型的代表之⼀。

 

优缺点:
 

优点/特点:

强调各开发阶段的质量。

引入了原型和风险分析。


缺点:
需要耗费额外的时间和人力成本。

并且是否遗留风险跟风险分析人才的技能水平直接挂钩。

适用场景:需求复杂,规模大,风险高 的项目

增量模型
其实就是将一个大的需求分割成多个小的需求,每个功能独立开发上线。

 迭代模型

迭代模型会先上线一个基础版本,但是基础版本的所有功能会比较简陋,后期再迭代优化上线。

关于增量模型和迭代模型,一般的企业很少会独立使用某一个模型,而是两个模型一起使用。

一起使用这两个模型的场景:大型,需求不明确的项目。

敏捷模型(重要)

在早期,迭代瀑布模型⾮常流⾏来完成⼀个项⽬。但是现在开发⼈员在使⽤它开发软件时⾯临着各种各样的问题。主要困难包括在项⽬开发期间处理来⾃客⼾的变更请求以及合并这些变更所需的⾼成本和时间。为了克服瀑布模型的这些缺点,在1990年代中期提出了敏捷软件开发模型。

 

在敏捷模型中有一个重要的宣言, 《敏捷宣言》:

个体与交互重于过程和⼯具 (强调高效的沟通)
可⽤的软件重于完备的⽂档 (强调轻文档,文档不应该作为工作验收的标准)
客⼾协作重于合同谈判 (及时了解当下需求的变化)
响应变化重于遵循计划 (能够主动迎接变化)
通过敏捷宣⾔可以总结出敏捷模型的四个特点:轻⽂档,轻流程,重⽬标,重产出。敏捷开发有很多种⽅式,其中scrum是⽐较流⾏的⼀种。

 

 Scrum是敏捷模型中的⼀种,⼜称为迭代式增量软件开发模型。

在scrum模型中,主要有三个⻆⾊和五个重要会议。

三个⻆⾊:

scrum由product owner(产品经理)、scrum master(项⽬经理)和team(研发团队)组成。
其中product owner负责整理user story(⽤⼾故事),定义其商业价值,对其进⾏排序,制定发布
计划,对产品负责。
scrum master负责召开各种会议,协调项⽬,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每⼀次迭代的⽬标,交付产品。

 

迭代开发
与瀑布不同,scrum将产品的开发分解为若⼲个⼩sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员⼀般是5到9⼈。每期迭代要完成的user story是固定的。每次迭代会产⽣⼀定的交付。

 

scrum的基本流程如上图所⽰:
产品负责⼈负责整理user story,形成左侧的product backlog。
发布计划会议:product owner负责讲解user story,对其进⾏估算和排序,发布计划会议的产出
就是制定出这⼀期迭代要完成的story列表,sprint backlog。
迭代计划会议:项⽬团队对每⼀个story进⾏任务分解,分解的标准是完成该story的所有任务,每
个任务都有明确的负责⼈,并完成⼯时的初估计。
每⽇例会:每天scrum master召集站⽴会议,团队成员回答昨天做了什么今天计划做什么,有什么
问题。
演⽰会议:迭代结束之后,召开演⽰会议,相关⼈员都受邀参加,团队负责向⼤家展⽰本次迭代取
得的成果。期间⼤家的反馈记录下来,由po整理,形成新的story。
回顾会议:项⽬团队对本期迭代进⾏总结,发现不⾜,制定改进计划,下⼀次迭代继续改进,以达
到持续改进的效果。

 

在这个基本流程中就包含了五个会议。

 

 

测试模型 

V模型:
 

V模型是瀑布模型的变种。

优点:

明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间
各阶段的对应关系,有效提升测试的质量和效率

 

缺点:
仅仅把测试作为在编码之后的⼀个阶段,未在需求阶段就介⼊测试。缺点同瀑布模型。 

 

W模型:

 

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

 

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

优点:有利于尽早地全⾯的发现问题。

缺点:

需求、设计、编码等活动被视为串⾏的;
测试和开发活动也保持着⼀种线性的前后关系,上⼀阶段完全结束,才可正式开始下⼀个阶段⼯
作。
重流程,⽆法⽀持敏捷开发模式(敏捷模型要轻文档轻流程)。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理⾯临着困惑

 

 Bug的概念

软件测试的生命周期 

之前也说过,软件测试是贯穿整个软件的整个生命周期的。

软件测试的⽣命周期是指测试流程,这个流程是按照⼀定顺序执⾏的⼀系列特定的步骤,去保证产品质量符合需求。在软件测试⽣命周期流程中,每个活动都按照计划的系统的执⾏。每个阶段有不同的⽬标和交付产物

 

 

 实际工作中,上线要分为多个步骤:沙盒,小流量,全流量,全线上。

比如沙盒就是指:企业内部的线上环境。

小流量就是指:先让线上部分真实的用户可以使用到。

Bug

Bug 的概念

定义: ⼀个计算机bug指在计算机程序中存在的⼀个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障 (fault),这些bug使程序⽆法正确的运⾏。Bug产⽣于程序的源代码或者程序设计阶段的疏忽或者错误。

 

准确来说:

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

 描述bug的要素

描述bug的基本要素:问题出现的版本、问题出现的环境、问题出现的步骤、预期结果、实际结果

比如问题出现的版本

 

还有问题出现的环境:Windows / Linux等。 

问题出现的步骤可以让开发人员较好的去复现这个bug。

bug级别 

给bug定级别的意义是什么? 

通过定义bug的级别,能够明确看出问题的严重程度。⼯作中开发⼈员通常需要按照bug的级别来分配优先级来处理bug,除此之外,通过bug级别也能够体现出开发⼈员的开发质量。

 

 bug级别⼀般分为:崩溃、严重、⼀般、次要。

 

bug的生命周期

 

测试⼈员在执⾏测试的过程中如有发现bug,需要在对应的bug管理平台来创建bug(bug⽣命起
源),创建好的bug需要被开发⼈员修复,以及测试⼈员的持续跟踪和测试。

 

 

 

与开发产生争论怎么办?(*) 

1.先检查自身 ,看bug是否描述不清楚。

2.站在用户的角度抛出问题。

3.BUG的定级要有理有据。

4.提升自身技术和业务水平,做到不仅能提出问题,还能给出解决方案。

5.bug评审:

bug评审主要解决两个问题:
1)决定如何处理bug
2)分析缺陷产⽣的原因,找出预防的对策

bug评审⾄少需要项⽬组各个⽅⾯的代表参加:

 

1)测试代表
测试代表主要从Bug的具体表现、严重程度等⽅⾯提供信息,并提出⾃⼰对Bug的处理意⻅。需要
注意的是,测试⼈员不应该⼀味地要求对Bug进⾏修改,因为修改可能带来回归的⻛险,同时带来
的是回归测试的⼯作量,如果时间⽐较紧迫,修改后剩余的时间若不⾜以做⼀次有效的回归测试,
可能不修改是个明智的选择。

 

2)开发代表
开发代表主要从修改缺陷的难度和⻛险出发,考虑缺陷修改需要付出的代价,以及可能影响的范
围、可能引发的⻛险等,如果决定要修改,还要讨论出修改的初步⽅案。

 

3)产品代表
产品代表主要从产品的整体计划、⽤⼾的要求等⽅⾯对缺陷的修改必要性、缺陷修改的时间和版本提出⾃⼰的意⻅

 

 

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

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

相关文章

Jenkins配置步骤

安装 Jenkins 1. 安装 Java Jenkins 需要 Java 运行环境。你可以安装 OpenJDK 或 Oracle JDK。 使用 OpenJDK: sudo apt update sudo apt install openjdk-11-jdk验证 Java 安装: java -version2. 安装 Jenkins 添加 Jenkins 仓库: wget -q -O - https://pkg.jenkins.io…

【图论】图的C++实现代码

在这个例程中我们用类实现了节点、&#xff08;无向图&#xff09;连边、无向图&#xff0c;实现了节点度的计算、无向图聚类系数计算、度分布统计、无向图的Dijkstra算法&#xff08;已知起止点计算最短路的算法&#xff09; #include <iostream> #include<vector&g…

Java:二维数组

目录 1. 二维数组的基础格式 1.1 二维数组变量的创建 —— 3种形式 1.2 二维数组的初始化 \1 动态初始化 \2 静态初始化 2. 二维数组的大小 和 内存分配 3. 二维数组的不规则初始化 4. 遍历二维数组 4.1 for循环 ​编辑 4.2 for-each循环 5. 二维数组 与 方法 5.1…

Code::Blocks 24.10 全中文优化完整版

Code::Blocks&#xff08;或者叫做 CodeBlocks&#xff09;是一款开放源代码、跨平台的集成开发环境&#xff08;IDE&#xff09;&#xff0c;通过配置不同的编程语言编译器&#xff0c;可以用于多种编程语言程序开发。 网上有很多文章介绍 Code::Blocks 的安装&#xff0c;通…

分组校验在Spring中的应用详解

目录 前言1. 什么是分组校验2. 分组校验的基本原理3. 分组校验的实现步骤3.1 定义分组接口3.2 在校验项中指定分组3.3 校验时指定要校验的分组3.4 默认分组和分组的继承 4. 分组校验的优势和适用场景4.1 优势4.2 适用场景 5. 常见问题与解决方案5.1 校验未生效5.2 无法识别默认…

优化前端开发中的提示语设计基本原则

文章目录 一致1、同一对象&#xff0c;指称一致2、同一状态&#xff0c;描述一致3、同一行为&#xff0c;提示一致 简洁1、用词简短 条理1、上下呼应2、主次分明 亲和1、化“难”为易2、“礼”字当先3、正向表达 灵动1、用词多变2、远离平淡 契合1、身份契合2、产品契合 示例1、…

C++知识点总结(56):数学专题

数学专题 一、进制转换类1. 模板1.1 十转 x x x1.2 x x x 转十 2. 例题 二、公式推导类1. 一元二次方程解2. 例题2.1 【模板】怪物同笼2.2 K K K 的倍数 三、枚举例题1. 二次方程2. 【模板】立方体体积3. 街头篮球 一、进制转换类 1. 模板 1.1 十转 x x x while(n){num[…

【C++滑动窗口】1297. 子串的最大出现次数|1748

本文涉及的基础知识点 C算法&#xff1a;滑动窗口及双指针总结 固定长度滑动窗口 LeetCode1297. 子串的最大出现次数 给你一个字符串 s &#xff0c;请你返回满足以下条件且出现次数最大的 任意 子串的出现次数&#xff1a; 子串中不同字母的数目必须小于等于 maxLetters 。…

【C++练习】使用海伦公式计算三角形面积

编写并调试一个计算三角形面积的程序 要求&#xff1a; 使用海伦公式&#xff08;Herons Formula&#xff09;来计算三角形的面积。程序需要从用户那里输入三角形的三边长&#xff08;实数类型&#xff09;。输出计算得到的三角形面积&#xff0c;结果保留默认精度。提示用户…

Python使用PDF相关组件案例详解

主要对pdfminer.six、pdfplumber、PyMuPDF、PyPDF2、PyPDF4、pdf2image、camelot-py七个PDF相关组件分别详解&#xff0c;具体使用案例演示 1. pdfminer.six pdfminer.six 是一个专门用来从 PDF 中提取文本的库&#xff0c;能够处理复杂的文本布局&#xff0c;适合用于文本解析…

计算机网络:网络层 —— 移动 IP 技术

文章目录 移动性对因特网应用的影响移动 IP 相关基本概念移动IP技术的基本工作原理代理发现与注册固定主机向移动主机发送IP数据报移动主机向固定主机发送IP数据报同址转交地址方式三角形路由问题 移动性对因特网应用的影响 我们列举如下三个应用场景说明移动性对因特网应用的…

鸿蒙多线程开发——Worker多线程

1、概 述 1.1、基本介绍 Worker主要作用是为应用程序提供一个多线程的运行环境&#xff0c;可满足应用程序在执行过程中与主线程分离&#xff0c;在后台线程中运行一个脚本进行耗时操作&#xff0c;极大避免类似于计算密集型或高延迟的任务阻塞主线程的运行。 创建Worker的线…

【大数据学习 | kafka】消费者的分区分配规则

1. 概述 上面我们提到过&#xff0c;消费者有的时候会少于或者多于分区的个数&#xff0c;那么如果消费者少了有的消费者要消费多个分区的数据&#xff0c;如果消费者多了&#xff0c;有的消费者就可能没有分区的数据消费。 那么这个关系是如何分配的呢&#xff1f; 现在我们…

Python接口自动化测试自学指南(项目实战)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广…

【Python进阶】Python网络协议与套接字编程:构建客户端和服务器

1、网络通信基础与网络协议 1.1 网络通信模型概述 网络通信是信息时代基石&#xff0c;它如同现实世界中的邮递系统&#xff0c;将数据从一处传递到另一处。其中&#xff0c;OSI七层模型与TCP/IP四层或五层模型是理解和构建网络通信的基础。 1.1.1 OSI七层模型与TCP/IP四层/…

Redis - 哨兵(Sentinel)

Redis 的主从复制模式下&#xff0c;⼀旦主节点由于故障不能提供服务&#xff0c;需要⼈⼯进⾏主从切换&#xff0c;同时⼤量 的客⼾端需要被通知切换到新的主节点上&#xff0c;对于上了⼀定规模的应⽤来说&#xff0c;这种⽅案是⽆法接受的&#xff0c; 于是Redis从2.8开始提…

UE5 metahuman 头发物理模拟

https://www.youtube.com/watch?vyYmdgtP6cQA 头发梳理物理 打开Unreal Engine&#xff0c;选择一个角色模型 点击“Groom”选项卡&#xff0c;在“Physics”部分下&#xff0c;找到“Custom Solver”&#xff0c;点击下拉菜单&#xff0c;选择“WindDrivenSystem”。 在“…

大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)

大数据 ETL Flume 数据清洗 — 详细教程及实例 1. ETL 和 Flume 概述1.1 ETL&#xff08;Extract, Transform, Load&#xff09;1.2 Flume 概述 2. Flume 环境搭建2.1 下载并安装 Flume2.2 启动 Flume 3. Flume 配置和常见 Source、Sink、Channel3.1 Flume Source3.2 Flume Si…

24年配置CUDA12.4,Pytorch2.5.1,CUDAnn9.5运行环境

没什么好介绍的&#xff0c;直接说了。 下载 首先打开命令行&#xff0c;输入代码查看显卡最高支持的cuda版本&#xff0c;下载的版本不要高于该版本 nvidia-smi PyTorch 插件这个是PyTorch下载地址&#xff0c;就按照我这么选CUDA版本就选最新的&#xff0c;看好绿框里的CU…

架构师备考-概念背诵(系统架构)

软件架构概念 一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。体系结构并非可运行软件。确切地说,它是一种表达,使软件工程师能够: (1)分析设计在满足所规定的需求方面的有效性:(2)在设计变…