测试 认识bug

news2025/4/16 7:47:33

一、软件测试生命周期与测试模型

 

1. 软件(开发)生命周期:包括需求分析、计划、设计、编码、测试、运行维护阶段。需求分析是起始点,明确用户需求,后续阶段依此展开 。例如开发电商软件,需求分析阶段确定商品展示、购物车、支付等功能需求,后续阶段围绕实现这些需求推进 。

2. 测试模型

- V模型:以用户需求为起点,需求分析与系统、概要设计、详细设计、编码逐步推进,对应验收测试、系统测试、集成测试、单元测试。明确标注测试过程,但缺点是将测试置于编码之后,发现问题修改成本高 。比如开发管理系统,按V模型,编码完成才开始测试,若此时发现需求理解偏差,修改涉及多阶段 。

- W模型(双V模型):解决V模型测试后置问题,开发和测试并行。需求分析与设计阶段有测试准备,各开发阶段都有对应测试阶段。但存在缺点,将需求、设计等活动视为串行,难以支持敏捷开发 。如敏捷开发模式下,需求常动态变化,W模型难适应 。

 

二、BUG相关

 

1. bug概念:指计算机程序中错误、缺陷、疏忽或故障,使程序无法正确运行,源于源代码或程序设计阶段失误 。比如除法运算代码中未处理除数为0情况,运行时会报错,这就是bug 。

2. 描述bug的要素:包括问题出现的版本、环境、步骤、预期结果、实际结果。明确要素可提高沟通效率,避免模糊描述。例如“在谷歌浏览器版本135.0.7049.43(64位) 、Windows11家庭版环境下,打开chrome浏览器,输入网址http://xxxxxxxx ,切换到第一个banner,预期小程序码不被遮挡可扫描,实际小程序码被登录窗口遮挡无法扫描” 。

3. bug级别:一般分崩溃、严重、一般、次要。划分意义在于评估程序员开发能力、确定年终奖挂钩、安排修复顺序、反映测试人员能力。例如程序员A开发的软件中严重bug少,相比程序员B开发能力可能更优 。

4. bug的生命周期:测试人员创建bug(new ),开发人员确认是否有效,无效则拒绝(Rejected ),有效则打开(open ) 。根据优先级和时间判断是否立即修改,不立即修改则延迟(Delay ),修改后为已修复(Fixed ),测试人员验证,验证通过关闭(closed ),未通过重新打开(Reopen ) 。

5. 与开发产生争执的解决办法

- 先检查自身bug描述是否清晰。比如描述“浏览器打开链接失败”就不清晰,应明确浏览器、版本、链接及失败表现等 。

- 站在用户角度抛问题。如某功能操作复杂影响用户体验,从用户角度指出 。

- BUG定级要有依据。通过bug描述文档确认级别 。

- 提高自身技术和业务水平,能提问题也能给解决方案。如发现数据保存失败,可建议修改数据表字段格式 。

- 必要时进行bug评审,由测试、开发、产品代表参与,解决bug处理方式及分析原因等 。

 

三、测试用例相关

 

1. 测试用例概念:为实施测试向被测系统提供的一组集合,包含测试环境、操作步骤、测试数据、预期结果等要素。例如测试登录功能,测试环境为某浏览器和系统版本,操作步骤是输入用户名和密码点击登录,测试数据为具体用户名和密码,预期结果是成功登录或提示错误 。

2. 设计测试用例的方法

- 基于需求的设计方法:依据软件需求设计用例,确保覆盖需求功能 。如电商软件需求有商品搜索功能,设计用例包含不同关键词搜索、搜索结果展示等测试 。

- 具体的设计方法:包括等价类、边界值、判定表法、正交法、场景法、错误猜测法等 。比如边界值法,测试电商软件购物车添加商品数量,测试0、最大限制数量及临界值 。

 

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

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

相关文章

如何建立可复用的项目管理模板

建立可复用的项目管理模板能够显著提高项目执行效率、减少重复劳动、确保项目管理标准化。在企业中,项目管理往往涉及多个步骤和多个团队,然而每次开始一个新项目时,如果都从头开始设计流程和文档,势必浪费大量的时间和精力。通过…

如何使用通义灵码玩转Docker - AI助手提升开发效率

一、引言 Docker 作为一种流行的虚拟化技术,能够帮助开发者快速搭建所需的运行环境。然而,对于初学者来说,掌握 Docker 的基本概念和使用方法可能会遇到一些挑战。本文将介绍如何利用通义灵码这一智能编码助手,帮助你更高效地学习…

GGML源码逐行调试(下)

目录 前言1. 简述2. 预分配计算图内存2.1 创建图内存分配器2.2 构建最坏情况的计算图2.3 预留计算图内存 3. 分词4. 模型推理与生成4.1 模型推理4.2 采样 结语下载链接参考 前言 学习 UP 主 比飞鸟贵重的多_HKL 的 GGML源码逐行调试 视频,记录下个人学习笔记&#x…

「2025AIGC终极形态」AI系统源码:文本→图像→音乐→视频生成

—从技术痛点到企业级部署,手把手实现全流程AI内容工厂 行业核心痛点:为什么需要多模态AIGC系统? 1. 工具割裂,效率低下 传统流程: 文案(ChatGPT)→ 配图(Midjourney)→…

使用CS Roofline Toolkit测量带宽

使用CS Roofline Toolkit测量带宽 工程下载:使用CS Roofline Toolkit测量带宽-案例工程文件,也可以按照下面的说明使用git clone下载 目录 使用CS Roofline Toolkit测量带宽0、Roofline模型理解1、CS Roofline Toolkit下载1.1、设置代理1.2、git clone下…

L1-4 拯救外星人

题目 你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“57”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。 本题就请你…

现代c++获取linux系统名称

现代c获取linux系统名称 前言一、使用命令获取操作系统名称二、使用c代码获取操作系统名称三、验证四、总结 前言 本文介绍一种使用c获取当前操作系统名称的方法 一、使用命令获取操作系统名称 在linux系统中可以使用uname或者uname -s命令来获取当前操作系统名称&#xff0c…

力扣刷题HOT100——53.最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,-5,4] 输出:6…

ES和MySQL概念对比

基本概念 ES和MySQL都属于数据库,不过各有各的特性,大致使用方法与MySQL类似并无区别。 MySQL:擅长事务持有ACID的特性,确保数据的一致性和安全。 ES:持有倒排索引,适合海量数据搜索和分析。 ES和MySQL如何…

Android开发过程中遇到的SELINUX权限问题

1、selinux权限一般问题 问题详情 log输出如下所示: 01-01 00:00:12.210 1 1 I auditd : type1107 audit(0.0:33): uid0 auid4294967295 ses4294967295 subju:r:init:s0 msg‘avc: denied{ set } for propertypersist.sys.locale pid476 uid1000 gid1000 scontext…

Windows系统docker desktop安装(学习记录)

目前在学习docker,在网上扒了很多老师的教程,终于装好了,于是决定再装一遍做个记录,省的以后再这么麻烦 一:什么是docker Docker 是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个…

MIP-Splatting:全流程配置与自制数据集测试【ubuntu20.04】【2025最新版】

一、引言 在计算机视觉和神经渲染领域,3D场景重建与渲染一直是热门研究方向。近期,3D高斯散射(3D Gaussian Splatting)因其高效的渲染速度和优秀的视觉质量而受到广泛关注。然而,当处理大型复杂场景时,这种…

怎样完成本地模型知识库检索问答RAG

怎样完成本地模型知识库检索问答RAG 目录 怎样完成本地模型知识库检索问答RAG使用密集检索器和系数检索器混合方式完成知识库相似检索1. 导入必要的库2. 加载文档3. 文本分割4. 初始化嵌入模型5. 创建向量数据库6. 初始化大语言模型7. 构建问答链8. 提出问题并检索相关文档9. 合…

XCTF-web(三)

xff_referer 拦截数据包添加:X-Forwarded-For: 123.123.123.123 添加:Referer: https://www.google.com baby_web 提示:想想初始页面是哪个 查看/index.php simple_js 尝试万能密码,没有成功,在源码中找到如下&#xf…

Verilog的整数除法

1、可变系数除法实现----利用除法的本质 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2025/04/15 13:45:39 // Design Name: // Module Name: divide_1 // Project Name: // Target Devices: // Tool Versions: // Description: // // Depe…

React 把一系列 state 更新加入队列

把一系列 state 更新加入队列 设置组件 state 会把一次重新渲染加入队列。但有时你可能会希望在下次渲染加入队列之前对 state 的值执行多次操作。为此,了解 React 如何批量更新 state 会很有帮助。 开发环境:Reacttsantd 学习内容 什么是“批处理”以…

【大模型理论篇】Search-R1: 通过强化学习训练LLM推理与利⽤搜索引擎

最近基于强化学习框架来实现大模型在推理和检索能力增强的项目很多,也是Deep Research技术持续演进的缩影。之前我们讨论过《R1-Searcher:通过强化学习激励llm的搜索能⼒》,今天我们分析下Search-R1【1】。 1. 研究背景与问题 ⼤模型(LLM&a…

Google政策大更新:影响金融,新闻,社交等所有类别App

Google Play 4月10日 迎来了2025年第一次大版本更新,新政主要涉及金融(个人贷款),新闻两个行业。但澄清内容部分却使得所有行业都需进行一定的更新。下面,我们依次从金融(个人贷款),…

NO.93十六届蓝桥杯备战|图论基础-拓扑排序|有向无环图|AOV网|摄像头|最大食物链计数|杂物(C++)

有向⽆环图 若⼀个有向图中不存在回路,则称为有向⽆环图(directed acycline graph),简称 DAG 图 AOV⽹ 举⼀个现实中的例⼦:课程的学习是有优先次序的,如果规划不当会严重影响学习效果。课程间的先后次序可以⽤有向图表⽰ 在…

每日文献(十三)——Part one

今天看的是《RefineNet: Iterative Refinement for Accurate Object Localization》。 目录 零、摘要 0.1 原文 0.2 译文 一、介绍 二、RefineNet A. Fast R-CNN B. Faster R-CNN C. RefineNet 训练 D. RefineNet 测试 零、摘要 0.1 原文 We investigate a new str…