测试是任何应用程序开发生命周期的重要组成部分。 根据应用程序阶段有不同类型的测试-单元测试,集成测试,系统测试等。然后有不同类型的测试过程-手动测试和自动化测试。
手动测试与自动化测试 (Manual Testing vs Automation Testing)
顾名思义,手动测试需要人工来运行测试用例,而无需使用任何工具。 而自动化测试是通过使用一些工具和测试脚本来执行的。
什么是自动化测试? (What is Automation Testing?)
当使用诸如Selenium,QTP,Load Runner等测试工具来编写和执行测试用例时,称为自动化测试。
什么是功能自动化测试? (What is Functional Automation Testing?)
功能自动化测试是确定项目中需要重复测试的各种功能,然后开发和执行自动化脚本(程序)以验证功能的过程。
自动化测试的优势 (Advantages of Automation Testing)
- 自动化极大地增加了测试范围
- 自动化优化测试速度
- 自动化提高了测试质量
- 自动化降低了测试成本
- 自动化减少了测试执行时间
- 自动化不需要人工干预。 我们可以安排测试在无需人工干预的情况下进行过夜。
- 自动化脚本可以随时随地运行。
- 脚本在其他应用程序上的可重用性。
- 易于测试压力,性能和负载
- 节省了人工。
自动化测试的缺点 (Disadvantages of Automation Testing)
- 调试测试脚本是一个主要问题。 如果测试脚本中存在任何错误,可能会导致后果
- 熟练编写自动化测试脚本
- 测试维护成本高昂
- 测试数据的维护很困难。
哪些测试用例可以自动化? (Which Test Cases can be Automated?)
如果满足以下条件,则测试用例应自动化。
- 重复使用的测试
- 高风险测试案例
- 容易引起人为错误的测试
- 无法手动执行的测试用例
- 需要大量时间进行手动测试的测试
- 耗时的测试方案
- 回归测试套件
- GUI项目
- 数据库连接。
哪些测试用例不应该自动化? (Which Test Cases should Not be Automated?)
- 需要经常更改的测试用例
- 与UI相关的测试用例
- 探索性测试
何时自动化? (When to Automate?)
- 当项目很大且至关重要时
- 一旦应用稳定
- 有足够的时间进行测试时
- 需要频繁进行回归测试时
- 当手工工作很高时。
什么时候不自动化? (When not to Automate?)
- 如果甚至没有手动测试过一次应用程序
- 当需求经常变化时
- 当没有太多回归
- 没有时间和资源的限制。
注意 :自动化测试是额外的支持,可以加快测试活动,但不能替代手动测试,因为所有内容都无法实现自动化。
如何决定要自动化什么而不要自动化 (How to decide what to Automate and what not to Automate)
自动化测试工具 (Automation Testing Tools)
- Selenium
- QTP(UFT)
- RFT
- Test Partner
- Silk Test
QTP,RFT,Silk测试是许可工具,而Selenium是开放源代码工具。
自动化测试流程 (Automation Testing Process)
自动化过程中遵循以下步骤:
- 自动化测试计划
- 测试环境设置
- 分析测试用例
- 开发测试脚本
- 增强测试脚本
- 脚本调试
- 脚本执行
- 分析测试结果
- 缺陷报告
自动化测试工具选择标准 (Automation Testing Tool Selection Criteria)
选择自动化工具在很大程度上取决于应用技术。 但是,在选择自动化工具时要考虑的其他几点是:
- 费用(许可证价格)
- 特征
- 技术支持
- 性能
- 保养
规划,设计与开发 (Planning, Design and Development)
在此阶段,Tester会创建自动化测试策略和计划,其中包含以下详细信息:
- 自动化工具选择
- 自动化框架设计及其功能
- 范围内功能需要进行自动化测试
- 自动化测试之外的功能
- 自动化测试台准备
- 脚本生成和执行的时间表和时间表
- 测试自动化的交付物
测试执行 (Test Execution)
在此阶段,自动化脚本由测试人员执行。 要执行脚本,我们需要在测试人员运行测试之前输入测试数据。 脚本执行完成后,测试人员将提供详细的测试报告。
保养 (Maintenance)
由于每次都有连续的周期向被测系统添加新功能时,需要为每个测试周期版本添加,检查和维护自动化脚本。 为了提高自动化脚本的有效性,必须进行维护。
自动化框架 (Framework for Automation)
框架是一组准则,可以帮助我们
- 减少代码维护
- 保持整体测试的一致性
- 改善测试结构
- 最低代码使用率
自动化测试中使用的框架类型:
- 关键字驱动框架
- 数据驱动框架
- 模块化框架
- 混合框架
可以自动化的测试类型 (Types of testing that can be automated)
- 单元测试
- 整合测试
- 功能测试
- 烟雾测试
- 回归测试
结论 (Conclusion)
如果需要一次测试,那么我们应该进行手动测试。 如果经常需要测试,那么我们应该进行自动化测试。 正确的自动化工具选择,测试过程以及测试团队的正确选择是自动化测试成功的关键因素。