跳转至

软件测试

测试宗旨:在有限的时间和资源内,尽可能的发现问题,发现至今未发现的问题,尽早的暴露出来,并且协助开发尽快解决。

定义

  • 早期定义(Bill Hetz,1973):软件测试是对程序能够按预期运行建立起的一种信心。
  • 经典定义(Myers,1979):测试是为发现错误而执行程序的过程。
  • IEEE定义:使用人工或自动手段来运行或测量软件系统的的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

说白了就是找Bug,但请不要称之为捉虫,那是无知者的表达,且一点都不萌,谢谢。

测试原则

  • 测试对象不止是程序,还有各种文档等
  • 测试显示缺陷的存在,但经过软件测试不能证明系统不存在缺陷
  • 穷尽测试是不可能的,应设定及时终止的条件
  • 测试依赖于测试场景
  • 统计表明,大多数的Bug来自于对需求的错误理解,所以测试要尽早介入,尽可能降低修复成本
  • Bug的分布遵循二八法则,即Bug往往会集中在某一模块
  • 测试的杀虫剂悖论,同一功能,不能总是用同一条Case反复验证

软件测试分类

关于软件测试的分类,个人习惯按不同阶段来划分,因为阶段是比较明确的,在不同的阶段可以采用不同的手段,比如静态动态,黑盒白盒,手动自动等。而手段可以任意搭配变换,以适应各种不那么稳定的因素。

测试能力

基础能力

  • 良好的沟通和表达能力

这是一切的基石与前提。

  • 快速学习与理解能力

作为测试要深入理解业务需求,明确测试重点,但业务知识不等同于测试能力,面对业务的变化以及其它的业务,要能快速学习,理解本质,融会贯通才是关键。

  • 自我管理能力

互联网公司目前都越来越扁平化,管理也会越来越扁平化,每个人都应该学会自我管理。比如了解被测目标,及其涉及的人员和资源,合理制定测试计划,安排测试进度,评估测试风险。

  • 探索创新能力

专业能力

具体的展开,另起了三篇文章分别概述。

  • 用例设计能力
  • 缺陷分析与定位能力
  • 测试开发能力

最后更新: 2022-05-01