软件测试误区分析

2018-01-28 07:16
通信电源技术 2018年7期
关键词:测试人员开发人员软件测试

陈 君

(中国电子科技集团公司第十研究所 天奥软件测评中心,四川 成都610000)

在软件工程中,除了软件开发,软件测试也是十分重要的组成部分,它随着软件产业的日益发展也逐渐趋于成熟。软件测试从一开始的无人问津到如今的成长为一门独立学科,在软件测试理论与实践方面,我国的研究起步较晚,发展较慢,重视程度较低,到目前为止,许多企业都没有设立专门的测试团队或者测试部门,仅仅由开发人员自我进行测试,效果可想而知。虽然已经有第三方测评机构的诞生,但相对于国外的软件测试水平及技术还是有一定的差距,而且得不到项目人员的重视。在此主要探讨有关软件测试的常见误区。

1 忽视对软件需求的提前分析

软件需求是对某软件项目进行细致描述的文档。但实际工程应用中,由于时间以及精力有限,测试人员往往同时进行多个项目的测试工作,许多测试人员经常在未对需求规格说明进行详细分析的情况下,直接开始测试策划和用例设计,甚至直接对照需求执行测试。

从理论上而言,软件的测试和设计确实是依据需求文档进行,但在实际过程中,如果对需求未能进行深入剖析,一旦涉及到接口ICD交互等方面的功能点,以及使用何种模拟器、监控软件等方面时,测试人员往往不易下手。由于国内开发团队和测试团队的独立性,需求不一定满足测试的参考要求。更有甚者,由于时间问题,软件测试都已经开始了才对测试说明等文档进行评审,大大增加了测试的风险。因此,在进行测试策划和设计之前,最好与开发人员多沟通,在深入分析需求规格说明文档以及各功能点之后,再进行测试,可以达到事半功倍的效果。

2 软件质量通过测试来保证

在许多公司或者企业,软件测试团队是对整个企业的产品质量进行保障,甚至等同于质量保证人员。其实这种观点是不正确的。软件质量保证的含义是通过建立一套有计划、有系统的方法,来保证拟定出的标准、步骤、实践和方法能够正确地被所有项目采用[1]。要想提高软件质量,必须要整个开发团队和测试人员的共同努力才能完成。

那么软件测试的作用是什么呢?软件测试是一种监督措施,就像食品药品监督局一样,虽然有这么多监督局的存在,但食品、药品问题依然存在,显然监督机构并不能绝对保证产品质量。因此,即便存在测试团队,也不能绝对保证提升软件质量。

既然软件测试不能绝对保证提高软件质量,那么如何提高软件质量呢?人的活动才是软件工程中最重要的因素。软件工程实践中,包括软件开发人员、软件设计人员、软件测试人员、质量保证人员、配置管理人员等,他们不是独立存在的,而应该是组成一个有机的整体,采用高效、科学的方法,将这些人员结合起来,使之能够相辅相成、互相合作,就有可能提高产品质量。而这种高效、科学的方法,目前也尚无定论,需要软件人员长期不懈的探讨才能得出结论。

3 深陷寻找只出现过一次的缺陷

在日常测试过程中,测试人员偶尔会发现从未出现过的缺陷,有时甚至是巨大的bug。但是,由于测试时操作无法被重现,而测试人员为了重现这个缺陷,往往花费较长的时间以及较大的精力[2]。但是结果通常是无功而返,所有的努力付诸东流,浪费了许多时间。如果测试人员能把这些时间花在其他更有意义的、更需要的地方,说不定会有更优的测试效果。

为了避免这种尴尬情况的发生,测试人员需要牢记自己进行测试时的步骤和方法,以及对应的程序的反馈,以防止在发现偶然性缺陷的时候无法复现而导致的时间浪费。同时,牢记操作步骤和方法还可以避免复现缺陷时的猜测成分,防止深陷缺陷误区寻找。

4 软件缺陷都能进行修复

有不少测试人员认为,测试中发现的所有缺陷都应该可以修复,但其实这种观点是错误的。首先,所有的项目都有时间进度的要求,往往都有紧迫的时间限制,因此某些影响较小且比较难以修复的缺陷可以舍弃;其次,某些看似缺陷的问题其实不是真正意义上的缺陷,它对软件不会产生坏的影响;再者,如果遇到某些缺陷修复风险系数很大,而在项目进度又很紧迫的情况下,宁可放弃修复也不必去冒险;最后,不是所有的缺陷都值得开发人员花时间修复,因为缺陷是无穷无尽的[3]。

5 无需处理测试人员和开发人员的关系

在软件项目中,由于测试团队与开发团队的独立性,测试人员和开发人员往往不可能一起开展工作。两个团队一方面由于交流太少,关系易于疏忽;另一方面是因为测试人员专门挑开发人员的“刺”,很容易导致开发人员心理排斥。导致开发人员和测试人员的关系日益变差。其实,开发和测试都是为软件服务的,他们的利益是一致的,开发应该和测试做朋友,而不是敌人,尽可能地减少人与人之间的矛盾,客观地看待软件缺陷。

6 整体意识上重开发轻测试

在软件工程中,重开发,轻测试似乎是一种普遍现象。在国内,许多企业测试人员与开发人员的比例不足1/3,甚至有部分企业并没有专业的测试人员[4]。甚至有项目经理持有“测不测都不要紧,只要有测试报告就行”的观点,可见对测试的轻视。而在国外,开发机构有约一半的工作量在进行软件测试,测试费用也相对较多,这是国内无法比拟的。就目前而言,国内企业管理层对软件测试的认知程度还远远低于国外,开发人员更是如此。只有当管理层和基层开发人员共同意识到软件测试的重要性,而不是重开发轻测试的时候,软件产品的质量才有可能得到真正的保证。

7 忽略安装性测试

安装性测试是对软件安装过程的测试,是为了发现软件安装过程中的缺陷。但由于以往经验,安装性测试中通常不会发生问题,导致测试人员往往忽视安装性检测。另一方面,测试人员接手被测软件的时候,往往已经由开发人员安装完毕,会使测试人员误以为安装功能的正确性,给测试人员“安慰剂效应”,导致测试人员忽视安装性的测试。同时,即便测试人员主动进行,由于安装次数较少,并不能实际反映安装性问题。

为了解决此类问题,可以进行以下操作:首先由测试人员自行安装软件,然后卸载,最后再次安装软件,考察软件安装完毕后能否正常运行。其次,在卸载软件的过程中,强制终止卸载,然后再次卸载软件,考察能否完成软件的卸载。再者,在安装软件途中,强制终止安装,然后再次安装软件,考察能否正确安装。最后,也是容易忽略的一点,在已经安装好本软件的情况下,再次安装本软件,考察软件能否阻止安装。

8 测试人员无需开发技能

许多人认为,随着目前测试工具的完善和发展,测试人员只需要会操作测试工具以及会一点脚本语言便可以进行测试工作,并不需要对软件开发进行专业研究与学习。另一方面,由于黑盒测试的广泛使用,配置项测试又多用黑盒测试[5],产品的功能性更值得测试人员的关注,无需懂得太多的开发知识。导致这种观点产生的主要原因是不了解软件测试的深层价值。软件开发需要软件测试的支持,软件测试也需要为软件开发服务,如果测试人员不懂得开发,如何在测试过程中对开发提出建设性意见和建议呢?

9 结束语

软件测试是为了保证开发出来的产品具有高效率和高质量的过程。虽然我国软件测试起步较晚,但随着软件市场的发展,软件测试将会越来越重要[6]。本文根据实际测试过程中常见问题,提出了有关测试的几点误区,可以修正软件测试人员的错误认识,对提高测试质量具有积极的影响。

猜你喜欢
测试人员开发人员软件测试
论职务犯罪侦查中测谎技术的应用与完善*
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
Semtech发布LoRa Basics 以加速物联网应用
EXCEL和VBA实现软件测试记录管理
浅析软件测试中的心理学应用
软件测试工程化模型及应用研究
绿植防辐射只是个传说,是真的吗?
后悔了?教你隐藏开发人员选项
三星SMI扩展Java论坛 开发人员可用母语