自动化测试简介
时间:2020-02-23 14:41:13 来源:igfitidea点击:
测试是任何应用程序开发生命周期的重要组成部分。
根据应用程序阶段有不同类型的测试-单元测试,集成测试,系统测试等。
然后有不同类型的测试过程-手动测试和自动化测试。
手动测试与自动化测试
顾名思义,手动测试需要人工运行测试用例,而无需使用任何工具。
而自动化测试是通过使用一些工具和测试脚本来执行的。
什么是自动化测试?
当使用Selenium,QTP,Load Runner等测试工具来编写和执行测试用例时,称为自动化测试。
什么是功能自动化测试?
功能自动化测试是确定项目中需要重复测试的各种功能,然后开发和执行自动化脚本(程序)以验证功能的过程。
自动化测试的优势
自动化极大地增加了测试范围
自动化优化测试速度
自动化提高了测试质量
自动化降低了测试成本
自动化减少了测试执行时间
自动化不需要人工干预。
我们可以安排测试在夜间进行,而无需人工干预。自动化脚本可以随时随地运行。
脚本在其他应用程序上的可重用性。
易于测试压力,性能和负载
节省了人工。
自动化测试的缺点
- 调试测试脚本是一个主要问题。
如果测试脚本中存在任何错误,可能会导致后果 - 需要熟练程度来编写自动化测试脚本
- 测试维护成本高昂
- 测试数据的维护很困难。
哪些测试用例可以自动化?
如果满足以下条件,则测试用例应自动化。
- 重复使用的测试
- 高风险测试用例
- 容易引起人为错误的测试
- 无法手动执行的测试用例
- 需要大量时间进行手动测试的测试
- 耗时的测试方案
- 回归测试套件
- GUI项目
- 数据库连接。
哪些测试用例不应该自动化?
- 需要频繁更改的测试用例
- 与UI相关的测试用例
- 探索性测试
何时自动化?
- 当项目很大且至关重要时
- 一旦应用稳定
- 有足够的时间进行测试时
- 需要频繁进行回归测试时
- 当手工工作很高时。
什么时候不自动化?
- 如果甚至没有手动测试过一次应用程序
- 当需求经常变化时
- 当没有太多回归
- 没有时间和资源的限制。
注意:自动化测试是另外的支持,可以加快测试活动,但不能替代手动测试,因为无法自动进行所有操作。
如何决定要自动化什么而不要自动化
Feature | Programmable | Testing Frequency | Cost | Automation |
---|---|---|---|---|
F1 | ✔ | High | High | ✔ |
F2 | ✔ | Low | High | ✖ |
F3 | ✔ | High | Low | ✔ |
F4 | ✔ | Low | Low | ✖ |
F5 | ✖ | ✖ | ✖ | ✖ |
自动化测试工具
- 硒
- QTP(UFT)
- RFT
- 测试伙伴
- 真丝测试
QTP,RFT,Silk测试是许可工具,而Selenium是开放源代码工具。
自动化测试流程
自动化过程中遵循以下步骤:
- 自动化测试计划
- 测试环境设置
- 分析测试用例
- 开发测试脚本
- 增强测试脚本
- 脚本调试
- 脚本执行
- 分析测试结果
- 缺陷报告
自动化测试流程
自动化测试工具选择标准
选择自动化工具在很大程度上取决于应用技术。
但是,在选择自动化工具时要考虑的其他几点是:
- 费用(许可证价格)
- 特征
- 技术支持
- 性能
- 保养
规划,设计与开发
在此阶段,Tester会创建自动化测试策略和计划,其中包含以下详细信息:
- 自动化工具选择
- 自动化框架设计及其功能
- 范围内功能需要进行自动化测试
- 超出范围的功能需要进行自动化测试
- 自动化测试台准备
- 脚本生成和执行的时间表和时间表
- 测试自动化的交付物
测试执行
在此阶段,自动化脚本由测试人员编写。
要执行脚本,我们需要在测试人员运行测试之前输入测试数据。
脚本执行完成后,测试人员将提供详细的测试报告。
保养
由于每次都有连续的周期向被测系统每次添加新功能时,需要为每个测试周期版本添加,检查和维护自动化脚本。
为了提高自动化脚本的有效性,必须进行维护。
自动化框架
框架是一组准则,可以帮助我们
- 减少代码维护
- 保持整体测试的一致性
- 改善测试结构
- 最低代码使用率
自动化测试中使用的框架类型:
- 关键字驱动框架
- 数据驱动框架
- 模块化框架
- 混合框架
可以自动化的测试类型
- 单元测试
- 整合测试
- 功能测试
- 烟雾测试
- 回归测试