软件测试 基础(2)

news/2024/11/28 22:43:48/

文章目录

  • 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.ppmy.cn/news/1379707.html

相关文章

手机群控软件开发必备源代码分享!

随着移动互联网的飞速发展,手机群控技术在市场推广、自动化测试、应用管理等领域的应用越来越广泛,手机群控软件作为一种能够同时控制多台手机设备的工具,其开发过程中,源代码的编写显得尤为重要。 1、设备连接与识别模块 设备连…

计算机网络基础【信息系统监理师】

计算机网络基础【信息系统监理师】 1、OSI七层参考模型2、TCP/IP协议3、网络拓扑结构分类4、网络传输介质分类5、网络交换技术6、网络存储技术7、网络规划技术8、综合布线系统8.1、综合布线工程内容8.1、隐蔽工程-金属线槽安装8.2、隐蔽工程-管道安装槽道与各种管线间的最小净距…

22 Dytechlab Cup 2022C. Ela and Crickets(思维、找规律、模拟)

思路就是找规律 可以发现,当拐点在角落时的情况和不在角落的情况是不同 当拐点在角落时,只有目标点的横纵坐标其中的一个和它相同时,这时才可能到达。 否则,我们就简单的例子可以看一下,当一个 2 ∗ 2 2*2 2∗2的矩阵的…

【智能家居】东胜物联ODM定制ZigBee网关,助力能源管理解决方案商,提升市场占有率

背景 本文案例服务的客户是专业从事智能家居能源管理的解决方案商,其产品与服务旨在帮助用户监测、管理和优化能源消耗,以提高能源使用效率。 随着公司的扩张,为了增加市场占有率,他们希望找到更好的硬件服务支持,以…

CSS 02

1.复合选择器 &#xff08;1.1&#xff09;后代选择器 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&q…

Flink实时数仓之用户埋点系统(一)

需求分析及框架选型 需求分析数据采集用户行为采集业务数据采集 行为日志分析用户行为日志页面日志启动日志APP在线日志 业务数据分析用户Insert数据用户Update数据 技术选型Nginx配置Flume配置MaxWellHadoopFlink架构图 需求分析 数据采集 用户行为采集 行为数据&#xff1…

FPGA TestBench编写学习

1 timescale 1.1 简介 timescale指令用于指定编译器在处理仿真时的时间单位和时间精度。这个指令通常在模块的顶层声明中使用&#xff0c;它告诉编译器和仿真器如何解释代码中的时间值。 timescale指令的语法如下&#xff1a; timescale <time_unit> <time_precis…

graylog API 弱密码

graylog web 页面密码设置 输入密码&#xff1a;获取sha256加密后密码 echo -n "Enter Password: " && head -1 </dev/stdin | tr -d \n | sha256sum | cut -d" " -f1vi /etc/graylog/server/server.conf #修改以下配置 root_usernameroot ro…