软件测试|何为软件测试

什么是软件测试? 找BUG,验证开发出来的软件是否符合用户和产品需求。
什么是BUG?

  • 当且仅当规格说明书(软件需求说明书)存在并且正确,程序和规格说明书之间不符合,称之为软件错误,即BUG;
  • 当用户的需求存在并且合理,程序没有满足用户的需求,称之为BUG。
BUG的生命周期:
new:新建—> open:确认—> fixed:已解决—> reopen:重新打开—> closed:关闭—> reject:拒绝/丢弃—> delay:延期
BUG的级别
  • 崩溃: 系统无法正常运行,阻断、崩溃,表现:死循环,死机,数据库产生死锁等;
  • 严重: 系统可以运行,但是不稳定,如果继续运行会发生严重后果,表现:数据泄露,直播画面失真,密码明文显示等;
  • **一般:**系统可以正常运行,但是缺少一部分功能,影响用户使用体验,表现:某页面图片展示不对,用户下单被拦截等;
  • 轻微: 系统可以稳定的运行,属于建议性的BUG。
软件测试的目的: 验证软件有或没有问题,即找BUG;
  • 验证软件需求和功能是否都成功实现;
  • 尽可能早,尽可能多的发现软件中存在的BUG;
  • 验证软件是否达到上线标准,是否可发布;
  • 对软件的质量、性能、效率做出合理有效的评估;
  • 提前发现用户使用可能会出现的问题;
  • 预估下个版本可能出现的问题
【软件测试|何为软件测试】软件测试的原则: 以客户的需求为中心,遵循软件测试的规范、流程、标准和要求;
  • 所有测试的标准都来源于用户的需求,严格按照需求进行;
  • 从软件项目开始启动,软件测试就开始进行,前期需求分析,测试计划制定,测试用例设计都应该在程序开发完成前完成;
  • 尽可能早的投入测试,越早发现问题,修改的成本也就越小;
  • 合理控制测试的深度与广度,投入与产出要保持均衡,测试并不能完全发现所有的问题;
  • 软件中80%的BUG可以在需求分析、设计与评审阶段被发现和修正,16%的缺陷在软件测试用例执行的过程中可以被发现,剩余4%的问题在用户长期使用的过程中才会暴露出来;
  • 发现错误较多的模块,需要更加详细的测试;
  • 软件开发人员应该避免测试自己的程序。
软件的需求: 满足用户的期望或规定的文档(包括合同、规范、标准)所需要的条件或权限,包括用户需求和软件需求:
  • 软件需求是从用户需求转化而来;
  • 用户需求转化为软件需求的核心是沟通。
软件测试的思维方式:
  • 正向思维: 验证软件功能的正常工作是否存在问题,评价一个程序或系统的特性和能力是否达到预期的结果,在设计规定的环境下运行软件的所有功能,直至全部验证通过。
  • 逆向思维: 假定软件存在问题,测试是为发现错误而针对系统某个程序或系统进行操作,寻找容易出错的地方和系统薄弱的地方,尝试进行破坏操作,直至不存在问题。
软件开发(软件)的生命周期:
需求分析—> 计划—> 设计—> 编码–> 测试—> 运行维护
软件测试的生命周期:
需求分析—> 测试计划—> 测试设计;测试开发—> 测试执行—> 测试评估
  1. 需求分析:阅读需求,学习业务,理解需求,梳理需求细节点,参与需求方案评审;
  2. 测试计划:根据需求圈定测试范围,整体的测试进度安排,人力物力投入成本评估,制定测试过程规避风险的措施策略;
  3. 测试设计:参与技术评审完成后开始投入测试用例的设计和编写过程中,完成之后需要跟项目成员进行评审,及时改正错误的地方;
  4. 测试开发:根据项目需要,设计相对应的测试脚本,避免测试过程中的一些底层无法发现的问题出现;
  5. 测试执行:程序开发完成进入测试用例执行阶段,在执行过程中遇到问题及时记录,协调相对应开发人员进行修正;
  6. 测试评估:根据测试过程中的情况编写测试报告,评估项目是否存在较大风险,能否正常按时发布。

    推荐阅读