一、自动化的原因和障碍
二、敏捷测试自动化策略
测试工具如何选择,并快速掌握。
测试自动化需要审慎投入,持续改进。
自动化先定义要解决的问题,考虑能否自动化。一次只解决一个难题。考虑团队技能、经验。
自动化四个测试象限的先后顺序没有关系。
底层投入最多,收获最大,用与开发程序相同的语言。
API层,用户理解的语言、自动化。
界面(GUI):测试。非自动化。
测试人员和开发人员结对工作。从使用最频繁的界面开始测试。
自动化的范围:
持续构建部署(<8分钟,如果测试占用太多服务器资源,考虑瓶颈,如可以用模拟数据代替DB访问)
单测/组件测试、API或WEB Service测试、GUI底层测试(一般用声明方式编写、请开发用ID命名对象、只测界面如按钮响应等不要涉及业务逻辑)
比较工具(IDE选中两个文件,右键-Compare with eachother)
负载测试、重复任务、清理创建数据自动化(方便重现问题):尽量用和生产相同的环境
什么测试不应自动化:
可用性、探索式、一次性测试、永远不会失败的测试(如一项参数填不填都会成功,那就不需要自动化)
不易于自动化:遗留代码。
迭代反馈、管理层对快速产生结果的事感兴趣、找人结对会加快学习。
为测试提供测试数据:
生成测试数据:如testgen、Datatect、Datagenerator。perclip会将生成数据粘贴到剪贴板。可以生成不同类型和边界条件的数据。
避免访问数据库:测试数据唯一性避免互相影响、每次都创建和销毁、假如20多个测试用到同一表,使用包含库???
数据库迁移要用真实数据测试。
如何选择工具:
开源社区是否活跃、是否经常发布新特性、有没有人修复BUG。
优秀的敏捷工具:可以测试先行、分离测试实现细节、支持通过IDE和编程语言测试