以书会友,《Selenium自动化测试之道》上市了

2017-11-21  籽藤 



写一本关于 Selenium 自动化测试的工具书,一开始我是拒绝的。直到现在,我仍然认为工具书不足以道尽测试的奥妙。学习 Selenium 最好的途径是啃官方文档和源码,从最开始的 Selenium RC 到 Webdriver,再到移动测试 Appium,Selenium一直在快速、持续地发展和变化着。等读者看到这本书的时候,很可能某些问题已经有了更好的解决方案,或者书中的代码已经不能直接运行

最终,我还是动笔了。因为我还有另一个观点:“自动化测试”不是某一家公司或者团队组织需要考虑的问题,它应该是测试同行们的必经之路,是日常测试工作的手段之一。而初学者在一开始难免会有畏难情绪,又不知如何构建知识体系于是,将所思所得分享出来,或许可以帮助初学者尽快地度过那段“破冰期”


《Selenium自动化测试之道》在天猫京东当当等各大网站均可购买。

传送门https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.6c897c7ahoFqS8&id=561273116354&areaId=110100&user_id=2451699564&cat_id=2&is_b=1&rn=c4b3a9235eda34738ef10b73faaa44d3

本书的组织方式

市面上Selenium的资料很多,谈论测试自动化的也很多。脱离了工具和技术,去谈方法论,难免让人觉得空洞;而没有方法论的东西,只谈工具和技术,难免是“一叶障目,不见泰山”。本书尝试在梳理技术知识之余讨论测试自动化的方法论

n第1章是探讨测试价值观,阐述了我对自动化测试的基本观点和认识。

n第2章是Selenium入门章节。介绍了Selenium的发展,涉及到Selenium IDE,Selenium Webdriver,Selenium Grid的使用

n第3章重点介绍了Selenium Webdriver 的使用。不是简单罗列Selenium Webdriver API,还包括了不同webdriver对象,不同页面元素的处理思路

n第4章介绍了自动化测试框架的设计,包括了线性,模块化,数据驱动和关键字框架这四种类型。

n第5章介绍了HTML5元素的处理。Selenium还未对某些HTML5元素的操作进行封装,因而需要利用Javascript来解决问题。读者将在这一章开拓视角,了解更多的Selenium应用场景。

n第6章介绍了移动App的测试框架——Appium基于前面几章对Selenium原理与操作的了解,读者会在这一章了解iOS与Android App 自动化测试脚本的写法。

n第7章介绍了行为驱动开发(BDD)模式。通过这一章节,希望读者能体会到,做好自动化测试不仅在于工具的掌握和框架的使用,还需要考虑测试用例的管理,手动测试用例如何与自动化脚本关联,甚至与业务部门的沟通等问题。几款BDD框架的示例,为读者提供了思路。

n第8章介绍了持续集成工具Jenkins的使用。希望通过这一章节,能为读者带来测试流程方面的思考。Jenkins 可以让测试脚本的执行,报告的展示变得简单高效。

本书的内容,均是由Ping++ 的一线测试人员编写。第2章由王红兴、周淼淼主笔,第4章由徐克亮主笔。其余章节均由我本人主笔

本书特色与不足

本书的特色主要体现在以下三个方面:

第一,在理论观点上,本书在开篇就阐明了笔者对于“质量与自动化测试的关系”,“自动化测试与白盒测试的关系”等话题的理解。其实 Selenium 等各种自动化测试工具上手并不难,但我相信读者在阅读过程中,并不仅仅只是想了解一种工具,而是想获得如何实施自动化测试的思路。正所谓,测试技术或工具只是“指月之手”,我们追求的“月亮”,是如何放心地迭代,快速地交付高品质的产品。

第二,学习视角上,本书从 Selenium 工作原理测试脚本的组织方式说开去,再Web 自动化脚本的编写,延伸到 HTML5 元素,App 测试对象的识别等。章节的内容设置,与当今企业,尤其是互联网公司,所需的UI自动化测试技术环环相扣,归纳总结了可能遇到的难点,以及解决问题的思路。

第三,技术实施上,突出了需要向团队传播质量意识与测试自动化实践相结合。本书介绍的行为驱动开发(BDD)与持续集成工具 Jenkins,都是需要团结整个研发团队,甚至是相关的业务部门,才能将这些理念发挥至最佳。当然,即便这些概念在组织推进过程中存在困难,测试人员也可以通过了解这些工具和技术,对研发过程改进这一话题进行更加深入的思考。

本书也存在以下几方面的不足:

一是代码示例涉及的编程语言不够全面,对编程语言的语法未做特别说明。Selenium 目前支持七种语言(Java,Csharp,Python,Ruby,PHP,Perl,Javascript)有不少介绍 Selenium 的同类书籍,在章节内容中会介绍编程语言的语法基础。考虑到本书的目标和定位笔者有意在无形中弱化了读者对于编程语言语法的关注。对于没有掌握一门编程语言的初学者而言,或许会造成阅读门槛。

二是体系不够完善。本书涉及了多类界面对象的识别和操作,多种测试脚本的写法,多个测试框架的使用。然而在实际工作中,界面操作的自动化仅仅只是分层测试策略中的一部分,并不能代表全部的自动化工作。但为了便于从整体上把握和安排内容,笔者还是以 Web 测试自动化作为本书的主要架构。这样,相比单一地通过某个系统或产品来整体介绍自动化测试方面的研究,书中各章节的内容就显得在体系性上有所欠缺。

189°|1880 人阅读|1 条评论
登录 后发表评论