曾经对软件测试很轻视,因为我那时很无知,只是一名普通的程序员,这也是那时绝大多数程序员的心态,那时程序员最讲究“编程才是硬道理”。
如今却非常热爱软件测试,包括软件测试工具、方法、理论、技术。因为我在三年的测试工作中,深刻体会到软件测试的重要性和趣味性。此时,我已经跳出了“小程序员”的圈子,以软件系统工程师的更大视角审视软件测试这项工作。
很长时间以来我一直被下面的问题所困惑,对有些问题至今仍然只是具有肤浅的认识,而且我感觉我做的测试项目越多,阅读的测试书籍越多,就越是感到自己对软件测试理解的非常肤浅。因为我越来越感受到软件测试的广度和深度的无限性,它像大海那样宽广,像宇宙那样深邃。为什么要进行软件测试?软件测试的前途如何?软件测试的工具和思想谁更重要?软件测试的最高境界是什么?
软件测试是保证软件质量的重要活动,是软件项目实施的不可缺少的环节。软件测试的直接目的是发现软件中存在的缺陷,此为测试的有效性。
在软件项目没有结束之前的全部软件缺陷主要由软件开发人员负责,因为软件缺陷来自程序员的编程。软件项目结束后的软件缺陷主要由测试人员负责,因为软件测试人员没有在软件发布之前的测试中发现隐藏的错误。但这不是绝对的,因为软件项目是一个系统工程,软件质量牵扯到多个部门和人员,以及需求分析、设计、编码等各个环节和过程。软件测试只能证明软件存在缺陷,不能保证软件没有错误。
软件测试不是万能的,因为不可能发现全部的软件缺陷,而且软件的功能和性能不是由测试决定的,此为软件测试的有限性。
软件测试目前主要以手工测试为主,自动测试工具虽然很多,但实际应用的广度和深度还有很大潜力,自动将有很大的发展空间。
软件驱动开发的观点说明了测试与编程的关系,测试应该贯穿于软件开发的整个生命周期,编程只是软件开发的一个环节。但往往大家非常重视软件编程,把测试作为编程后的一个辅助环节。这是典型的本末倒置,软件测试的缺陷管理流程非常重要,报告的软件缺陷的质量,应该由他人验证,做到责任明确,方法简便可行。
软件测试技术不断进步,总体看来,国内的测试重视程度还不够,但已经发展很快了。
软件测试是个可以很快入门的职业,门槛不高,但是不要认为什么人都可以做好软件测试,因为会做和做好是两个概念。软件测试人员最好具有软件开发经验,理解软件工程的知识,这是提高软件测试能力的基础。对于刚刚毕业的学生,如果希望今后从事软件开发,那么先从事一段时间的测试可能更有利于今后的编程。而对于具有多年编程经验的程序员,如果改行做测试,更容易提高技术。软件测试不是孤立的活动或过程,需要开发和市场人员的参与和交流,需要软件质量保证人员SQA的积极配合和沟通。
软件测试的技术不断进步,与具体测试技术相比,掌握测试的核心思想比具体技术更重要!测试的最高境界在于运用最简单有效的测试技术,最大限度的发现软件缺陷!
应当承认,目前国内的软件测试工程师的地位和待遇仍然很低,而且不少测试人员存在浮躁的心态(我甚至感到整个软件行业始终存在着浮躁的泡沫)。如何改变这种局面,这应该是个漫长的过程。当整个IT业真正以客户为上帝时,当软件质量成为企业生存和发展的决定因素时,当软件测试工程师的测试工作给软件企业带来更大的经济效益时,软件测试工程师才会得到应有的尊重!
预览时标签不可点收录于话题#个上一篇下一篇