zoukankan      html  css  js  c++  java
  • 软件测试分类

    软件测试分类

    一、按阶段分类

    1、单元测试

    单元测试是最微小规模的测试,测试的是某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。

    • 测试阶段:编码后或者编码前
    • 测试对象:模块
    • 测试人员:白盒测试工程师或开发人员
    • 测试依据:代码和注释+详细文档
    • 测试方法:白盒测试
    • 测试内容:模块接口测试、局部数据测试、路径测试、错误处理测试、边界测试

    补充说明:
    (1)学习测试依据时,我们可以对比软件测试的“V”模型结合记忆
    (2)白盒测试不是单元测试,单元测试是白盒测试
    (3)测试驱动开发:测试人员先编写测试用例,开发人员根据测试用例写程序

    2、集成测试

    集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。一般集成测试以前,单元测试需要完成。

    集成测试也称联合测试(联调)、组装测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。

    • 测试阶段:一般是单元测试之后
    • 测试对象:模块间的接口
    • 测试人员:白盒测试工程师或开发工程师
    • 测试依据:单元测试的文档+概要设计文档
    • 测试方法:黑盒测试与白盒测试(灰盒测试)
    • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能的正确性、全局数据结构、单模块缺陷对系统的影响
      补充说明:
      单元测试是一个模块内部的测试,集成测试是在模块之间进行测试(至少两个)

    3、系统测试

    系统测试是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。

    系统测试:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。

    • 测试阶段:集成测试阶段之后
    • 测试对象:整个系统(软件、硬件)
    • 测试人员:黑盒测试工程师
    • 测试依据:需求规格说明文档
    • 测试方法:黑盒测试
    • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
      补充说明:
      (1)系统测试是从完整的角度,广面去看待问题,不再看模块
      (2)虽然系统测试包括冒烟测试和回归测试,但三者之间是有严格的先后顺序的,即:先冒烟、再系统、后回归。

    1)冒烟测试(smoke testing):该术语来自硬件,指对一个硬件或一组硬件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试,也可以理解为该种测试耗时短,仅用一袋烟的功夫就足够了。

    冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续正式的测试工作。
    冒烟测试的执行者是版本编译人。
    冒烟测试一般在开发人员开发完毕后送给测试人员来进行测试时,测试人员会先进行冒烟测试,保证基本功能正常,不阻碍后续测试。

    2)回归测试(Regression Testing):指修改了旧的代码之后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。(自动回归测试将大幅度降低系统测试、维护升级等阶段的成本)。

    在整个软件测试过程中占有很大的工作比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

    4、验收测试

    1)α测试:Alpha 是内测版本,通常只在软件开发者内部交流,也可以是公司内部的用户在模拟实际操作环境下进行的测试,或忠实的粉丝之间发布,该版本软件的bug较多,普通用户最好不要安装,测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。

    2 )β测试:Beta是公测版本,也是一种验收测试,是对所有用户开放的测试版本,免费发布,因为里面还会有一些bug的存在

    3) γ测试:Gamma版本就是正式版的候选版本

    二、按方法分类(或是否查看源代码分类)

    2.1、黑盒测试

    image

    黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

    黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的,并不考虑程序的源代码。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。黑盒测试分为功能测试和性能测试:

    1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。包括逻辑功能测试、界面测试、易用性测试和兼容性测试。

    2)性能测试(performance testing),软件的性能主要有时间性能和空间性能两种。其中,时间性能主要指软件的一个具体事务的响应时间,而空间性能主要指软件运行时所消耗的系统资源。

    参考:https://baike.baidu.com/item/黑盒测试/934030?fr=aladdin

    2.2、白盒测试

    白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。与黑盒测试相反,这种测试就要研究程序里面的源代码和程序结构。

    白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
    采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法动态测试方法

    静态测试:不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;
    动态测试:是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。

    参考:https://baike.baidu.com/item/白盒测试/934440?fr=aladdin

    2.3、灰盒测试

    灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

    参考:https://baike.baidu.com/item/灰盒测试/1906276?fr=aladdin

    三、按是否运行分类

    3.1、静态测试

    静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。分析如下:

    检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。
    静态质量:度量所依据的标准是ISO9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性(Functionality)、可靠(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)。

    3.2、动态测试

    动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性、等性能。

    (1)动态测试有三部分组成:构造测试用例、执行程序、分析程序的输出结果。
    (2)大多数软件测试都属于动态测试。

  • 相关阅读:
    单片机与嵌入式系统中C语言的位运算小记
    #ifndef、#def、#endif说明
    Freertos学习初识任务函数
    IAR(EWARM)下移植FreeRTOS到STM32F10x笔记
    visio 画 弯曲 箭头 ( 波浪线 曲线)
    dos 中tree的使用方法
    Win7下Borland C++ 4.5 & TASM5.0调试uC/OSII
    (*(volatile unsigned long *)
    有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/niunai/p/15375737.html
Copyright © 2011-2022 走看看