这是《落叶》文集里第 58 片落叶,希望你能喜欢,不为别的,只为这份坚持。
昨天有人在“到位”上问我,怎么才能入门软件测试?测试需要哪些技能?怎么才能提升测试能力?
问这个问题的人可能是即将毕业的学生,也可能是想转型的非测试岗人员,也有创业公司里负责组件测试团队的非测试领域的Leader等等。
这类问题的答案其实在很多论坛上不太容易搜的到,不管是测试也好,还是产品,或者是开发也好,这种问题都属于很泛泛的问题,针对性不够,所以很难有什么标准答案,或者入门指南之类的。我今天在这里也只是想从这十几年的测试经验中提取一些跟入门有关的东西,并加上一些个人的理解。
关于测试入门指南,即我需要学习哪些技能才能从事软件测试,我其实有两种答案:
第一种是极简答案:
从用户的角度去使用产品,并找出使用中的所有问题。就可以算测试入门了。
所以很多人经常会问,我是不是要学习很多技能,才能去做测试啊?是不是很难入门啊?我给出的极简答案就是,入门其实不难,难在你如何能不断地提高你的测试技能,如何能在测试的道路上走的比别人扎实,比比人快。
附上原来公司会议室墙上的一句话:“Take a Walk in your Customer's Shoes!”
第二种是复杂型答案:
说是复杂性答案,其实并不是说入门复杂,而是根据我自己多年的测试经验,绘制出的一条循序渐进的路线。(注:目前不会手绘,不然就附上手绘路线图了。)
初级阶段:
1、熟悉产品的业务逻辑,因为熟悉业务场景,你才能从用户角度出发去考虑实际使用的场景;
2、去京东买一本测试类基础的书,比如:《全程软件测试》或《软件测试》这类书籍,系统地学习一下测试领域和基本技能,先让自己具备理论的基础,奠定扎实的基石;
3、学以致用,将你从书中学到的每一样东西都应用在项目上,不断总结,持续改进,要有积累,也要有沉淀;
中级阶段:
1、强化手工测试的基本技能:测试场景分析、测试用例设计、测试数据分析等;
2、能在开发的讲解下读懂代码,所以你需要对某种开发语言有个入门的基础,比如 Java,C#,Python等,不过需要明确的是,是能读懂代码,而不是会写代码,这是两个层面的东西,难度不同,要求也不一样,千万不要本末倒置;
3、对接口测试、性能测试和自动化测试做一些了解,不说深入精通,但至少知道在什么样的场景下,需要进行什么样的测试或者选择什么样的工具;
4、管理测试项目,负责测试计划的制订,进度的跟踪,问题的解决,资源的管理和协调,这个会比较考验一个人的综合能力:计划、协调、沟通、应变、总结;
选择阶段:
中级阶段往上,并不意味着就进入了高级阶段,我认为选择阶段并不是一个一步就能跨越的阶段,这个阶段跟中级阶段的中后段也是有重合的,因为选择是一个随着脚步的前进而逐渐清晰的一个过程。
高级阶段:
1、技术专家:在性能测试、接口测试、Web 端自动化测试、Android 端自动化测试或 iOS 自动化测试中选定一样,并做到极致。如果你喜欢技术,你可以选择它们中的一个;
2、测试管理:我把项目管理和团队管理都并在这一类里了,如果你喜欢做计划、管控进度、应对各种问题,那你可以选择测试项目管理。如果你喜欢和人讨论规划、发展,探讨人生,或者说你喜欢掌控全场给你带来的成就感,你可以选择团队管理;
3、测试架构师:分析产品架构,制订测试策略,提出解决方案,负责流程落地和自动化测试框架实现,并对其进行持续改进。如果你想站在一个崭新的,更具挑战性的角度去看软件测试,你可以选择它;
我觉得还有很多没有说的,因为这其中很多项都可以延展下去,发散开来,每一个其实都是一个专题,一个领域。但我站在我的角度和高度,已经描绘出了相对清晰明了的软件测试发展路线图,对于想踏入测试世界的人,我希望能成为一把钥匙。在接下来的一年中,我也有计划把自己多年的经验和积累都转化成对这条路线图上的补给点。
敬请期待,不过最期待的读者还是自己。
作者简介:14 年测试经验 + 11 年项目管理经验 + 11 年团队管理 = 一个测试老兵