`
liuming
  • 浏览: 166907 次
  • 性别: Icon_minigender_1
  • 来自: 蛮夷之地
社区版块
存档分类
最新评论

图片浅释常用的软件测试的类型

阅读更多

本文简述了常见的软件测试类型,以及提供了一些简单的图表来展示各种测试间的关系和一些近似数据。图表并非经过严格测量,而是根据经验画出的示意近似值,并且假定的前提条件是,尽可能在现有条件下把自动化程度提到最高。

 

各类常见的软件测试简介

单元测试

用于测试最小的独立功能单元,比如一个函数的输入输出,或者一个类的组成和调用。单元测试的细节程度高,覆盖面广,因此数量也多。

单元测试的参与者及参与程度

功能测试

一般用于测某个功能模块,比如说测试系统是否能完成某一个任务。由于功能测试的范围完全取决于系统的结构,所以相对单元测试来说,功能测试边界更为模糊。

功能测试的参与者及参与程度

集成测试

用于测试系统功能或模块间的交互,比如说各种接口和边界,以保证数据能平滑地从一个地方进入另一个地方。和功能测试互相配合,都属于中层测试。

集成测试的参与者及参与程度

系统测试

测试整个系统的功能和需求的完整性。由于其复杂程度也可变换的用例很多,所以自动化难度大,有些部份必须通过手工完成。属于外部高层次的测试,覆盖面较小,执行成本也较高。

系统测试的参与者及参与程度

回归测试

当系统更新或者升级时,对更新的部份,或者所有关联的部份,甚至整个系统进行测试。

回归测试的参与者及参与程度

验收测试

由系统的使用者来校验系统是否能满足功能上的需求,以及最终完成任务的结果是否正确。

验收测试的参与者及参与程度

性能测试

测试系统在指向的条件下是否能达到速度和数据处理量等性能指标。

性能测试的参与者及参与程度

安全测试

测试系统是否能保障数据的完整性、机密性,以及抵抗内部和外部伤害的能力。

安全测试的参与者及参与程度

可用性(易用性)测试

测试系统是否对于人类用户友好,是否容易使用。

可用性测试的参与者及参与程度

白盒/灰盒/黑盒测试

这三种本身并不是一种独立且可执行的测试种类,而是指跟据测试者对系统内部原理和结构的信息利用程度而划分出来的测试种类。

 

白盒测试是指在直接针对源代码和内部数据结构进行的测试,比如说单元测试和功能测试,需要知道每个函数或者模块的运作原理。

 

黑盒测试是指那些不需要看源代码或内部数据流,直接从系统的外部,或者以最终用户的角度进行的测试,比如说系统测试,性能测试,可用性测试等。

 

灰盒测试则是介乎于黑白之间,也就是说不需要了解源代码和内部原理,但是对系统的组件进行的测试,比如说集成测试。

 

 

白盒类测试的相对代码覆盖率

此图展示了不同层次的白盒测试对代码覆盖的相对关系。由图可知单元测试的覆盖率最高,而功能测试和集成测试则各自负责不同的方面,当然它们之间也会有很大的重复覆盖的区域。

 

 

 

 

 

白盒类测试的作用重叠关系

此图展示了白盒率测试作用之间的重叠关系。

 

 

 

 

 

内部(Alpha)测试/公开(Beta)测试

内测和公测都是针对打包并部署好的最终成品而进行的。内测是在开发组织内部,或者通过邀请少量最终用户进行。公测则是通用软件向公众发布,让所有最终用户参与试用。

 

各类测试的简易对比

测试的时间成本

此图展示了各种测试随着项目推进,在各个时间段所要投入的综合成本,包括编写,运行和维护

 

 

 

 

 

执行测试的人力和机器成本

此图展示了各种测试相对要花费的机器和人力成本。

 

 

 

 

 

测试的覆盖面和精准度

此图展示了各种测试的覆盖面和精准度。覆盖面是指对代码各部分(分支,子程序)的执行覆盖情况。精准度是指是否精细正确地测试数据和逻辑。注:左下角的红点是颜色错误,应该是黑色(安全测试)。

 

 

 

 

 

测试自动化的难度

此图展示了各种测试实现自动化的难度。

 

 

 

 

 

测试所需的技术强度

此图展示了各种测试对测试人员的经验和技术水平的要求。

 

 

 

 

 

 

测试定位问题的难度

引图展示了各种测试在问题后,定位问题所在的难度。

3
0
分享到:
评论

相关推荐

    分散加载文件浅释.pdf

    分散加载文件浅释.pdf 本文主要介绍分散加载文件的格式及应用,旨在帮助初学者快速了解分散加载文件的基本概念、语法和应用实例。 基础知识 在嵌入式系统中,分散加载文件是一种特殊的文件格式,用于描述程序的...

    软件生存周期各阶段活动定义浅释 源于网络.pdf

    《软件生存周期各阶段活动定义浅释》 软件生存周期是指从软件开发的起点——需求提出,直至软件在实际应用中淘汰的整个过程。这一概念的提出,旨在规范和优化软件开发流程,确保项目的有效管理、维护和升级。软件...

    软件生存周期各阶段活动定义浅释.pdf

    软件生存周期各阶段活动定义浅释.pdf

    分散加载文件浅释.zip

    周立功单片机:分散加载文件浅释.pdf文档中,作者详细解释了如何编写分散加载文件,并通过实际的嵌入式应用实例,展示了如何配置和使用这些文件。例如,可能会讲解如何为特定的微控制器配置中断向量表、栈空间、堆...

    周立功单片机:分散加载文件浅释

    《周立功单片机:分散加载文件浅释》是一本深入探讨单片机编程技术的专业书籍,尤其关注分散加载文件这一重要概念。在嵌入式系统开发中,单片机扮演着核心角色,而理解如何有效地管理和加载程序到单片机的存储器中是...

    浅释“教学模式

    浅释“教学模式

    周立功单片机:分散加载文件浅释.pdf

    有时候用户希望将不同代码放在不同存储空间,也就是通过编译器生成的映像文件需要 包含多个域,每个域在加载和运行时可以有不同的地址。要生成这样的映像文件,必须通过 某种方式告知编译器相关的地址映射关系 ...

    浅释“教学模式ppt.ZIP

    浅释“教学模式ppt.ZIP

    大乘百法明门论浅释

    大乘百法明门论浅释

    软件生存周期各阶段活动定义浅释 源于网络.docx

    4. 测试:包括单元测试、集成测试、系统测试和验收测试,确保软件功能的正确性和性能的稳定性。测试计划应提前编写,并在软件验收时作为依据。 5. 部署与运行:软件发布并投入实际使用,可能需要进行安装、配置等...

    名词浅释(CPU篇).pdf

    《名词浅释(CPU篇)》是对计算机中央处理器(CPU)相关术语的详细解析,涵盖了处理器的基本构造、技术特点和不同型号的CPU的区别。本文主要介绍了一些关键的CPU概念: 1. **3D Now!**:这是AMD公司推出的一种指令集...

    变频器低频运行浅释.doc

    本文将针对变频器低频运行时的问题进行浅释,并探讨相应的解决方案。 在低频启动时,电动机的启动转矩减小是一个主要问题。根据异步电动机的工作原理,启动转矩与频率成反比。在频率较低时,转矩不足,可能无法克服...

    Web服务说明语言 (WSDL) 浅释

    3. **服务测试**:WSDL文件可以用于自动化测试工具,以便验证服务是否按照定义正确工作。 4. **服务治理**:在SOA(Service-Oriented Architecture)环境中,WSDL是服务注册、版本控制、服务监控等的关键文档。 四...

    浅释_net三层架构的设计与实现

    ### 浅释 .NET 三层架构的设计与实现 #### 一、引言 随着信息技术的飞速发展,软件系统的复杂度不断提高,为了更好地满足企业级应用的需求,软件架构设计成为了关键。传统的一体化开发模式逐渐显露出局限性,无法...

    PID_比例积分微分控制方法_原理浅释与相关资料搜集.doc

    PID_比例积分微分控制方法_原理浅释与相关资料搜集.doc

    半导体材料的浅释.pdf

    半导体材料作为电子科技和信息时代发展的基石,一直是现代科学研究的重要领域。其地位和作用,在推动科技进步和改变社会生活方式方面具有不可估量的价值。本文将深入探讨半导体材料的科技地位、发展历程及其分类,并...

    java安卓辅助源码-AndroidStudioPlugins:AndroidStudio常用插件及浅释

    常用插件及浅释 也可以看我的博客: 插件可以来这个仓库查找: 这里给出几个平时常用的as插件,方便我们的开发。点击标题就直接可以进入插件的github源码查看。 如何自己开发插件,请参考鸿洋大神的博客: as第一大...

    全固态中波广播发射机故障判断浅释.doc

    【全固态中波广播发射机故障判断浅释】 全固态中波广播发射机作为现代广播电台的主要设备,以其高效、稳定、节能等优势逐渐取代了传统的电子管发射机。这种发射机的工作原理和故障判断是维护人员必须掌握的关键知识...

    宋版中常见术语浅释.doc

    在宋代的铸币文化中,术语的精确理解对于识别和研究古钱币至关重要。这些术语主要描述了钱币上文字和图案的排列、形状以及与边缘的关系。以下是对宋版中常见的一些术语的详细解释: 1. 正样:这是判断其他术语的...

Global site tag (gtag.js) - Google Analytics