软件测试理论与技术

软件开发阶段


软件测试的生存周期模型


软件测试理论与技术_第1张图片


  测试信息流:

  (1)软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。

  (2)测试配置:包括表明测试工作如何进行测试计划、给出测试数据的测试用例、控制测试进行的测试程序等。

  (3)测试工具:为了提高测试效率,需要有测试工具的支持,它为测试提供某种服务,减轻人们完成测试人物中的手工劳动。


规划阶段的测试


  • 目标阐述:描述对产品的构想——产品应该做什么及为什么这么做。
  • 需求分析:详细地规定功能、性能、可靠性目标及用户界面的某些方面。
  • 功能定义:将软件需求转化为一系列特性和功能。

   在规划阶段里,测试的对象是规划人员的构想,而不是代码。测试人员包括了营销人员、产品经理、设计人员和人类工程分析师。


设计阶段的测试


  外部设计:主要从用户的角度对产品进行描述,主要是设计用户界面。描述了所有的屏幕显示和其他输出、可用的命令、命令语法、命令或特性之间的联系,以及对所有可能输入的反应。

  外部设计(用户界面设计,与其他元素的接口设计,系统构建部署设计)规格说明所示在外部设计期间产生的文档,这是测试阶段很重要的依据。

 

  内部测设计:主要描述产品的内部工作机制,它细化软件的功能、性能以及其他软件特性,并把他们分解到不同的程序单元中,同时设计系统功能所需的数据内容、数据结构和数据流,以及程序代码如何运行。又可分为结构设计、数据设计和逻辑设计。

  内部设计(共鞥设计,系统体系结构设计,数据设计)的规格说明书,逻辑设计(模块算法与数据结构设计)的规格说明书在期间产生。


编程阶段的测试


  • 白盒测试与黑盒测试:白盒测试是在程序员十分了解程序的前提下,对程序的逻辑结构进行的测试。而黑盒测试则将程序视为一个黑盒子,测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的。
  • 结构测试与功能测试:结构测试输入白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。功能测试输入黑盒测试,对功能的测试通常通过提供输入数据,检察实际的输出结果,很少考虑程序的内部结构。
  • 路径测试(覆盖准则):路径测试属于白盒测试,是在程序控制流程图的基础上,通过分析控制构造的环境复杂性,导出基本的执行路径集合,从而设计测试用例的方法。常用的覆盖准则有语句覆盖、分支覆盖和条件覆盖等。
  • 等量测试与打突击测试:增量测试是指将程序模块逐步集成进行测试。大突击测试是指将程序成块的进行测试。
  • 自顶向下测试与自底向上测试:自顶向下测试首先测试顶层模块,无需编写驱动模块,但要使用桩模块,然后测试下一模块。自底向上测试是首先测试最底层的模块,利用辅助的驱动模块调用,然后测试高层的模块。
  • 静态测试与动态测试:静态测试不必运行程序,目的是收集有关程序代码的结构信息而非查错。动态测试则需要运行程序,目的是查错而非检查程序代码的结构信息。
  • 性能测试:主要目标是发现和改正性能缺陷并提高性能,大多使用黑盒测试来实现性能测试。


回归测试

  • 一经发现并改正了程序中隐藏的缺陷,然后再重新执行以前发现这个缺陷的测试,查看此缺陷是否重现。
  • 当对发现的缺陷进行修改之后,执行一系列基准测试,以确认程序的修改没有对其他部分产生干扰。


运行和维护阶段的测试

  在运行和维护阶段,需要在运行环境中对软件产品进行性能监视,可能还要进行相应的修改。

你可能感兴趣的:(软件测试)