Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/
自动化的目标是什么?
从个人的角度来讲,通过引入自动化测试工具,可以有效的时间,提高测试效率。(真的么?)
同时可以体现自己的代码力,提升自己的价值和议价能力(嗯,好像是这样的)。
从团队的角度来说,当我们决定引入自动化测试时,我们的期望是什么?
至少有以下几点:
突破现有瓶颈,提升测试效能,同时降低人力成本(注意不能把降低人力成本放在核心位置,否则容易适得其反);
降低人为错误率,规避因为人的疲劳和惯性思维以及投机取巧导致的错误;
提升执行效率,以及应对高强度连轴转任务,搞定长时间的系统稳定性测试和高并发场景的压力测试;
增加软件的信任程度,解释下这点,个人认为,自动化测试是用来保障产品的质量下线的,当我们执行完正确自动化脚本后,我们可以信任当前的交付物是基本可靠的;
引入自动化的成本问题?
从个人的角度来讲,开展自动化测试,投入的基本上就是时间成本(不管在公司倒腾还是回家研究,付出的都是时间成本),但转换到团队的角度,事情就会变得比较复杂了。我们需要综合考量一些影响因数。
主要有以下三个方面:
时间
项目的持续时间短:当有一些项目紧急程度非常高,从立项到结束只有一个月的时间,这个时候如果强行要做自动化测试,维护成本将会非常高,不行的。
项目存在的时间短:一些外包类项目或者政治任务的项目(这类项目其实并不少见)。并不会长期存在,或者没有长期测试的必要,那么也不需要考虑引入自动化测试。
成本
团队成员的能力成本:如果要引入自动化测试,那测试人员的能力要求也会相对高一些,例如他要懂协议,需要了解协议的传输过程及原理,还要有一定的编码能力。这类人员的成本也会相对高些。
研发团队的配合成本:想要更好的自动化,前提得是有标准化的东西。由于测试不是研发过程的源头。所以我们能够改变的东西很少,只能去尝试、推动开发人员做一些改变。
时间投入的成本:不管是开发脚本还是维护脚本,都是需要时间投入。虽然从长远上来看,自动化的效率肯定是会提高的。但是针对某个迭代来说,是需要从原来的功能测试时间中抽出一部分时间来编写脚本和维护脚本的。那么是否可以保证这些时间的投入并算入工时,而不是靠团队成员利用业余时间来投入呢?
效率问题
在引入自动化测试工具的时候,工具并没有告诉你要自动化什么东西,哪些东西值得做自动化。
盲目地追求自动化覆盖率并不是什么正确的事。
个人认为,我们可以从两个方向上做尝试:
基于风险的自动化测试:我们应该最先测试最有失败风险的功能点,如果发生所述失败,这些功能也会带来最大的负面后果。
例如:会影响核心流程的使用、在测试环节中BUG相对集中的功能点、影响服务级别协议 (SLA)的功能点以及可以造成经济损失的功能点。
基于ROI的自动化测试:我们知道,基于BUG的修复成本,越底层的自动化测试越能产生高价值。我们会建议优先引入接口/集成自动化测试,尽早的发现问题。
当我们能够很好地平衡这几者的关系后,引入自动化测试才有可能产生真正的价值,并长期落地,否则很容易变成面子工程,半路夭折。
自动化测试的误区?
为了做自动化测试而做自动化测试
事先没有做好规划,管理好引入自动化测试的目标和期待值,只是人云亦云。盲目幻想,认为自动化测试能够省钱,想着搞起来自动化,省掉多少多少人力成本;
自动化测试为什么发现不了BUG
发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试去发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。用于回归测试,而大量的新业务测试更多地还是依赖手工测试。
能录制回放的自动化工具是最好的
在早期的自动化测试工具中,都会有录制回放的功能。这个功能有多鸡肋,实际用过的同学都应该清楚,说多了都是泪。
现企业常用的几种自动化测试:
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
成功需要勇气与毅力,而毅力来自于内心的坚定。困难只是我们成长路上的一道关卡,只有勇敢迎接挑战并持之以恒地努力,才能不断向前,赢得属于自己的荣光!
生命中最重要的事情是找到自己热爱的事业,并为之全力以赴。只有不停地学习、不断地进步,才能让自己变得更加卓越。在追寻梦想的路上勇往直前,成就精彩人生!
生命苦短,不要将宝贵的时间浪费在没有意义的事情上。做有意义的事情,获得成就感和自豪感。在奋斗中锤炼自己的品格、提升自己的能力,让自己成为一个更好的人!