Selenium自动化测试指南 - (EPUB全文下载)
文件大小:0.28 mb。
文件格式:epub 格式。
书籍内容:
Selenium自动化测试指南
第1章 Selenium自动化测试基础
第2章 必备辅助工具
第3章 Selenium IDE
第4章 Selenium 1(Remote Control)
第5章 Selenium 2(WebDriver)
第6章 自动化测试的流程和框架
第7章 自动化测试的实施
第8章 Selenium测试进阶
第9章 使用Selenium常见的问题
版权
第1章 Selenium自动化测试基础
Selenium是一系列基于Web的自动化测试工具。它提供了许多测试函数,用于支持Web自动化测试。这些函数非常灵活,它们能够通过多种方式定位界面元素,并可以将预期结果与系统实际表现进行比较。
在使用 Selenium 进行测试前,必须具备自动化测试相关基础、HTML/XML/XPath等语言基础,并对 Web 测试经常用到的辅助工具有基本的了解。下面将分别介绍这些知识。
1.1 自动化测试基础
1.1.1 软件测试概述
即使是经验非常丰富的程序员,在编写代码时也很容易出现错误,这些错误也许是由于需求不明确,也许是由于设计问题,也许是编码中出现了失误等。但无论是怎样的错误,若不及时处理,都会降低软件的可靠性,严重时甚至会导致整个软件的失败。
为了排除这些错误,人们引入了软件测试的概念。通俗地说,软件测试就是为了发现程序中的错误而分析或执行程序的过程。
据研究机构统计分析表明,国外软件开发机构 40%的工作量都花在软件测试上,软件测试费用占软件开发总费用的30%~50%。对于一些要求高可靠、高安全的软件,测试费用所占的比例更高。由此可见,要成功开发出高质量的软件产品,软件测试必不可少。
软件测试的主要工作是验证(Verification)和确认(Validation)。
验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件以正确的方式做了该做的事。具体地讲,验证主要完成以下任务。
(1)确定软件生存周期中一个给定阶段的产品是否达到当前阶段确立的需求。
(2)程序正确性的形式证明,即采用形式理论证明程序符合设计规约的规定。
(3)评审、审查、测试、检查、审计等,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断并进行报告。
确认(Validation)的目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件做了所期望的事情。
(1)静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。
(2)动态确认,通过执行程序进行分析,测试程序的动态行为,以证实软件是否存在问题。
测试和改正活动可以在软件生命周期的任何阶段进行。然而,随着开发的不断进行,找出并修正错误的代价也会急剧增加。在需求阶段就对其进行修改,付出的代价会很少。如果代码已经编写完毕,再进行更改,则将付出代价会大许多。
软件测试的分类
从是否关心软件内部结构和具体实现的角度来看,软件测试可以划分为以下几类。
白盒测试:需要了解内部结构和代码。
黑盒测试:不关心内部结构和代码。
灰盒测试:介于白盒测试和黑盒测试之间。
从是否执行程序的角度来看,软件测试可以划分为以下几类。
静态测试:测试时不执行被测试软件。
动态测试:测试时执行被测试软件。
按软件开发过程的阶段划分,软件测试可以划分为以下几类。
单元测试:测试软件的单元模块(单元模块指某个功能、某个类等)。
集成测试:将各个“单元”集成到一起测试是否能正确运行。
系统测试:测试软件是否符合系统中的各项需求。
验收测试:类似系统测试,但由用户执行。
按测试的具体目标进行划分,软件测试可以划分为以下几类。
功能测试:测试软件是否符合功能性需求,通常采用黑盒测试方法。
性能测试:测试软件在各种状态下的性能,找出性能瓶颈。
安全测试:测试该软件防止非法入侵的能力。
回归测试:在软件被修正或运行环境发生变化后进行重新测试。
兼容性测试:测试该软件与其他软件、硬件的兼容能力。
安装测试:测试软件的安装、卸载、升级是否正常。
各种软件测试书籍对前面3种划分方式介绍得很多,但在实际工作中,更习惯将测试按具体目标进行划分。
1.1.2 自动化测试简介
软件测试一般是由测试人员执行的,如果由机器来代替人执行软件测试,那么这种测试就叫自动化测试。例如,由计算机代替人来单击被测试软件的界面,执行一系列操作并进行验证。
在各种测试中,都可以引入自动化测试。
通过执行自动化测试,可以节省大量的人力、时间或硬件等资源,同时也能大大提高测试效率。
当然,这听起来很好,但如果要由机器代替人来执行软件测试,就得开发相应的自动化测试代码。开发自动化测试代码也是需要人力、时间或硬件等资源的。因此,在资源有限的情况下,必须对软件开发过程进行分析,观察哪些地方适合使用自动化测试。使用自动化测试通常需要同时满足以下条件。
(1)软件需求变动不频繁。
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改和调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
项目中的某些模块相对稳定,而某些模块需求变动性很大。可以对相对稳定的模块进行自动化测试,而变动较大的仍采用手工测试。
(2)项目周期足够长。
自动化测试的过程包括自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写和调试等,这个过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便也无从谈起。
(3)自动化测试脚本可重复使用。
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » Selenium自动化测试指南 - (EPUB全文下载)