在中国,近年来软件测试发展迅速,测试工程师的数量越来越多,在软件开发项目中,测试也越来越受到重视。但是,一个不可忽视的现象是,测试工程师工作两三年后,会遇到职业发展的“瓶颈”,表现为觉得已经掌握了基本的测试技术,但是不知道该如何深入,工作缺乏挑战性和成就感。这时,测试工程师容易变得焦虑和痛苦。一些测试人员在这个时候选择了离开,转型为QA,产品人员,开发人员和项目经理。最近来自Google,Facebook的测试文章越来越多,其核心是他们没有独立的测试,是开发人员自己做测试,而且还做的很不错。在国内一些大的互联网企业,也倾向于招聘越来越多的测试外包人员。因此很多人都觉得做测试是没有前途的,或者只是把做测试当成是一个敲门砖,几年后就会离开。
作为软件测试从业人员,更深入地理解软件测试,是有必要的。我们先来看看软件测试的起源和发展。1972年,软件测试领域的先驱Bill Hetzel博士,提出了对软件测试的定义:“Establish confidence that a program does what it is supposed to do. ”此时软件测试普遍被定义为“证明软件的工作是正确的”活动,这个理念简称为“证实”。1979年,Glenford J. Myers(代表论著《The Art of Software Testing》)提出了对软件测试的定义:“The process of executing a program or system with the intent of finding errors.” 他认为测试是为了“发现错误而执行的活动”,这个理念又被称为“证伪”。Myers还给出了与测试相关的三个重要观点:1、测试是为了证明程序有错,而不是证明程序无错误;2、一个好的测试用例是在于它能发现至今未发现的错误;3、一个成功的测试是发现了至今未发现的错误的测试。1983年Bill Hetzel博士将定义修订为:“测试是以评价一个程序或系统属性为目标的任何一种活动,测试是对软件质量的度量”。至此,人们开始将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。所以到现在软件测试也有了行业标准(IEEE/ANSI),“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。这个定义明确指出:软件测试的目的是为了检验软件系统是否满足需求。它再也不是一个一次性的,而且只是开发后期的活动,而是与整个开发流程融合成一体。20世纪90年代,软件测试工具开始盛行,同时自动化测试技术也开始迅速发展,一些对软件测试系统的评估方法开始被提出,比如1996年的“测试成熟度模型”(TMM),“测试能力成熟度模型”(TCMM)。2002年,Rick和Stefan在《系统的软件测试》中对软件测试做了进一步定义:“测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程”。细心的人会发现,这是一份“西方”的软件测试发展史,在西方的一些企业中,对软件测试人员的要求甚至比开发人员更高。那么中国的测试行业有什么特点呢?
在中国,随着软件测试行业的发展,通过校园招聘,从计算机科学相关学科的大学毕业生中招聘软件测试工程师成了主要途径,但是大多数高校都未提供专业的软件测试课程,很多人不理解软件测试,甚至认为软件测试是不重要的。主动选择软件测试的毕业生,有的因为编程能力不强,有的因为性别觉得女生比较细心,缺少对软件测试的了解,工作几年后容易离开。在一些大的互联网公司,常常会在资源、晋升上偏向开发或产品,而忽略测试,因为管理者往往会认为测试是一种“开销”,而不是“价值创造者”,甚至认为测试是影响产品按时发布的障碍,常见的情况是,开发延迟,通过压缩测试时间来保证项目进度。测试外包的兴起,意味着公司在削减测试方面的投入,并没有将测试作为核心、重要的业务去发展。外包测试人员会更频繁得更换测试产品,对产品实现的理解不会太深入。而对产品测试经验不断持续的积累、对产品实现不断深入的理解又是深入软件测试的两大必要条件。同时,外包测试人员缺少归属感、缺乏晋升空间等问题,就更难深入发展了。综上,总结中国的软件测试有“深入难”和“门槛低”的两大特点。基于这样一个背景,工作3年左右,有经验的测试工程师在不断丢失,要改善这个问题,需要解决测试工程师的发展问题。
相关推荐
#### 第一阶段:初级软件测试工程师(测试员) **自身条件:** - 具备计算机专业学位或具备一定手工测试经验。 - 对软件测试有一定的理解和基础。 **具体工作:** - 执行既定的测试用例。 - 记录发现的问题(即bug...
【计算机四级软件测试工程师笔试题】是中国计算机技术职业资格认证体系中的一个重要考试,主要针对对软件测试有深入理解和实践的专业人士。这个级别的考试通常涵盖了软件工程的理论、软件测试的基本原则、测试方法、...
在软件行业中,软件测试工程师的角色至关重要,他们负责确保产品的质量和稳定性。面试中,面试官可能会提出一系列问题来评估候选人的专业能力和对测试流程的理解。以下是对这些面试问题的详细解答: 1. 参与测试和...
通过深入研究“软件测试工程师试题.rar”中的历年试题,考生不仅可以巩固理论知识,还能提升实际操作技能,为职业生涯的进一步发展打下坚实基础。在学习过程中,不断实践和反思,将有助于成为一名出色的软件测试...
在软件测试职业发展方向中,性能测试工程师相对来说,是三个技术路线里技术要求最高的,因为软件的性能瓶颈归根结底落实到代码的运行效率这个问题上,因此性能测试要做好,性能测试工程师起码要懂开发;而为了发现...
第一部分是关于软件测试工程师的职业规划,强调了“三年之痒”现象,即测试工程师在工作几年后可能会遇到职业发展的瓶颈。这部分分析了中国软件测试行业的现状,提出测试工程师应明确职业发展方向,并给出相应的职业...
### 软件测试工程师面试题库知识点梳理 #### 兼容性测试 - **定义**:兼容性测试旨在确保软件能在多种环境下正常运行,包括不同的操作系统、浏览器、硬件配置等。 - **侧重方面**: - 操作系统兼容性:如Windows...
软件测试职业发展方向可以分为管理路线、技术路线、管理+技术路线。其中,管理路线包括测试主管、测试经理、测试总监等职位,而技术路线则包括自动化测试工程师、白盒测试工程师、性能测试工程师和认证测试工程师等...
10. **测试职业发展**:最后,朱少民可能会分享一些关于测试工程师的职业规划和技能提升的建议,帮助读者在测试领域中不断进步。 通过深入学习《软件测试_朱少民》,读者不仅可以掌握软件测试的核心理论和实践技巧...
实习报告主要围绕软件测试工程师这一角色展开,详细记录了实习生在实习期间的体验、学习与成长。以下是对报告中涉及的知识点的详细说明: 1. **实习目的**: 实习的主要目标是让大学生能够将课堂所学的理论知识...
首先,从职业发展角度来说,软件测试工程师在入门后常常会遇到发展瓶颈。很多测试人员在一段时间后,发现自己的工资停滞不前,或者每天重复着枯燥无味的功能测试工作,对此感到迷茫和担忧。针对这一情况,***网站...
然而,与国外软件业发达国家相比,我国软件测试工程师在软件从业人员中的比例仍然较低(如图2所示),这意味着我国还需要大量补充软件测试人才以满足市场需求。 **图1 近年国内软件人才需求缺口** (此处插入图表)...
在IT行业中,软件测试是一项至关重要...无论是对于软件开发人员还是测试工程师,掌握这些知识都将对职业发展大有裨益。所以,如果你对软件测试感兴趣,不妨尝试一下这个课件,它可能会成为你职业生涯中的一块重要基石。
本文档对测试工程师面试常见问题进行了详细的讲解,涵盖了软件测试的多个方面,包括测试的目的、测试类型、测试计划、测试用例设计、性能测试、缺陷管理、沟通效率、职业发展等。 1. 软件测试的目的 目录01中提到...
理解并熟练运用这些工具,是成为一名合格的软件测试工程师的基础。 总的来说,《软件测试技术概论》这门课程将帮助学生建立起完整的软件测试知识体系,包括基本理论、测试策略、工具使用以及问题解决能力。通过学习...
10. **测试职业发展**:最后,课件可能包含关于软件测试工程师的职业道路、认证(如ISTQB)以及如何不断提升测试技能的信息。 综上所述,"软件测试课件"会全面覆盖软件测试的理论知识、实践技能和行业标准,帮助...
2. **中级性能测试工程师**:随着工作经验的积累,测试人员将逐步参与到更复杂的项目中,负责更多元化的测试任务,如测试计划制定、测试用例设计等。 3. **高级性能测试工程师**:在这个级别上,测试人员不仅需要...