软件测试的生命周期
需求分析 -> 测试计划 -> 测试设计 、 测试开发 -> 测试执行 -> 测试评估
软件测试 & 软件开发生命周期
-
需求阶段: 测试人员了解需求,对需求进行分解,得出测试需求
-
计划阶段: 根据需求编写测试计划/测试方案
-
编码阶段: 编写测试用例就是对需求的一个测试,验证需求有没有问题
-
测试阶段: 按测试用例进行执行,一定要将所有的测试用例跑完,执行率达到100%,还可以进行探索性的测试/自由测试, 还要搭建环境,编写测试报告(对缺陷进行分析,缺陷管理,对缺陷记录,开发人员进行修改,测试人员进行跟踪,直到测试完成)
-
缺陷管理可以对其他类似的项目作出参考
-
-
运行维护: 包括对用户的培训等
如何描述一个Bug
-
发现问题的版本
-
问题出现的环境: 如web项目的浏览器版本,客户机操作系统; 如果是app项目,描述机型,分辨率,操作系统等; - 有利于故障的定位
-
错误重现的步骤: 可以说是测试用例的步骤(问题重现的最短步骤)
-
预期行为的描述: 根据测试用例中的预期结果(预期结果来自于测试用例,测试用例来自于需求)
-
错误行为的描述: 描述现象
-
其他: 可以抓取日志,或者错误截图
-
不要把多个bug一起提交
如何定义Bug的级别 (不管测试级别怎么样,都需要提交到系统中)
-
Blocker(崩溃) : 造成系统崩溃,死机,死循环,造成数据丢失,与数据库连接错误,主要功能丧失,基本模块消失等问题,如
-
如代码错误
-
死循环
-
数据库死锁
-
重要的一级菜单功能不能使用等
-
-
Critical(严重) : 系统主要功能部分丧失,数据库保存调用错误,用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试;功能设计和需求严重不符,模块无法启动或调用,程序重启,自动退出,关联程序间调用冲突,安全问题,稳定性等,该等级问题出现在不影响其他功能的测试情况下可以继续该版本的测试,如
-
数据存储数据库中显示错误
-
用户要求功能丢失
-
接口错误
-
-
Major(一般) : 功能没有完全实现,但是不影响使用,功能菜单存在缺陷但是不会影响系统稳定性,如
-
如操作时间长
-
查询时间长
-
格式错误
-
边界条件错误
-
数据库表中字段过多(最为常见)
-
-
Minor(次要) : 界面,建议类问题,不影响操作功能的执行,可以优化性能的方案等,如
-
错别字
-
界面格式不规范
-
页面显示有重叠
-
提示语丢失
-
文字排列不整齐
-
缺陷状态/Bug生命周期 (生命周期 open 到 close)
-
New : 缺陷刚提交状态就是new
-
Open : 需要判断这个缺陷是不是bug,是否延期,是否需要解决
-
Fixed : open以后的bug需要修改
-
Rejected(拒绝) : open以后bug被拒绝
-
Delay : open以后bug延期
-
Close : 验证通过
-
Reopen : 不通过,需要继续修复
严格来说,所有的执行一定对走到Close。
无效的bug
-
open -> close
-
open -> rejected -> close
如何开始第一次测试
-
阅读相关文档
-
参加各种项目会议,了解背景
-
熟悉项目所使用的工具
-
阅读已有的测试用例和方案
-
阅读已有的bug库,了解系统功能
-
了解公司的规范
-
找一些知道业务的测试开发讲解需求
编写测试报告的核心 - 缺陷分析