软件测试人员需要具备哪些基本技能或者素质。这个问题在几年前常见于软件测试工程师笔试题上。对这个问题,我觉得应该有新的解读。现在我们日常工作中需要应对的是,测试和开发的交叉领域,测试和运维的交叉领域。而不再是点点点就完事儿。
另外,不管你的职位名是叫测试人员也好,测试开发人员也好,本质上都是一回事儿。这里列的大多是硬技能。其实不管你每一项掌握得多么薄弱也好,最少这些要有一点点基本了解。这些基本都有一点点懂之后再选主攻的技术方向也不迟。
一、编程语言
1.掌握python的基本用法。能写简单的脚本或小型的应用。即使你现在做测试需要写的测试代码是纯java系的,也同样建议你学习一下python。特别是未来你面对一些测试和运维交叉的领域时(比如部署和维护一些测试服务器及web应用),掌握python非常有用。
2.要懂点java。Java系的工作机会目前比python多。一点Java都不懂也可以找到好工作,但要是懂的话机会更多。另外你也可能遇到用java做主语言的测试框架,这类框架很多公司都有。如果你所在的公司用java做开发,那么你还可以处理一些测试与开发交叉的领域的问题。另外面试常见问题很多和jvm之类的有关。
二、计算机网络
1.对计算机网络的基本了解。比如各层的主要协议。我们测试现在最常接触到的可能是HTTP,TCP,IP。这些应该最高优先级去了解。
2.相应的,抓包工具,如fiddler,wireshark,tcpdump之类的,应该至少要会用。
3.着眼未来,你很可能遇到测试和运维的交叉领域。比如,云计算平台上测试环境的网络规划和环境出问题时的调试。需要了解更多的网络知识和常用命令。
三、操作系统
1.还是为了应对测试和运维的交叉领域,要维护自己的测试环境。一定要熟悉linux基本概念和命令。
2.可以写简单shell脚本。复杂的可以交给python。
3.如果你现在或将来打算做移动app测试,那么对应的ios或android系统也要有所了解。
四、前端基础
为了应对一些测试和开发的交叉领域务必要掌握一点前端的基础。html,css,javascript,bootstrap,jquery。应用于要做一些web自动化测试脚本的时候。不过即使对于一点web测试都不做的人,这一条的优先级可以放低,但你还是可以开发一些基于web的小工具,或者学了用来美化自己的测试报告。
五、需求分析
小到你拿到手的每一个任务,大到你所在做的项目的需求。掌握基本的需求分析方法,对任务发布者提出合适的问题、把任务分解、划分优先级。最怕拿到任务什么问题都问不出来的人。
六、搜索
有很多人遇到问题只会问别人。这挺好,但问之前搜索一下就更好了。
七、英语
不懂英语就缺了一大块资料来源。如果你不在外企工作,不求英语多厉害,至少得看得懂文档和stackoverflow。如果要去外企,还要能听说读写。也不求多厉害,老外说话能听懂80%就够了。剩下的靠猜。其实外企并没有真的每个人都说的很流利。至于读写,要求更低了。读不懂可以借助字典,写不出可以套用句式。
八、数据库
可能专职做性能测试的人会更多地遇到这块,还有一些做接口测试的人也会遇到需要对比数据库数据的场景。
九、配置管理基础
1.最基本的git要会用。常用命令要熟。其中一些和操作系统、网络基础有交叉。比如git里面免密码登录。还有常见的git流程策略,比如feature branch。
2.老系统可能还在用svn。svn的命令也可以了解下。
以上内容为大家介绍了软件测试人员需要具备哪些基本技能,本文由多测师亲自撰写,希望对大家有所帮助。