也有朋友介绍人来问我,测试这个行业怎么样,有没有“钱途”,思来想去,决定找个地方分享下这个已经存在很久但是依然没有被众所周知的行业里,我的一些经验。
(图片来自于 络,如有侵权联系删除)
那么什么是软件测试?
我们先来了解下什么是“测试”,百度百科对测试的定义是:
“测试是具有试验性质的测量,即测量和试验的综合。测试的基本任务就是获取有用的信息,通过借助专门的仪器、设备,设计合理的实验方法以及进行必要的信 分析与数据处理,从而获得与被测对象有关的信息。”
从这个定义来看,软件(software)测试,自然就是对软件进行的相关测试工作。
(图片来自于 络,如有侵权联系删除)
IEEE的两个前身是AIEE(美国电气工程师协会)成立于1884年,IRE(无线电工程师协会)成立于1912年。1963年1月1日AIEE(美国电气工程师学会)和IRE(美国无线电工程师学会)合并成立了IEEE,成为美国规模最大的专业学会。IEEE是一个非营利性科技学会,该组织在国际计算机、电信、生物医学、电力及消费性电子产品等学术领域中都是主要的权威。在电气及电子工程、计算机及控制技术领域中,IEEE 发表的文献占了全球将近1/3。同时有很多的标准及定义都是由IEEE推出的。
1983年IEEE提出的软件工程术语中给软件测试下的定义是:
“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。
这个定义明确指出:软件测试的目的是为了检验软件系统是否满足需求。它指出软件测试,并不是一个一次性的,只在开发后期的活动,而是与整个开发流程融合成一体。软件测试已成为一个专业,同样需要运用专门的方法和手段,需要专门人才和专家来承担相关的工作。
现在的软件,越来越复杂,工程越来越庞大,导致错误或者缺陷出现的机会越来越多。开发工作不再是一个人能顶一片天的早期软件规模,由几十上百甚至千万开发人员共同开发的软件,必然是需要专门的测试人员来进行相关工作。
(图片来自于 络,如有侵权联系删除)
前面也说了,身边有朋友想进入这个行业来咨询我,通过跟他们的交流我发现一般人还是有些误区,总结下:
这种想法,也对也不对,一般来说,软件项目可不单单是需求-开发-测试-上线这么简单,它主要包含以下几个阶段:
需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。
根据这几个阶段,认为软件测试只是软件编码后的一个过程,这是片面的考虑。软件测试是个一系列的过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试是贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确定。我们在进行软件测试工作的时候,不仅仅是要测试软件的代码,还包括软件需求文档和设计文档测试,软件的开发与测试是相互进行的。
说真的,朋友这么问,真的是忒打击我了。软件的错误或者缺陷可能来自软件项目中的各个过程,软件测试只能确认软件中存在错误,而并不能保证软件中没有错误,因为从根本上来说,软件的缺陷是在各个阶段都有可能引入的,测试工作是不能百分百的发现这些错误。编码过程、需求设计、管理混乱等等,都是有可能引入问题的,所以软件的高质量,需要测试人员来提高,但不是由测试工作来决定的。
(图片来自于 络,如有侵权联系删除)
这其实是现在国内软件行业普遍的不重视测试工作造成的误解,也是软件项目过程管理混乱的表现。一个软件项目的顺利实现需要有合理的项目进度计划,包括合理的测试计划,对项目实施过程中的任何问题,都要有风险分析和相对应的对策,这不是走一步看一步的过程,一个好的项目管理者,一定会在制定项目计划时就制定好了这些过程。不能因为开发进度延期或者其他的影响就简单的缩减测试时间、人力及资源。时间少,人力少,必然造成测试的不充分与不完整,这对项目质量的下降引起的潜在风险,必将造成更大的资源浪费或损失。
大部分人都觉得软件测试就是安装一下,然后打开运行,然后敲键盘点鼠标就行了。其实不然,这是不了解软件测试的具体技术和方法造成的。随着软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成了一个有巨大市场需求的行业。随着技术的不断更新和完善,新工具、新理论、新方法都在不断的更新,需要掌握和学习很多的专业知识。所以,具有编程经验的程序猿,不一定是一名优秀的测试工程师。
在我的工作经历中,也确实遇到过这样的开发同事,与其共事,真的是沟通非常费劲啊。开发和测试是相辅相成的过程,需要测试人员、程序开发人员、需求分析制定人员、系统分析师的密切联系,需要更多的交流和协调,这样才能提高开发以及测试的效率。我们常说,开发接触的更多是需求通过技术的实现,而测试接触更多的是实现的需求对于真实用户的体验。
(图片来自于 络,如有侵权联系删除)
总的来说,软件测试需要专门的人员利用专门的工具来进行,现在的软件产业发展,对于软件产品的质量控制与质量管理已经逐渐的成为软件企业生存与发展的核心。几乎大家能了解到的大中型IT企业的软件产品,在发布前都需要大量的质量控制、测试和文档工作,这些工作都必须依靠拥有娴熟技术的专业人士来完成,而软件测试工程师就是这样一个角色。
然而,现在的现状来看,一方面企业对高质量的测试工程师需求量越来越大,另一方面,许多中小企业对软件测试不够重视,导致很多人都不了解测试工程师具体是做什么工作的.
今天就写道这儿了,写的有点儿浅,后边会整理下关于软件测试更多的东西分享给大家,如果有感兴趣的朋友可以留言交流。如若是发现错误的地方,欢迎指正。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!