工作几年还是悟不懂自动化测试的意义_接口自动化介入时间点

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

  1. 请定义什么是”差“。差也是相对的,可以是同手工测试比较,也可以是同老板的期望比较

如果楼主仔细思考并且回答了以上的问题,我有七成的把握楼主要么不想问这个问题,要么想换个问题。

换一种问法

好吧,为了避免灌水嫌疑,我且以最大的善意揣摩楼主的意图。楼主是想问:

如果有的项目的自动化测试,我们发现成本高于预期,效果不符合预期,那么问题可能出在哪里?怎么判断自动化测试是否有效?

关于错误的预期

我一点都不奇怪有人会告诉我说:

我都不知道我或者我的老板对自动化测试有什么预期,没人跟我说过。

或者:

自动化不就是不用手工测试了吗?用例用代码实现都能自己跑,测试人员就可以去干别的了,可以少招几个不产生价值的测试攻城狮了。老板就是这样计划的。

这是两种非常典型的关于自动化测试的预期问题:

  1. 根本就不清楚自动化测试的目标,以及为达到目标所计划的投入
  2. 对自动化测试(通常是总监以上的老板,开发人员或者手动测试人员)抱有不切实际的幻想型期望,认为自动化测试能够干很多活同时省很多钱

自动化测试的第一目标从来都不是节省测试的人力成本。成功的自动化测试,作为软件测试的一种工具,从业务最终效果来看,应该是能够节省成本和提高产品质量的。但是把节省测试的人力成本作为自动化测试的直接目标是错误的,而且是致命的。

每个人对自动化测试理解都不一样,每个项目组做自动化的方式都不一样。我讲个故事,是我认识之前一个印度自动化项目的真实例子。这个项目95%以上的测试场景都是比较复杂的UI测试(Web +Windows Application)他们的自动化是这样做的:

  1. 手工测试人员把测试用例录入到用例管理系统,精确到每一步的描述和每一个数据
  2. 自动化测试人员用代码(java,python等)实现自动化用例,保存到SCM
  3. 准备好测试环境
  4. 打开Eclipse
  5. 定位到要执行的用例的源代码
  6. Run As Junit (因为统一用JUnit做封装)
  7. 两眼直视显示器,目不转睛
  8. 如果有步骤执行不成功,比如某个按钮点击不成功,手动帮助点击,继续
  9. 一个用例执行完毕,重复步骤5到9

你觉得这个自动化做的怎么样?我当时的感觉是几乎要吐血了,因为这个项目是我要接手的。更加吐血的还在后面,这个部门的QA的VP对自动化测试的效果很不满意(绝对的),他的设想包括:

  1. 自动化应该是一种Service(Automation As A Service),所有的测试人员和开发人员都应该可以自己很方便的去跑自动化
  2. 自动化测试的运行结果应该是可以自动分析的,占用很少的时间
  3. 自动化测试的成功率应该是要很高的(比如95%以上)
  4. 自动化应该是写一次,运行很多次,为什么你们花那么多时间还要去改自动化代码?

这个就是一个典型的不懂自动化的团队+期望脱离现实的老板。

关于什么是自动化

James Bach 曾经在一篇博文提到,自动化测试这个名字是非常有误导性的。它让一般的人误以为就是测试完全被自动化了,就像一个自动的咖啡机一样,我只需要把杯子放在那里,按一个button就够了。James说更加准确的叫法应该是“工具辅助的测试”。当然他还有另一层意思,就是好的测试用例是没有办法100%被自动化的,测试人员的经验,逻辑判断和探索性的测试方法都不能被有效自动化。我非常同意这个观点。作为这个论断的补充和扩展,自动化应该是审视软件研发活动的每一个环节,去发现那些可以被工具化自动化的重复性活动,然后去实现。广义的自动化应该包括但不限于以下环节:

  • 测试环境的搭建和管理
  • 测试环境的检查,监控和报警
  • 测试代码的编译和测试构建
  • 测试代码的静态检查和报警
  • 测试用例的分发和执行
  • 测试结果的保存与管理
  • 测试报告的生成
  • 测试优先级的建议

自动化的成本与收益(ROI)

一个过于简化的公式可以这样写:

自动化的收益 = 迭代次数 * 全手动执行成本 - 首次自动化成本 - 维护次数 * 维护成本

或者如果假设迭代次数和维护次数近视相等,这个在某些情况下可以成立,比如一个比较新的产品:

自动化的收益 = 迭代次数 * (全手动执行成本 - 维护成本) - 首次自动化成本

解读:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
存中…(img-394WRw1h-1713545333926)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 作为一个类 ChatGPT 的 AI,我认为在 DevSecOps 中,人类专业知识和经验是无法自动化完成的环节。虽然自动化工具可以帮助我们完成许多任务,但是在某些情况下,需要人类专业知识和经验来解决问题。例如,安全审计和漏洞修复需要人类专业知识和经验来进行决策和操作。 ### 回答2: 在DevSecOps中,大部分环节都可以通过自动化来完成,但仍有一些环节是无法完全自动化的。 第一个是需求分析和规划。在DevSecOps过程中,需求的澄清和规划是一个关键的环节。这一阶段需要人工与相关团队进行沟通,了解用户需求和期望,以及确定项目的目标和范围。人工参与可以确保所有团队对需求有全面的理解,并在规划过程中提供正确的指导。 第二个是漏洞评估和审计。尽管自动化工具可以帮助检测漏洞和安全问题,但最终的评估和审计仍需由安全专家来完成。他们可以进行深入的分析和测试,确保应用程序的安全性和可靠性。 第三个是应急响应和漏洞修复。在发生安全事件或发现漏洞时,需要迅速响应并进行修复。尽管自动化工具可以提供警报和提示,但实际的应急响应工作仍需要人工干预。安全团队和开发团队需要共同合作,分析和解决问题,及时修复漏洞并恢复系统稳定。 此外,还有一些需要人工参与的环节,如安全培训和意识提高、安全策略和标准制定、监控和日志分析等。虽然工具和自动化技术可以提供数据和分析,但人工干预和判断是确保这些环节的有效性和可靠性的关键。 总结来说,在DevSecOps中,大部分环节都可以通过自动化来实现高效和可靠的流程,但仍需要人工参与以确保准确性、安全性和灵活性。 ### 回答3: 在DevSecOps中,尽管自动化是一个关键的目标,但仍然有一些环节无法完全自动化,需要人工介入。以下是一些无法自动化完成的环节: 1. 政策与治理:制定安全政策和治理框架需要人工参与,确保所有的开发、安全和运维流程都符合公司和法律法规的要求。 2. 安全设计与规划:对于新项目和系统的安全设计,需要开发人员和安全团队进行协作和讨论,以保证系统安全性和业务需求的平衡。 3. 安全漏洞评估和审查:自动化工具只能检测一部分常见的安全漏洞,而一些复杂的漏洞需要专业的人员进行手动评估和审查。 4. 速度和灵活性平衡:自动化工具的目标是提高开发和交付的速度,但有时候需要在速度和灵活性之间做出选择,需要人工决策。 5. 应急响应和修复:当发生安全事件或漏洞时,需要迅速响应和修复。这个过程需要人工进行调查和分析,并采取适当的措施进行修复,自动化工具无法完全取代人工的判断和决策。 尽管这些环节无法完全自动化,但通过在DevSecOps流程中整合和优化人工和自动化的协作,可以提高系统的整体安全性和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值