【软件测试】《软件测试技术基础》知识点整理

  1. 为什么要进行软件测试?

为了尽早发现软件中的错误,提高软件质量

  1. 有哪些常见的软件测试分类方式,分别包括哪些内容?

按是否需要查看代码分为黑盒测试和白盒测试

按是否需要执行被测软件分为静态测试和动态测试

按测试阶段分为单元测试、集成测试、系统测试

按测试执行时是否需人工干预分为手工测试和自动测试

  1. 软件测试需要遵守哪些原则?
  1. 软件测试应追溯到用户需求
  2. 穷尽测试是不可能的
  3. 应具有良好的测试态度
    • 避免测试自己的程序
    • 增量测试
    • 测试应该分级
    • 测试应有重点
    • 避免测试的随意性
  4. 测试结果的处理原则
    • 对待缺陷进行复查和确认
    • 测试结果的全面检查
    • 出错统计和分析
    • 妥善保存测试过程文档
  1. 软件缺陷和软件测试的概念分别是什么?

软件缺陷的概念:

软件未达到需求规格说明书中指定的功能

软件出现了需求规格说明书中指明不会出现的错误

软件功能超出需求规格说明书中指明的范围

软件未达到需求规格说明书中虽未指出但应达到的目标

软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好

软件测试的概念:

使用人工和自动手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需要或弄清楚预期结果与实际结果之间的差别

  1. 软件测试的基本流程是什么?

1.单元测试

2.集成测试

3.确认测试

4.系统测试

  1. 对比V模型、W模型、H模型,简述他们各自的特点。

V模型: 强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试

W模型: 补充了V模型中忽略的内容,强调了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明

H模型: 强调测试是独立的,只要测试准备完成,就可以执行测试

  1. 什么是黑盒测试,有哪些主要方法?

黑盒测试是将被测试软件看做一个黑盒子,只考虑系统的输入和输出,完全不考虑程序内部逻辑结构和处理过程

主要方法有边界值测试,等价类测试,决策表测试,功能图法,场景法,因果图

  1. 等价类划分的原则是什么?

若输入条件规定了取值范围,且取值范围上、下限之间的数据是有意义的数据,则可确立一个有效等价类和两个无效等价类

若输入条件规定了“必须如何”的条件,则可确立一个有效等价类和一个无效等价类

若输入条件是一个布尔型量,则可确定一个有效等价类和一个无效等价类

若输入条件是一个逻辑型量,即规定了输入数据的一组值,且软件要对每个输入值分别进行处理,则可为每一个输入值确立一个有效等价类,还要针对这组值确立一个无效等价类

  1. 如何用场景法进行黑盒测试?
  1. 构造基本流和备选流
  2. 根据基本流和备选流构造场景
  3. 根据场景设计测试用例
  4. 对每个测试用例补充必要的测试数据
  1. 什么是白盒测试,包括哪些方法?

白盒测试是将黑盒子打开,研究源代码和程序内部的逻辑结构。

白盒测试包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基路径测试法、路径覆盖

  1. 白盒测试与黑盒测试的不同?

黑盒测试是将被测试软件看做一个黑盒子,只考虑系统的输入和输出,完全不考虑程序内部逻辑结构和处理过程。白盒测试是将黑盒子打开,研究源代码和程序内部的逻辑结构。黑盒测试的依据是各阶段的需求规格说明。白盒测试的依据是程序源代码。

黑盒测试通常用于软件的系统测试、验收测试、功能和性能测试等方面,由测试人员来完成。白盒测试一般主要在单元测试、集成测试中采用,通常由开发人员来完成。

  1. 单元测试主要测试哪些内容?

单元测试的内容有模块接口测试,局部数据结构测试,边界条件测试,模块中所有独立的执行路径测试,模块的所有错误处理路径测试

  1. 什么是驱动模块,什么是桩模块?

驱动模块是模拟被测单元的上级模块,用户接收测试数据、启动被测模块和输出结果

桩模块是模拟被测单元所调用的模块

  1. 简述单元测试的过程。

单元测试过程可分为三个阶段:

计划阶段:完成单元测试计划,制定单元测试策略

设计实现阶段:建立单元测试坏境,完成测试设计和开发

执行评估阶段:执行单元测试用例,记录和评估测试结果

  1. 简述自顶向下和自底向上两种集成测试方法,并比较两者的优点和缺点

自顶向下的集成是从主控模块(主程序,即根结点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。在从上向下的集成测试过程中,需对那些未经集成的模块开发桩模块。在集成过程中,可以采用宽度优先或深度优先的策略向下推进。

自底向上的集成是从最底层模块(即叶子结点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。在从下而上的集成测试环境中,需对那些未经集成测试的模块开发驱动模块。

  1. 简述系统测试的概念。

系统测试是将已经过良好的集成测试的软件系统,作为整个计算机系统的一部分,与计算机硬件、外部设备、支持软件、数据以及人员等其他系统元素结合在一起,在实际使用环境下对计算机系统进行一系列的严格测试来发现软件中潜在缺陷,保证系统交付给用户之后能够正常使用

  1. 什么是回归测试?什么时候进行回归测试?

在更改完代码之后,用之前测试过的测试用例再次测试,验证此次更改没有破坏原先的代码

  1. 请简述一下α测试和β测试的区别。
  • α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
  • β测试是软件在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成

❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼

❤ 点击这里 -> 订阅《从放弃C语言到使用C++刷算法的简明教程》by 柳婼

❤ 点击这里 -> 订阅PAT甲级乙级、蓝桥杯、GPLT天梯赛、LeetCode题解离线版