说起自动化测试,在这个软件吞噬世界的时代里,早不是什么高端技术了。从基本的单元测试,到复杂的系统测试,几乎都可以使用自动化测试来代替原本的手动测试。
随着软件规模的增大,软件的速度开始提升,特性也越来越丰富,测试的要求就逐渐变得高了起来。曾经那些不能够自动化的测试场景,如今也可以利用各种软硬件技术来实现自动化,就像是为了打败更强大的对手,越来越多的武功秘籍被开发了出来。
但就算最终练成了绝世高手,当我们面对的事一支军队的时候,那注定会毫无招架之力……
同样,即便我们有再强大的自动化测试技术来测试某个产品特性(比如JMeter的性能测试,Selenium的Web图形测试,RobotFramework的关键字驱动等等),想要测试好一个完整的产品,仅仅使用单一的一个框架是无法胜任的!
怎么办
虽然自动化测试技术已经发展到人工智能的阶段,但是很多企业和团队由于成本或者其他因素,依旧在自动化测试工具、平台的选择和开发上苦苦摸索和前进。
我们需要一个测试平台去统一集成这些框架,在这些框架的基础上发展出适合自己业务的平台,就好比带领武林高手去打仗,通过排兵布阵赢得胜利!
兵者,国之大事,死生之地,存亡之道,不可不查也。
既然如此,我们不妨先来接受下几个灵魂拷问——
问题1:你的自动化测试用例足够灵活吗?对于一个功能测试,这个测试用例是否能适应不同的测试环境?
问 题 背 景
很多团队开发的测试脚本业务和技术代码耦合得非常紧密,甚至对测试场景也有严格规定,所以往往不能够自动匹配不同的测试环境,甚至在环境做了一些修改之后,测试用例也需要相应进行修改。
问题2:你的测试用例扩展性足够强大吗?如果有新的测试技术和工具引入,能够快速扩展测试用例来支持新的技术和工具?
问 题 背 景
如果对于一个功能的测试,有了更可靠有效的测试工具支持,往往需要修改现有测试用例,或者修改现有的工具库来对新工具进行支持,在不修改或者少量修改测试用例的情况下很难完成扩展。
问题3:你的自动化测试报告是不是适合团队不同的使用者分析使用?你能否在测试报告中快速找到测试Failed的原因?
问 题 背 景
目前有大量的实践还是将测试结果以log日志的形式进行输出,没有很好地将测试结果分类和结构化,所以导致测试执行者在分析测试结果的时候需要花大量的实践去定位问题。
问题4:你能否根据不同的测试需求,来灵活组织和配置现有的测试用例?
问 题 背 景
一般在软件测试中,测试会分为不同的阶段,不同阶段的测试用例要求也不同。所以一些团队往往会去重复开发测试用例来满足不同阶段的需求,这个问题还涉及到自动化测试用例管理,如何高效管理现有的测试用例也是一个需要解决的问题。
问题5:如果你所在公司的其他团队也需要类似的测试平台,你是否能快速让他们部署你的测试平台?
问 题 背 景
如果把测试平台作为一个产品来看待,部署和安装是用户对该产品的第一次接触,如果一个产品的部署和安装非常复杂,那么会大大减少用户使用该产品的兴趣。但是往往很多测试团队不注重这一点,整个自动化测试项目以源代码形式托管在代码仓库中,没有规范化的部署文档,一个新手很难独自将整个测试平台执行起来。
面对这5个直击灵魂的问题,你有何想法?
是选择茫然无措、原地发懵?
还是打算苦苦思索、试错摸索?
亦或是,来一本宝藏兵书——《高效自动化测试平台:设计与开发实战》,一举解决以上全部难题?!
这是一本“自动化测试战役”的兵书,是一本基于Python搭建高效自动化测试平台的实战指南!
书中以大多数团队在自动化测试过程中遇到过的问题作为基础,以实战的方式,详解面向对象/模块化、数据驱动/事件驱动,结合微服务、中台等前沿技术,并用大型电商案例串联知识点。
▼ 扫码获取本书详情 ▼
(限时活动,下单立减50元)
关于作者
徐德晨
毕业于中国科技大学自动化系软件工程专业,硕士。先后任职于智邦科技、Tellabs、Broadcom、Cisco,从事自动化测试平台开发工作,在Cisco任职期间申请通过三项专利,现在Dell EMC负责自动化测试平台的设计与开发。
茹炳晟
业界知名的实战派软件质量和研发工程效能专家,测试基础架构的布道者,腾讯云最具价值的专家TVP,阿里云最具价值的专家MVP,中国商业联合会互联网应用技术委员会的智库专家,国内外顶级技术峰会的技术委员会成员和专题出品人。
大咖推荐
- 朱少民 ,《全程软件测试》和《高效敏捷测试49讲》作者
- 张乐 ,京东 DevOps与研发效能资深专家
- 刘冉 ,ThoughtWorks首席软件测试和质量咨询师
- 陈霁 ,TestOps架构师
- 方亮 ,腾讯WeTest负责人
本书结构
第一部分:战略运筹
主要介绍和分析了软件自动化测在现代软件测试中,针对不同测试阶段可能遇到的问题,并且针对这些问题,逐个分析提出解决方案,最后给出一个基本的模块化的测试平台设计思想。
第二部分:作战指挥
这一部分主要介绍了在模块化设计思想下,测试平台各个模块的设计方案以及实现过程。
第三部分:战场机变
这一部分主要讲述了在一些特殊的测试场景下,一些测试方法的改进方案,比如数据驱动测试,基于元数据驱动的测试代码自动生成以及基于事件驱动模式的测试方法,提供了读者在应对不同测试场景下更多的自动化测试方法的选择。
第四部分:军事地理
这一部分主要介绍了当前流行的微服务架构以及如何使用测试即服务(TaaS)的概念来改造测试平台成为一个通用的测试平台,并且给出了作者所经历过的“战役“所带来的一些成功经验。
顶层架构图展示
测试即服务基本架构
TDS架构设计简图
TBS基本架构图
TRS架构设计简图
源码下载
既然是实战,本书的所有设计过程和案例均配有源码实现,读者可以在GitHub上下载到这些源码,甚至可以直接改造以符合自己团队的业务需求。