用工具代替/辅助人工完成软件测试活动的过程,不能为了自动化而自动化
自动化测试特点
- 可以对程序的新版本自动执行回归测试
- 可以执行一些手工测试困难或不可能进行的测试
- 可以更好地利用资源
- 测试具有一致性和可重复性
自动化一定要有框架
自动化测试优势
- 节省时间,提高测试覆盖率和测试精度
- 减少手工测试人为产生的错误
- 提供规范化的过程和一致性
自动化测试局限性
- 手工测试比自动测试发现的故障要多,自动化只能发现约15%的bug
- 自动化测试不能提高测试的有效性,只能用于提高测试的效率
- 自动化测试不具有想象力,没人聪明
- 自动化测试不能取代手工测试
误区:
- 期望自动化测试发现大量新故障
- 安全性错觉
- 自动化测试的维护开销
不适合于自动化测试情景
- 测试频度很低
- 软件不稳定
- 结果很容易通过人验证的测试(人工实施较为高效)
- 涉及物理硬件设备交互的测试
自动化测试位置
自动化工具分类
测试工具的类型 |
简述 |
代码分析器 |
监督程序代码复杂度,是否遵循标准等等 |
覆盖分析器 |
校检哪一部分的代码已经被测试,面向代码语句覆盖、条件覆盖、路径覆盖等等 |
内存分析器 |
边界检查和漏洞检测等等 findbugs sonar静态分析工具 |
性能测试工具 |
测试在不同的负载级别之下客户/服务器和WEB应用程序等等 |
BS测试工具 |
检验链接是否有效,客户和服务器端、 WEB站点的交互是否正常工作 |
其他工具 |
测试实例管理,文件管理, BUG报告,配置管理工具 |
自动化测试的内容
- 测试数据自动生成
- 自动化输入
- 测试结果自动比较
- 测试自动执行
- 自动化测试用例的管理
- 在线监控
数据库批量插入数据
自动化脚本技术
• 线性教本
– 录制、回放 – 辅助使用,不靠谱
• 结构化脚本
– 含有控制脚本执行的指令,支持顺序、选择和循环
• 共享脚本
– 可以被多个测试用例使用,脚本之间可以相互调用
• 数据驱动脚本(程序不变,数据变)
– 数据驱动脚本是将测试输入存储在独立的文件中,脚本中只存放控制信息
• 关键字驱动脚本(通过数据文件中的文字,映射执行程序中的函数)
– 关键词驱动脚本实际上是较复杂的数据驱动技术的逻辑扩展
自动化测试的类型
• 单元测试-执行速度最快
• 接口测试-执行速度较快
• Ui测试-执行速度最慢
自动化测试需要的条件
• 软件需求变动不频繁
• 项目周期足够长
• 自动化测试脚本可重复使用
• 有编程和设计能力的测试开发人员
• 研发团队的支持
在自动化测试过程中总结自动化实践的投入产出比
自动化测试的术语
数据驱动
基于数据驱动的自动化测试框架是指测试驱动引擎从数据源获取测试数据,然后将将数据以参数的形式传递给测试脚本,最后通过执行测试脚本,验证测试结果,并将测试结果输出。一般数据源与测试结果存储在、 Excel文件、Csv文件等。
数据驱动主要优点是
– 测试脚本与测试数据的分离,
– 当应用功能变更时,只需要修改该功能部分的脚本;
– 执行测试用例的人员不需要了解测试脚本的实现,只关注测试数据表与测试报告表。
测试框架
❖ 整个或部分系统的可重用设计,表现为一组抽象构件以及构件实例间交互的方法;
❖ 可被开发者定制的应用骨架。
关键字驱动
关键字驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑
主要关键字包括三类:被操作对象(Item) 、操作(Operation)和值(value) ,用面向对象形式可将其表现为 Item.Operation(Value)
混合模式:动作跟动作操作的数据跟均程序分离
自动化测试流程图
WEB 自动化测试的基本原理