作为一名软件测试工程师,需要具备哪些能力?
1.技术能力
1.1基础技能
首先,需要具备一定的计算机基础知识,如计算机的基本操作、软件的使用安装等,这是从事软件测试工作的必备的基本技能,在一定程度上也能提升测试工作的实施效率。
案例1:在测试过程中需要编写测试用例、测试报告等文档,需要操作Excel、word、xmind等文本文档,如何调整文档格式、换行、缩进等操作?

案例2:测试过程中会用到各种工具,有些工具是需要安装的,安装过程如何选择下一步,安装完毕之后做哪些配置等?

如何满足基本计算机技能?可以通过下列3个方法:
·自己查阅资料学习基础技能
·不断的练习总结
·多和有计算机技能人沟通交流
1.2.软件测试技能
a.软件测试理论知识

软件测试理论知识是开展测试工作的理论依据和支撑,是测试很重要的阶段必须掌握的技能。测试理论本身的理解掌握往往通过案例反复练习思考理解的过程。理论阶段包含的核心知识内容有如下:

·软件的质量模型:软件测试过程保障软件的质量,从哪些方面保障可以从质量模型出发思考
·测试分类:软件测试过程可以按照不同角度进行分类,基础测试到高级测试递进过程
·开发流程:告诉测试人员一个软件完整的生命周期,软件从无到有到消亡的过程
·测试流程:告诉测试人员在实际项目中如何开展测试工作
·测试计划与方案:如何规划在项目中开展测试活动,确保测试活动有序进行
·设计用例方法:黑盒测试阶段必须掌握的一些测试用例的设计方法
·软件缺陷:在测试执行过程中应该确定缺陷并进行提交缺陷报告
·缺陷管理:提交缺陷后在实际工作中如何和开发协助处理验证提交的问题
·测试报告:测试过程的回顾和结果确认总结
b.Linux技能


c.数据库技能

数据库作为软件系统必备的应用系统,在功能测试过程中往往需要操作数据库,验证数据正确性完整性,都离不开数据库的增删改查操作,在项目部署阶段数据库还需要配合项目部署。在性能测试、接口自动化测试中都需要数据库的支撑。

d.自动化技能

自动化测试是作为测试工程师发展提升的必经阶段,学习自动化知识前提是必须掌握一门开发语言,如果是入门级别,推荐大家从python入手,同时python能够支持很多平台的应用;如果有一定开发基础,可以从Java入手,毕竟占据着开发界的半壁江山。不论选择哪门语言,最后需要集合对应的框架才能玩转自动化。常见自动化分为如下:

e.平台自动化
这是专家级测试的目标,测试不仅仅是局限于完成某个任务,而是从测试产品化角度出发,把测试工作作为一项平台化的操作,只需要完善平台应用,将需要的需求、用例、目前输入到平台实现自动化的测试执行、自动化的测试输出,测试人员只需要监控测试实现过程。当然这个级别需要系统化的测试、开发、架构、运维等技能的支撑,目前实现起来的难度复杂度比较大。
1.3.软件测试工具
工欲善其事必先利其器,测试工具在上述阶段都会用到,选择一款合适的工具能够让测试工作如虎添翼。
工具的选择看个人对于工具的属性程度,结合项目的阶段测试的需要,选择适合的工具使用即可。对于工具的使用应该会贯穿于上述每个阶段的测试过程中,前期需要学习如何使用工具,帮助测试过程中快速实现测试结果。

2.管理能力

正如上述案例中出现的问题,软件测试工具是一个综合性很强的岗位,不仅仅需要你已经具备一定的技术能力,还需具备团队合作及处理团队中各种各样问题。
若你想往高薪发展,此时就需要具备一定的管理技能。
这些能力的学习需要学习一些软技能,结合自身的为人处世经验总结,发现每个人的特点和优势,通过个人魅力和公司福利等方式,可以激发每个人的工作热情,发现别人的优点,委婉支持修改不足,团队会越来越好。
我将测试管理人员具备的技能总结如下。
