购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 测试概论及其发展

1.测试的定义

根据GB/T 11457—2006标准中的定义,测试是“一种活动,在此活动中,系统或部件在一定的条件下执行,观察或记录其结果,对系统或部件的某些方面进行评价。”

Bill Hetzel在《软件测试完全指南》( Complete Guide of Software Testing )一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。这个定义至今仍被测试界广泛引用。

2.测试的释义

测试是“验证”和“确认”。“验证”是确保产品满足其预定的需求、方案、规范和要求等;“确认”是证实产品或产品部件满足其在预期环境中的预期使用。“验证”保证工作产品正确地做事,而“确认”保证产品或产品部件做了正确的事。

测试是具有试验研究性质的测量,需要给出产品的测量数据及结果判定,测试的目的是发现产品中存在的问题。测试的范围十分广泛,包括定性分析、定量测定和试验测试等,测试可以是单项测试,也可以是综合测试。

测试和调试是两个不同的概念。测试的目的是发现问题,而调试的目的是消除错误;测试可以由开发人员做,也可以由测试人员做,而调试只能由开发人员做;测试是系统地进行设计、执行和评估的工程过程,而调试是根据测试发现故障、查找问题根源和解决问题的过程;测试是通过设计测试规范来查找错误,检验产品的正确性,而调试主要是利用开发工具实现定位问题和修正错误。

3.测试的原则

测试人员在进行测试时,要严格执行测试规范,排除测试的随意性,对测试过程和测试结果应进行评价,确保测试的有效性。

关键技术指标需进行白盒测试,并确保一定的覆盖率,测试既要充分,但又不能过分测试,测试不充分和过分测试都是不负责任的。

既要进行正向测试,也要进行反向测试,正向测试指产品做了应做的事,反向测试指产品做了不该做的事,在很多时候反向测试常常被忽视。

假设在开发阶段能够发现80%的故障,在系统测试阶段能够找出其余故障的80%,最后4%的故障将会在用户大范围、长时间的使用后才能暴露出来,所以测试只能保证尽可能多地发现故障,并不能保证发现所有的故障。

一般测试出来的故障越多,遗漏的故障就越少。但当产品研发能力(开发能力和测试能力)达到一定高度后,要注意测试中的集群现象,测试后产品残存的错误数量与该产品已发现的错误数量成正比,对产品的错误集群需进行重点测试。

4.测试的价值

研发团队最基本的价值是交付产品,进一步是交付有质量的产品,再进一步是持续交付有质量的产品。测试作为研发团队的一部分,不仅需要全流程地探索测试实践活动,开展有效且高效的测试,坚守质量底线,还应该想尽一切办法了解客户实际使用环境,无限逼近最真实的产品应用场景。通过测试,尽快、尽早地对产品质量测评结果进行反馈,和开发团队之间既要开展协作,又要进行建设性对抗,通过测试驱动不断提升产品质量,共同担当起持续高质量产品交付的价值使命。

5.测试人员的素养

首先,测试人员要有独立的思考能力,不能人云亦云。

其次,测试人员要理解产品,包括但不限于规格书、企业规范、行业标准、国家标准、国际标准,以及器件材料特性、生产工艺要求、工程应用场景等,不断横向拓展,无限逼近客户视角,搭建产品专有的测试知识体系。

再次,测试人员要掌握全面的测试技能,保证测试执行过程规范和测试结果准确。提升测试的执行效率,不能只会做加法,更要敢于做减法。

测试人员还需要有敏感、细致和缜密的观察能力,时刻保持一颗好奇心,不断学习,更新已有的测试知识体系,在尊重并严格执行现有测试规则和测试流程的基础上,不循规蹈矩,不拘泥于外在形式。

拥有独立思考能力且具备敏锐的观察力,具有规范、准确和高效的执行能力,是一个优秀测试人员必备的基本素养。

6.测试的分类

(1)按测试粒度分类

测试按测试粒度分类可以分为单元测试、集成测试、系统测试和验收测试。

单元测试是能够实现需求规格的最小测试单元,被测对象并不是一个独立的产品,可使用辅助设备协助测试开展。

集成测试是在单元测试基础上,将单元集合成小系统,关注单元之间的连接及相互影响,达到集成后的预期要求。

系统测试目的在于通过与系统需求定义作比对,测试在整个系统上才呈现出的特性,发现不符合项,关注需求的满足程度。

验收测试是对交付产品安装后的验收,满足规格书现场需求的测试。

(2)按测试方法分类

测试按测试方法可以分为白盒测试和黑盒测试。

白盒测试是将被测对象看成一个透明的盒子,它允许测试人员利用产品的内部逻辑结构和有关信息,去设计或选择测试用例,对产品所有或关键逻辑路径进行覆盖测试,通过检查产品状态,确定是否与预期一致。

黑盒测试是将被测对象看成一个黑盒子,测试人员不考虑产品内部的逻辑结构和内部特性,只依据产品的外特性说明书,检查产品是否符合规格要求。

(3)按运行状态分类

测试按运行状态可以分为静态测试和动态测试。

静态测试又称稳态测试,是指当开关电源处于恒定输入、输出和稳定环境等条件下时,对其进行相关功能、性能或可靠性等方面指标的测试。

动态测试是指开关电源处于单应力或复合应力动态变化的条件下,对其进行相关功能、性能或可靠性等方面指标的测试。

(4)按研发模型分类

测试按研发模型分类可以分为传统测试和敏捷测试。

传统测试是基于开发周期V模型的分层串行测试,需求分析阶段对应需求测试阶段,概要设计阶段对应概要设计测试阶段,详细设计阶段对应详细设计测试阶段,单元设计阶段对应单元测试阶段,单元模块集成阶段对应集成测试阶段,系统构建阶段对应系统测试阶段,系统安装阶段对应验收测试阶段。

敏捷测试是边开发边测试,测试工作与开发工作并行开展,支持迭代、自发性以及变更调整,快速响应需求变化,加快开发进度,缩短开发周期。敏捷测试模式对产品开发软硬件平台成熟度和产品测试自动化程度要求较高,尤其适用于开发与测试工作解耦或产品功能模块解耦的项目。

(5)按测试内容分类

测试按测试内容分类可以分为功能测试、性能测试、环境测试、热应力测试、工艺测试、安全性测试、电磁兼容测试、可靠性增长测试和其他测试。

其中,环境测试包含温度、湿度、低气压、盐雾、振动和防水防尘等测试;电磁兼容测试包含传导、辐射、静电、骚扰、抗扰和雷击等测试;安全性测试包含结构、材料、温升、绝缘、接触电流和单点故障等测试;可靠性增长测试包括温度冲击、快速温变、高加速寿命试验、四角测试、电解电容老化试验、应力加严测试、极限故障测试、健壮性测试等;其他测试包含老化测试、长寿命试验、外场暴露测试、高温淋雨试验、双85试验、硫化试验和火箭引雷试验等。

7.测试的发展历程

(1)手工测试时代

在手工测试时代,测试就是调试,测试人员边测边想测试内容,没有详细的测试计划和测试项目清单,也没有测试过程记录和测试报告,这些测试不能准确地进行重复,测试过程和测试结果无法回溯。

(2)测试模型时代

引入集成产品开发(Integrated Product Development, IPD)流程和软件能力成熟度模型集成(Capability Maturity Model Integration, CMMI)理念,产生IPD-CMMI流程,测试与质量保证(Quality Assurance, QA)分离,行业产品测试方法、测量方法和试验规范逐渐建立,形成各种测试能力成熟度模型(Testing Capability Maturity Model, TCMM)、测试支持模型(Testability Support Model, TSM)、测试成熟度模型(Testing Maturity Model, TMM)等。

(3)测试管理时代

在集成产品开发的基础上产生产品测试管理(Product Test Management, PTM)并逐渐趋于完善,测试工具在质量上不断提高,在数量上不断增多,关注测试过程管理,注重工具对测试执行效率的提升,自动化测试开始规模开展,行业测试方法、测量方法和试验规范进一步丰富,国外先进的测试技术不断被引进和推广,测试向规范化、标准化方向发展。

(4)全面测试时代

测试逐渐向微观和宏观两极方向发展,微观方向体现在白盒深度,宏观方向体现在黑盒广度。复杂的测试工具和装备进一步丰富,频率响应分析仪、高性能可编程交直流源、复合应力试验装备和外场试验场地等为复杂试验开展提供了便利条件,环路稳定性白盒测试和软件代码白盒测试越来越受到重视,高加速应力测试、应力极限测试、输入输出及环境适应性测试等复合应力试验得到广泛应用,典型应用场景及高加速应用场景测试逐渐开展,测试可视化、自动化测试程度更高,敏捷测试得到广泛推广,探索式测试和云测试开始在项目运作中得到应用。

在5G通信技术和机器人技术的带动下,远程开关电源测试系统出现了,该系统可以实现远程无人非接触操作,或在助理工程师简单介入下就能开展测试工作,测试过程数据和测试报告自动生成与发送,开启了在家办公、异地协同、全天候、昼夜不停息的开关电源测试新时代。 vcnrCFq8X0gUbnal3t8eKSdQC/wS/oUiP0iSojSmHxfd28oIzeWDzfuorJBFWfYP

点击中间区域
呼出菜单
上一章
目录
下一章
×