一 什么是自动化测试
指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。
二 自动化测试的优点:
1. 提高测试效率和降低测试成本
2.实现快速的回归测试,加快测试进度从而加快产品发布进度
3.更多的测试,提高测试覆盖率
4. 保证一致性
5.提高测试的可靠性,避免人为因素
三 自动化测试的前提条件
1.需求变动不频繁
2.项目周期足够长
3.自动化测试脚本可重复使用
四 目前自动化测试存在的问题
1.大量的自动化测试脚本维护工作使得企业投入成为了一个无底洞。
2.没有真正解决回归测试问题,反而造成“高投入、低产出”问题的凸现。
以上问题的原因:
1)脚本静态化,一旦需求变更,不得不进行脚本重新的修正。
2) 业务之间的复杂性和关联性,驱使着脚本之间需要进行相互调度,来满足不同业务模型的测试,静态脚本的修正,很容易引起“水波效应”,从而增加脚本维护量。
3)脚本的复用性比较差,容易引起脚本的重复修正的工作,从而导致工作效率的降低。
五 为什么要做自动化测试框架
真正实现自动化测试,并不是掌握了某个自动化测试工具,掌握了脚本的编写技术就能够达成,实现自动化就是为了能够提升测试效率,不具备可维护性、复用性差将成为导致自动化测试失败的最致命因素,付出巨大代价但起到的效果甚微。必须搭建一套适合的自动化测试框架,将脚本能够有效的组织、连贯应用起来,提高测试脚本的可维护性和可读性。
六 自动化测试框架要达到的目标:
1.高复用性 2.高可维护性 3.稳定性 4.快速编写脚本 5.自动执行 6.正确输出结果 7.能够不断提升自动化测试比例
七 自动化测试框架实现思路
(1) 分层设计:业务流程、功能点、操作组件
a. 先实现最底层的操作组件,通过调用操作组件、及业务逻辑实现对功能点的验证,再通过调用业务逻辑组合功能点实现对业务流 程的验证。
不同的业务流程,对于底层的操作组件、中间层的功能点函数是完全可以复用的,只是调用的业务逻辑的差异,或者是测试数据的差异性。
b.尽可能做到各脚本之间具备独立性,不相互依赖,便于进行各种基本场景的组合运行。
(2)脚本分离设计:对象、操作、测试数据、业务逻辑相互剥离、灵活调用
a. 为了达到可维护性、可复用性,将对象、操作、测试数据、业务逻辑剥离、分开管理,通过调用关系去组合实现不同的测试用例。
八 自动化测试的工具及框架
1.watir和ruby
2.QTP
3.Ant+Selenium+Testng+Jenkins
参考:
http://storage.chinabyte.com/475/12174975.shtml
http://blog.csdn.net/ccjjyy/article/details/6126666