Skip to content

Latest commit

 

History

History
94 lines (65 loc) · 4.6 KB

自动化测试.md

File metadata and controls

94 lines (65 loc) · 4.6 KB

自动化测试问题

你认为适合做自动化测试的标准是什么?

  1. 稳定,改动小
  2. 核心流程
  3. 自动化脚本编写成本低,产出高
  4. 需要重复执行的测试用例
  5. 中长期项目:某阶段的自动化测试用例可以在下一次的迭代中继续维护使用

你认为什么类型的测试不适合做自动化测试?

  1. 经常改动
  2. 非重要业务流程
  3. 短期项目

UI自动化测试的优点和缺点分别是什么?

优点:

  1. 减少手工测试工作量
  2. 满足项目的快速迭代
  3. 更加贴近用户层面的自动化
  4. 增加测试范围:覆盖更多平台或者浏览器等,而无需手工加入

缺点:

  1. 修改频繁,维护成本高
  2. 投入产出比高

在一个项目中目前还没有进行自动化,如果我想开展自动化测试,我应该怎么做(一般步骤)?

  • 项目启动阶段
  1. 可行性分析:评估是否适合自动化测试,如果不合适请及时同项目负责人沟通
  2. 抽样分析:写几个自动化测试脚本,查看工作能否顺利进行;对自动化测试工作有大体轮廓
  • 测试准备阶段
  1. 自动化测试需求筛选评审:剔除不重要的测试用例,重点放在核心功能上;UI/API自动化配比:重API轻GUI
  2. 制定自动化测试计划:组织架构,任务分配,工作量估计,人员分配,进度安排,风险评估,通过准则
  3. 制定自动化测试方案:目标,范围,工具设计和选择,开发语言选择,自动化框架设计和选择,持续集成规划,UI/API自动化场景与规划,用例设计原则,测试脚本编写原则,测试脚本管理,测试数据管理,自动化测试环境的规划,脚本执行策略
  4. 搭建自动化框架:保证脚本的分布执行,用例的模块化,测试数据管理,日志分析与错误截图,通俗易懂的测试报告环境配置化;提高测试脚本的可维护性可读性,测试框架还要做到高内聚低耦合
  5. 测试用例标准化与制定编码规范:可以参考对应开发语言的编码规范,以及测试框架选择对应的用例设计标准,或者根据平时编码习惯共同商议

你认为该如何选择最适合的自动化测试工具?

  1. 评估团队是否具备必要技能:技术能力有限团队,优先选择无代码自动化测试工具
  2. 团队预算:自动化在短期内性价比较低,要从长远进行规划和计算,为团队带来更多正向的投资回报。
  3. 测试需求:需求不同,选择的自动化工具自然各异;另外需要考虑:
    • 支持平台
    • 测试重的应用程序
    • 编码语言
    • CI/CD集成功能
    • 测试报告
  4. 脚本维护和可重用性:脚本维护占测试自动化成本重要因素,理想的自动化测试工具应当具备减少维护工作能力;另外可重用性节省编写类似测试用例时间
  5. 持续集成能力:集成到CI/CD管道和外部平台,确保测试的连续性,确保更好的进行测试管理和团队协作
  6. 技术支持:商业工具,依靠商业技术支持;而开源则依靠庞大而活跃的社区

什么是自动化测试框架?一个好的自动化测试框架应该具备什么元素?

  • 定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具

  • 具备元素:

    1. 简化测试执行过程
    2. 提高测试机器的执行效率
    3. 提供测试用例并发执行能力
    4. 提供CI/CD集成机制
    5. 日志记录和管理能力
    6. 环境可配置,参数可配置
    7. 公共方法/函数,常用操作
    8. 结果统计能力
    9. 优雅的测试报告

说一下你写过的测试框架的代码目录结构是怎么样的?

简单举例junit项目的目录结构:

  • test:不同测试场景下的自动化用例;公共方法类,比如文件读写,字符串处理等;
  • resources:配置文件,一般是xml文件

自动化测试框架的类型有哪些?

说一下你在实施自动化测试过程中好的代码实践?

自动化测试是否仅仅可以是实施在UI层?为什么?

仅仅实施在UI层面是非常不明智不可取的。

UI变更频率更高,细小的改动也会导致测试脚本大范围的改动,维护成本太大;而API自动化执行效率更高,并且修改相对较小,出错率低,可测试的覆盖率也比UI高,应当将自动化测试重点放在API上。

你是否熟悉Selenium工具?说一下它是什么?

你是否还熟悉其它的自动化测试工具?各自简单的介绍一下?