1703951044
4.4.1 从“零”搭建自动化测试
1703951045
1703951046
测试,是产品开发流程中很重要的一个环节,它确保了软件的交付质量,我们在掌握了敏捷开发、项目“微管理”等方法之后,要给大家介绍自动化测试的构建方法。
1703951047
1703951048
自动化测试究竟能给我们带来什么好处?更节省成本?测试更快?彻底取代手工测试?带着这些问题,我们一起来学习自动化测试怎么做。
1703951049
1703951050
什么是自动化测试?自动化测试,是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预设条件应包括正常条件和异常条件。
1703951051
1703951052
自动化测试有许多优点,比如:测试速度快,可非常快速地执行上万条记录;测试的准确度高,不受外界或人力因素的影响,精确执行测试用例;提高工作效率,可以一边执行自动化测试,一边准备测试用例;测试数据更容易生成,可通过脚本大量生成测试用例、测试数据。
1703951053
1703951054
自动化测试也有其局限性,比如:不能取代手工测试,不可能自动化所有的测试,如UI自动化测试只能局部实施;自动测试对测试质量的依赖性较大,在确保测试质量的前提下,实施自动化测试才有意义;自动测试在刚开始执行时,工作效率并不一定高于手动测试,只有当整个自动化测试系统成熟,且测试工程师熟练掌握测试工具后,工作效率才会随着测试执行次数的增加而提高;自动化测试的成本可能高于手工测试,成本包括开发、运行、维护和其他相关任务带来的成本,比如软件的修改会让测试脚本部分或全部修改,就会增加测试维护的开销。
1703951055
1703951056
什么样的技术团队适合做自动化测试?首先,开发团队有规范的测试流程,成熟的测试团队,并且软件质量比较好;其次,想更高效地开展测试工作,进行测试人员的工作转型;最后,有足够的人力投入和知识储备。如果测试只是偶尔执行,或待测系统经常变动、不稳定,测试需要大量的人工参与时,就不适宜采用自动化测试。
1703951057
1703951058
怎么做自动化测试呢?如图4-7所示,是自动化测试基本流程图,流程包括:设计维护用例、准备测试数据、开发维护脚本、执行自动化、检查结果、修复问题,形成了自动化测试流程的闭环。
1703951059
1703951060
1703951061
1703951062
1703951063
图4-7 自动化测试基本流程图
1703951064
1703951065
以上我们把自动化测试的基本概念、主要流程跟大家做了介绍,下面我们通过一个实际案例来一起建立自动化测试系统。
1703951066
1703951068
4.4.2 最佳实践案例:跟我一起搞定自动化测试
1703951069
1703951070
案例4-4 跟我一起搞定自动化测试
1703951071
1703951072
实施自动化测试,首先关注如何搭建自动化测试框架,搭建的原则是:一、快速成型和快速推广,框架的基本功能马上可以使用,并能迅速地找到使用者,得到成功推广的案例;二、可扩展,可实现增量开发—逐步扩大用户基数,丰富框架功能。
1703951073
1703951074
基于这两个原则,在常见的开源自动化测试框架里,有三个框架符合要求,它们是Selenium、WatiR/WatiN、Sahi,下面我们简要介绍这三个框架。
1703951075
1703951076
Selenium,可以说是测试Web最全面的开源自动化测试工具,它可以在Windows、Linux、MAC和Solaris上运行,而且可以几乎用任何一种编程语言进行构建,支持的语言有Java、C#、Perl、PHP、Python、Ruby;支持的浏览器有IE、FireFox、Opera、Safari。相信这些特性,已经满足大部分公司对自动化测试框架的要求。
1703951077
1703951078
WatiR/WatiN,是Web Automation Testing In Ruby/.Net的缩写,支持的语言有Ruby、C#;支持的浏览器有FireFox、Safari。
1703951079
1703951080
Sahi,可以专门测试动态的Ajax应用程序,还带有出色的自动化播放效果机制,独立的平台和浏览器、出色的录制器、无须等待、无须Xpath、内置Java异常交互报告,支持的语言只有Java,支持的浏览器是FireFox。
1703951081
1703951082
其中Selenium是比较推荐的自动化测试框架,因为它起步早、发展较成熟、用户群较多、参考资料丰富,使用者只要专注于组件编写,就能实现企业级的自动化测试。
1703951083
1703951084
有了自动化测试框架,接下来我们来设计一个自动化测试的代码框架,如图4-8所示,这是一个完整的自动化测试框架的层次结构,包括主控层、脚本层、公用函数、错误处理、日志与报告、全局环境变量。
1703951085
1703951086
1703951087
1703951088
1703951089
图4-8 自动化测试框架的层次结构
1703951090
1703951091
主控层,用于控制触发自动化测试运行的驱动。 脚本层,用于管理测试脚本代码,脚本层中还包含测试数据、对象库、公用脚本、局部变量。 公用函数,提取所有脚本中全局公用函数。 错误处理,自动化测试中的容错机制,有的框架会自带错误处理机制。 日志与报告,记录自动化测试运行过程中的各种日志。 全局环境变量,用于统一配置管理。 如图4-9所示,是一个自动化测试工程代码的结构示例。
1703951092
[
上一页 ]
[ :1.703951043e+09 ]
[
下一页 ]