《精通自动化测试框架设计》—第1章 1.1节奥运年的新挑战

你多吃点饭,到东吴的路很长,很费体力。

——《赤壁》

第1部分 构建UI自动化框架
在本书的这一部分,将介绍数据管理、底层公共框架构建等主题,并借助TestLink Web UI自动化测试框架构建的实践案例来展示如何从底层框架开始,搭建一个具有良好可维护性以及后续可扩展性的Web UI自动化框架。

1.1 奥运年的新挑战
2008年的夏天是一个举国欢腾的日子。An君在办公室里正对着“厨房三件套”的Office开始一段全新的奇妙旅程。

An君加入的团队是P公司上海研发中心组建的第一个所谓种子团队(Seeded Team)。上班第一天所看到的是略显空荡荡的办公室,以及拥有同样兴奋心情的其他团队成员。团队里绝大部分人拥有硕士学位,5年左右的相关行业软件测试工作经验。他们面对的产品是一个已经有十多年历史,服务于上万家企业客户的行业标杆级产品。开发工程团队分布在全球各地、高度分工,且这个千人团队正酝酿着敏捷转型。

这个团队接手的第一个项目叫做BCO。

1.1.1 BCO是什么
这几乎也是每个新成员问的第一个问题。BCO是Build Checkout(版本签出)的简称。BCO测试团队负责检查和验证集成团队发布的每个Build是否通过既定的质量标准,并将通过测试的Build对组织进行发布。这一过程将在某一发布(Release)的第一个Build开始,直到RTM(Release To Manufacture)Build结束。

BCO针对每一个Build的测试周期是5个工作日,从接到集成团队的Email通知开始,到全部BCO缺陷修复且验证通过、发出Build Release的Email为止。之所以是5个工作日,是因为这个一千人的产品开发组织按照每周一个Build的节奏进行组织级版本构建。

1.1.2 为什么需要BCO
BCO的出现是为了解决一个庞大软件开发组织的版本集成的问题。经过多年的实践摸索,该组织建立起了如图1.1所示的多阶段持续集成模式。而BCO是该模式中的一环,是背后庞杂的产品开发流程中简单而又非常关键的一环。

所谓多阶段持续集成,可以参考Damon Poole于2008年所发表的文章[1]。这个模式与这个组织的团队结构是吻合的。在采用了SCRUM之后,开发团队按照产品的功能和专业职能,划分成了约60个SCRUM team。这些团队又根据特性与模块间的相似性,以及产品组合间的市场接受程度,聚合成了大约15个Integrated SCRUM team,也就是所谓的集成SCRUM团队。这种模式也被称为SCRUM of SCRUM。这个组织的多阶段持续集成是按照如下的模式运行的。
(1)每周中央集成库签入与签出—每个SCRUM team的配置管理员维护自身团队的代码库。每周初,从中央集成库中更新同步最新发布的代码基线。每周末,将团队代码库中通过集成的代码签入中央集成库。

(2)团队每日集成—每天由团队的配置管理员进行该团队的版本集成,接受团队成员签入的新代码。

(3)个人每日集成—SCRUM团队成员每日在团队代码库中进行签入和签出,并随时在私有代码库上进行私有构建。

(4)对于系统测试团队和本地化、市场等其他团队而言,只使用(1)中由集成团队构建的版本进行测试。

这套流程能顺利运转的关键一环是发生在组织级构建与系统测试之间的BCO测试。从图1.1中组织级构建与不同版本BCO之间的双向箭头也可以看出,开发团队所使用的也是经过BCO验证的Build。

1.1.3 测试任务与测试内容
BCO测试的主要任务是在集成团队发布了版本之后,进行BCO测试与版本发布。该级别的测试主要完成以下内容。

(1)安装测试:在既定的操作系统、数据库、LDAP服务器产品和其他第三方产品上安装既定的解决方案。通常,出于安装测试和后续测试的需要,一般要安装若干套系统。当然,相对于专门的安装测试团队所实施的几十个场景的安装测试来说,BCO 只涉及其中极其有限的场景。

(2)Schema比较测试:对于使用了数据库的企业级系统来说,数据库以及其中的数据定义的一致性是非常关键的。在BCO测试中,针对本次Build、本次Build的前一个Build、前一次修订发布(Maintenance)和前一次整体发布(Feature)的ORACLE Schema 分别进行比较。

(3)API测试:大约有1500条来自开发团队的API测试用例需要执行。

(4)Dev/QA Check:根据开发进程的不同,测试将分为Dev Check(约200条UI用例)及QA Check(约400条UI用例,包含Dev Check)。

(5)产品集成测试:该产品与公司其他上游产品的交互集成,约200条用例,需要一些行业及上游产品的使用技能。

(6)最终版本验证与发布:在所有该Build上发现的BCO缺陷全部修复后,集成团队将进行该Build的重新编译集成。在此基础上,BCO团队将运行前述所有用例,验证所有缺陷。如果一切顺利,就进行Build Release。

从上述内容得知,这个团队不负责具体的系统模块,却涉及几乎全部的系统模块。他们的UI用例大约占整个测试组织全部用例的1%。

1.1.4 利益干系人
划分利益干系人是建设一个新团队必须要做的事情。对于BCO来说,其划分大致是这样的。

(1)BCO团队成员,位于上海,负责该项目的执行。

(2)BCO团队主管,上海与北美,接力把控项目的整体进度与质量。

(3)Integration Team集成团队:负责各产品版本的每周构建。BCO是他们的客户之一,为后者提供Build以及BCO patch。

(4)QA:系统测试团队,内部客户以及国庆、春节黄金周期间的替补。BCO测试用例的评审者。

(5)Dev:开发团队,内部客户,BCO缺陷修复者以及BCO测试用例的评审者。

(6)Installation and Upgrade Dev:同Dev,专注于安装以及升级相关领域的开发团队。

(7)PO:产品经理,Triage(缺陷分类)时的参与者及BCO测试用例的评审者。

(8)Release Management:发布管理团队,产品及Build发布计划的制定者、内部客户、BCO Board成员。

(9)BCO Board:包括所有测试和开发的经理和总监,BCO流程的拥有者,审核BCO用例变更以及版本丢弃等重大事项。

(10)BCO-ALL:一个邮件组,所有与BCO的产出物相关的邮件需要抄送该邮件组。几乎所有上述人员均在该邮件组内。

可以看出来BCO是一个纯服务于产品工程团队的内部团队。

1.1.5 Pink Mail、Escalation和SPRTracker
这是An君最喜欢的部分。Pink Mail是内部对于BCO Break mail(缺陷通知邮件)的昵称。每当BCO团队成员在执行测试用例中发现了问题并经过团队负责人的确认,就可以直接在缺陷管理系统中新增一个带有BCO标签的缺陷,并且这个缺陷基本上就是Blocking(阻塞)的严重级别,这是其他普通系统测试人员所不具有的特权。

这还不够,作为信息传递与沟通的主要方式,BCO成员还要在系统中发出一封以粉红色为背景的Email。Email中包括常规的缺陷信息,以及对于所有后续流程的提示,还要抄送给缺陷负责人的直接上级以及BCO-ALL。在An当年访问其他研发中心时,曾有同事打趣说,他每天到公司的第一件事情,就是看一下有没有属于他的Pink Mail。如果没有,很庆幸,可以继续正常干活了。

按照BCO的规程,一个BCO缺陷如果在规定的时间内(如36小时)没有有效响应,就可以向修复者的上级(经理或者总监)进行Escalation,然后就会触发后续的沟通协调与更频繁的修复进度状态跟踪。基本上没有人愿意接到Escalation。

Email的沟通还是有些不够及时和醒目,最终团队成员Ken做出了他们的熔岩灯(Lava Lamp),一个Web版本的缺陷计时器来作为可视化的版本状态提醒工具。这个取名叫做SPRTracker 的工具,会以 10 分钟每次的频率去扫描缺陷库,遴选出属于在建发布的所有带有 BCO 标签的未修复缺陷,列出修复者的大名,缺陷开出的时间,以及一个距离Escalation 还有多少小时的沙漏计时器。大家都喜欢这个工具,它还被要求做成了一个RSS(Really Simple Syndication)源,成了很多人使用的公司内网首页的一个组件。

1.1.6 沟通,还是沟通
做到这里,还是不够。BCO团队每天会将所有上述工作写成一个进度报告,发布给BCO-ALL。此外,还有每日的上海/北美BCO主管会议,主要沟通存在的问题与需要交棒的工作内容。在每周一次、全部测试经理和产品经理都要参加、由测试副总主持的全产品线测试沟通会议上,BCO团队的进展报告通常都是第一个议题。按照测试副总的说法,BCO团队的每个人都是名人。

时间: 2024-07-31 05:49:59

《精通自动化测试框架设计》—第1章 1.1节奥运年的新挑战的相关文章

《精通自动化测试框架设计》—第2章 2.1节简介

第2章 测试数据管理精通自动化测试框架设计2.1 简介在本章中将结合案例介绍各种数据管理与交互的方法.那么问题来了,作为一本介绍架构自动化测试框架的书籍,为什么首先要介绍数据管理呢? 正所谓兵马未动,粮草先行.自动化测试也建议数据先行.测试过程中所涉及的被测应用自身.测试用例.测试报告等,都需要各种不同类型的数据进行支撑.一般来讲,所谓软件产品的功能,就是该产品在某一上下文状态下,将一系列的输入数据处理以后,转换成相应的输出数据.而软件测试,也就是通过模拟数据来触发这些功能的过程.因此,在软件测

《精通自动化测试框架设计》目录—导读

作者简介 精通自动化测试框架设计 陈冬严,浙江大学硕士,具有10年软件测试和团队管理的工作经验,先后服务于ITSM.PLM软件研发企业,现就职于某金融行业核心机构IT规划部门.业余时间喜欢园艺. 邵杰明,热爱测试工作,10多年的测试行业经验,曾先后供职于多家世界一流软件公司担任测试开发和测试管理工作,积累了丰富的行业工作经验,拥有PMP认证,目前担任测试架构师的工作,致力于自动化测试设计.持续交付等方面的工作. 王东刚,常用网名fastpoint,资深测试专家,<软件测试与Junit实践>作者

《精通自动化测试框架设计》—第1章 1.2节史前的自动化

1.2 史前的自动化 自动化测试不等于UI自动化测试,也不仅仅是完成测试用例的自动化翻译和执行过程.本节将介绍一些过往的自动化实践,供读者在自动化测试框架设计或者选型时进行参考. 1.2.1 自动化安装系统 该SUT是一套典型的B/S架构的基于J2EE的产品,安装过程中至少有20个GUI页面,需要不停地填写和勾选相关的配置信息.最令人头痛的是需要填写大约50个端口号.当然,后续的版本上这个问题已经改善许多.开发环境中,还要考虑一台服务器上部署多套系统,手工安装时选择端口号几乎成了最痛苦的事情,就

《精通自动化测试框架设计》—第1章 1.6节再启航

1.6 再启航尽管面临这样或者那样的问题,一些测试团队仍然成功获得了开发团队的信任,建立起了双方每周对话的机制,在周例会上沟通彼此遇到的技术问题,并决定自动化测试任务的优先级.也有些测试团队的成员,开始代替开发人员着手修复或者新建框架中的类,并提交代码进代码库而不再只作为缺陷描述中的补充.这样做所取得的直接效果就是降低了与自动化测试框架相关的缺陷的修复时间. 在测试组织内部,也通过这两年的锻炼,吸引了一些熟练掌握框架API并且熟悉产品知识的自动化测试人员,他们通过BCO牵头,成立了一个虚拟的自动

《精通自动化测试框架设计》—第2章 2.5节使用Exce

2.5 使用Excel2.5.1 经典的DataTable 在图2.2所示的调查中,Excel作为排名第一的数据源是情理之中的.甚至可以说,应该找不出来没有使用过Excel表格进行数据处理的读者.Excel的易用性.强大的数据处理功能,也能让即使不会编程的使用者可以快速解决一些常用的数据统计.计算的问题.在早期的商业自动化测试工具中,数据驱动或者关键字驱动是作为一个卖点被广为宣传的亮点.接触过这些工具的读者估计都对DataTable之类的概念印象深刻.在那个假设"系统测试工程师不懂代码"

《精通自动化测试框架设计》—第2章 2.6节使用数据库

2.6 使用数据库 如果读者所在的企业正在招聘测试工程师或者读者正在求职,翻开工作说明书,无论是熟悉.掌握还是精通,估计绝大部分都会对于数据库有一定的要求.这说明了数据库在现在软件行业的普遍应用,也说明了这几乎是自动化测试所绕不开的一个技术点.在本小节中,将简要介绍如何通过编写代码与数据库进行交互.当然,这只是浅显的使用层面的介绍.如果牵涉到多套数据库数据配套不同用例集.基础数据导入以及数据清洗等问题,读者可以参考第1章中有关"快速回归测试系统"的介绍,以及下一小节中有关CSV文件的处

《精通自动化测试框架设计》—第2章 2.2节测试数据分类

2.2 测试数据分类据James Whittaker在他划时代的<探索式软件测试>一书中的介绍,软件测试人员在制定测试策略时需要关注以下5个部分,包括输入(input).状态(state).代码路径(code path).用户数据(user data)和执行环境(execution environment).在资源有限的情况下,完整解决这其中的哪怕一个问题都是不可能的.因此,需要测试人员时时做出测试决策.作为一个测试框架架构人员,也必然需要面临这些问题,解决测试人员在面对前述这些问题时所提出的

《精通自动化测试框架设计》—第1章 1.5节冰山

1.5 冰山伴随成功到来的,必然是更多的.全新的挑战. 1.5.1 假失败首先遇到的是用例假失败(False Failure),也就是类似足球比赛中假摔的问题,或者因为非缺陷原因导致的自动化测试用例运行失败.一般大批量的测试运行开始于每个发布的若干个最早期的几个Sprint之后:这时候基本上已经达到100%通过率的测试用例.但在新版本上的通过率会有一个明显的降低,从上一版本的全部通过快速下降到60%甚至更低,然后就是一场艰苦卓绝的排错与根因分析的攻坚战,逐步又将通过率提升并稳定在95%左右,直至

《精通自动化测试框架设计》—第2章 2.7节使用CSV文件

2.7 使用CSV文件 CSV[1]的全称是Comma Separate Values,即以逗号为分隔符,每条记录占一行的一种文件格式.当然分隔符并不限制于逗号,因此其另一个名字叫做Character Separated Values.这种古老的文件格式早在20世纪60年代就已出现,被使用于IBM OS360上,远早于个人电脑时代的来临.时至今日,CSV文件依然顽强并且广泛地使用着,特别是在程序间交换数据的场合.例如,在某些ERP系统中,作为安装的一部分,在完成了二进制可执行文件的安装之后,需要