1.2 测试技术
电子产品设备及系统在设计完成后都需要进行产品测试,发现产品设计缺陷,对用户需求进行验证。
在产品的不同阶段,需要进行不同的测试内容。测试受现场条件的制约,是为了展现产品在现场的真正工作状态。测试可以分为不同的类型,依据标准选择测试内容和测试方法。
测试的项目是根据现场环境细化出来的,对现场的环境具有针对性,每种测试,都是一个完整的过程,包括测试用例的编写、测试计划、测试执行、测试记录、测试评审和测试报告。
1.2.1 测试的分类
根据产品设计的阶段,可以将测试分为研发试验、型式试验、验收试验、生产试验、出厂试验和软件评测,如图1.5所示。
图1.5 测试的分类
(1)研发试验主要是在产品的设计阶段,根据具体的测试对象,可以细分为硬件单元测试、硬件集成测试、硬件系统测试、软件单元测试、软件集成测试和软件系统测试。
(2)型式试验主要是电子产品在发布、认证时需要进行的,一般测试只对整个系统进行测试,测试比较全面。
(3)验收试验主要是针对现场设备进行的,主要测试系统的正常功能。
(4)生产试验是电子产品在生产环节进行的测试,检查生产环节对设备的影响,控制整体产品质量。
(5)出厂试验一般进行常规的测试,对系统有影响的测试和对系统可能造成损伤的测试不再进行试验。
在每次试验后,可能产生一些问题,对这些问题的验证需要进行回归测试,根据问题的影响程度,确定回归测试项目。
(6)软件评测是第三方对软件进行的认定测试,是软件的一种资质,企业可以用来申请相关资质,如软件著作权等。
1.研发试验
研发试验主要是在产品的设计阶段,包括元器件的选型、单元测试、集成测试、系统测试、发布测试。研发测试主要是在公司内部进行的测试。
一般公司内会有一个独立的部门负责产品的测试,从产品的立项到产品的发布,整个开发过程都在参与产品的测试,通过对产品的测试,发现设计缺陷,促进产品的改进,对产品的质量进行控制。
测试人员全程跟踪开发过程,全面测试产品的功能是否满足需求,并为设计提供合理化建议。测试人员主要的职责是以最终用户的身份,对产品进行使用,进行日常操作,测试产品是否符合预期设计。
研发试验的测试标准应参照产品的技术条件和检验细则,可以适当提高标准。标准中的规定为产品的最低要求,产品的设计要高于标准。研发试验的详细内容介绍如下。
(1)元器件的选型测试主要是对产品中用到的同类元器件进行筛选,选出各方面性能都比较优良的器件,以此来提高整个产品的质量。
(2)单元测试是对产品的功能模块进行的测试,主要关注单元模块的功能,测试对产品整体有影响的相关性能测试。
(3)集成测试是由联系比较密切的几个单元模块组成,主要测试各模块之间的接口数据是否正常,整体功能是否符合预期。
(4)系统测试是对产品最大的集成,主要测试系统的整体功能,以及按照标准进行全部的测试。
(5)产品的发布测试是对系统进行的最全面测试,任何合理的测试方法都可以进行测试。发布测试是设计阶段的最后一道关口,如果测试不充分,将可能带来比较多的问题。
2.型式试验
型式试验是产品进行的认证测试。产品在市场上进行销售,一般要通过相关部门的认证测试,才准予生产和市场流通。
在认证测试中,需要进行型式试验和功能试验。型式试验主要是硬件方面的测试,功能测试是针对系统的软件功能进行的测试。
型式试验是严格按照产品的检验细则和针对产品的特殊要求进行的测试,型式试验的测试依据是归纳出来的产品的主要功能,其测试不全面,因此对产品的测试没有发布测试全面。
型式试验是严格受测试依据的指导,测试依据的问题如果不被修改,还会应用在测试中,对产品的测试有误导的可能,因此在对测试依据制定时,一定要经过多方专家的评审,才能制定出比较合理的测试要求,有效地指导型式试验测试。
3.验收试验
验收试验是设备在现场安装后,在现场进行的测试。一般没有型式试验测试的项目多,其中一些对产品伤害比较大的测试将不再进行。验收测试关注产品的现场运行情况能否满足现场用户的需求。
设备现场环境与实验室测试环境是不同的,现场的通信距离可能比实验室长,设备还可能受到温度、油污、水等多种综合因素的影响,产品能否稳定可靠工作,需要通过长期的稳定性测试才能得出结论。
验收测试可以进行全面的功能(实验室无法模拟)测试,现场设备是比较全的,与产品连接的接口可以全部连接起来测试产品的整体性能。
4.生产试验
生产试验是在生产过程中进行的测试,它是为了考察产品生产过程中对产品性能的影响,了解整批产品的质量情况。它一般采用抽样的方式进行测试。按照标准的抽样原则进行抽样,然后只对样品进行的测试,一般只进行常规的测试。
电子产品生产测试一般进行绝缘测试、高温测试、低温测试和老化测试。对产品进行的绝缘测试、高温测试、低温测试是为了了解产品的基本性能;老化测试是为了筛选工作比较稳定的产品。
5.出厂试验
出厂试验是电子设备在现场安装前或者是产品入库前进行的测试,只进行常温功能的测试,而对产品性能有影响的测试不再进行。它是为了考察产品的整体功能情况。设备可能由于某种原因放置了一段时间,其功能可能受到影响,所以通过测试了解产品在出厂前的功能是否正常。
出厂试验可以与生产试验一起进行。电子产品有可能是生产完成后就发往现场,通过测试,实现不同的目的。
6.软件评测
软件评测测试包括登记测试、鉴定测试、验收测试和确认测试四种,如图1.6所示。
图1.6 软件评测的类型
(1)软件产品登记测试是对申报“双软”的企业及系统集成企业进行软件产品测试,并出具登记测试报告,作为申报双软认定的基础材料。需要提供的资料为申请表、委托测试合同、用户使用手册。
(2)软件产品鉴定测试是对申报科技项目、科技成果、“双高”企业的软件产品进行测试,并出具鉴定测试报告。其测试结果作为申报科技成果的技术鉴定依据。需要提供的资料为申请表、委托测试合同、用户使用手册、光盘(打包的部署/安装程序、电子版用户使用手册)。
(3)软件项目验收测试是接收用户或开发方的委托,按照合同要求、需求说明及相关标准、法规等,对软件项目进行测试,验证软件系统是否满足开发方与用户签订合同及需求说明的要求。需要提供的资料为申请表、委托测试合同、用户使用手册、光盘(打包的部署/安装程序、电子版用户使用手册)、软件需求规格说明书(功能需求、性能需求)。
(4)软件产品确认测试是按照国家软件质量测试标准和测试规范,对软件产品从用户文档、功能性、可靠性、易用性、效率、可维护性和可移植性7个方面进行全面质量评价,为用户或企业对软件产品质量认定提供依据,需要提供的资料为申请表、委托测试合同、用户使用手册、光盘(打包的部署/安装程序、电子版用户使用手册)、委托测试需求说明。
1.2.2 测试的项目
一般电子产品的测试项目受多方面因素制约,主要包括影响设备的骚扰类型、环境条件、要求的可靠性和性能、经济约束、设备的特性等。一般在产品的技术条件和检验细则中有明确的规定,特殊条件下,也可由制造商和用户协商确定。
电子产品的标准可能有通用标准、行业标准和专用标准,应按照专用标准、行业标准和通用标准的顺序优先选用。
测试项目从大的方面说有硬件测试与软件测试两类测试,每类测试中又可以分为单元、集成和系统测试。
依据不同的测试类型,选择适当的测试项目。测试的最终目的都是一致的,都是为了发现软件的设计缺陷,提高产品的质量。只是进行不同的测试时,侧重点是有所不同的。
(1)研发测试阶段主要关注的是产品各模块单元的功能、系统的功能及性能,前期主要进行用户需求符合项的测试,后期则主要进行全面的测试。
研发测试阶段中的单元测试可以由设计人员进行,设计人员清楚单元实现的功能及每行代码的执行结果,通过单元测试,设计人员可以对代码进行优化,以提高代码的执行效率和可靠性;集成测试时,牵涉到各模块单元之间的接口,在进行测试设计时,可以参照这些模块在系统中的作用,选择进行一些针对接口的抗扰度测试和电磁发射测试。常规的如高、低温测试也可以进行测试。
系统测试要求进行全面的测试,按照技术条件、检验细则或特殊要求进行每项测试,还必须进行附加的测试,从多个方面测试系统的表现,尽可能包含各种情况,直到每项测试都满足标准的要求,这时才可以通过系统测试。如果产品设计不合理,系统测试中可能会出现多次反复测试。
(2)电子产品的型式试验是进行规定中的所有测试项目,主要用于公司内部比较完整全面的测试及产品认证测试中。在型式试验中,测试项目有明确的规定。
型式试验中,公司无法进行的测试项目需要委托其他单位进行。一般电子产品质量检验监督中心、计量部门、检测中心和研究所等,都可以进行全部项目的测试,还可以出具第三方认可的测试报告。
(3)验收测试主要是针对现场的工程项目,在完成系统调试后,邀请各方专家进行验收测试。验收测试也可以用于产品系统的交接,它是由使用单位参与,对产品的现场运行能力的测试,主要对系统的常规功能进行测试。
验收测试有时也包括现场的培训。通过对产品的操作,观察测试结果是否符合设计预期,通过测试培训,使用户了解产品的使用和维护等方面的知识。
(4)生产测试中的测试项目主要是与生产环节相关的测试项目,一般的高、低温和老化测试是需要做的,筛选在生产环节中可能出现器件性能下降的问题,以减少设备在现场出现问题的概率,从而提高系统稳定性。
(5)出厂测试的测试项目一般为常规测试项目,不进行对系统有损伤的测试项目。
(6)软件评测一般针对具体的软件进行测试,但是需要借助硬件设备搭建软件的运行环境,根据测试的类型,可以与测试部门商定测试地点。软件评测一般是软件申请方提供软件的主要功能,然后测试部门经过筛选进行测试。
1.2.3 测试的过程
一般的测试过程包括测试计划、测试用例设计、测试执行、测试记录、测试评审和测试报告6个阶段,如图1.7所示。
图1.7 产品测试过程描述
1.测试计划
测试计划是对测试任务的一个统一规划,是对整个测试活动的预知。制订测试计划的首要依据就是对测试对象的了解和测试工作量的评估。
测试前需要对测试对象进行认真的学习、了解其主要正常功能、熟悉其在现场的工作环境,了解其与其他设备的各种接口,以及与产品相关的标准、试验方法和判据等。只有对测试对象非常熟悉,才能有可能更好地完成测试。
测试工作量的评估与产品的技术条件和测试标准有直接的联系,在技术条件中,会明确产品需要进行的各项测试,会规定采用的试验方法及试验的等级。只有对这些试验项目进行估算,才能制订切合实际的测试计划。
测试计划还与产品的需求有关,一般的产品需求中只明确了显性的用户需求,一些隐性的用户需求并没有体现,因此需要自己去挖掘。挖掘产品的隐性用户需求,可以提高测试的全面性。
测试计划需要考虑测试过程中的异常情况,适当留一些时间,比如实验室的占用、测试设备的故障等,这些不确定因素会影响整个测试进程。大的无法预知的因素可以不考虑在内,时间比较长的可以走测试计划变更流程。遇到特殊情况进行计划变更也是没有争议的,特殊情况一般是无法改变和无法控制的情况。
测试计划应具体到天,应明确每天需要做的测试工作、试验项目的测试顺序,当然对同一类的试验项目可以根据实际情况进行细小的调整,除非检验细则中定义的试验顺序是不可以更改试验顺序的,因为试验顺序的调整可能会引起测试结果的不同。没有明确的试验项目的测试顺序,可以根据其影响大小和测试设备的位置进行合理安排。
测试计划中包括测试人员的安排,具体到每项测试由哪几个人在做,都需要进行明确。只有这样,才能保证执行阶段的顺利进行。测试计划中还应包括测试的目的。不同的测试。目的是不同的,这样测试项目也就有所不同。测试用例会进行调整,在执行测试时,就会有所侧重。
有些测试是需要在其他单位进行,也就是委外测试,其测试计划需要根据测试方法、考虑设备搬运和调试等因素进行编写。委外测试的时间更不容易确定,其会受到更多因素的影响。
2.测试用例设计
测试用例的编写一般持续的时间较长,有些产品在设计之初就开始了测试用例的编写。测试用例涉及很多方面。在产品需求设计阶段,就应该有测试人员的参与,参与产品的需求分析,参与产品设计方案的讨论,从而更全面地了解产品、熟悉产品。
根据产品设计思想,融入测试理论,对每项需求进行细化,这样可以将需求分解为多个测试用例。一项产品的基本功能,可以站在不同的角度,以用户的身份进行细化分解,产生多个测试子项分别针对不同的测试目的。
产品需求来源于用户需求和现场需求,只有对现场进行全面调研,与用户进行有效的沟通,才能制定出全面的产品需求,根据需求而来的测试用例才能更全面。
在前期的现场调研中,需要对设备的级联数目进行确定,对设备的负载承载量进行明确,这些都是影响产品设计的因素,否则设计的产品可能会不满足现场的需要。
测试用例中体现产品可靠性、可用性、维护性和安全性方面的性能指标,全面对产品进行测试。
(1)产品的可靠性主要体现在产品能否在规定的环境条件下正常工作、能否抵御来自现场环境中的各种干扰、能否连续长期稳定可靠的工作,以及产品的故障失效率是否满足要求等。
(2)产品的可用性考察产品在使用方面是否方便;响应速度是否满足相关要求;在各种环境条件下,产品的操作是否受到影响;用户操作界面是否友好;产品操作是否符合使用人员的习惯,这一点是很重要的。改变使用人员的思维意识是非常困难的,这就需要在整个设计过程中与现场人员进行充分的沟通,使设计出来的产品符合使用人员的要求,还可以挖掘到一些隐性需求。
(3)产品的维护性主要考察产品对失效的预知功能和设备是否便于更换。一般设备的失效是有一定先兆的,根据这些表象提示相关维护人员进行及时的更换。产品的标示也是属于维护性方面的要求,使用户可以迅速地找出故障的设备。
(4)产品的安全性方面主要考虑操作人员的人身安全。产品工作中,其外壳上产生的高电压,在有人员接触时将会产生伤害,因此产品的外壳是必须接地的,保证操作人员的人身安全。
测试用例主要依赖于产品的技术条件和检验细则。技术条件和检验细则中明确规定产品需要满足的技术要求,一般包括常温的功能测试、故障测试、环境测试、电磁兼容测试和雷电防护测试。
(1)常温功能测试是产品的主要正常功能,是最具代表性的功能,在整个测试过程中都需要进行关注。
(2)故障测试是测试产品故障是否影响其他设备的工作和测试产品的故障处理流程。产品设备的故障不应影响其他设备的工作,不应发生灾害(如火灾等),故障不允许信号升级,应导向安全。
(3)环境测试是范围比较广的测试,包括低温、高温、湿热、振动、冲击、防水、防尘和盐雾等多种试验,旨在考察产品在各种条件下能否正常工作、是否出现性能下降、是否威胁到人身安全。每项测试中有不同的测试方法与试验等级,需要根据产品的相关标准进行选择。
(4)产品的电磁兼容测试主要是电磁抗扰度及敏感度方面的测试,测试产品对电磁干扰的防护能力,测量产品对环境中其他设备的电磁干扰程度。测试包括多个测试项目,模拟现场的干扰,通过测试,改进设计,进一步提高产品的稳定可靠性。
(5)雷电防护测试主要是对系统电源接口、通信端口、I/O端口进行的模拟雷击干扰测试,根据产品的相关标准选择试验波形与试验等级。
测试用例中应明确每项测试的端口、应说明具体的线缆及试验要求,以及测试的预期结果,这样在测试中才易于操作,防止来回找各种标准,延误测试。测试用例应细化至每一步操作的执行结果。
测试用例应全面覆盖产品的标准要求,无法进行模拟测试的需要按照实际的进行测试。测试用例是产品标准要求的具体体现,是整个测试过程的依据。
理论下的测试用例是全面的、无需更改的,但是由于测试用例设计人员的局限、对产品的认识等因素会出现偏差,测试用例可以根据测试实际情况进行调整,每一轮测试后对测试用例进行补充完善,使测试用例越来越全面,越来越符合用户的要求。
3.测试执行
测试执行是对测试用例的逐项测试、保证测试的全面性和有效性。测试不允许偷工减料,测试执行不能受测试人员的主观判断,任何不符合预期的现象都应该被记录。
在执行阶段,测试人员应保持对测试问题的足够敏感性,遇到测试问题一定要寻根究底。因为问题中可能隐藏更大的问题,为产品运行埋下隐患。
测试人员在测试执行中要保持一定的主观能动性,遇到疑问,一定要询问清楚,怀疑有漏测的情况,及时进行补充测试,并记录。
测试执行并不是简单地在执行测试用例,而是对产品符合性的测试。通过测试执行阶段可以加强对产品更深层次的理解。
测试执行阶段是整个测试活动的实施阶段,是测试设计思想的具体体现,一定要认真执行。
测试用例的设计也会考虑每步测试的必要性,尽量让测试简练,避免重复烦琐的测试,否则会带来逆反心理,对实际测试产生一些抵触心理。测试是一种工作,需要讲究测试的艺术;测试是一种寻根究底的探索活动,是一种探险,应该充满激情。
测试用例的设计人员一般也参与具体的测试,通过测试执行,会或多或少的发现测试用例的不妥之处,并及时进行修改完善。
测试执行过程是测试质量的保证阶段,任何遗漏都会影响测试的效果,可能对产品的使用带来隐患。
执行测试需要细心、细致的耐心的态度,按照测试用例的步骤进行测试,认真记录测试记录。
4.测试记录
测试记录与测试执行是并列的一个阶段,测试记录是测试执行的产物,随着测试执行的继续,测试记录也会被更新。测试记录需要如实记录测试过程,如实记录测试现象,不允许夸大或捏造测试结果。
测试记录是测试的结果。测试是否符合预期,若符合预期,预期结果就是测试记录,若不符合预期,出现的现象就是测试记录。当出现测试结果与预期不符的时候,需要重点记录此项测试的操作过程、测试的表象和产品的状态,可以反复进行测试,为设计人员对问题的处理创造条件,提高测试问题的复现率。问题的复现利于发现问题的原因,利于对问题的解决。
测试记录中需要记录测试用到的仪器设备信息,因为不同的测试工具可能带来不同的测试结果。
测试记录可以有详有略,对通过的测试项目可以一笔带过,对出现问题的要详细记录,把测试的前前后后记录清楚。测试执行中的任何不符合预期的情况都应该被记录,是不是问题需要与设计人员进行确认,达不成一致意见的需要会议评审,邀请相关的专家及领导共同来确定。根据测试问题的情况选择测试会议评审是否进行。测试会议评审是对测试问题的讨论,通过会议讨论,消除认识上的差异,对某项设计缺陷做出是否需要修改的决定。有些时候,测试BUG是大家公认的,但是由于某种局限是无法解决的。测试会议评审的会议纪要是需要及时整理的,是需要参与人员的签字确认的,且其可以作为测试结论的依据。
根据问题的影响范围可以将测试问题分为多个级别,一般可以分为严重的问题、一般的问题和建议性的问题3种。
(1)严重的问题指影响系统正常功能的问题,如系统死机、重启、错误动作等。严重的问题可能影响产品的使用,影响产品正常工作。且严重的问题是必须要解决的问题。
(2)一般的问题指影响小,且不影响产品正常使用的问题,如产品记录出现异常、错误等,不利于产品的维护,设备更换很不方便,都可以被认为是一般的问题。一般的问题可以经过评审被认为不需要解决。
(3)建议性的问题一般是指利于操作、维护的建议。对系统的优化建议,产品在升级时可以将其作为参考。
5.测试评审
测试评审是对测试中出现的问题进行讨论、明确需要修改的测试问题,以及下一步测试的具体安排,是在测试执行后进行的。
测试评审一般是测试问题存在争议的时候,或者是无法明确问题的情况下进行的,它是在解决测试中的问题,对无法重现的问题确定处理办法,并确定下一步的工作安排及测试策略。
测试评审不是必须要进行的阶段,根据测试情况进行安排。
6.测试报告
测试报告是整个测试活动的总结。领导比较关注测试报告,一般会对测试报告进行审阅。测试报告应包括测试对象、测试目的和测试用到的工具(设备)的描述,并对测试过程进行简要的描述。
(1)测试对象要明确测试软件的版本及采用的硬件关键器件型号,且包含受控的文件。
(2)测试目的一般是发布、现场试用和认证等。产品的发布测试比认证测试更全面,认证测试一般只进行检验细则中的相关测试,而发布测试还需要进行其他方面的测试,从而保证产品的可靠运行。
(3)测试的依据一般也是要在报告中体现的,测试依据一般是产品的测试用例,测试用例中已经引用产品的相关标准,在报告中不再引用。
(4)测试报告重点记录测试问题,严重的问题应该全部写入报告中,只需要对出现问题的测试项目及现象进行描述。一般的问题和建议的问题可以在报告中进行统计,不进行罗列。
(5)测试报告一般是需要包含测试结论的,测试结论可以结合出现严重问题、一般问题的情况与测试评审情况,得出测试结论。