前言
1 测试人员的角色
1)测试人员是项目的前灯
一个项目就像一次旅行,而大多数值得开发的项目更像是夜间在山里开越野车,这些项目需要前灯,而测试员要照亮前面的道路,使程序员和经理尽管还在拿着地图争吵,但是至少可以看清他们在哪儿,要从什么样的路面上开过去,离悬崖峭壁有多远。
2)测试人员的使命决定要做得一切(选择1-2项)
快速找出重要软件的问题
对产品质量提出总体评估
确认产品达到某种具体的标准
帮助客户改进产品质量和可测试性
保证测试过程能够达到可分辨责任的标准
采用特定的方法集或遵循特定的规划集
帮助预测和控制支持成本
帮助客户改进其过程
以最小成本、时间或尽可能减少副作用的方式,完成自己的工作
为满足特定客户要求,完成所有必要的工作
3)测试人员为很多客户服务
测试人员是否成功,主要是看其是否很好的满足了客户的要求和最佳利益。
4)迅速找出重要问题
首先测试经过修改的部分
首先测试核心功能
首先测试功能再测试可靠性
首先测试常见威胁
首先测试影响大的问题
首先测试最需要的部分
5)跟着程序员走
在测试员测试程序员正在编写或刚刚完成的程序时,测试员的反馈有助于提高程序员的工作效率,尽可能建立最短、最快的反馈环路。
6)测试员关注失效,客户才能关注成功
测试是项目团队中唯一不直接关注成功的角色,测试人员关注失效,是因为这可以增加发现失效的机会。
7)不会发现所有问题
测试员的任务就是找出并报告重要的问题,但是不会发现所有的问题。
8)测试不能保证质量
测试并不是质量的卫士,测试人员即不会提高质量,也能降低质量,测试人员的任务可能叫做“质量保证”,仅仅只是提供促进质量保证的信息。
9)别指望任何人会理解测试
让客户了解为了有效的完成测试工作需要哪些条件,完全要靠测试员自己。
2 测试人员的思考方式
测试人员并不是抱怨,他们提供的是证据;测试员并不喜欢征服,他们喜欢打破产品没有问题的幻觉;测试人员并不喜欢发布坏消息,他们喜欢把客户从虚假信念中解放出来。
优秀测试和平庸测试之间的差别在于测试员如何思考:测试员的测试设计选择,解释所观察到的现象的能力,以及非常令人信服的分析描述这些现象的能力。
测试并不是只执行测试用例,并与预期结果进行比较,测试员必须设计测试,并确定预期的舒服,而且这种设计几乎从来没有得到过应该测试什么的权威指导。大多数的测试设计都是基于推断,或者基于与测试员的推断有关的经验。
优秀的测试员会进行技术性(对技术建模并理解因果关系的能力)、创新性(产生思想并看到可能性的能力)、批判性(评估思想并进行推断的能力)和实用性(把想法付诸于实施的能力)的思考。
3 测试方法
1)等价类划分法
2)边界值分析法
3)判定表法
4)因果图法
5)状态迁移图法
6)流程分析法
7)正交试验法
8)错误推测法
1 目的及适用范围
1.1为公司产品在各个测试过程中建立测试要求和评价标准,尽可能通过不同的测试手段挖掘由设计、制造工艺、元器件品质、零部件配合而引起的潜在问题,在产品投放市场之前解决已发现的问题点。
1.2 适用于产品的单元测试、集成测试、系统测试、现场测试、试生产测试。
2 职责
2.1 测试部组织制定产品的测试类别、测试要求与评价标准。
2.2 研发组织单元测试、集成测试和系统测试,改进产品设计。
2.3 工程部和研发部组织产品的现场测试试验。
3 产品单元测试、集成测试、系统测试流程及测试结果评价标准
3.1 单元测试、集成测试和系统测试执行以下流程框架:
3.2 单元测试、集成测试和系统测试的介入条件及测试重点,如表1所示:
表1 单元测试、集成测试、系统测试的介入条件
类别 | 测试介入条件 | 测试者∕辅助者 | 测试重点 | 输出结果 |
单元测试 | 1. 系统级或部件级产品的独立硬件单元模块,须组织单元测试; 2. 立项书或开发计划中规定的必须进行单元测试的产品。 | 研发人员∕ 测试人员 | 单元功能的实现;信号传递路线;输入和输出特性及其匹配 | 单元测试报 告及其评审 记录。 |
集成测试 | 1. 含有单元模块的系统级产品或部件级产品,均需组织集成测试; 2. 立项书或开发计划中规定的必须进行集成测试的产品。 | 研发人员∕ 测试人员 | 各单元模块之间的接口匹配;信号的完整性;各模块之间的功能组合是否互相干扰 | 集成测试报 告及其评审 记录;bug list 及其评审记录。 |
系统测试 | 所有研发项目,包括已立项和未立项的项目,都必须进行系统测试。 | 测试人员∕研发人员 | 以负荷测试或压力测试、安装和反安装测试、恢复测试、安全性测试、兼容性测试等手段,检测系统各硬件之间、硬件与软件之间的配合是否出错;系统的功能是否满足客户需求与设计要求 | 系统测试报告及其评审记录;bug list 及其评审记录。 |
3.3 单元测试
3.3.1 单元的概念
3.3.1.1 硬件单元,是指通过硬接口连接到系统级产品或部件级产品的,具有明确功能定义的最小可测试硬件模块。
3.3.1.2 软件单元,指有明确的功能、有规定的定义、与其它部分有明确接口的最小可测试软件模块。
3.3.2单元测试由研发项目组负责实施。负责测试的人员需制定单元测试规范,确定具体的测试项目和对应的测试方法和合格标准。
3.3.3 在确定具体的单元测试项目时,必须覆盖表2规定的测试类别。
3.3.4 单元测试的要求及评价标准见下表2:
表2 单元测试类别、要求及测试结果评价标准
测试类别 | 必测/选测 | 测试要求 | 测试评价标准 |
单元功能测试 | 必测 | 根据项目的功能规范制定具体的单元功能测试项目,确定测试方法和合格标准,组织测试。 | 功能达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
信号测试 | 必测 | 根据项目的设计规范,对单元所产生的各类信号和外部输入到本单元的信号的形态、时序、结构、传递路线等,设定测试项目,确定测试方法和合格标准,组织测试。 | 信号达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
接口特性 | 必测 | 根据设计规范,对输入和输出接口的特性,以及输入和输出接口的匹配要求,确定测试方法和合格标准,组织测试。 | 接口特性达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
3.4 集成测试
3.4.1 集成测试,将根据产品或项目的复杂程度确定是否实施,在立项书或项目计划中明确规定。
3.4.2一经确定进行集成测试,则由研发项目组负责实施。负责测试的人员需制定测试规范,确定具体的测试项目、测试方法和合格标准。
3.4.3 在确定具体的集成测试项目时,必须覆盖表3规定的测试类别。
3.4.4 集成测试的要求及评价标准见表3:
表3 集成测试类别、要求及测试结果评价标准
测试类别 | 必测/选测 | 测试要求 | 测试评价标准 |
各单元之间的接口匹配 | 必测 | 对互相连接的单元,根据其接口的匹配要求,设定测试项目,确定测试方法和合格标准,组织测试。 | 接口匹配达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
信号完整性测试 | 必测 | 根据设计规范,对信号通过各单元及其接口时的特性和要求,设定测试项目,确定测试方法和合格标准,组织测试。 | 信号完整性达到规定要求,通过测试。否则执行表5 和表6的规定 |
各单元之间的功能干扰测试 | 必测 | 类似表2的单元功能测试项目,在各单元集成后,再逐一测试每个单元的功能,确保被测单元的功能未受到其它单元的干扰,为此确定测试方法和合格标准, 组织测试 | 单元功能未受到干扰,通过测试。否则执行表5 和表6 的规定。 |
性能指标试验 | 必测 | 根据项目设计性能要求,对仪器的计量性能,确定试验方法和合格标准,组织试验。 | 计量性能达到规定要求,否则执行表5 和表6 的规定。 |
3.5 系统测试
3.5.1系统测试由专职测试人员负责实施。负责测试的人员需制定系统测试规范,确定具体的测试项目和对应的测试方法和合格标准。
3.5.2 在确定具体的系统测试项目时,必须满足3.5.3或3.5.4条的规定。
3.5.3如产品有国家或行业强制标准或市场准入标准(如入网标准),则测试项目必须覆盖标准的技术条件,并采用其测试方法。当测试结果不符合标准的规定时,按表5和表6进行结果判定。
3.5.4 如无强制标准或市场准入标准,则测试项目必须覆盖表4规定的必测类别,并根据被测产品的特点和使用环境选定选测项:
表4 系统测试类别、要求及测试结果评价标准
测试类别 | 必测/选测 | 测试要求 | 测试评价标准 |
系统功能测试 | 必测 | 根据项目的功能规范,针对被测产品必须实现的功能,设定具体的测试项目,确定测试方法和合格标准,组织测试。 | 被测产品的功能达到规定要求,通过测试。否则执行表5和表6 的规定。 |
负荷测试或压力测试 | 必测 | 针对被测试产品的使用特点,或国家可靠性标准的相关条款,在大负荷条件下设定至少一项测试项目,如大话务量测试、过流/过压/过载测试,确定测试方法 和合格标准,组织测试。 | 负荷测试项目达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
安装和反安装测试 | 必测 (软件) | 针对软件的完全升级或部分升级安装与反安装,设定最少一个测试项目,确定测试方法和合格标准,组织测试。 | 能正常进行软件的安装与反安装,通过测试。否则执行表5 和表6 的规定 |
恢复测试 | 必测 | 设定至少一个测试项目,当被测产品发生死机或崩溃、硬件错误、其它灾难性故障时,在人工干预或非人工干预条件下的恢复能力,确定测试方法和合格标 准,组织测试。 | 被测产品能恢复正常使用,通过测试。否则执行表5 和表6的规定。 |
兼容性测试 | 必测 | 设定至少一个测试项目,以验证被测产品在公司的不同平台、硬件、操作系统上的表现,确定测试方法和合格标准,组织测试。 | 被测产品能兼容规定的平台、硬件、操作系统,通过测试。否则执行表5 和表6 的规定。 |
机械应力测试 | 选测 | 当被测试产品含有比较复杂的机械结构连接时,需针对产品结构特点,在振动、冲击、跌落、抗拉伸、扭矩等项目中选定一个或若干个测试项目,确定测试方 法和合格标准,组织测试。 | 机械应力测试项目达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
环境应力测试 | 选测 | 针对被测试产品的储存环境和工作环境,设计高温、低温、高湿的储存测试项目,以及在关机/开机条件下设定高低温冲击测试或高低温循环测试项目,确定测试方法和合格标准,组织测试。 | 环境应力测试项目达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
寿命测试 | 选测 | 针对被测试产品的使用特点,为使用频率高的产品局部设定寿命测试项目,如按键区、触摸点击区、插拔、拆卸重装,确定测试方法和合格标准,组织测试。 | 寿命测试项目达到规定要求,通过测试。否则执行表5 和表6 的规定。 |
安全性测试 | 选测 | 针对被测产品受到内部或外部非法侵入、故意损坏时的表现,设定测试项目,确定测试方法和合格标准,组织测试。 | 被测产品的表现符合要求,通过测试。否则执行表5 和表6的规定。 |
性能测试 (计量、温漂、长期稳定性) | 必测 | 针对被测产品的计量性能,设定测试项目,确定测试方法和合格标准,组织测试。 | 被测产品的计量性能符合要求,通过测试。否则执行表5 和表6 的规定。 |
电压/ 电流波动测试 | 必测 | 针对被测产品在其输入端的电压/电流达到或超出或低于其规定极限时,其输出端的表现,设定测试项目,确定测试方法和合格标准,组织测试。 | 被测产品的输出端符合规定要求,通过测试。否则执行表5 和表6 的规定 |
电磁兼容性测试 | 选测 | 当系统级产品在复杂的电磁环境下工作,或国家、行业规定必须进行电磁兼容性测试时,设定至少一个测试项目,确定测试方法和合格标准,组织测试。 | 被测产品的电磁兼容性符合规定要求,通过测试。否则执行表5 和表6 的规定。 |
3.6 单元、集成、系统测试中偶发性故障的处理方法和评价标准
3.6.1在单元测试、集成测试和系统测试中,当某项或某几项测试项目出现偶发性故障(偶发性故障见表6的定义)时,必须对该项或该几项测试项目组织再测试,由再测试结果作出判定。
3.6.2 再测试可选择表5的其中一个方案进行:
表5 偶发性故障再测试的要求及测试结果判定方法
再测试方案 | 测试要求 | 判定方法 |
方案一:加倍测试 | 采用原有测试环境、测试方法和合格标准,在不增加被测产品数量的条件下,将测试次数增加一倍、测试时间增加一倍的方式进行再测试。 | 1. 如经过该方案测试后,不再出现原有故障(或bug),则通过测试; 2.如经过该方案测试后,继续出现原有故障(或bug),项目组需组织评估分析,若无法证明被测产品与故障无关,则不通过,必须更改产品设计。 |
方案二:扩大数量测试 | 保证采用与原来相同的测试环境、测试方法和合格标准,在不增加每个被测产品的测试次数和测试时间的条件下,将被测产品的数量增加一倍的方式进行再测试。 | 1. 如经过该方案测试后,不再出现原有故障(或bug),则通过测试; 2.如经过该方案测试后,继续出现原有故障(或bug),项目组需组织评估分析,若无法证明被测产品与故障无关,则不通过,必须更改产品设计。 |
3.6.3再测试过程中被测产品如出现新故障,且新故障属于单元∕集成∕系统测试规范内的故障,判定为不通过测试,必须更改设计。
3.7 单元∕集成∕系统测试中多发性和偶发性故障的判定与处置见表6:
表6 多发性故障和偶发性故障的判定与处置方法
故障等级 | 故障类别 | 故障定义与描述 | 结果判定 |
A级 | 多发性故障 | 被测产品在某测试项目中,同一故障出现的次数,占该测试项目总测试次数的比例≥10%。 | 项目组组织评估分析,若无法证明被测产品与故障无关,产品必须重新设计或更改设计,并组织重新测试或回归测试。 |
B级 | 偶发性故障 | 被测产品在某测试项目中,同一故障出现的次数,占该测试项目总测试次数的比例<10%。 | 按表5 组织再测试和判定。 |
3.8 重新设计或更改设计后的回归测试,必须遵从以下规定:
1)需对重新设计或更改设计进行评审,如评审结果确认,重新设计或更改设计的内容不影响到产品未更改部分的功能、性能时,则回归测试只进行与更改有关的测试项目,不进行其它测试项目。
2)然而,如评审结果确认,重新设计或更改设计的内容已经影响到产品未更改部分的功能、性能时,则回归测试除进行与更改有关的测试项目外,还需组织受其更改影响的相关功能、性能的测试项目。
3)回归测试结果的评价标准,执行本文3.3~3.7条的规定。
4 产品的现场测试及试验结果评价标准
4.1 产品的现场测试流程,执行《现场测试程序》的规定。
4.2工程部和测试人员组织现场测试,包括:制定现场测试规范或方案并组织评审;确定试验项目、试验方法和合格标准;配置试验环境;按评审通过的试验规范或方案实施试验,记录试验过程和结果并组织试验结果评审。
4.3 研发项目组参与现场测试规范或现场测试方案及试验结果的评审。
4.4 现场测试项目时可参照系统测试规范的测试项目具体制定,但无论如何必须包括以下三方面的试验:
1)客户常用功能的试验项目;
2)客户常用信令或常规网络连接方式的试验项目;
3)产品安装与维护的试验项目;
4)产品在异常使用条件下的试验项目;
5)产品在现场的性能试验项目;
4.5 现场测试结果的评价标准,执行以下规定:
1)如出现表2至表4的关联故障(关联故障的定义见《现场测试程序》),并按表5的规定再测试后,若研发项目组无法证明被测产品与故障无关,则现场测试不通过,需更改产品设计后再组织现场测试。
2)如出现软件或硬件无法完全或部分安装、无法卸载恢复的故障,再次进行第二次安装仍无法完成,并按表5的规定再测试后,若研发项目组无法证明被测产品与故障无关,则现场测试不通过,需更改产品设计后再组织现场测试。
3)如出现软件或硬件故障后,所测试产品在未经重新设计、设计更改、补丁的情况下,无法通过自动干预或人工干预的手段恢复产品的正常使用,继续进行余下试验项目,并按表5的规定再测试后,若研发项目组无法证明被测产品与故障无关,则现场测试不通过,需更改产品设计后再组织现场测试。
5 产品试生产测试
5.1 试生产测试的目的:消除产品生产中高故障率和故障集中的工艺或材料上的原因。
5.2 产品的试生产测试流程,执行《试生产测试程序》的规定。
5.3供应链和测试人员组织试生产测试,包括:制定试生产测试规范或方案并组织评审;确定试验项目、试验方法和合格标准;按评审通过的试验规范或方案实施试验,记录试验过程和结果并组织试验结果评审。
5.4 研发项目组参与现场测试规范或现场测试方案及试验结果的评审。
5.5 现场测试项目时可参照系统测试规范的测试项目具体制定,但无论如何必须包括以下三方面的试验:
1)客户常用功能的试验项目;
2)系统测试遗留问题;
3)产品计量性能;
4)产品对外接口;
5)装配整测工艺;
6)物料准确性及齐套性;
5.6 试生产测试结果的评价标准,执行以下规定:
1)如出现表2至表4的关联故障,并按表5的规定再测试后,若研发项目组无法证明被测产品与故障无关,则现场测试不通过,需更改产品设计后再组织现场测试。
2)如出现软件或硬件无法完全或部分安装、无法卸载恢复的故障,再次进行第二次安装仍无法完成,并按表5的规定再测试后,若研发项目组无法证明被测产品与故障无关,则现场测试不通过,需更改产品设计后再组织现场测试。
3)如出现软件或硬件故障后,所测试产品在未经重新设计、设计更改、补丁的情况下,无法通过自动干预或人工干预的手段恢复产品的正常使用,继续进行余下试验项目,并按表5的规定再测试后,若研发项目组无法证明被测产品与故障无关,则现场测试不通过,需更改产品设计后再组织现场测试。