- 敏捷测试高效实践:测试架构师成长记
- 司文等
- 2185字
- 2024-01-05 17:54:24
1.3.3 测试工程师如何从技术角度看待软件测试
一个软件产品能够成功上线,软件测试工作发挥着至关重要的作用。
首先,我们不否认一个事实:软件开发需要具备一定的专业开发技能,软件测试工作相比软件开发工作来说,入门门槛较低。同时,软件测试的确有时候容易被人误解。这里面既有客观的原因,也有软件测试工程师自身的原因。
【例】刚从大学毕业的计算机系应届生小虎找工作
我们拿一座山来比喻,软件开发职位的入门门槛在半山腰,小虎除需要学习并掌握编程语言、设计模式、数据库等技能外,还要参与一些实习开发项目的工作,经过不断努力,跨过半山腰的门槛之后,才有找到软件开发工作的可能性。
但是软件测试职位则不同,它的入门门槛在山脚处,小虎需要学习测试基础方法和基本知识,了解一些自动化测试、性能测试,只要稍加努力并且足够细心,就可以轻松跨过软件测试之门槛。此时,小虎已经有能力去应聘软件测试岗位了。
应聘软件测试岗位成功后,假如小虎在以后的测试工作中想做得更加出色,同样要学习编程语言、软件架构设计、参与自动化测试和性能测试工作等。很多软件从业者(尤其是软件开发岗位)恰恰忽视了这一点,有了“测试岗位入门门槛很低,测试这项工作技术含量很低,可替代度很高”的观点。
如果小虎能够在工作中继续努力,奋发图强,越过一个个难关,不断地突破自我,最终一定会成为一名出色的测试工程师。有一些测试工程师的时间被繁忙的工作所占据,业余时间也没有积极投入到学习当中,久而久之,则会停在半山腰处,无法再前进一步。
因为测试工程师的编程能力一般较弱,很多测试工程师是比较畏惧做开发工作的,但是我们要以一种积极的心态追求进步和成长。
首先,我们应该通过不断学习提升开发技能,想办法迈过这个技术门槛。
其次,无论周边环境如何,测试工程师应该保持初心,以专业的态度,不断学习新的测试方法和实践。
2019年年底,由TesterHome社区和朱少民老师共同发起了一次软件测试行业的问卷调查,发布之后有2100多位测试工程师参加了此次问卷活动,经过近1个月的数据收集与分析,形成一个初步的调查报告。
通过这份行业调查报告,可以了解测试工程师需要具备的专业素养。
1.技术和能力
从这份报告中可以发现,测试工程师认为“优秀的测试工程师应该具备的技术/能力”中(如图1-3所示),排名前三的能力如下。
● 沟通技巧/自学能力/表达能力等软技能:87.9%。
● 编程语言/脚本/自动化:87.8%。
● 测试方法基础理论:82.5%。
图1-3 优秀的测试工程师应该具备的技术与能力
2.效率提升
测试工程师在对于“您认为哪些环节可以提升效率”的回答中(如图1-4所示),排名前三的能力如下。
● 功能测试/回归测试:62.1%。
● 自动化部署环境:55.1%。
● 自定义脚本/任务:44.9%。
图1-4 哪些环节可以提升效率
3.效率提升方式
测试工程师在对于“您当前工作中使用到了哪些效率提升方式”的回答中(如图1-5所示),排名前三的提升方式如下。
● API自动化测试:56.5%。
● UI自动化测试:45.2%。
● CICD/DevOps环境自动化部署:35.9%。
图1-5 工作中提升效率的方式
从图1-3、图1-4和图1-5所示的相关投票数据中,可以得出以下结论。
1.掌握编程语言是行业趋势
优秀的测试工程师应该熟练掌握编程语言,在工作中开展自动化测试和测试工具开发,这已经被行业所认可,是一个趋势和方向。
同时,拥有开发技能的测试工程师在敏捷软件团队中更容易发挥价值,因为在一个敏捷团队中,角色的定义不再像传统软件开发团队中那样的单一维度,而需要团队中每个成员都多专多能,例如,软件开发工程师既会开发技能,也能够掌握一定的测试技能;软件测试工程师既有出色的测试技能,也能够掌握一定的开发技能。这样的团队才能技能互补、责任共担,最终交付高质量的系统。
2.重视功能回归测试、自动化测试
大多数测试工程师认为,如果想提高测试工作效率,可以尝试在工作中使用“功能/回归测试”“自动化测试”等技术,利用自动化测试的技术优势,在开展功能测试、回归测试工作之前,对测试环境、测试数据等任务预先做好铺垫和准备。
在团队中,利用掌握的自动化测试技术,选择性地开展ROI(Return OnInvestment,投资回报率,简称ROI,是指通过投资而得到的经济回报)较高的任务。在做事情前充分考虑投入的成本、产出的价值,是IT行业中比较认可的一种做法。
3.多开展API自动化测试
在互联网公司中,API自动化测试在测试工程师日常工作中使用得最频繁、最普遍,对这一点大家会很有共识。API自动化测试相比UI自动化测试,具有实现成本更低、设计测试策略更灵活、脚本更容易进行维护和更新等优点,如果想提高测试工作效率,API自动化测试是大家所推崇的首选方式。
而在传统软件公司中,还是以UI自动化测试为主,这其中的原因在本书的第4章会详细介绍。对于UI自动化测试的工作,我们建议选择性地开展,利用成熟的工具或框架有策略、有步骤地开展。
结合以上三点,可以得出以下结论。
● 软件测试工作并不只是对着电脑或手机“点点点”来开展测试工作,而是利用技术、工具开展更多技术化的测试工作。
● 如果想让自己变得更优秀,不妨熟练掌握一门编程语言,以便能够参与更多技术难度高的测试工作。
● 在团队内以自动化测试的形式完成功能、回归测试,优先选择投资回报率较高的任务。
● API自动化测试是目前被普遍认可的、最为有效的测试方式之一。
虽然本节介绍了一些提高测试效率的方式和方法,但在实际工作中却有很多因素制约着我们。在本书的第1.4节将带着你一起思考:在实际的测试工作中如果想要提高工作效率,还有哪些问题需要弄清楚。