软件测试工程师

职业定义

职业定义:软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例的专门工作人员。
相关职业:测试分析师、测试开发工程师

任务职责

1. 设置软件测试环境,安装必要的软件工具。
2. 运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。
3. 对软件整体质量提出评估。
4. 确认软件达到某种具体标准。
5. 以最低的成本,最短的时间,完成高质量的测试任务。

知识背景

学历要求:计算机或相关专业本科或以上学历。
行业知识背景:行业主要指测试人员所在企业涉及的行业领域,例如很多 IT 企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。

大学课程

重要的大学课程:
计算系统、软件工程与计算、软件系统设计 、 软件质量与管理、自动化测试。

职业技能

专业技能
1. 测试专业技能
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
2. 软件编程技能
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能够编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
通用技能
1. 软件技能
软件工程技能可以分成三大块:理解软件工程的规则,了解计算机编程和操作系统知识。
2. 交流技能
要成为一个成功的软件测试工程师,你需要清楚的交流。测试工程师必须把产品测试的技术写成文件。测试计划提供指导并把测试设计转化为设置、实现测试和评估结果的步骤指导。具有一般软件和产品特性不同层次经验的工程师都能使用这样一个详细的测试计划。如此测试设计者或测试方案作者之外的工程师也能能进行测试。
3. 组织技能
每当执行一个软件项目的测试计划,几乎不可能不遇到至少会阻碍一些测试而必须解决的缺陷。一个测试工程师应当能灵活地停止测试产品的一部分而开始测试其他部分。有时被测软件需要做根本变动引起大量的测试结果失效,测试也许得重做不止一次。在问题被查找和改变在进行的过程中,测试工程师必须有条理,保持对执行测试的软件的前后关系的明确感受(例如被测试的程序特定版本的不同部分)。

常用工具

测试管理工具(适用于项目管理):禅道、SVN、git、Jira、TestDirector
接口测试工具:Jmeter、Postman
性能测试工具:LoadRunner、Jmeter
自动化测试工具:AppScan、Fiddler、Websecurify、Wapiti、QTP

职业发展:

行业发展前景:
 软件开发、程序设计越来越成为一项基本技能,特别是在我们现在所处的大数据的时代,各行各业都会和信息技术结合起来,所以我认为软件开发领域是一个前途十分光明的职业。
个人发展路径:
职业的就业趋势:
软件开发工程师的细分类别越来越多,例如前端开发工程师、后端开发工程师、算法工程师等,伴随着互联网进程的加快,对软件开发工程师的需求会越来越旺盛。