用”拨云见日“这个词,一是觉得刚接触这个领域,眼前是一片大雾,完全看不清环境,心怀忐忑,我来帮你拨开一些云雾,你看到一些不完整、局部清晰的东西,请沿着这个,慢慢去发现这个世界。
一、软件测试的基本概念
-
定义:软件测试是描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。通过手工或者工具对被测对象进行测试操作,从而验证实际结果与预期结果之间是否存在差异。
-
广义与狭义:
- 广义:指软件生存周期中所有的检查、评审和确认工作,包括分析、设计阶段以及完成开发后维护阶段的各类文档、代码的审查和确认。
- 狭义:识别软件缺陷的过程,即实际结果与预期结果的不一致。
二、软件测试的目的和目标
-
目的:发现软件中的各种缺陷,并确保这些缺陷在软件发布或交付前得到修复。同时,测试可以降低软件中缺陷的数量,但不能保证完全消灭缺陷。
-
目标:
- 确保软件的功能符合用户的需求。
- 确保软件完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明。
- 确保软件满足性能和效率的要求。
- 确保软件是健壮的和适应用户环境的。
三、软件测试的原则
- Good-enough原则:一种权衡投入与产出比的原则,即不充分的测试是不负责任的,而过分的测试则是一种资源的浪费。
- 穷举测试不可能:无法保证测试覆盖所有情况,但应尽可能提高测试覆盖率。
- 追溯用户需求:所有的测试都应追溯到用户需求,确保测试的有效性和针对性。
- 尽早测试:测试过程应与开发过程相结合,尽早发现问题并修复。
- 独立测试:为了尽可能地发现错误,应该由独立的第三方来测试。
四、软件测试的分类和方法
-
分类:
- 按开发阶段划分:单元测试、集成测试、系统测试、验收测试等。
- 按实施组织划分:开发方测试(α测试)、用户测试(β测试)、第三方测试等。
- 按测试技术划分:白盒测试、黑盒测试、灰盒测试等。
-
方法:
- 验证:保证软件正确的实现了某一特定功能的一系列活动。
- 确认:保证软件的实现满足了用户需求的一系列活动。这通常包括功能测试、界面测试、兼容测试、易用性测试和性能测试等。
五、软件测试的质量与度量
- 质量:软件测试的质量在于发现软件缺陷并能区分其类型,同时提供关于软件质量和开发过程质量的信息。
- 度量:常用的度量指标包括测试覆盖率(有多少需求、代码已经被测试了)、缺陷发现率(缺陷是何时被发现,并且有多少缺陷已经被发现)以及测试成功率(有多少测试已经通过了,并且有多少是运行正常的)等。
六、软件测试的重要性
- 风险降低:严格的测试可以减少软件系统在运行环境中的风险。
- 合同与法规满足:测试可能是为了满足合同和法律法规的需求,或者是为了满足行业标准。
- 决策支持:测试需要给利益相关者提供足够的信息,帮助他们决定是否发布被测的软件或系统。
通过以上内容的介绍,测试小白可以对软件测试的理论有一个基础的了解,对于新鲜的词汇,建议自行延伸去搜索,去了解。希望通过这一点的学习,你已经能够透过云雾看到一些阳光。