关于自动化测试的基础问题
更新时间:2021-12-10 09:35:49 作者:多测师 浏览:247
问题一 什么是自动化测试:
首先什么是自动化测试这个问题,对于大部分测试执行的人员来说,很少有人真的去了解什么是自动化,所以也就导致自动化在很多人看来是一个很高大上的东西;其实从我做开发到现在做测试、测试开发的经验来看。
自动化测试对于初级测试开发工程师来说,就是代码的堆砌,能够完成一部分手工功能的脚本,减少重复的手工执行操作;
而对于更高级一点的测试开发工程师来说,自动化测试就要更进一步,在脚本开发之前需要做项目的调研,对功能模块进行简单分类、保证后续需求变更后代码能够快速进行迭代,更快的切入到项目中,保证测试活动的周期和时间节点;
再往后发展,其实对于测试开发工程师的要求更高一点,那就在完成上面那步之前就要进入到自动化的开发,即在需求分析过程中,就要确定哪些能够使用自动化开发?使用哪种语言更合适?哪些需要手动测试?如何兼顾手工测试和自动化测试的人员、能力;自动化和手工各自占测试的比例,以及测试的颗粒度和广度进行取舍。
最后我理解就是测试开发架构师了,到测试架构师,考虑的就不是简单的对代码进行封装复用了,其一是需要考虑如何将代码最大程度的进行复用。根据项目的差异化,对代码进行分模块、分类型的思考,如何做到一块代码的永久使用(最大利用化);这里就涉及到架构的考虑,那就需要对于整个测试的盘子进行复盘,然后站在更高的一个维度去思考、量化要做的事,然后对其进行梳理,达到代码能够在不同项目去使用,后面的文章会单独讲解自动化架构的设计思路,此处不再展开。
以上是我对自动化的思考,如有不当之处,欢迎私聊讨论。
问题二 为什么要做自动化测试:
为什么要做自动化?首先我们要明确自动化永远不可能完全代替手动测试,特别与视觉、体验相关的测试内容,自动化的占比极低,而且无法发现新的问题,只能依靠手工测试。但是对于协议、底层的测试,这一块儿自动化比例就会极高了,针对于CAN网络测试,做得好的自动化比例能够达到98%以上,通过率达到95%以上;这一块就是体现自动化的优势,相对于手工,这块完全可以说话是碾压,所以我理解这就是自动化存在的意义;提高测试效率,并且能够达到手工无法实现的操作速度,快速识别问题,反馈问题,到达敏捷开发的一个维度,在研发过程中快人一步。
问题三 如何做好自动化测试
针对于大部分公司来说,都是将测试执行、需求分析、自动化开发分为3个独立的个体;优点不言而喻,大家都能够各司其职,最大化的发挥自己的优势,但是缺点也很明显,就是每一块的短板很严重,那如何做到将自动化做起来呢?其实还是要从这3个方面出发:
需求分析人员来说,需要去了解一定的编程语言能力,在需求分析阶段,定位哪些测试case能够实现自动化,并且收益较高;那些只能手工,自动化的话费力不讨好。然后针对能够实现自动化的那部分case,就将自己的需求明确,每一步的操作如何进行,最好是对自己的case进行模块化分类,然后给到自动化同学脚本框架开发的建议。这样能够在自动化开发前期最大限度的对需求明确,对测试架构清晰,在测试执行的时候,更容易贴合case,发现脚本、case、产品的问题。
自动化开发人员,对于脚本开发的人来说,在将自己的代码深耕到一定程度的时候,对行业和产品进行进一步的了解,在开发过程中,了解、确认需求测试的目的;在保证完成测试case中测试点的同时,综合考虑代码的健壮性和重复检查性,对测试点进行全面的、深度的测试。比如在网络管理自动化开发过程中,检测CAN网络是否唤醒,只需要检测到CAN总线有报文即可,但是封装函数时候,我们能否检测DUT是否发出全部的通信报文为检测唤醒的点呢?这里仅仅是一个例子,大家可以在脚本开发过程中深入了解。
测试执行人员,其实在我印象中测试执行对于我们所有的测试人员来说,是最多的一拨人,也是每个测试人的步入职场第一步接触的工作,做测试执行很简单,做好测试执行很难,怎么说呢,好的测试执行我理解就是一个好的版本管理、一个好的FDE、并且也是一个测试开发。说是好的版本管理是因为好的测试执行测试完成后,会有一个完整的表来展示清晰被测设备的通过率,并且显示清晰未通过是什么问题导致的(产品问题、脚本问题、case设计问题),在版本结束后进行回溯、闭环,为下一次测试做准备。所以个人认为做测试不难,做好测试需要一定的能力和想法,并不简单
以上内容为大家介绍了自动化验收测试,希望对大家有所帮助,如果想要了解更多接口自动化测试相关知识,请关注多测师。https://www.aichudan.com/xwzx/
上一篇:自动化测试的收获和思考
下一篇:自动化测试是软件开发的捷径吗?