Skip to content

软件测试基础概念

简介

软件测试是确保软件质量的重要环节,涉及到测试类型、阶段、方法、文档和缺陷管理等多个方面。通过合理规划和执行测试,可以提高软件的可靠性和用户满意度。它是软件开发生命周期中不可或缺的一部分,它确保软件产品能够按照预期工作,满足用户的需求和期望。

todo 截图

软件测试基础概念价值

软件测试的基础概念不仅帮助我们理解软件的功能和质量要求,还在实际操作中发挥了重要的作用。测试不仅是一个技术活动,更是确保软件成功的关键因素。

  • 提升软件的质量。
  • 提高用户满意度。
  • 降低开发成本和风险。
  • 确保软件的安全性。

基础概念

软件测试

  • 通过手工或者工具对"被测对象"进行测试。
  • 验证实际结果与预期结果之间是否存在差异。
  • 通俗来讲,软件测试就是验证被测对象好不好用、能不能用、功能是否正常、能否满足用户的需求。

软件测试的作用

  • 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心。
  • 测试可以降低同类型产品开发遇到问题的风险。

软件缺陷

  • 软件缺陷被测试工程师和开发工程师们称作 bug
  • 软件缺陷会导致软件不能正常运行,它的存在会在一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄漏用户的重要数据。

todo 截图

软件测试原则

  • 测试显示缺陷的存在(Testing shows presence of defects
  • 穷尽测试是不可能的(Exhaustive testing is impossible
  • 测试尽早介入(Testing Early
  • 缺陷集群性(2/8原则)(Defect Clustering
  • 杀虫剂悖论(Pesticide Paradox
  • 测试活动依赖于测试内容(Testing is context dependent
  • 没有错误是好是谬论(Absence of error - Fallacy
  1. 测试显示缺陷的存在(Testing shows presence of defects
    • 测试的本质是证明软件存在缺陷,而不是软件没有任何缺陷。 测试只能证明软件是存在缺陷的(证伪),而不是证明软件是没有缺陷的(证实)。
    • 软件测试不能预知缺陷,只能发现缺陷。
  2. 穷尽测试是不可能的(Exhaustive testing is impossible
    • 穷尽测试指的是对软件系统进行全面、彻底的测试,覆盖所有可能的输入、路径和状态。然而,由于软件系统的复杂性,几乎不可能测试所有可能的情况,因为它需要大量的时间。相反,测试团队只能专注于一些重要的指标。
    • 例如,一个有多个输入字段和条件的程序,可能有数以万计的可能组合,穷尽测试会非常昂贵且不可行。
  3. 测试尽早介入(Testing Early
    • 缺陷的修复成本与其发现时间成反比,且越晚修复其修复成本将会成指数级增长。

todo 截图

  1. 缺陷集群性(2/8原则)(Defect Clustering
    • 二八原则,即:80%的错误是由20%的模块引起的。
    • 在测试中,应该优先关注那些容易出错的区域。
  2. 杀虫剂悖论(Pesticide Paradox
    • 当我们反复使用相同的杀虫剂的时候,会有少量害虫产生免疫而存活下来,使得杀虫剂失去药效。
    • 如果对相同的缺陷进行相同的测试,可能不会找到新的缺陷。就像对抗杀虫剂的昆虫一样,使用相同的策略可能导致昆虫适应新的环境。所以需要不断更新和改进测试方法和策略,以应对新的缺陷和软件变化。
  3. 测试活动依赖于测试内容(Testing is context dependent
    • 测试活动的效果和方法高度依赖于测试内容的质量和完整性。测试内容包括需求文档、设计文档、用户故事等。如果这些内容不准确或不完整,测试活动也会受到影响。
  4. 没有错误是好,是谬论(Absence of error - Fallacy
    • 即使软件经过全面的测试,也不可能完全保证没有任何错误。软件中可能存在未被发现的缺陷。

软件测试对象

  • 软件的组成部分 = 文档 + 数据 + 程序

todo 截图

  • 需求分析阶段:需求文档、接口文档
  • 编码实现阶段:源代码
  • 系统功能使用:软件程序

测试用例

  • 为特定的目的而设计的一组测试输入、执行步骤和预期的结果,以便测试产品否满足某个特定需求的文档。

总结

  • 软件测试基础概念。
  • 软件测试的作用。
  • 软件缺陷。
  • 软件测试原则。
  • 软件测试对象。
  • 测试用例。