软件测试一门非常崭新的学科,目前研究的内容还很不深入,仍然处于婴儿阶段。软件测试需要什么样的专业基础还没有定论,而且目前还没有一种很好的标准来衡量测试人员。但无可置疑,软件测试越来越受到软件公司的重视,软件测试工程师的作用也逐渐被人们所认可。这一点已经在像微软这样的国外大型软件企业中所证实,在微软,一个开发人员相对应着一至两个测试人员。现在,就让我们走近软件测试工程师,关注他们的成长之路。
在信息化建设当中,软件功能薄弱、 漏洞众多等问题频频出现,软件质量理所当然地成为了关注焦点。业界专家认为,不成熟的软件产品是国内信息化项目失败的一个重要原因,同时,产品质量问题也将成为软件企业能否继续发展壮大的关键所在。纵观国内和国外的软件产业, 技术上的差距当然是存在的,但更为明显的也是致命的差距就在于产品质量和过程当中的质量控制 。
为了满足全球化软件世界范围内发布的需要,全球化软件的开发过程中,软件的国际化设计和本地化工程处理是两个重要的步骤。与开发过程相对应,作为软件质量保证过程的全球性软件测试过程,包含一系列相互关联的测试技术和流程,可以分为功能/性能测试、国际化测试、本地化能力测试和本地化测试等阶段。
软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。可见,软件测试工程师只是软件项目开发中的一个角色而已。
由于企业及用户对软件质量的重视程度越来越高,使得测试在软件开发中的地位越来越重要。测试是目前用来验证软件是否能够完成所期望的功能的唯一有效的方法。但是在测试的实施过程中,由于软件设计本身存在的可测性性太差的问题。导致了测试的难度相当大,甚至出现了无法测试的情形。下面结合日常测试工作中遇到的问题简要的谈一下如何提高软件可测试性的问题。
不可否认,国内与国外的软件评测是有着一定的差距,国外评测的民族气息或者叫做民族自豪感远没有国内这么强烈,虽然也有着例如文化等差异,会造成我们的一些优秀国产软件拿到国外并不一定就拿到一个编辑选择、推荐奖之类的成绩,但总体上还是比较公正的,总之还是那句话真金总是不怕火炼的,如果你软件的水平真的是很高,也就不怕什么了,这里要讲的,是在软件功能达到相对较高水平时,如何能够芝麻开花节节高--更上一层楼。
软件测试是一个非常有利于提升个人职业发展空间的岗位,因为它刚刚处于起步发展阶段,对人才的需求量大,而相应的要求却低,非常适合缺乏工作经验的应届毕业生作为就业的首选。
软件测试是一项技术工作,测试者不是市场公关人员,之所以单独讨论软件测试的人际关系,是因为软件测试不是孤立的实施过程,软件测试的每个过程都要与软件开发人员(程序员)和软件测试人员相联系。另外,如果软件实行外包测试,则软件测试外包的人员还要与软件开发商的技术人员紧密联系。软件测试中处理好与不同人员的工作关系,建立彼此的信赖,可以提高测试的效率,减少测试失败的风险。因此,软件测试的人际关系不仅要讲,而且要找出行使有效的方式。
软件测试的核心是测试设计,而测试设计的质量很大程度上取决于测试人员的思路是否开阔和到位。今将自己积累的测试设计中常用的一些思维方式陈列出来,与大家一起共享一下。
本文结合作者的直接经验和间接经验,总结出软件测试人员提高测试效率和测试质量的六大非技术措施,期望能对软件测试人员如何更有效地工作带来启发。
保证产品测试质量是软件本地化服务商赖以生存和发展的基础,如何在以前取得的良好成就和良好市场信誉下,不断保持市场竞争优势,不断提高测试质量,是值得关注和思考的问题。为了更加积极有效地提高测试质量,今后应该重视以下方面。
根据作者多年的经验和理解,软件测试的不同视野,概括为如下5类:软件测试的狭义论和广义论——静态和动态的测试;软件测试的辨证论——正向思维和反向思维;软件测试的风险论——测试是评估;软件测试的经济学观点——为盈利而测试;软件测试的标准论——验证和确认
评测,顾名思义,是评价和测试。因此,软件评测师是通过编写测试方案并按照测试方案和流程对软件产品进行功能和性能测试,检查产品是否有缺陷,性能是否稳定,并给出相应的评价的那些专业技术人员。作为软件开发的重要环节,软件测试越来越受到人们的重视。随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的测试工作就显得更加困难。为了尽可能多地找出程序中的错误,生产出高质量的软件产品,需要大量的软件评测人员,因此软件评测工程师就应运而生了。
软件本地化测试的测试对象是本地化的软件,需要在本地化的操作系统上进行。虽然本地化的软件是基于源程序软件创建的,但二者的测试内容和重点具有很大的不同。
“酸甜苦辣”这四种味道几乎涵盖了人生应有的全部体会。屈指算算,如今已经是虚渡了将近29个春秋,没什么成就,再平凡不过。 以下的文字简单谈谈从99年毕业到如今的几个印象深刻的瞬间以及感受,将我近六年来的历程献给大家,同时借此机会我也总结一下自已的得失。
因为测试时从来不希望检测被测系统所有可能的输入、路径和状态,那么应该选择什么?什么时候应该停止测试?什么时候应该暂停测试?怎样编写一个测试包,它可以检测足够多的消息和状态的组合来说明没有失败的操作,但是从实用性来说它又足够的小?