来自:本地化测试网 作者:崔启亮 [2004/03/08]
摘要
随着市场对软件质量的不断提高,软件测试不断受到重视,但是由于总体上,国内软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性、测试方法和流程等还存在很多错误的认识。根据作者的软件工作经验,本文列举了六种有代表性的认识误区,并作了剖析和相应的解释。希望对软件行业的技术和管理人士,正确认识软件测试起到一定的作用。
关键字:软件测试 软件过程
正文
随着软件规模的不断扩大,软件设计的复杂程度不断提高,软件开发中出现错误或缺陷的机会越来越多。同时,市场对软件质量重要性的认识逐渐增强。所以,软件测试在软件项目实施过程中的重要性日益突出。但是,现实情况是,与软件编程比较,软件测试的地位和作用,还没有真正受到重视,对于很多人(甚至是软件项目组的技术人员)还存在对软件测试的认识误区,这进一步影响了软件测试活动的开展和真正提高软件测试质量。
误区之一:软件开发完成后进行软件测试
人们一般认为,软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。据此,认为软件测试只是软件编码后的一个过程。这是不了解软件测试周期的错误认识。
软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。
误区之二:软件发布后如果发现质量问题,那是软件测试人员的错
这种认识很打击软件测试人员的积极性。软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计出来的。出现软件错误,不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,可能来自于混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。
误区之三:软件测试要求不高,随便找个人多都行
很多人都认为软件测试就是安装和运行程序,点点鼠标,按按键盘的工作。这是由于不了解软件测试的具体技术和方法造成的。随之软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具,新流程,新测试设计方法都在不断更新,需要掌握和学习很多测试知识。所以,具有编程经验的程序员不一定是一名优秀的测试工程师。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实践经验和不断学习精神。
误区之四:软件测试是测试人员的事情,与程序员无关
开发和测试是相辅相成的过程,需要软件测试人员、程序员和系统分析师等保持密切的联系,需要更多的交流和协调,以便提高测试效率。另外,对于单元测试主要应该由程序员完成,必要时测试人员可以帮助设计测试样例。对于测试中发现的软件错误,很多需要程序员通过修改编码才能修复。程序员可以通过有目的的分析软件错误的类型、数量,找出产生错误的位置和原因,以便在今后的编程中避免同样的错误,积累编程经验,提高编程能力。
误区之五:项目进度吃紧时少做些测试,时间富裕时多做测试
这是不重视软件测试的表现,也是软件项目过程管理混乱的表现,必然会降低软件测试的质量。一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划,对项目实施过程中的任何问题,都要有风险分析和相应的对策,不要因为开发进度的延期而简单的缩短测试时间、人力和资源。因为缩短测试时间带来的测试不完整,对项目质量的下降引起的潜在风险,往往造成更大的浪费。克服这种现象的最好办法是加强软件过程的计划和控制,包括软件测试计划、测试设计、测试执行、测试度量和测试控制。
误区之六:软件测试是没有前途的工作,只有程序员才是软件高手
由于我国软件整体开发能力比较低,软件过程很不规范,很多软件项目的开发都还停留在“作坊式”和“垒鸡窝”阶段。项目的成功往往靠个别全能程序员决定,他们负责总体设计和程序详细设计,认为软件开发就是编写代码,给人的印象往往是程序员是真正的牛人,具有很高的地位和待遇。因此,在这种环境下,软件测试很不受重视,软件测试人员的地位和待遇自然就很低了,甚至软件测试变得可有可无。随着市场对软件质量的不断提高,软件测试将变得越来越重要,相应的软件测试人员的地位和待遇将会逐渐提高。在微软等软件过程比较规范的大公司,软件测试人员的数量和待遇与程序员没有多大差别,优秀测试人员的待遇甚至比程序员还要高。软件测试将会成为一个具有很大发展前景的行业,软件测试大有前途,市场需要更多具有丰富测试技术和管理经验的测试人员,他们同样是软件专家。
参考文献
[1] 实用软件测试方法与应用,飞思科技产品研发中心,北京电子工业出版社,2003年8月第一版
分享到:
相关推荐
软件测试认识的五个误区软件测试误区之一:软件开发完成后进行软件测试人们一般认为,软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。据此,认为软件测试只是软件编码后...
软件测试用例几个认识误区软件测试误区之一:测试输入数据设计方法等同于测试用例设计方法现在一些测试书籍和文章中讲到软件测试用例的设计方法,经常有这样的表述:测试用例的设计方法包括:等价类、边界值、因果图...
软件测试的五大误区软件测试误区之一:软件开发完成后进行软件测试人们一般认为,软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。据此,认为软件测试只是软件编码后的一...
避免测试用例设计的几个误区软件测试1、能发现到目前为止没有发现的缺陷的用例是好的用例:首先要申明,其实这句话是十分有道理的,但我发现很多人都曲解了这句话的原意,一心要设计出发现“难于发现的缺陷”而陷入...
软件生命周期涵盖了从软件概念的提出到软件退役的整个过程,主要包括需求分析、设计、编码、测试和维护几个阶段。 ##### 3.1.1 需求管理 需求管理是软件开发的第一步,它确保软件的功能和特性满足最终用户的需求,...
对于想要进入这个领域的从业者来说,了解软件测试的基本概念和发展方向是非常必要的。 ##### 1.1 个人职业发展方向 在软件测试领域,个人可以根据自己的兴趣和特长选择不同的发展路径,例如成为专业的测试工程师、...
未来几年内,以下几个方向值得关注: - **自动化测试**:越来越多的企业采用自动化测试来提高效率。 - **AI驱动的测试**:利用人工智能技术辅助测试,比如智能缺陷检测。 - **持续集成/持续部署(CI/CD)**:集成...
究其原因主要是存在着对于软件测试的诸多误解。本文试图对一些比较普遍的关于测试的误解进行剖析,并且在测试对于软件产品质量可能带来的更深远的影响方面,也进行了论述。 测试在软件开发过程中一直都是备受关注...
通过以上内容,我们可以看出软件测试不仅仅是简单的验证功能,而是一个涉及多个层面、需要综合运用各种技术和方法的复杂过程。对于软件测试人员而言,不断学习新知识、掌握最新工具和技术、提高自身综合素质是非常...
单元测试作为软件测试的基础,其重要性主要体现在以下几个方面: - **时间管理**:良好的单元测试能够大大缩短后续集成测试及系统测试所需的时间。相反,如果忽视单元测试,将会在后续阶段遇到更多难以预料的问题,...
本节介绍了几种常见的软件开发过程模型,如瀑布模型、敏捷开发模型等,并讨论了各自的优缺点及适用场景。 **关键知识点:** - **瀑布模型:** 顺序线性的开发流程,适合需求明确且稳定的项目。 - **敏捷开发模型:...
组件一般会涉及以下几个部分: props 属性 state 状态 组件的生命周期 无状态函数式组件 state 设计原则 DOM操作 3、对ReactJS的认识及ReactJS的优点 首先,对于React,有一些认识误区,这里先总结一下: React不是...
流程管理的实施通常包括以下几个阶段: 1. 现状分析:识别和记录现有的业务流程。 2. 设计优化:基于战略目标和客户需求,优化流程设计。 3. 软件选型:选择适合的BPM软件支持流程自动化。 4. 实施规划:制定详细的...
书中,布鲁克斯提出了几个关键的软件开发原则和概念,其中包括: 1. **布鲁克斯定律**:增加人员到一个已经延迟的项目中只会使项目更加延迟,因为新加入的人需要时间去理解现有代码和项目状态,而这个过程会消耗...
根据所提供的文件内容,可以提取出以下几个关键知识点进行详细说明。 首先,基于巧合正确性概率的测试充分性标准是当前测试充分性领域中的一种新方法。此标准关注的是即使存在代码中的缺陷,程序仍能偶然地产生正确...