【软件测试】软件测试方法划分

1、按是否查看程序内部结构分为:
  (1)黑盒测试(black-box testing):只关心输入和输出的结果
  (2)白盒测试(white-box testing):去研究里面的源代码和程序结构

他们的区别在于:

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

2、按是否运行程序分为:
  (1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
  静态测试包括:
  对于代码测试,主要是测试代码是否符合相应的标准和规范。
  对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
  对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
  (5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程

他们的区别在于:

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

3、按阶段划分:
  (1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
  桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
  (2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
  集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
  (3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
  系统测试的主要依据是《系统需求规格说明书》文档。
  (4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
  验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。

原文地址:https://www.cnblogs.com/zzzzzshui/p/4474926.html