目录
软件测试的生命周期
需求分析阶段:在这个阶段,测试团队与业务分析师和系统设计师一起,仔细研究需求文档,理解系统的功能、性能和可靠性要求,并评估测试的可行性。
测试计划阶段:在这个阶段,测试团队制定测试计划,确定测试目标、范围、资源需求、时间计划和测试策略。
测试设计阶段:在这个阶段,测试团队根据需求和设计文档,制定详细的测试方案。这包括确定测试用例、测试数据和预期结果,以覆盖各种功能、边界条件和异常情况。
测试开发阶段:在这个阶段,测试人员一般不需要编码,但已经编码的模块,专业的白盒测试人员可以计划执行单元测试,完善、细化测试用例以及调整测试计划和方案。
测试执行阶段:在这个阶段,测试团队根据测试计划和设计的测试用例,执行各种测试活动,包括功能测试、性能测试、安全测试等。测试人员记录测试结果,并跟踪和管理发现的缺陷。
测试评估阶段:在这个阶段,测试团队评估测试的完整性和有效性,以确定测试是否满足预定的测试目标。他们还评估测试覆盖率、缺陷密度和缺陷修复率等指标。
Bug
描述一个 Bug
- 发现问题的版本:开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于 统计和分析每个版本的质量。
- 问题出现的环境:提供测试时使用的操作系统、浏览器、设备等环境信息。
错误重现的步骤:提供清晰的最短重现步骤,让其他人能够按照你的描述重现Bug。可以包括具体的操作、输入数据和预期结果。
期望行为的描述:提供对于修复Bug的期望行为的描述,以便开发团队理解Bug修复的目标。
错误行为的描述: 描述错误的现象,如 crash等可以上传log,UI问题可以有截图。
BUG的分类:功能故障,界面故障,兼容性故障等。有些有优先级 的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。
注意:
在无法确认是同一段代码造成的故障时,不要将bug放在一起提交。
例子:
Bug 级别划分
崩溃(Blocker):阻塞级别的Bug会完全阻止系统的正常使用,导致系统崩溃、关键功能不可用或数据丢失等严重问题。系统无法继续进行测试或正常使用,需要立即修复。
严重(Critical):严重级别的Bug会导致系统功能的严重缺陷,影响用户的核心操作或核心功能。虽然系统仍然可以使用,但主要功能受到了严重的限制或错误。
主要(Major):主要级别的Bug会影响系统的重要功能,但不会导致系统完全崩溃或无法使用。这些Bug可能会导致功能错误、数据错误或用户体验问题等。
次要(Minor):次要级别的Bug会导致系统的次要功能受到影响或出现一些不重要的问题。这些Bug通常对系统的整体功能和性能没有明显的影响,但会给用户带来一些不便或瑕疵。
提示(Suggestion):提示级别的Bug通常不会引起实际的功能缺陷或错误,但是提供了一些建议或改进的建议。这些Bug主要涉及用户界面、用户体验或性能优化等方面。
强调:
如果发现崩溃级别的 Bug,那么此时就需要停止测试,测试打回!
Bug 生命周期
new(提交):Bug 在此阶段被测试人员或用户发现,并报告给开发团队。
rejected(拒绝):由于误解、错误的使用或其他原因,开发团队或负责 Bug 处理的人员认为报告的 Bug 不是真正的缺陷,或者与系统的预期行为一致。
open(确认):开发团队接收到 Bug 报告后,会进行确认。他们会验证 Bug 的存在,并确认其重现步骤、实际结果和预期结果之间的差异。
delay(延迟):由于时间限制、资源限制、优先级调整或其他因素其 Bug 在当前阶段不打算立即解决。但 Bug 会被记录并进行适当的注释,在将来的版本或迭代中处理。
fixed(修复):开发团队在此阶段修复 Bug。他们会修改代码、修复错误或实施其他必要的变更来解决 Bug。
closed(关闭):如果在验证阶段没有发现问题,Bug 将被关闭。它被标记为已解决,并记录详细的解决方案和修复版本信息。
reopened(重开):如果一个已经被关闭的 Bug 在后续的测试或使用过程中再次出现,或者修复Bug后发现修复并不完全或引入了新问题,Bug 的状态可以被重新打开。这样可以重新启动Bug的修复流程,并进行进一步的调查和解决。
与开发人员产生争执(处理人际关系)
前提:
一定不能争吵!
建议:
- 批判性思维,多反思自己,确保操作没有问题、自己对需求理解没有问题
- 有效沟通,站在用户角度考虑问题,是否能接受该功能
- 在发现问题的同时,也能提出好的解决方案
- 进行第三方会议 开会之前:明确问题产生原因、问题是什么、解决方案是什么 开会之后:问题要不要解决、什么时候解决、谁来解决