【基础理论-自动化测试面试点-1】自动化测试原理与方法

简介: 【基础理论-自动化测试面试点-1】自动化测试原理与方法

前言

学一个最简单的自动化脚本需要多久?答 :五分钟。明白自动化测试的意义需要多久?答 :五年


曾经有个公众号说,说我国能写软件自动化测试脚本的不下十万人。但能真正称为自动化测试工程师的不到一千人。


为何会这么说?答案就在于脚本你会写,但是你不知道如何写,不知道为什么写,不知道脚本什么时候运行最好,不知道脚本的意义何在。


所以面试官问:你谈谈自动化测试的理解的时候,你可能都说不出三句话:

1能降低手工测试的执行成本

2用xx语言xx框架可以做

3能回归用例,也能线上轮询监控


这时面试官想了想说,本来想给你定p7的,但是你这个回答和p4的新人一样,看来还不是能够深刻理解的层次啊。


所以我们今天就来好好复习一下吧


自动化测试的技术有哪些

  • 代码的静态动态分析
  • 测试过程的录制和回放
  • 脚本技术
  • 虚拟用户技术
  • 自动管理技术 等等,琳琅满目,你的自动化项目用了哪些呢?


自动化测试的限制:

不适合做自动化的项目特点:测试很少运行,软件不稳定,人工测试也很容易,涉及到过多和其他软硬件交互。


相比较手工测试,自动化测试的缺点有:bug发现的又浅又少;对测试质量依赖性大;成本风险高;软件的部分反自动化设计;工具本身比较木讷扥等。


自动化测试用例生成:

如何写好一个脚本 ,其实可以扯的非常非常多,博主在之前的【饭谈】系列中也详细探讨过脚本的质量问题,这里不再过多赘述。


脚本注释:很多同学都没写太多,感情这是一次性的东西?


脚本功能:每个脚本用例的划分全凭心情,毫无目的性可言的反面例子比比皆是。


脚本结构:应该易读,易理解,易维护。


脚本文档:从来没看谁写过,这可不行啊。


脚本的结构:

你肯定听过线性脚本吧?


线性脚本:从头到底,直肠动物,不需要什么高端设计,重用能力太低。


结构化脚本:选择,分支,迭代,循环等都有,好处是可重用和维护简单。


共享脚本:属于组件类脚本,可以同时被多个用例调用,属于很底层的东西,可靠性一定要高,且要做好跟踪日志等等。


数据驱动脚本:业务逻辑简单,数据多样化的情况适用。


关键字驱动脚本:代码自动生成,用关键字自然语言进行控制,利于推广和维护。

相关文章
|
4月前
|
消息中间件 存储 缓存
大厂面试高频:Kafka 工作原理 ( 详细图解 )
本文详细解析了 Kafka 的核心架构和实现原理,消息中间件是亿级互联网架构的基石,大厂面试高频,非常重要,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka 工作原理 ( 详细图解 )
|
3月前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
1月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
99 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
1月前
|
存储 NoSQL 前端开发
美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
45岁老架构师尼恩详细梳理了手机扫码登录的完整流程,帮助大家在面试中脱颖而出。该过程分为三个阶段:待扫描阶段、已扫描待确认阶段和已确认阶段。更多技术圣经系列PDF及详细内容,请关注【技术自由圈】获取。
|
2月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
87 9
|
2月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
78 12
|
25天前
|
机器学习/深度学习 算法 文件存储
神经架构搜索:自动化设计神经网络的方法
在人工智能(AI)和深度学习(Deep Learning)快速发展的背景下,神经网络架构的设计已成为一个日益复杂而关键的任务。传统上,研究人员和工程师需要通过经验和反复试验来手动设计神经网络,耗费大量时间和计算资源。随着模型规模的不断扩大,这种方法显得愈加低效和不够灵活。为了解决这一挑战,神经架构搜索(Neural Architecture Search,NAS)应运而生,成为自动化设计神经网络的重要工具。
|
2月前
|
Java Linux 调度
硬核揭秘:线程与进程的底层原理,面试高分必备!
嘿,大家好!我是小米,29岁的技术爱好者。今天来聊聊线程和进程的区别。进程是操作系统中运行的程序实例,有独立内存空间;线程是进程内的最小执行单元,共享内存。创建进程开销大但更安全,线程轻量高效但易引发数据竞争。面试时可强调:进程是资源分配单位,线程是CPU调度单位。根据不同场景选择合适的并发模型,如高并发用线程池。希望这篇文章能帮你更好地理解并回答面试中的相关问题,祝你早日拿下心仪的offer!
52 6
|
3月前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
843 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
2月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
134 15

热门文章

最新文章