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

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

前言

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


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


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


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

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

2用xx语言xx框架可以做

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


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


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


自动化测试的技术有哪些

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


自动化测试的限制:

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


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


自动化测试用例生成:

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


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


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


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


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


脚本的结构:

你肯定听过线性脚本吧?


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


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


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


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


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

相关文章
|
9月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
383 11
|
3月前
|
人工智能 前端开发 Java
Java 面试资料中相关代码使用方法与组件封装方法解析
这是一份详尽的Java面试资料代码指南,涵盖使用方法与组件封装技巧。内容包括环境准备(JDK 8+、Maven/Gradle)、核心类示例(问题管理、学习进度跟踪)、Web应用部署(Spring Boot、前端框架)、单元测试及API封装。通过问题库管理、数据访问组件、学习进度服务和REST接口等模块化设计,帮助开发者高效组织与复用功能,同时支持扩展如用户认证、AI推荐等功能。适用于Java核心技术学习与面试备考,提升编程与设计能力。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
102 6
Java 面试资料中相关代码使用方法与组件封装方法解析
|
9月前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
9月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
9月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
153 1
|
5月前
|
人工智能 算法 数据库
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
|
7月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
469 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
7月前
|
存储 NoSQL 前端开发
美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
45岁老架构师尼恩详细梳理了手机扫码登录的完整流程,帮助大家在面试中脱颖而出。该过程分为三个阶段:待扫描阶段、已扫描待确认阶段和已确认阶段。更多技术圣经系列PDF及详细内容,请关注【技术自由圈】获取。
|
8月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
336 9
|
8月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
333 12