今天我们公司刚入职一小伙,听说是00后,今天在办公室交流了一下,他问我会不会自动化测试,我直呼好家伙,直接问了他3个开展自动化测试问题….一问3不知…..还有待加强呀
我们在制定自动化测试实施策略时,首先应该考虑其中可能存在的风险。
自动化测试时间不充足
对自动化测试期望过高
缺乏自动化测试实施的经验
自动化测试工具更新过于频繁
自动化测试工具对软件测试本身没有起到帮助作用
我们有了针对自动化测试实施风险的准备后,就可以开始考虑:
需要在什么阶段开始自动化测试?
在何时启动自动化测试,每个公司的情况都不同。有的公司是在测试用例都手工执行过并且测试用例不再修改时,再开发相应的自动化测试脚本;
而有的公司则是在开发测试用例的同时,就进行脚本的开发。如果团队中测试用例的设计者是一个有着丰富测试用例设计经验的工程师,他所开发的测试用例是高效的,未来改动较少,则可以考虑在开发测试用例的同时,同步开发自动化测试脚本。
如果团队中测试用例的设计者是一个测试用例设计经验不丰富或是设计的测试用例质量不高效的人,其开发的测试用例需要在后期经常进行许多的改动,则还是考虑等到测试用例本身稳定后,再开始脚本开发。
自动化测试的人力投入方式如何?
大部分公司是由专人进行自动化测试脚本开发的,少部分大公司则是全民开发自动化测试脚本。这两种方式都各有利弊:专人进行脚本开发,优点是开发脚本的专业技能可以不断地得到强化,开发效率大大提高;缺点是由于对开发模块的测试用例了解并不深入,有可能开发出的自动化测试脚本只是“翻译”测试用例,发现bug的概率较小。
而有的大公司,由于员工的整体素质较高,通常都具备一定的开发能力,则由每个模块的手工测试者自行开发自动化测试脚本。虽然,手工测试者脚本开发的熟练程度没有专门的脚本开发者熟练,但是由于手工测试者是最了解测试用例真谛的人,因此他开发出的测试脚本就不仅仅是“翻译”,而可能是对测试用例的“升华”,其测试脚本发现bug的概率会更大。
如何执行测试脚本才更高效?
(1)N个测试环境同步并行执行测试脚本,可以将自动化测试脚本执行的总时间成本降低为1/N。
(2)由专门的自动化测试执行工程师来执行批量的自动化测试脚本。自动化测试脚本运行失败的前3大因素大致为:
测试环境问题
脚本错误
被测目标出现bug
由于专门的自动化测试执行工程师对大量失败的脚本分析经验的积累,通常可以非常高效地定位脚本失败的原因,提高自动化测试脚本执行的效率。
(3)独立的自动化测试环境供脚本执行团队使用。如前所述,测试环境问题是测试脚本失败的原因。而测试环境影响测试脚本执行的两大杀手:一个是测试环境被前一个失败脚本破坏而未还原;另一个则是测试环境被其他项目的同事给破坏了。
对于第一种情况,我们可以在测试脚本的代码结构中加入足够的系统恢复代码来解决;对于第二种情况,则只有依赖于公司领导的政策支持,是否愿意腾出足够的测试环境给自动化测试执行小组专用。
(4)在测试脚本中加入丰富的脚本失败的定位信息。自动化测试脚本一旦失败,我们就只有依靠脚本自身打印的信息进行定位了,定位问题的速度快慢除了依赖脚本执行人员自身的经验外,更依赖脚本中是否有着丰富的脚本打印信息。
(5)使用自动化测试基线软件版本。当出现大批量测试脚本失败的情况时,可以在排除了测试环境问题后,直接把这些失败的测试脚本在基线软件版本中运行。
如果在基线版本中运行全通过了,则证明脚本失败原因是产品新bug引起的,而不用逐个地去阅读这些失败测试脚本的源代码来分析脚本自身原因。
金三银四面试宝典分享
从字节面试回来,为了能让大家有更好的面试资料,我花费了1个多月的时间,把市面上的软件测试面试题,做了一个归纳总结,整理了一份pdf,够大家刷题复习了!除非面试的问题很刁钻,否则就难不倒你了。
做为一名自动化软件测试,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名高级测试者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
全网首发-涵盖16个技术栈
- 第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
- 第二部分,Linux( Linux基础+Linux练习题)
- 第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
- 第四部分,Web测试
- 第五部分,API测试
- 第六部分,App测试
- 第七部分,管理工具
- 第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
- 第九部分,Selenium相关
- 第十部分,性能测试
- 第十一部分,LordRunner相关
- 第十二部分,计算机网络
- 第十三部分,组成原理
- 第十四部分,数据结构与算法
- 第十五部分,逻辑题
- 第十六部分,人力资源
软件测试基础
- 软件测试的步骤是什么” />
Linux
- grep和find的区别” />
Python
- 统计python源代码文件中代码行数,去除注释,空行,进行输出” />
MySQL
- 你用的Mysql是哪个引擎,各引擎之间有什么区别” />
Web
- Web测试和app测试区别?
- WEB测试环境搭建和测试方法
- WEB测试教程
- WEB测试要点及基本方法
- Web测试页面总结
- …
接口测试
- 什么是接口
- 如果模块请求http改为了https,测试方案应该如何制定,修改” />
性能测试
- 你认为性能测试的目的是什么” />
selenium
- 如何开展自动化测试框架的构建” />
计算机与网络
- 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
- 请简述DNS、活动目录、域的概念。
- 10M兆宽带是什么意思” />
人力资源
- 你的测试职业发展是什么?你自认为做测试的优势在哪里?
- 你找工作时,最重要的考虑因素为何?
- 为什么我们应该录取你?
- 请谈谈你个人的最大特色。
- 一个测试工程师应具备那些素质和技能?
- 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
- 为什么选择测试这行?
- 如果我雇用你,你能给部门带来什么贡献?
- …
最后
整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!需要的小伙伴点击下方插件加群免费领取:
- 如何开展自动化测试框架的构建” />
- 你认为性能测试的目的是什么” />
- 你用的Mysql是哪个引擎,各引擎之间有什么区别” />
- 统计python源代码文件中代码行数,去除注释,空行,进行输出” />
- grep和find的区别” />