摘要:市场对软件质量重要性的认识逐渐增强,但是由于还存在部分公司软件项目过程不规范,导致重视编码和轻视测试的现象。本文重点介绍代表性的认识错觉,并作了剖析和相应的解释。

  关键词:软件测试

  随着软件规模的不断扩大,软件设计的复杂程度不断提高,软件开发中出现错误或缺陷的机会越来越多,而市场对软件质量重要性的认识逐渐增强,所以,软件测试在软件项目实施过程中的重要性日益突出,但是由于还存在部分公司软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性,测试方法和流程等还存在很多错误的认识。这进一步影响了软件测试活动的发展和真正提高软件测试质量。一下列举了几种有代表性的认识错觉,并作了相应的解释:

  一、软件测试普遍被认为是在开发后开始执行

  软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计执行测试。因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。

  二、软件测试人员承担发布后所有的质量问题

  这种认识很打击测试人员的积极性。软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计出来的。出现软件错误不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,可能来自混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

  三、公司和软件测试人员都不重视测试

  软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具,新流程,新测试设计方法都在不断更新,需要掌握和学习很多测试知识。所以,具有编程经验的程序员不一定是一名的测试工程师。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实践经验和不断学习精神。这是不重视软件测试的表现,也是软件项目过程管理混乱的表现,必然会降低软件测试的质量。一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划对项目实施过程中任何问题,都要有风险分析和相应的对策,不要因为开发进度的延期而简单的缩短测试时间,人力和资源。

  四、程序员认为测试与我无关

  开发和测试是相辅相成的过程,需要软件测试人员,程序员和系统分析师等保持密切的联系,需要更多的交流和协调,以便提高测试效率。另外,对于单元测试主要应该由程序员完成,必要时测试人员可以帮助设计测试用例。