我不用“996”,更不用“007”,可我赚的就是比你多
首先,加不加班?看你跟哪个岗位相比较了。
脑力肯定没有开发累,体力肯定没有进厂累,但是跟收房租的躺赢包租婆比,肯定要累一点的。
软件测试,是稳定可靠的脑力劳动型工种,如果你的自动化能力再强一点,可能吃着火锅唱着歌就干了别人两倍点点点的活,轻松值直线 up~
自动化大大提升工作效率
长期以来,软件测试给人的一种印象是一门”手艺活”,就是跑跑开发者写出来的程序,点点鼠标之类,然后大喊一声,“哇,你这里有超出字符限制”。实际上真正的测试并不是这样的。在真正的测试中,手动操作的测试被称为 Manual Testing,在整个测试流程中只占一小部分。
想想现在的商用程序都是那么庞大的,动辄几百万行几千万行代码,这么多的功能依靠于人手工的测试是不现实的而且是对人力资源的极大浪费。因为这些简单的事情本来可以由程序来做,而且自动做。而且有的事情靠人工也是干不了的,比如测一下某个程序打开关掉 1000 次会不会有内存泄漏。让人干,非疯了不可。因此开发和使用自动化测试软件是测试工作中很大的一部分。让程序自动可以做的事情交给程序去做,这样才能提高测试的效率和产出。
在一个项目刚开始的时候,负责测试的人也知道自动化测试很重要,但是需要确定那些东西是需要自动化测试的那些东西是不需要自动化测试的。需要确定哪些自动化测试的软件是现成的那些自动化测试工具是需要自己开发的。因此在开始执行测试之前,在测试计划中就要对测试用例进行一个评估,将测试用例分成自动化和手工测试两类。然后根据测试的内容选择对应的测试工具,或者自己开发。在评估的过程当中一般依据这样的规则:
可以自动化测试的:
1. 具有良好定义的测试策略和测试计划(知道要测试什么,知道什么时候测试)
2. 对于自动化测试你拥有一个能够被识别的测试框架和候选者
3. 能够确保多个测试运行的构建策略
4. 多平台环境需要被测试
5. 每个版本都要测的
6. 拥有运行测试的硬件
7. 拥有关注在自动化过程上的资源等
若能从事自动化测试薪资则能更高,平均薪资能达到 18K 左右,未来自动化测试会是作为测试人员主流方向,对于技术的追求程度及全面性会越来越高。所以具备自动化测试的技能显得尤为重要。
自动化测试人员应具备的能力
在早期,大多企业对测试人员的能力要求较低,导致人们的测试行业的认知都是:门槛低,水平低,能轻松胜任。而自动化测试,作为进阶,在测试基础欠缺的情况下,即使写出测试脚本也不能从根本解决问题。自动化测试人员应具备的能力可分为如下几个方面,这几方面在各个职业生涯发展阶段的要求也不尽相同,下面会详细介绍各个阶段的要求。
1)基础能力。基础能力是测试能力和代码能力的基础,是对自动化测试人员的基础要求,包括细心,耐心,责任心,学习能力,分析问题和解决问题的能力,沟通能力,团队协作的能力以及总结问题的能力。外企或者国外的项目同时也会有外语能力的要求。
2)测试能力。测试能力是做自动化测试的基础,能够很好的帮助自动化促使人员决定什么时候引入自动化,有效的设计自动化测试用例,很好的发现 bug,很好的理解自动化测试的目的与价值。测试能力主要包括业务分析能力,bug 的洞察能力以及基本的软件测试知识(bug 的生命周期,测试理论及方法等)
3)代码能力。良好的代码能力是自动化测试人员写出高质量的自动化测试脚本的前提,开发自动化测试脚本的过程中,需要考虑代码的稳定性,健壮性和可扩展性,同时结合数据结构和算法来减少后期的维护成本。代码能力主要包括自动化脚本的设计能力,框架开发能力,框架设计能力。
自动化测试的学习步骤
1. 做好手工测试(了解各种测试的知识)-> 2. 学习编程语言-> 3. 学习 Web 基础-> 4. 学习自动化测试工具 ->5. 学习自动化测试框架 -> 6. 实现自动化测试用例 -> 7. 开发自动化测试工具 ->8. 开发自动化测试框架
按照这个步骤来说,基本上到第 7 步,难度就比较大了,这个时候也可以称呼自己为“测试开发”。
自动化测试需要掌握哪些技能
当初自己做的时候一直是基于 Python 去做的自动化,同时 Python 自动化也比 java 自动化更为容易上手一些,在这里我就按照 Python 自动化的思路去说一下如何学习自动化,老规矩,思维导图放在文末。
第一阶段:前置基础知识
这个阶段需要有基础知识储备,这样才能打牢基础,有利于下一阶段的提升。这个阶段主要是掌握计算机基础、测试理论、HTML 基础、JS 基础、CSS 基础。
第二阶段:Linux 和数据库
第三阶段:测试基础
这个阶段正式进入软件测试,从软件测试理论、测试方法和分类、黑白盒的测试用例设计、以及掌握一些 bug 管理工具。
第四阶段:语言
目前世界排名靠前的语言 Java\Python。都是企业的需求语言,而随着 python 语言的全名普及化,应用在人工智能、大数据等热门领域,更是让 python 受到公司青睐。
第五阶段:web 自动化测试
这个阶段的学习,大家应该更多的从以下两点去掌握。1.如何从手工测试转为自动化测试工程师;2.如何通过自动化测试技术为企业的测试工作提高效率,降低成本,增强测试的充分性和完整性。
第六阶段:APP 自动化测试
手机端 APP 自动化测试,在业务基本稳定时,也是势在必行的一件事情。手机端自动化测试的技术还在不断的发展过程中。这个阶段的学习,是分基础、中级、高级的三个阶段的进行深入浅出的学习。
第七阶段:接口测试
这个阶段提供了各种不同协议,不同类型的接口项目,大家只有利用学习内容进行接口测试的实战。不光只是完成接口测试,而是要掌握全套的接口测试工作流程:1.接口需求测试分析;2.设计接口测试用例;3.使用工具开展接口测试;4.针对复杂接口编写代码进行接口测试;5.接口测试框架设计及实现;6.完成接口测试的持续集成。
第八阶段:性能测试
这个阶段的学习,从性能需求分析开始,到脚本设计实现,业务性能场景设计,性能故障定位以及性能优化都有实际的案例和项目进行实际操练。
其实加不加班主要取决以下几个因素:
公司的类型:一般自研比外包加班少!
公司目前发展阶段:一般发达公司比正在快速发展中的公司加班少!
项目迭代周期:一般项目迭代周期慢的比项目迭代周期快的公司加班少!
所以软件测试工程师加不加班,完全取决于你所在的公司的企业文化!而没有一个很武断的结果!
软件测试工程师一定是一份付出多少就有多少回报的职业。而且互联网行业下细分出了很多来行业,并不是每个都需要大量加班。
不进这一行,所有的言论都是虚的,只有自己亲身体会才是最真实的……
版权声明: 本文为 InfoQ 作者【六十七点五】的原创文章。
原文链接:【http://xie.infoq.cn/article/064d1c8895ff303b08f7055aa】。文章转载请联系作者。
评论