总体观点:软件测试领域当前正处在一个急剧变化的节点!

 

我们访问了12位在业界备受尊敬的、经验丰富的测试领域专业人士,通过和他们的谈话,我们总结出了软件测试近些年的变化及未来的发展趋势。

 


 

  软件测试近些年的变化

 

影响软件测试变化的因素来自内部和外部两方面。

 


 

  来自外部的因素有 :   

 

1. 对测试人员技术要求的增高

 

调查显示我们每人每天所使用的app应用数量在9个以上,再加上电脑web及其他应用方面的会更多。

 

2. 软件用户对软件质量和体验有了更高的要求。

 

来自TechBeacon公司的调研数据表明,49%的用户期待app的响应时间在2S以内,80%的用户在使用APP中碰到3次以上的问题就会放弃此APP的使用。

 

3. 用户对软件更新的频率、及新软件发布的速度有了更高的期待。

 

Amazon每年发布5000万行代码,平均每秒一行的速度;同时敏捷及DevOps模式的应用帮助团队将发布频率提升了30倍。

 受这些外部压力的驱使,测试团队需要协助开发、运维等一起用更快的频率发布更高质量的软件产品。这些因素也驱动了测试内部模式的变化。

 


 

  来自内部的变化有 :  

 

1. 对测试人员技术要求的增高

 

当前市场上有1500款不同的软件,支持整个软件开发周期,从编译到测试再到更后端。

测试软件也越来越多,以支持越来越多的测试类型及不同的质量要求,这些工具软件无疑对我们的测试工作提供了很大的帮助,掌握一些必备的工具软件也变得必不可少。

 

2.  Agile(敏捷)和DevOps的普及对测试团队带来了根本的影响

 

它们改变了测试工程师什么时候开始测试、如何测试以及与谁一起测试等工作模式。

来自VersionOne的调查发现,约有95%的公司采用了敏捷模式,约有74%的公司采用了DevOps模式,敏捷与DevOps的应用尽管已经比较普及,但仍会继续增高,测试团队必需学会如何适应这种模式。

 

3.  手工测试向自动化测试的转移

 

自动化测试在很多测试过程中将是必备的,这就要求测试工程师去学习新的技能,同时也要学会如何平衡手工测试及自动化测试。

  


 

  软件测试未来5个趋势

 

1. 自动化是测试的未来

 

Automation is the future of testing

随着软件发布频率的增高,你不可能有时间每次都能测到所有的功能,你需要自动化测试去覆盖已有功能,然后自己手工去focus在新功能的验证上。

同时测试方面专业人员指出,对自动化测试也不要存在偏见,自动化测试不是要取代手工测试,也不是所有的功能都适合自动化。

 

2. AI、机器学习、IOT这些未来技术也会对测试产生影响

 

专家指出,这些新技术的应用让软件变得更复杂,更具交互性,对测试提出了更高的挑战,测试核心的理念不会变,但是测试工具、技术、流程等会由此发生改变。

 

3.  测试工程师必需学会适应这些变化并学习新技能

 

所有测试方面专业人员都指出:the need for testers to be open to change and get serious about learning new skills.

所有测试工程师都应该对趋势关注,包括关注测试论坛或者其它团队的测试趋势。

害怕变化和使用新工具虽然是个很大的挑战,但是测试工程师必需跟上这些趋势来充实自己的知识和技能。

其中编程就是一项必备的技能:testers have to pick up coding skills或者深入理解他们测试的软件是如何产生的。

 

4. 职位的区分变得越来越模糊

 

DevOps的应用让职位之间的区分变得越来越模糊。

产品、开发、测试衔接的越来越紧密,区分也变得越来越模糊。

在这种情况下,测试工程师要学会用不同的语言与不同的角色进行沟通,面对产品经理讲产品经理可以听懂的话,面对开发讲开发可以听懂的话。

为了保证团队能快速发布出高质量的产品,识别出沟通中的瓶颈及理解的差异在DevOps就变得很重要,而在DevOps的世界里,测试工程师可以被赋予完成这个使命。

 

5. 不要忘记最根本的测试技能

 

在软件测试领域仍有很多经受住时间考验的核心技能,比如拥抱变化,渴望学习(open to change, eager to learn),这对测试工程师是至关重要的,不管是在2019,2022还是2058年。

再比如好奇心,尝试去怀疑、检查、揭示你所测试的软件。

再比如沟通能力。

 

国内的软件技术发展要比国外相对滞后一些,但是这仍然会是国内测试发展的一个必然趋势。

 

在当前的行业快速发展背景下,对测试工程师来说,不断的学习是一个must,编程能力是一个must,自动化测试也是一个must

 

但是对于零基础的同学来说,自我学习是一个比较浪费时间和低效的学习方式,最好就是选择一个好的导师进行系统的学习。