软件测试 基础(2)

文章目录

  • 1. 软件测试&软件开发生命周期
  • 2. 如何描述一个 BUG
  • 3. 如何定义 BUG 的级别
  • 4. BUG 的生命周期
  • 5. 如何进行第一次测试
  • 6. 测试的执行和 BUG 管理
  • 7. 产生争执怎么办(处理人际关系)

1. 软件测试&软件开发生命周期

软件测试的生命周期:
需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估

需求分析:判断用户的需求是否可以实现

测试计划:计划项目有谁做,什么时候测试开始,什么时候测试结束,什么时候上线

测试设计:设计测试用例

测试开发:开发可以支持测试,提高测试效率的测试工具

测试执行:执行测试用例,目的是为了发现 BUG,验收 BUG

测试评估:产出测试报告 (测试报告相当于邮件)
在这里插入图片描述

2. 如何描述一个 BUG

我们为什么要描述一个BUG 呢?不能直接告诉开发人员 呢?

这里我们举个小栗子:
在我们小时候写作业的时候,会产生错题

如果我们不对错题进行标记,老师发现一个错题告诉一个人
这样就会导致,老师花费的时间较长,错题同学也可能会忘记

测试项目的还是,往往会出现许多的 BUG,有些 BUG 非常难以复现


  1. 发现问题的版本
    开发人员需要知道出现问题的版本,才能获取对应版本的代码来重现故障,并且版本的标识页
  2. 问题出现的环境
    环境分为硬件环境和软件环境
    如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述机型、分辨率、操作系统版本等
    详细的环境描述有利于故障的定位
  3. 错误重现的步骤
    描述问题重现的最短步骤
  4. 预期行为的描述
    要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。
    如果是依据需求提出的故障,能写明需求的来源是最好的。
    要相信:测试人员是最懂需求的
  5. 错误行为的描述
    描述错误的现象。crash等可以上传log,UI问题可以有截图
  6. 其他
    某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。
    有些有优先级的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高
  7. 不要把多个bug放到一起
    在无法确认是同一段代码造成的故障时,不要将bug放在一起提交

3. 如何定义 BUG 的级别

  1. Blocker(崩溃)
    系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题
  2. Critical(严重)
    系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。
    功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等
  3. Major(一般)
    功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性
  4. Minor(次要)
    界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等

BUG 级别提交的时候一定要有理有据

如果项目需要按时交付,还有很多 BUG,周知项目相关人,这些优先级是次要的,就可以放到下一个版本

开发在改 BUG 的时候,优先级较高的先修复,优先级较低的后修复

4. BUG 的生命周期

每个公司、每个工具的声明周期是不一样的

在这里插入图片描述

  • New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。
  • Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
  • Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
  • Rejected:如果认为不是Bug,则拒绝修改。
  • Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改
  • Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
  • Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。

无效的bug:open->closed open-rejected-closed

Delay 的 BUG 不是说不修复,只是当前版本不修复,但是在将来是一定要修复的

如果出现了 Delay 和 Rejected 这种 BUG,QA 是一样要将这些 BUG 告知给相关人员,以及相关人的 leader
发送测试报告的时候,也一定要指出 Delay 和 Rejected 这种 BUG

5. 如何进行第一次测试

1、阅读所有项目有关的文档,包括:需求文档、设计文档(技术文档)、用户手册

2、尽可能参加各种项目会议,了解项目的背景、人员组成、尽可能的了解需求和业务。
特别针对业务专业性较强的项目,例如银行业务,需要了解各种业务知识,如高低柜、一二三类账户等、存款、贷款等。

3、熟悉项目所使用的测试管理工具、配置管理工具,获取对应的地址和登录方式

4、阅读已有的测试方案和测试案例

5、阅读旧有的bug库,了解系统功能。尤其重要的是和现有的测试团队保持一致的故障定级原则

6、了解公司的规范要求,特别是用例编写规范、用例执行规范、bug提交规范、测试工具工具使用规范等


第一次测试工作到来了,我们需要与测试组长确认具体的工作内容:
0、把软件部署到服务器上

1、测试的计划是什么?

2、测试的内容是什么?test case有多少?安排了几天执行?有没有自由测试的时间?

3、我要测试的内容开发人员是谁?需求人员是谁?

4、分配给我的测试内容是否需要特殊的测试资源?资源是否满足需要?

在我们确认了以上内容之后,就可以开始测试的执行了


测试人员测试工作不能拘泥于测试用例,所以测试人员需要探索性的测试

6. 测试的执行和 BUG 管理

1、软件测试同样存在二八原则,80% 的故障集中于 20% 的模块,如果某部分问题较多,加强测试广度和深度,测试的时候一定要上心

2、开发人员也存在二八原则,80% 的故障集中于 20% 的开发人员,如果某些开发人员的 bug 较多,加强他开发模块的测试广度和深度!

3、多进行逆向思维和发散性的思维

4、不要局限于用例和需求文档

5、尽早介入项目, 不要等到开发的差不多了再介入项目

7. 产生争执怎么办(处理人际关系)

作为一名测试人员,一般会遇到以下几种情况:

  • 这不是 bug
  • 这个 bug 的级别太高了
  • bug 影响不大,暂不修改

遇到争执不要怕,记住批判性思维:清楚–准确、切题–深刻,有意义,有逻辑性–公正、全面

1、先检查自身,是否 bug 描述不清楚

2、站在用户角度考虑问题 应该让开发人员了解到 bug 对用户可能造成的困扰,这样才能促使开发人员更加积极地、高质量地修改 bug。
在争执时,可以问一句:如果你是用户,你可以接受么?

3、BUG定级要有理有据

4、提高自身的技术和业务水平. 不光要提出问题, 最好也能提出解决方案

5、开发人员不接受时,不要争吵

6、三方讨论会

在会议上干什么:

  1. 描述清楚我们的 BUG 是什么
  2. 当前我的解决方案是什么
  3. 指明 BUG 由谁修复

结论:
明确 BUG 导师改不改,如果不改发送测试报告的时候一定要标出来
如果 BUG 改,谁去改,什么时候改完,什么时候 QA 验收结束

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

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

相关文章

Matplotlib图形配置--自定义坐标刻度

文章目录 自定义坐标刻度编程要求代码解释 自定义坐标刻度 虽然matplotlib默认的坐标轴定位器与格式生成器可以满足大部分需求,但是并非对每一幅图都合适。 主次要刻度 学习前最好先对matplotlib图形的对象层级有深入了解。 matplotlib的figure对象是一个盛放图形…

Oracle集群ASM磁盘扩容

先通过lsblk来查看集群两端磁盘是否扩容成功 lsblk -a查看自己两边磁盘UUID是否相同(for i in 后面为磁盘sd后字母名) for i in x y z aa ab ac ad ae do echo "KERNEL\"sd*\", SUBSYSTEM\"block\", PROGRAM\"/lib/udev/scsi_id --whitelist…

Vue 3中的ref:响应式变量的强大工具

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

jeecgboot 开放页面权限,免登录访问

前端需要配置路由和添加白名单 1、配置路由 2、 在permission.js里,把刚才的路由添加到白名单 3、 后端需要把该页面涉及到的接口排除权限拦截 比如我这个页面涉及到两个接口: 那么就在后端的excludeUrls把这两个接口加进去。 前端后端都设置好了&…

AI皮肤测试的基本原理

人工智能测试皮肤的实现原理通常涉及计算机视觉和机器学习技术。以下是一般的实现步骤和原理,涉及数据收集、特征提取、模型训练和优化等多个步骤,利用这些步骤中的技术手段来实现对皮肤状况的识别和分类。北京木奇移动技术有限公司,专业的软…

在用Java写算法的时候如何加快读写速度

对于解决该方法我们一般如下操作,不需要知道为什么,有模板(个人观点) 使用BufferedReader代替Scanner:Scanner类在读取大量输入时性能较差,而BufferedReader具有更高的读取速度。可以使用BufferedReader的r…

Yolov8将.pt文件转换为tensorRt的.trt文件(模型部署)

我的环境 确保自己已经有cuda和cudnn的环境基础上进行。 cuda:11.7cudnn:适合cuda的版本Anaconda3 [python 3.10]TensorRt-8.6.1 安装TensorRt环境 查看自己的cuda环境,去官网下载适合的win版本。 官网地址 下载后解压,将解压后lib目录添加到环境变…

总结:Spring循环依赖详解与@Lazy注解使用详解

总结:Spring循环依赖详解与Lazy注解使用详解 一前提知识储备:1.Spring Bean生命周期机制(IOC)2.Spring依赖注入机制(DI)(1)Autowired注解标注属性set方法注入(2&#xff…

Altium Designer如何对走线模式进行切换

AD软件提供了比较智能的走线模式切换功能,可以根据个人习惯进行切换,能有效的提高了PCB设计效率。 点击界面右上角系统参数的图标 或者在pcb界面中使用快捷键OP进入到优选项界面,然后选中 PCB Editor-Interactive Routing,在布线…

【C++】面向过程与面向对象

文章目录 1. 面向过程与面向对象2. 类(class)类的作用域 3. 访问限定符封装 4. 类的实例化5. this指针 1. 面向过程与面向对象 C语言是面向过程(procedure-oriented)的语言,分析出求解问题的步骤,通过函数…

mmdetection如何计算准确率、召回率、F1值

1、训练 python tools/train.py configs/fcos/fcosrdweed3.py 2、测试 这一步要加–outresult.pkl,才能计算准确率和召回率 python tools/test.py configs/fcos/fcosrddweed3.py work_dirs/fcosrddweed3/epoch_300.pth --outresultfcos.pkl3、计算准确率和召回率…

LDA 关键词提取

目录 介绍 主题数确认 代码实现 普通关键词提取 TF-IDF,textRank 实现链接:gensim 实现 TF-IDF;textRank 关键词提取_gensim tfidf关键词-CSDN博客 它们是直接从文本中提取关键词,如果想基于一些潜在语义,可以用 L…

表的连接【MySQL】

文章目录 什么是连接测试表内连接外连接左外连接右外连接全外连接 自然连接交叉连接参考资料 什么是连接 数据库的连接是指在数据库系统中,两个或多个数据表之间建立的关联关系,使它们可以进行数据的交互和操作。连接通常基于某种共同的字段或条件&…

力扣每日一题 猜数字游戏 阅读理解

Problem: 299. 猜数字游戏 思路 &#x1f468;‍&#x1f3eb; 灵神 复杂度 Code class Solution {public String getHint(String secret, String guess) {int a 0;int[] cntS new int[10];int[] cntG new int[10];for(int i 0; i < secret.length(); i){if(secre…

Vscode连接外部虚拟环境

如果vscode工程目录里面有一个超级大的虚拟环境文件夹&#xff0c;怎么说都不是一件优雅的事&#xff0c;因此我们希望这个虚拟环境在工程目录外部&#xff0c;我们开始&#xff1a; 1. 复制虚拟环境目录路径&#xff1a;E:\envs\test 2. 在vscode中打开文件夹&#xff0c;CT…

一文详解WebView,不好理解就想想iframe,类比后秒懂了。

Hi&#xff0c;我是贝格前端工场&#xff0c;又到了给大家做技术扫盲的时候&#xff0c;本文讲一讲webview&#xff0c;有些老铁觉得很难懂&#xff0c;其实借助iframe来中转一下&#xff0c;就好理解了。 WebView是一种用于在应用程序中显示Web内容的组件。它可以嵌入到应用程…

【C++】关键字:auto

文章目录 1. 介绍2. 如何使用 1. 介绍 从C11开始&#xff0c;auto变成了类型指示符&#xff08;之前auto并不是这个作用&#xff09;。使用auto定义变量时必须对其进行初始化&#xff0c;在编译阶段编译器自动推导auto变量的实际类型。因此auto并非是一种“类型”的声明&#…

柚见第十期(后端队伍接口详细设计)

创建队伍 用户可以 创建 一个队伍&#xff0c;设置队伍的人数、队伍名称&#xff08;标题&#xff09;、描述、超时时间 P0 队长、剩余的人数 聊天&#xff1f; 公开 或 private 或加密 信息流中不展示已过期的队伍 请求参数是否为空&#xff1f;是否登录&#xff0c;未登录不…

FX110网:在CP Markets申请出金四个多月了,没任何消息!

近期&#xff0c;本站收到一中国汇友投诉&#xff0c;称其CP Markets平台已数月无法出金&#xff0c;平台方也没有任何回应。在货币市场闯荡久了的“老鸟”就会知道&#xff0c;平台无故不给出金必定有妖&#xff0c;更何况还是长达数月&#xff01; 在CP Markets申请出金四个多…

Anaconda下载安装及配置pytorch环境

先解释一下Python、Anaconda、Pytorch是啥 Python是一种广泛使用的编程语言&#xff0c;在许多领域都有应用。它具有简洁的语法&#xff0c;易于学习&#xff0c;并且有大量的第三方库可以使用。 Anaconda是一个Python的包和环境管理软件&#xff0c;提供了许多用于数据科学&a…