软件自动化测试实战:基于开源测试工具主要观点

简介: 本书讲述测试框架、接口测试、Web自动化测试及移动端自动化测试。

*文中代码字体版权说明

第1章

自动化测试基础和Python开发环境的搭建

1.1 为什么要实施自动化测试

随着人工智能、大数据、移动互联网等行业的快速发展,越来越多的软件企业开始大量应用Python语言进行软件的开发和数据处理,Python现在是软件相关从业人员甚至连小学生都在学习的一门语言。软件行业由于同质化产品众多、竞争日益激烈,如何高效、保质保量地产出每一个迭代版本,已经成为整个行业正在面临的重大问题之一。敏捷软件开发的深入开展,使得持续集成已经成为趋势,而在敏捷模型中,自动化测试是实施过程中非常重要的环节。

那么什么是自动化测试?自动化测试是把手动测试行为转为由计算机执行的过程。通常,在测试人员设计完测试用例并通过用例评审后,由测试人员根据测试用例中描述的规程一步步执行测试,将得到的实际结果与期望结果做比较。为了节省人力、时间或硬件资源等成本,同时又提高测试效率,便引入了自动化测试。自动化测试人员一般使用专门的自动化测试工具或测试人员编写的自动化测试脚本来执行测试用例。目前主流的Web自动化测试工具包括Seleniu-m、Unified Functional Testing(UFT)和Rational Robot等。Selenium是开源的测试框架,目前已被广泛应用于Web自动化测试。Unified FunctionalTesting(UFT)是QuickTest Professional(QTP)的升级版,是一款商用的自动化测试工具,功能强大、使用简单。移动端自动化测试工具有很多,如Ap-pium、Robotium、UIAutomator、MonkeyRunner等,其中应用最广泛的就是Appium自动化测试框架。

为什么要实施自动化测试?随着敏捷软件开发和DevOps的深入开展,先前纯人为的功能性测试已经不能满足研发团队的要求。面对版本的快速迭代,如何高效并保质保量地向用户提交可运行的软件产品已经是测试团队必须面对的问题,只有实施自动化测试才能快速对产品或项目的新旧功能在功能性和非功能性上进行全面验证,持续反馈所提交版本的质量,提高软件研发团队的工作效率。同时,自动化测试是由机器执行的,可以有效避免测试人员在执行过程中出现的一些问题(如疲劳、输入错误数据、操作步骤不对、受情绪影响而导致工作效率降低等),机器可以并行执行且24小时不间断地连续工作。当前,容器化大行其道,使得测试人员可以用更少的硬件资源快速完成测试环境的部署和测试的执行。上面只粗略地讲了实施自动化测试的一些原因,但我们相信这些已经能打动您实施自动化测试了。

事实上,很多软件企业做了更多的工作,它们不仅使用一些开源的自动化测试框架,甚至还为自身定制了更适用的测试平台来完成接口测试、功能测试、性能测试、兼容性测试和安全性测试等,进而通过这些手段全面保障软件产品的质量、加快软件产品的输出进度以及提升客户的满意度等。

1.2 为什么要学习Python

随着信息技术的飞速发展,计算机科学在国民经济中扮演着越来越重要的角色,各行各业对软件质量的要求越来越高,测试人员始终要保持高度的敏感度,与时俱进,掌握一门编程语言并将之运用到功能测试、性能测试、接口测试、测试辅助工具的开发、测试框架的开发。那么问题来了,目前流行的编程语言有很多,如Java、C、C++、C#、Python、Ruby、Perl、PHP、Delphi等,面对这些编程语言,测试人员应该如何选择呢?在选择编程语言方面,本书强烈推荐Python,原因如下。

1.Python语言是目前最流行的编程语言之一

根据全球著名的编程语言社区TIOBE发布的统计信息,Python语言在2020年7月最新的编程语言排行榜中位列第3,仅次于C和Java语言,如图1-1所示。有很多读者可能不知道TIOBE编程语言排行榜,这里我们基于百度百科中对TIOBE编程语言排行榜的介绍做如下简单描述:TIOBE编程语言排行榜每月更新一次,依据的指数由世界范围内的资深软件工程师和第三方供应商提供,排行结果可作为当前业内程序开发语言的流行使用程度的有效指标,可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要做出战略改变,以及判断什么编程语言是应该及时掌握的。

版权:人民邮电出版社