目录
一、软件测试&软件开发生命周期
1. 软件测试与软件开发的对应过程
(1)需求阶段:测试人员了解需求、对需求进行分解,得出测试需求。
(2)计划阶段:根据需求编写测试计划或测试方案。
(3)设计阶段:测试人员搭建测试用例框架,根据需求和设计编写一部分测试用例。
(4)编码阶段:专业的白盒测试人员执行单元测试,完善细化测试用例及调整测试计划和方案。
(5)测试阶段:测试人员根据测试用例和计划执行测试,在该过程中记录管理缺陷,编写测试报告。
(6)运行维护:测试人员需要参与项目的实施工作。
2. 软件测试的生命周期:需求分析 → 测试计划 → 测试设计、测试开发 → 测试执行 → 测试评估。
3. 软件开发的生命周期:需求阶段 → 计划阶段 → 设计阶段 → 编码阶段 → 测试阶段 → 运行维护。
二、描述一个bug
1. bug描述的内容
(1)出现问题的版本。知道出现开发的版本,使开发人员能重现故障,版本的标识有利于统计和分析每个版本的质量。
(2)问题出现的环境。环境分为硬件环境与软件环境,如果是web项目,还需要浏览器版本客户机操作系统,如果是app项目,需要机型、分辨率、操作系统版本等,详细的环境描述有利于故障的定位。
(3)错误重现的步骤。描述问题重现的最短步骤。
(4)预期行为的描述。
(5)错误行为的描述。
(6)不能把多个bug放在一起。
(7)其他。比如故障的分类(功能故障、界面故障、兼容性故障等),优先级的分类等。
2. bug描述案例(提交如下的bug:删除微信聊天记录出错)
BUG编号:1
测试版本号:V7.0.8
标题:iOS微信app聊天记录无法删除
功能模块:删除功能
测试环境:iOS环境
测试平台:iPhone 6S
BUG级别:重要
测试步骤:
1.打开微信APP,进入首页聊天界面;
2.选择则一条聊天记录,左滑直到出现删除按钮;
3.点击删除,出现确认删除;
4.点击确认删除。
测试数据:聊天记录
预期结果:正常删除
实际结果:无法正常删除
附件:上传截图
三、bug级别与生命周期
1. 定义bug级别(每个公司都是不一样的,需要查看公司规范,以下为样例)
(1)Blocker(崩溃):阻碍开发或测试工作,造成系统崩溃、死机、数据库数据丢失,即主要功能丧失,基本模块缺失等问题。该问题在测试中出现较少,一旦出现立即停止当前版本测试。
(2)Critical(严重):功能设计与需求严重不符,模块无法启动或调用,程序重新启动、自动退出,关联程序间调用冲突,安全问题、稳定性等。该问题在不影响其他功能测试的情况下可以继续改版本测试。
(3)Major(一般):功能未完全实现但不影响使用,功能菜单存在缺陷但不影响系统稳定性。该问题实际测试存在较多。
(4)Minor(次要):界面、性能缺陷、建议性问题,不影响操作功能的执行,可以优化性能的方案等。该问题在测试初期较多,优先度低,测试后期出现较少,应当及时处理。
2. BUG生命周期(需要结合实际的开发流程和协作流程)
-
New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。
-
Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
-
Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
-
Rejected:如果认为不是Bug,则拒绝修改。
-
Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
-
Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
-
Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
无效的bug:open->closed open-rejected-closed
四、测试执行
1. 打开待测试的系统
2. 打开测试管理工具用例模块,开始执行用例
3. 发现bug!进行复现并确认bug的复现步骤
4. 记录bug
5. 沟通bug
6. 验证以前提交的bug
7. 确认本次测试完成
8. 编写测试报告