软件测试¶
测试宗旨:在有限的时间和资源内,尽可能的发现问题,发现至今未发现的问题,尽早的暴露出来,并且协助开发尽快解决。
定义¶
- 早期定义(Bill Hetz,1973):软件测试是对程序能够按预期运行建立起的一种信心。
- 经典定义(Myers,1979):测试是为发现错误而执行程序的过程。
- IEEE定义:使用人工或自动手段来运行或测量软件系统的的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
说白了就是找Bug,但请不要称之为捉虫,那是无知者的表达,且一点都不萌,谢谢。
测试原则¶
- 测试对象不止是程序,还有各种文档等
- 测试显示缺陷的存在,但经过软件测试不能证明系统不存在缺陷
- 穷尽测试是不可能的,应设定及时终止的条件
- 测试依赖于测试场景
- 统计表明,大多数的Bug来自于对需求的错误理解,所以测试要尽早介入,尽可能降低修复成本
- Bug的分布遵循二八法则,即Bug往往会集中在某一模块
- 测试的杀虫剂悖论,同一功能,不能总是用同一条Case反复验证
软件测试分类¶
关于软件测试的分类,个人习惯按不同阶段来划分,因为阶段是比较明确的,在不同的阶段可以采用不同的手段,比如静态动态,黑盒白盒,手动自动等。而手段可以任意搭配变换,以适应各种不那么稳定的因素。
测试能力¶
基础能力¶
- 良好的沟通和表达能力
这是一切的基石与前提。
- 快速学习与理解能力
作为测试要深入理解业务需求,明确测试重点,但业务知识不等同于测试能力,面对业务的变化以及其它的业务,要能快速学习,理解本质,融会贯通才是关键。
- 自我管理能力
互联网公司目前都越来越扁平化,管理也会越来越扁平化,每个人都应该学会自我管理。比如了解被测目标,及其涉及的人员和资源,合理制定测试计划,安排测试进度,评估测试风险。
- 探索创新能力
专业能力¶
具体的展开,另起了三篇文章分别概述。
- 用例设计能力
- 缺陷分析与定位能力
- 测试开发能力
最后更新:
2022-05-01