软件测试误区分析
1984年创刊(双月刊)
ISSN 1009-3664      CN 42-1380/TN

软件测试误区分析
作者:陈君  日期:2018-08-30 

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

摘  要:软件测试作为一个项目研发的必要环节,往往被工程师所忽略,对此产生的误区也层出不穷。文中笔者根据对近年来测试工作的深入思考,介绍了在软件测试中容易被误解的地方,以此来提醒软件测试人员改正自己的错误观点,从而提高测试质量。
关键词:软件测试;误区;测试质量
Abstract:
Although software testing is a necessary part of a project development,it’s often ignored by engineers and there are many misunderstandings in software testing. According to the author’s in-depth thinking on the testing work in recent years,this paper introduces and analyzes some misunderstandings in software testing,to remind software testers to correct their mistakes,thus improve the quality of software testing.
Keywords:Software testing,Misunderstandings,Testing quality
在软件工程中,除了软件开发,软件测试也是十分重要的组成部分,它随着软件产业的日益发展也逐渐趋于成熟。从一开始的无人问津到如今的成长为一门独立学科,软件测试经历了深厚的发展。在软件测试理论与实践方面,我国的研究起步较晚,发展较慢,重视程度较低,到目前为止,许多企业都没有设立专门的测试团队或者测试部门,仅仅由开发人员自我进行测试,效果可想而知。虽然已经有第三方测评机构的诞生,但相对于国外的软件测试水平及技术还是有一定的差距,而且得不到项目人员的重视。在此主要探讨有关软件测试的常见误区。
1忽视对软件需求的提前分析
软件需求是对某软件项目进行细致描述的文档。但实际工程应用中,由于时间以及精力的有限,测试人员往往同时进行多个项目的测试工作,许多测试人员经常在未对需求规格说明进行详细分析的情况下,直接开始测试策划和用例设计,甚至直接对照需求执行测试。
从理论上而言,软件测试的测试和设计确实是依据需求文档进行,但在实际过程中,如果对需求未能进行深入剖析,一旦涉及到接口ICD交互等方面的功能点,以及使用何种模拟器、监控软件等方面时,测试人员往往不易下手。由于国内开发团队和测试团队的独立性,需求往往不一定满足测试的参考要求。更有甚者,由于时间问题,软件测试都已经开始了才对测试说明等文档进行评审,大大增加了测试的风险。因此,在进行测试策划和设计之前,最好与开发人员多进行沟通,在深入分析需求规格说明文档以及各功能点之后,再进行测试,可以达到事半功倍的效果。
2软件质量通过测试来保证
在许多公司或者企业,软件测试团队是对整个企业的产品质量进行保障,甚至等同于质量保证人员。其实这种观点是不正确的。软件质量保证的含义是通过建立一套有计划、有系统的方法,来保证拟定出的标准、步骤、实践和方法能够正确地被所有项目采用[1]。要想提高软件质量,必须要整个开发团队和测试软对的共同努力才能完成。
那么软件测试的作用是什么呢?软件测试是一种监督措施,就像食品药品监督局一样,虽然有这么多监督局的存在,但食品、药品问题依然存在,显然监督机构并不能绝对保证产品质量。因此,即便存在测试团队,也不能绝对保证提升软件质量。
既然软件测试不能提高软件质量,那么如何提高软件质量呢?人的活动才是软件工程中最重要的因素。软件工程实践中,包括软件开发人员、软件设计人员、软件测试人员、质量保证人员、配置管理人员等,他们不是独立存在的,而应该是组成一个有机的整体,如何用高效、科学的方法,将这些人员结合起来,使之能够相辅相成、互相合作,就有可能提高产品质量。而这种高效、科学的方法,目前也尚无定论,需要软件人员长期不懈的探讨才能得出结论。
3深陷寻找只出现过一次的缺陷
在日常测试过程中,测试人员偶尔会发现从未出现过的缺陷,有时甚至是巨大的bug。但是,由于测试时操作无法被重现,使测试人员产生非常不好的感觉。而测试人员为了重现这个缺陷,往往花费较长的时间以及较大的精力[2]。但是结果通常是无功而返,所有的努力的付诸东流,浪费了许多时间。如果测试人员能把这些时间花在其他更有意义的、更需要的地方,说不定会有更优的测试效果。
为了避免这种尴尬情况的发生,测试人员需要牢记自己进行测试时的步骤和方法,以及对应的程序的反馈,以防止在发现偶然性缺陷的时候无法复现而导致的时间浪费。同时,牢记操作步骤和方法还可以避免复现缺陷时的猜测成分,防止深陷寻找缺陷。
4软件缺陷都能进行修复
有不少测试人员认为,测试中发现的所有缺陷都应该可以修复。但其实这种观点是错误的。首先,所有的项目都有时间进度的要求,往往都有紧迫的时间限制,因此某些影响较小且比较难以修复的缺陷可以舍弃;其次,某些看似缺陷的问题其实不是真正意义上的缺陷,它对软件不会产生坏的影响;再者,如果遇到某些缺陷修复风险系数很大,而在项目进度又很紧迫的情况下,另可放弃修复也不必去冒险;最后,不是所有的缺陷都值得开发人员花时间修复,因为缺陷是无穷无尽的[3]。
5无需处理测试人员和开发人员的关系
在软件项目中,由于测试团队与开发团队的独立性,测试人员和开发人员往往不可能一起开展工作。一方面由于交流太少,关系易于疏忽;另一方面是因为测试人员专门挑开发人员的“刺”,很容易导致开发人员心理恐惧。导致开发人员和测试人员的关系日益变差。其实,开发和测试都是为软件服务的,他们的利益是一致的,开发应该和测试做朋友,而不是敌人,尽可能的减少人与人之间的矛盾,客观的看待软件缺陷。
6整体意识上重开发轻测试
在软件工程中,重开发,轻测试似乎是一种普遍现象。在国内,许多企业测试人员与开发人员的比例不足1/3,甚至有部分企业并没有专业的测试人员[4]。而在国外,开发机构有约一半的工作量在进行软件测试,测试费用也相对较多,这是国内无法比拟的。就目前而言,

 【目前共有438篇对该新闻的评论】  【发表评论


  《通信电源技术》杂志网络版 telecom power technologies