测试工具
测试自动化(test automation)
测试活动中的工具支持
测试工具支持并促进许多测试活动。示例包括但不限于:
- 管理工具 --- 通过促进 SDLC、需求、测试、缺陷和配置的管理,提高测试过程的效率。
- 静态测试工具 --- 支持测试人员执行评审和静态分析。
- 测试设计和实施工具 --- 有助于生成测试用例、测试数据和测试规程。
- 测试执行和覆盖工具 --- 有助于自动化测试执行和复盖率测量。
- 非功能性测试工具 --- 允许测试人员执行难以执行或不可能人工执行的非功能性测试。
- DevOps 工具 --- 支持 DevOps 交付流水线、工作流跟踪、自动化构建过程、CI/CD。
- 协作工具 --- 促进沟通。
- 支持可扩展性和部署标准化的工具(例如,虚拟机、容器化工具)。
- 其他有助于测试的工具(例如,电子表格是测试活动环境中的测试工具)。
测试自动化的收益和风险
仅仅获得测试工具并不能保证成功,每种新工具都需要付出努力才能实现真正持久的收益(例如, 工具的引入、维护和培训)。另外,工具存在风险,需要加以分析和缓解。
应用测试自动化的潜在收益包括:
- 减少重复性的人工活动以节省时间(例如,执行回归测试、重新输入相同的测试数据、比较预期结果与实际结果,以及按照编码规则进行检查)。
- 通过更高的一致性和可重复性来防止简单的人为错误(例如,始终从需求出发进行测试、测试数据以系统的方式创建、使用工具以相同的顺序以相同的频率执行测试)。
- 更客观的评估(例如,覆盖率),并提供人工无法实现的过于复杂的测量。
- 更容易得到测试的相关信息,以支持测试管理和测试报告(例如,有关测试进度、缺陷率和测试执行持续时间的统计数据、图表和聚合数据)。
- 减少测试执行时间,以提供更早的缺陷检测、更快的反馈和更早时间的上市。
- 让测试人员有更多时间设计新的、更深入、更有效的测试。
应用测试自动化的潜在风险包括:
- 对工具抱有不切实际的期望(包括功能性和易用性)。
- 对引入工具、维护测试脚本和更改现有人工测试过程所需的时间、成本和人力的估计不准确。
- 适合人工测试时,却使用测试工具。
- 过于依赖工具,例如忽视了必要的测试人员的批判性思维。
- 所依赖的工具供应商可能会倒闭、工具可能会报废、工具供应商将工具出售给其他供应商,或工具供应商提供较差的支持(例如,对询问的响应、版本升级和缺陷修复)。
- 使用可能被遗弃的开源软件,开源软件没有办法升级更新,或者如要进一步的开发其内部组件可能需要相当频繁的更新。
- 自动化工具与开发平台不兼容。
- 没有选择符合监管要求和/或安全标准的合适工具。
欢迎关注我的博客,如有疑问或建议,请随时留言讨论。