软件测试基础,2024年最新2024年软件测试常见面试题目

94 阅读7分钟
  1. 功能测试:主要针对产品需求规格说明书对软件进行测试,逐项验收软件功能是否符合要求。
  2. 接口测试:指对各个模块进行系统联调的测试,包含程序内接口和程序外接口测试。
  3. 性能测试:主要测试系统的性能是否满足用户要求,即在特定的运动条件下验证系统的能力状况。主要是通过自动化测试工具模拟正常、峰值及异常负载状况,对系统的各项性能指标进行测试,测试中得到的负荷和响应时间等数据可以被用于验证软件系统是否能够达到用户提出的性能指标。
  4. 压力测试:是一种性能测试,指在超负荷环境中,检验程序是否能够正常运行,检验系统的稳定性。
  5. 负载测试:是一种性能测试,是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。

简答

软件开发模型(瀑布模型)

  1. 计划
  2. 需求分析
  3. 设计
  4. 程序编码
  5. 测试
  6. 运行维护

软件测试模型

➕ 于2024-01-03补充

V模型

概念:V模型是软件开发瀑布模型的变种,描述了基本的开发过程和测试行为,明确了测试阶段与开发阶段的对应关系。V模型左侧是开发过程的各个阶段,右侧是测试过程的各个阶段,同一水平上的开发阶段和测试阶段存在对应关系,每个测试阶段需要测试对应开发阶段的成果物。

意义

  • 单元测试和集成测试验证系统设计
  • 系统测试验证系统需求
  • 验收测试也称为交付测试验收用户需求

局限性:未在需求阶段进入测试,不能体现“尽早开展测试”的原则。

W模型

概念:W模型是对V模型的改进,明确地描述出了测试与开发的并行关系。强调测试与开发同步进行。W模型由两个V模型组成,分别代表测试与开发过程,同一水平的开发阶段与测试阶段一一对应。

image-20240103154132068

意义

  • 注重在软件开发的各个阶段应用静态测试技术。
  • 强调尽早展开测试。

局限性

  • 对于很多项目,执行过程中并不产生文档,W模型无法适用。
  • 需求、设计、编码等活动被视为串行,测试和开发活动保持着一种线性的前后关系。无法有效支持迭代开发模型及变更调整。
  • 该模型使用起来的技术复杂度高,对于需求和设计的测试要求很高,实践困难。
H模型

概念:H模型将测试活动完全分割出来,使得测试准备活动和测试执行活动清晰地体现出来。在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。图仅仅显示了整个测试生命同期中某个层次的“微循环”。图中其他流程可以是任意开发流程,如设计流程和编码流程,也可以是其他非开发流程。

image-20240103154612334

软件测试的对象

软件 = 程序 + 数据 + 文档 + 服务

因此,软件测试的对象是程序、数据、文档和服务。

软件测试的目的

软件测试是通过设计和运行测试用例来校验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求。

软件测试的基本流程

  1. 需求分析
  2. 制定测试计划
  3. 设计测试方案
  4. 执行测试
  5. 测试评估
  6. 测试总结
  7. 测试维护

测试用例的主要组成

  • 输入:测试数据和测试步骤(操作步骤);
  • 输出:系统预期执行结果;
  • 测试环境:系统环境设置,即进行软件测试所必需的工作平台和前提条件。

测试用例的基本属性

  • 典型性(代表性):能揭示最有可能存在缺陷的地方,能代表和覆盖合理与不合理、合法或不合法的情况。
  • 可测试性(可判定性):一个测试用例的预期输出必须是可以检验的,可以根据相关开发文档得到明确的、可判定的结论。
  • 可重现性:对于相同的测试用例,系统的预期执行结果应该完全相同。否则,如果系统预期输出存在不确定性,一旦实际运行该测试用例,也无法进行校验。
  • 独立性:测试用例应尽量独立。

测试用例设计原则

根据《GB/T15532一2008计算机软件测试规范》,设计测试用例时,应遵循以下原则:

  1. 基于测试需求的原则
    按照测试类别的不同要求设计测试用例。
  2. 基于测试方法的原则
    比较成熟的测试用例设计方法与丰富的实践经验相融合才能设计出高品质的测试用例。
  3. 兼顾测试充分性和效率的原则
    测试用例集应兼顾测试的充分性和测试的效率,每个测试用例的内容也应完整,具有可操作性。
  4. 测试执行的可再现性原则
    应保证测试用例执行的可再现性。

软件质量的特性(ISO/IEC 9126)

  1. 功能性
  2. 可靠性
  3. 易用性
  4. 效率
  5. 可维护性
  6. 可移植性

软件测试基本原则(10条)

➕ 于2024-01-03补充

  1. 尽早测试:尽早发现软件缺陷,降低缺陷的修复成本。
  2. 全面测试:两层含义(1)对产品进行全面的测试,(2)开发人员、测试人员、甚至用户,全面地参与到测试工作中。
  3. 全过程测试:两层含义(1)测试人员充分关注开发全过程,(2)测试人员对测试全过程进行全程跟踪
  4. 独立的、迭代的测试:两层含义(1)将测试过程从开发过程中抽离,作为独立过程,(2)由独立的专业的软件测试机构完成。
  5. Patero原则(缺陷聚集):少数系统模块分布了大部分缺陷。

如果一个模块已发现许多错误,则剩余错误可能很多,越需要进行深入和多次测试。

  1. 对测试出的结果一定要有一个确认的过程。
  2. 制订严格的测试计划。
  3. 穷尽测试是不可能的,测试需要终止。(需要精心设计测试优先级)
  4. 注意回归测试的关联性。(注意修复一个错误而引发更多错误的现象)
  5. 妥善保存一切测试过程文档。(测试的重现性需要测试文档)

img img img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

开源项目:docs.qq.com/doc/DSlVlZExWQ0FRSE9H