对于自学软件测试的测试人员来说,遇到最多的问题就是学习了很长时间,但总觉得学得不够系统,但又不确切哪里还有欠缺,哪些技能还需要提升,是不是可以开始投简历然后接受面试;也有直接去面试的,但碰壁实为多数,勿用大量面试去检验自己的成果,而是要珍惜每一次的面试,对测试新人来说,是一次对自身知识架构的考量,也是面对一个新行业不断提升自我素质的一个机遇。
那么软件测试需要掌握的软件技术与专业技能有哪些呢?
首先,了解软件测试的本质。这是最基础的理论知识,但鲜有人能真正地关注,检验自己是否能完全站在用户的角度,思考问题是否能严谨、全面、有条理、逻辑性强。其一,参加面试时一些面试官会由此回答来推断应聘者对软件测试的理解程度和经验指数。
熟悉常见的测试方法和种类,对于常见的测试类型如白盒测试、黑盒测试要清楚其定义与测试原理,白盒测试不需要一定自己接触过,但相关的基础概念要有所了解,以及其他测试种类在不同项目环境下的应用场景,如可接受性测试、α测试、β测试、接口测试、文档测试、安装测试、本地化、国际化测试等等,有些不常用的清楚其原理就好,但不免有些公司的笔试题中会出现。更多的测试类型可以参考文章《软件测试基本专业术语》中的介绍。
理解软件生命周期与软件测试流程等概念,比如面试中最常问的一个问题是:说说你经历的测试流程是怎样的?或者你们处理Bug的流程是怎样的,从需求到交付用户测试人员在不同阶段都扮演了哪些角色?具体的流程可以参考一些基础的专业书籍中介绍,但不要被观念固化,要多接触不同类型的项目,以了解测试流程的灵活应用。
熟悉操作系统的原理,对于计算机专业毕业的同学,应该对操作系统原理印象比较深,但转行或其他跨专业的测试人员,需要在业余时间将操作系统原理的书籍翻看下,因为操作系统是平台的基础,很多公司的产品都支持一些主流的平台,如UNIX、MAC、Windows等,学习操作系统知识如果纯看书的话容易枯燥,且与实际应用结合的效果也不明显。可以在一些网络平台上查找相关的视频学习。
测试环境的搭建
这是自学测试人员最容易忽略的一点,但如果是作为实习测试前期也不会要求必须能搭建环境,但在自学的过程中可以掌握一些常见的技术,一方面面试时可以加分,其次,当真的需要学习去搭建环境时,自己储备的理论知识也可以及时起到作用。
关于测试环境搭建需要掌握如下技术,这里只列出部分。
理解专业术语,构建测试,跨平台,测试环境镜像、虚拟技术、Linux基础操作、中间件等,以上术语不一一解释,但每一项都对自身测试技能的提升有着关键作用,比如,学习中间件可以通过应用Server管理和监控目标应用程序, 对于发现问题、分析问题都有着紧密的关系。
掌握1-2种常见的开发模式,开发模式可以参考之前推文中的瀑布模式与敏捷模式。重要的了解对应的测试模式,如敏捷测试模式就是相对于敏捷开发而言的。一般情况下游戏公司更多采用敏捷开发模式,了解其迭代开发与增量开发。
了解适当的开发技术,可以参考《Web测试扩展-网页语言知识简述》与测试环境搭建类似,前期了解即可,后期在提升自己的职业技能时,开发技术也是必备的,测试人员检查开发"生产"出的产品,如果完全不了解该产品是如何做出来的,则一定不能做到全面的质量管理,也即测试覆盖率与测试深度的问题。
最后,就是测试人员的基本功了,如何设计测试用例与提交缺陷报告 。
掌握设计测试用例的基本方法,如等价类、边界值、判定表、因果图、错误推测法、场景法、流程分析法等等。安装并试用1-2种缺陷管理工具,熟悉基本的操作。一般面试时会问到:以前使用过哪些项目管理工具,缺陷管理工具等。
最后,就是用例书写与缺陷报告的书写格式了,一开始就要给自己形成一个好的习惯。遵照公司内部的书写格式规范,不要允许一丝懒惰,自身就是从事测试的,更要注意一些细节,养成良好的习惯会终生受益。