测试阶段过程中需要进行测试文档评审和缺陷管理,这不仅可以提高测试效率,而且在项目管理中项目可以根据缺陷收敛趋势平衡产品质量、项目进度与成本三者关系。在测试用例设计时,需要关注逆向测试用例和可靠性测试用例的设计,这样会更加有效地发现产品中隐藏的缺陷,从而提高产品质量。
在线分析仪器又称过程分析仪器,是指直接安装在工艺流程中,对被测介质的组成成分或物性参数进行自动连续分析的一类仪器。为了拓展在线分析仪器的市场,一些公司开始研发或改进相应的在线分析仪器产品。
若使新开发或改进的分析仪器能够在用户现场长期、可靠地运行,除了通过前期的技术预研、设计开发及技术评审等方法保证,还需要通过产品测试对产品的功能、性能、可靠性等方面进行验证,以保证产品质量。目前,在线分析仪器在用户现场暴露出的问题主要集中在软件bug、器件失效、EMC 问题、测量受环境温度影响等。根据Pareto 原则,产品中所有缺陷并不是都可以在测试中发现。但是其中的一些问题,如软件部分bug 和测量受环境影响等一些缺陷可以在测试阶段通过加强测试发现并改进,这不仅需要加强测试人员的质量意识,更需要加深测试人员对测试理论知识的理解和测试技术的掌握。
一、测试基本理论
1.1 测试职责
在线分析仪器测试人员角色根据负责产品模块的类别不同,分可以分为软件测试人员、硬件测试人员、产品测试人员和可靠性测试人员及认证测试人员等。软件测试人员主要负责软件黑盒测试,硬件测试人员主要负责硬件单元测试和硬件与软件的集成测试。可靠性测试人员负责产品可靠性方面的测试,主要有环境测试和寿命测试等,认证测试人员则主要负责产品的CMC 认证、防爆认证等型式试验相关检测项目的测试。产品测试人员的主要职责是协助单元测试和集成测试,执行系统测试、一致性测试和用户测试等,协助分析、解决测试问题。当然不同公司的组织架构会不同,测试人员职责的划分也会不相同。目前,大多分析仪器公司软件测试、硬件测试及可靠性测试主要由产品测试人员完成。
1.2 测试定义
Glenford J.Myers 在《The Art of Software Testing》中从心理学和经济学两方面对测试的定义和测试原则进行了基本的阐述,在该书中测试是指是为了发现错误而执行程序的过程。
目前,对于测试的定义,不同的人对其描述也略有不同。1993 年,IEEE 提出的软件工程标准术语中,将软件测试定义为:使用人工或自动手段来运行或评价某个系统或系统部件的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果和实际结果之间的差别。尽管不同人对测试定义存在差异,然而不同的定义均明确了测试应该是以查找缺陷为目标的一种过程。
1.3 测试目的
测试的目的不仅是为了发现产品缺陷,而且通过分析缺陷分布特征和缺陷产生原因可以帮助项目改进当前开发过程中的一些问题。同时,通过缺陷分析也能帮助我们设计出有针对性的测试用例,提高测试有效性。测试理想目标是达到“产品*”,即使测试过程中没有发现任何缺陷,该过程的测试也具有意义,完整的测试是评价产品质量的有效手段。
1.4 缺陷收敛度
关于缺陷管理的理论研究起步比较晚,发展远未成熟。参考CMM5 中定义规范和目前在线分析仪器行业特点,将产品缺陷按照严重程度分为四级:致命、严重、一般和建议。
通过测试缺陷收敛趋势能够反映被测试产品的质量变化情况,不仅可以辅助项目进行决策,而且也可以做为产品发布的一个重要参考,测试缺陷收敛度评估示例图见图1.在线分析仪器的测试缺陷收敛度可以从以下三个方面进行评估。
1)缺陷累计发现数;
2)各阶段缺陷提交数;
3)缺陷数。
测试缺陷累计发现数趋于稳定和各阶段缺陷提交数趋近于0,表示产品质量相对比较稳定,但是并不代表产品质量好。缺陷数趋势曲线下跌的时候,表示产品质量有所改进,缺陷数趋势曲线逐渐上升时,表示产品质量在持续恶化。缺陷数收敛趋势曲线越趋近于0,产品质量越好。
二、测试方法
根据测试人员对被测对象的了解程度来划分,测试用例设计方法可分为白盒测试和黑盒测试。
白盒测试:又称为结构测试或逻辑驱动测试,必须知道软件或产品内部工作过程,通过测试来检测其内部是否按照需求、设计正常运行。通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例。在线分析仪器一般在单元测试阶段中软件测试和硬件测试采用白盒测试方法,主要验证软件流程、软件算法是否满足需求和硬件信号链路是否正确等。
黑盒测试:又称数据驱动测试或功能测试,是针对软件或产品的功能需求进行测试。通过测试来检测每个功能是否符合需求,不考虑其内部的逻辑结构。下面介绍几种在线分析仪器测试中常用的几种黑盒测试方法。
2.1 等价类划分法
测试人员应该首先了解并掌握的功能测试相关技术是等价类划分,理解这种技术的用法十分重要,因为它是很多其它软件测试技术和途径的基础。等价类是某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入条件不能发现产品或软件缺陷,那么集合中其它输入条件进行测试时也不会发现缺陷。等价类分为有效等价类和无效等价类,有效等价类就是由对产品规格说明有意义的、合理的输入数据所构成的集合;无效等价类就是对产品的规格说明不合理的或无意义的输入数据所构成的集合,设计测试用例时需要同时考虑这两种等价类。
2.2 边界值分析法
从长期的测试工作经验得知,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。使用边界值分析方法设计测试用例,首先应该确定边界情况,输入等价类与输出等价类的边界,是应该着重测试的边界情况。边界值分析方法的基本思想是,选取正好等于、刚刚小于或刚刚大于边界的值作为测试数据,而不是选取等价类中的典型值或者任意值作为测试数据。在测试过程中,考虑了边界条件的测试用例与其他没有考虑边界条件的测试用例相比,具有更高的测试回报率。
2.3 因果图法
等价类划分和边界值分析的测试方法,主要考虑单一输入条件,但是不考虑各个输入条件之间的相互制约关系,也不考虑输入条件的各种组合情况。如果考虑使用一种适合于描述多种输入条件的组合,产生多个相应动作的测试方法,可以使用因果图,因果图法适用于多种条件的组合、相应产生多个结果的情况。在较为复杂的情况下,这个测试方法能有效地帮助我们检查多种条件组合下的输出是否正确,并且设计出、非冗余的测试用例。
2.4 错误推测法
错误推测法,基于经验和直觉推测产品中可能存在的各种错误,从而有针对性的设计测试用例的方法。错误推测方法的基本思想是,根据以往的工作经验推测出产品中所有可能存在的错误和容易发生错误的特殊情况,根据他们选择测试方法和设计测试用例。
当然,还有其他一些测试方法可以在测试用例设计中使用,如:正交设计法、特殊值法、流程分析法和组合设计法等。各种测试方法各有所长,应该针对产品的具体需求,选择合适的测试方法,设计的测试用例,有效地将产品中隐藏的缺陷揭露出来。
三、结论
在线分析仪器的测试是保证产品质量一项非常重要的工作,测试人员需要掌握丰富的测试理论知识和测试技术,合理设计测试用例才能有效地发现产品中隐藏的缺陷,尤其软件中的逆向测试用例和产品可靠性测试用例的设计。在实际的工作中发现在线分析仪器系统测试阶段过程,通过逆向测试用例和可靠性测试用例发现的缺陷数比例的确很高。随着测试技术的发展,越来越多的测试方法会被应用在分析仪器行业中,这将有效地提高测试效率和产品质量。