混迹于软件测试这么长时间了,一直想写一篇关于软件测试的经验分享的文章,但苦于工作原因迟迟未下笔。最近终于有了些闲余时间,遂决定把自己的心路历程及所感所想记录下来,与各位同行共勉。
以我多年的工作经验来看,软件功能测试是基础,未来发展方向主要有两方面(技术专家、测试管理)。
一、技术专家发展路线有如下三方面,可供参考:
1.从功能测试到性能测试专家:性能测试专家需要掌握一门编程语言、性能测试工具、系统架构、网络、数据库、服务器硬件等知识。性能测试分为前端性能测试(单用户操作系统响应速度),后台性能测试(多用户并发场景)。后台性能测试包括三个阶段:测试(性能测试场景分析设计、脚本编写或者录制、测试执行)、分析(根据性能测试目标分析测试数据,找出性能瓶颈)、解决方案(根据性能瓶颈,给出系统调优解决方案);
2.从功能测试到自动化测试专家:自动化测试专家可以向自动化测试工具、框架开发方向发展,即测试开发工程师。自动化测试工程师需要掌握一门脚本语言(如,Python),掌握一些测试工具(如,webdriver、testng、appium等),web前端知识(html、jquery、css等);
3.从功能测试到安全测试专家:安全测试对测试人员要求更高,要想在这条路上走的更远,建议是从事过开发、或者是对计算机、信息安全非常有兴趣的人去深入研究这方面的技能、知识。普通测试人员只能做比较简单的安全测试,无法深入;
二、测试管理方面发展,需要具备以下知识,仅供参考:
1.对软件测试流程流程、质量管理过程、项目管理要非常熟悉;
2.对功能测试、用例设计、专项测试技术有要了解(即使走上管理岗位也需要这些知识,不然无法服众);
3.良好的沟通能力、人际关系处理能力、有责任心、能抗压;
4.懂得如何管理团队,如何提升团队的能力,如何激发团队成员的工作热情等
三、软件测试工程师必备基础技能汇总
上面我总结了下软件测试的两大块发展方向,下面再来说一下成为一名合格的软件测试工程师需要具备哪些技能?
1.最佳隐形技能
开发语言知识背景
对被测试对象使用的语言有一定的了解,这样有助于测试工作的开展
计算机语言都具有一定的共通性,只要你深刻了解了一门语言,其他语言也不是难事
数据库的熟悉使用
能够自行编写大部分的SQL语句来辅助测试(SELECT,DELETE,UPDATE),对于存储过程可也多了解,在无程序辅助的情况下,它是制作数据的最好帮手
主要在日常测试工作中,提取数据库中的数据验以证测试结果的有效性、制作测试数据、批量修改测试数据等
被测试对象业务的熟悉度
对于被测试对象业务流程的了解越多、越深入越有利于测试工作的开展
2.测试理论
软件测试的基本概念,及软件测试存在的理由
不需要死记硬背,但能知道软件测试是做什么
软件测试的整体流程
能详细说出软件工程中完整的软件测试生命周期,及一些软件测试模型(双V,V模型)
软件工程中软件生命周期
软件工程中软件生命周期的主要过程,以及软件测试在生命周期中的阶段及作用
测试用例设计的几大基本方法
做到对于件测试中经常使用的测试用例设计方法能脱口而口,同时结合实际工作中的例子进行描述、解释
软件测试的几大类型能
根据实际项目,很快地说出某个被测试对象需要测试哪些类型
缺陷管理策略
缺陷的完整生命周期,有可能出现的一些其他环节
一个缺陷需要包含的内容,不可重现缺陷、缺陷不被认可等问题出现时的处理策略
白盒测试(仅针对白盒测试)
对代码有足够的驾驭能力
熟悉各种白盒测试用例设计方法,了解各个方法的优劣,根据业务需求熟悉的使用最恰当的方法进行测试用例设计
3.测试工具的使用
缺陷管理工具
Jira、Mantis、Bugfree、QC(TD)
JIra、Mantis、Bugfree都为开源软件
缺陷工具的基本使用本身简单,对于未使用过的缺陷工具,也要能快速的上手使用
需求管理工具
RationalRequisitePro
CloudtopoTopo
需求管理工具,一般用于大中型项目的需求管理
自动化工具
自动化测试基本流程
能清楚的说出自动化测试的基本流程,及自动化工具的基本原理
自动化测试工具
QuickTestPro(QTP)fromHP
QTP为目前市场上很成熟的一款产品,以其强大的功能而占有主要的市场份额,但因价格昂贵,不少公司无法接受
SELENIUM、WATIR开源自动化测试工具
对于QTP昂贵的价格且不开源,开源的自动化工具可谓备受青睐
自动化测试脚本设计
说自动化测试,其实主要的重点在测试脚本的设计
设计脚本需要有一定的语言功底,如QTP默认使用的是VBS脚本,如果你对VBS熟悉,那么这款工具你可以算掌握了1/3
自动化测试框架了解、设计
测试框架就像大厦的基石,后续的扩展、丰富都要以此为基础,自然作为自动化测试的难点
刚接触自动化测试的同学可多了解
性能测试工具
LoadRunner(LR)fromHP
QALoad、WebRunner
性能测试原理及流程
性能测试脚本录制、调优
性能测试的重点工作之一录制、调优脚本
需要有一定的语言功底,如LR默认使用的是C语言,有C语言功底的同学学起来自然是有百利而无一害
性能测试场景设计
性能测试的又一个重点场景的设计
场景的设计是否正确、合理,直接关系到最后性能测试结果的有效性
性能测试结果分析、性能分析(重点)
性能测试中的重中之重,也是性能测试的目的
通过性能测试结果数据,分析被测试对象中存在的问题,对被测试对象做出相应的调优后重新测试,直到被测试对象的性能参数达到要求。
4.计算机知识
了解并能使用常见操作系统
Windows系列、Mac系列、Linux系列
TCP/IP协议
知道TCP/IP协议的内容,以及对应层的功能
常用快捷指令的使用
在日常工作中能很快的使用运行中的快捷动作,如notepad,mspaint,ipconfig,regedit等
熟练计算机中各种键盘操作(键盘操作的效率至少是鼠标的3倍)
四、总结
以上就是我的一些经验之谈,对于在软件测试中依然找不到方向的朋友,个人建议如下:
1.对技术有高度热情、喜欢学习新知识的人,选择一个专项测试领域,不断积累,最后走测试专家路线;
2.善于沟通、有想法、思路清晰,内心不甘平庸的人,可以往测试管理方向发展。
发展方向想清楚了,就需要用行动去积累其岗位所需的知识、技能,机会总是留给有准备的人。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末小卡片领取】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!