什么是软件测试? 找BUG,验证开发出来的软件是否符合用户和产品需求。
什么是BUG?
- 当且仅当规格说明书(软件需求说明书)存在并且正确,程序和规格说明书之间不符合,称之为软件错误,即BUG;
- 当用户的需求存在并且合理,程序没有满足用户的需求,称之为BUG。
new:新建—> open:确认—> fixed:已解决—> reopen:重新打开—> closed:关闭—> reject:拒绝/丢弃—> delay:延期
BUG的级别
- 崩溃: 系统无法正常运行,阻断、崩溃,表现:死循环,死机,数据库产生死锁等;
- 严重: 系统可以运行,但是不稳定,如果继续运行会发生严重后果,表现:数据泄露,直播画面失真,密码明文显示等;
- **一般:**系统可以正常运行,但是缺少一部分功能,影响用户使用体验,表现:某页面图片展示不对,用户下单被拦截等;
- 轻微: 系统可以稳定的运行,属于建议性的BUG。
- 验证软件需求和功能是否都成功实现;
- 尽可能早,尽可能多的发现软件中存在的BUG;
- 验证软件是否达到上线标准,是否可发布;
- 对软件的质量、性能、效率做出合理有效的评估;
- 提前发现用户使用可能会出现的问题;
- 预估下个版本可能出现的问题
- 所有测试的标准都来源于用户的需求,严格按照需求进行;
- 从软件项目开始启动,软件测试就开始进行,前期需求分析,测试计划制定,测试用例设计都应该在程序开发完成前完成;
- 尽可能早的投入测试,越早发现问题,修改的成本也就越小;
- 合理控制测试的深度与广度,投入与产出要保持均衡,测试并不能完全发现所有的问题;
- 软件中80%的BUG可以在需求分析、设计与评审阶段被发现和修正,16%的缺陷在软件测试用例执行的过程中可以被发现,剩余4%的问题在用户长期使用的过程中才会暴露出来;
- 发现错误较多的模块,需要更加详细的测试;
- 软件开发人员应该避免测试自己的程序。
- 软件需求是从用户需求转化而来;
- 用户需求转化为软件需求的核心是沟通。
- 正向思维: 验证软件功能的正常工作是否存在问题,评价一个程序或系统的特性和能力是否达到预期的结果,在设计规定的环境下运行软件的所有功能,直至全部验证通过。
- 逆向思维: 假定软件存在问题,测试是为发现错误而针对系统某个程序或系统进行操作,寻找容易出错的地方和系统薄弱的地方,尝试进行破坏操作,直至不存在问题。
需求分析—> 计划—> 设计—> 编码–> 测试—> 运行维护
软件测试的生命周期:
需求分析—> 测试计划—> 测试设计;测试开发—> 测试执行—> 测试评估
- 需求分析:阅读需求,学习业务,理解需求,梳理需求细节点,参与需求方案评审;
- 测试计划:根据需求圈定测试范围,整体的测试进度安排,人力物力投入成本评估,制定测试过程规避风险的措施策略;
- 测试设计:参与技术评审完成后开始投入测试用例的设计和编写过程中,完成之后需要跟项目成员进行评审,及时改正错误的地方;
- 测试开发:根据项目需要,设计相对应的测试脚本,避免测试过程中的一些底层无法发现的问题出现;
- 测试执行:程序开发完成进入测试用例执行阶段,在执行过程中遇到问题及时记录,协调相对应开发人员进行修正;
- 测试评估:根据测试过程中的情况编写测试报告,评估项目是否存在较大风险,能否正常按时发布。
推荐阅读
- 软件测试|腾讯拿20K出来的连“关键指标含义都答不上来,你跟我说你懂性能测试”
- 学习路线|自学软件测试,一段心路历程,这个世界根本没有速成的方法
- 人情世故|公司只剩我一个测试人员...也没有前人经验可以借鉴,四招使你自救破局
- 软件测试|职场碎碎念|23岁做了四年幼师,我真的受不了了。
- python自动化测试|python自动化之数据驱动 - data driven(参数化)
- 测试|软件测试简单经验心得分享
- 软件测试|使用allure展示jmeter测试报告
- 软件测试|2021年软件测试从入门到进阶资源合集免费分享(案例+视频+笔记+源码)
- 软件测试|day22-使用JMeter发送请求与参数化