软件测试(1)—— 概述

基本术语

  • 故障(fault)/缺陷(defect)

  • 错误(error)

  • 失效(failure)

    fault -> error -> failure

    执行缺陷才会导致失效。直接观察到的是失效,缺陷“看不到”,因此从失效不易定位缺陷

  • 测试用例(test case)

    为特定目的而设计的一组测试输入、执行条件和预期输出

  • 测试池(test pool)

    供选择的测试用例的集合

  • 测试集(test suite)
    一轮测试中所选中的测试用例的集合

  • 测试(test)

    • 采用测试用例执行软件的活动。目标是发现失效,或
      者演示正确的执行。
    • 测试是比较广义的概念,对于没有预期输出的情况,
      只能称测试,而不是测试用例
  • 测试预言(test oracle)
    一种独立于被测系统的程序或机制,用于确认对于给
    定的输入,系统是否有一个正确的输出

缺陷

缺陷分类

从外部需求的满足情况来看
(1)软件未达到产品说明书中已经标明的功能;
(2)软件出现了产品说明书中指明不会出现的错误;
(3)软件未达到产品说明书中虽未指出但应当达到的目标
(4)软件功能超出了产品说明书中指明的范围;
(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

从软件内部设计来看,主要有
(1)输入/输出缺陷;
(2)逻辑缺陷;
(3)计算缺陷;
(4)接口缺陷;
(5)数据缺陷。

缺陷与测试

在这里插入图片描述

测试用例评估

  • 检测软件缺陷的有效性
  • 测试用例的可重用性
  • 测试用例的经济性
  • 测试用例的可维护性

软件测试目的

(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。
(2)检查系统是否满足需求也是测试的期望目标。
(3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。

测试无法说明错误不存在,只能说明软件错误已出现。

从不同人员的角度来看

  • 用户:通过软件测试发现隐藏的错误和缺陷,考虑是否可以接受该产品。
  • 开发者:表明软件产品不存在错误,验证软件实现了所有用户的要求。
  • 测试者:发现错误,预测错误,提供软件可靠性数据。
  • 根本目的:是发现错误;二是通过测试的错误来改进软件开发过程中存在的缺陷。

软件测试阶段

在这里插入图片描述

  • 单元测试

    针对软件设计的最小单元-程序模块,进行正确性检验的测试工作。目的在于发现各模块内部可能存在的各种差错。

  • 集成测试

    在单元测试的基础上,将所有模块按照设计要求组装成为系统进行测试。

  • 确认测试(有效性测试)

    验证软件的功能、性能和其它特性是否与用户的要求一致。

    • 功能测试
    • α测试和β测试
  • 系统测试

    将测试的软件作为整个计算机系统的一个元素与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行组装测试和确认测试。

软件测试技术

软件测试技术:
(1)黑盒(功能性)测试和白盒(结构性)测试
(2)静态测试和动态测试
(3)传统测试方法和面向对象测试的方法
(4)特定环境及应用的测试

  • 黑盒(功能性)测试
    • 将软件看做从输入到输出的黑盒,从规格说明出发
    • 优点
      • 与软件如何实现无关,可适应实现变化
      • 测试开发可与实现并行
    • 缺点
      • 测试用例之间可能存在冗余
      • 测试用例集局限于已描述行为(病毒等无法发现)
  • 白盒(结构性)测试
    • 也称透明盒测试,是已知软件实现的测试
    • 优点
      • 定义了丰富的覆盖率指标体系,便于度量管理
    • 缺点
      • 难以测试遗漏功能等问题

白盒黑盒是互补的,应组合使用,单一使用一种都不全面

猜你喜欢

转载自blog.csdn.net/qq_21110935/article/details/84188285
今日推荐