GTAC 2014:演示文稿

所有 GTAC 2014 视频录制内容和幻灯片都是公开的。 您可以观看 GTAC 2014 YouTube 播放列表中的视频,也可以浏览以下讲座:

开场白

Sonal Shah (Google)

开场主旨演讲 - 快速行动,不中断事项

Ankit Mehta (Google)

链接: 视频幻灯片

通过自动化提供更好的网站

James Graham (Mozilla)

网络是世界上最受欢迎的应用平台,但浏览器互操作性不佳是 Web 开发者感到沮丧和沮丧的一种常见原因。为了尝试改善这种情况,W3C 一直在推进社区的努力,为开放式网络生成持续更新的跨浏览器测试套件,即网络平台测试。在本演讲中,James 将介绍 Web-platform-tests,并介绍我们为了在一系列桌面浏览器以及运行 Firefox 操作系统的移动设备上实现测试自动化而打造的工具。他将展示此软件如何才能应对每天在 Mozilla 持续集成系统中针对数百个提交运行外部来源的测试套件提交所面临的挑战。

链接: 视频幻灯片

让 Chrome 成为最好的移动浏览器

Karin Lundberg (Google)

Chrome 之所以获得成功,其中一个原因就是它的速度、稳定性、简单性和安全性 (4S) 核心原则。在发布 Android 版和 iOS 版 Chrome 时,我们不仅采用了 4S,还对其采取了自动化测试方式和运行的测试类型:

  • 速度适用于性能测试和快速测试。
  • 稳定性用于稳定性测试和稳定测试。
  • 简洁性是指测试 Chrome 是否具有简单的用户体验,以及是否能够轻松添加和运行测试。
  • 安全性用于安全性测试。

链接: 视频幻灯片

适用于行为模型的测试自动化语言

Nan Li(媒体数据解决方案)

基于模型的测试人员会根据模型(例如图中的路径)设计抽象测试。然后,需要将抽象测试转换为具体实现(根据实现进行定义)。从抽象测试到具体测试的转换必须自动执行。基于行为的现有模型测试技术使用许多额外的图,例如类图和用于测试转换和生成的用例图。它们的实际应用情况非常复杂,因为测试人员必须使所有相关图表始终保持一致,即使要求经常变化也是如此。

本演讲将介绍一种测试自动化语言,以允许测试人员仅使用一种行为模型(例如状态机图)来生成测试。我们将解决三个问题:(1) 创建从模型到可执行测试代码的映射,并生成测试值;(2) 转换图并使用覆盖率条件生成测试路径;(3) 解决限制问题并生成具体测试。

链接: 视频幻灯片

Google 测试覆盖率

Andrei Chirila (Google)

您有没有想过 Google 的测试过程是怎样的?我们使用哪些工具来帮助我们进行测试,以及如何衡量测试覆盖率并采取相应行动? 我们会先简要说明 Google 的开发流程,然后重点介绍如何使用代码覆盖率衡量功能以及我们如何利用代码覆盖率提升代码质量和工程效率。 最后,我们将展示包含 100,000 多次提交的大量覆盖率数据,并得出一些更广泛的适用结论。

链接: 视频幻灯片

CATJS:自我测试的应用

Ran Snir (HP) 和 Lior Reuven (HP)

在过去的几年里,我们发现了很多异常情况,这些变化改变了我们对计算世界的看法。有 3D 打印机用于打印 3D 打印机,还有用于独立思考的机器人,然后还有我们的 Catjs。

catjs 是一个开源框架,可让移动网络应用自行测试。HTML5 代码中的简单注释将在应用的生命周期内转换为嵌入式测试脚本。这些移动网络测试可以在任何设备、操作系统和浏览器中运行。借助 catjs,您可以轻松快速地处理应用的测试流程。

链接: 视频幻灯片

可伸缩的持续集成 - 使用开源

Vishal Arora (Dropbox)

许多开源工具都可用于持续集成 (CI)。只有少数几个应用能大规模运行。而且几乎没有构建为在分布式环境中扩缩。了解大规模实现 CI 的挑战,以及整合开源组件以快速构建您自己的分布式可伸缩 CI 系统的方法。

链接: 视频幻灯片

我不会经常测试 ... 但当我进行测试时,在生产环境中进行

加雷斯保龄球 (Netflix)

Netflix 每天都有越来越多的客户在越来越多的客户端设备上使用更多内容。我们还在不断创新,以改善客户的体验。在这样一个快速变化的环境中进行测试是一项巨大的挑战,并且我们得出结论:在生产环境中运行测试通常是验证这些更改的最有效的方法。这场演讲将介绍我们在生产环境中使用的三种测试方法:与西米亚军队模拟各种类型的服务中断,使用 Canary 查找回归,以及通过生产环境中的代码覆盖率分析来衡量测试有效性。

链接: 视频幻灯片

自动化测试在实体和虚拟移动设备上的重要性

Jay Srinivasan (Google) 和 Maish Lachwani (Google)

与网络世界相比,移动测试是雷区。不同的设备、操作系统、网络和位置,开发者似乎必须考虑无限的变量。在本次培训中,我们将讨论优化移动应用的性能和质量所面临的一些独特挑战,以及解决这些问题的策略,包括对自动化、实际设备和真实用户状况的需求。

链接: 视频幻灯片

免费测试优于免费香蕉:使用数据挖掘和机器学习技术自动进行实时生产监控

Celal Ziftci (Google)

越来越多的人开始关注如何利用数据挖掘和机器学习技术来分析、维护和测试软件系统。在本次演讲中,Celal 将讨论我们如何使用此类技术自动挖掘系统不变性、利用这些不变方式实时监控我们的系统,并在几分钟内提醒工程师注意任何潜在的生产问题。

本次演讲将包括我们在内部使用的两款工具,以及我们如何结合使用这两款工具,为工程师提供几乎实时的免费生产监控服务:

  1. 一种可以挖掘系统不变性的工具。
  2. 监控生产系统的工具,并使用第一个工具实时自动生成部分用于发现潜在问题的部分逻辑。

链接: 视频幻灯片

在红外线机顶盒上测试自动化

Olivier Etienne(橙色)

本演讲将介绍什么是 TV 应用上下文,以及我们在尝试自动处理这些事情时可能会遇到的问题。Olivier 将介绍之前的失败及其方法,以及构建自动化测试工具的要点。如果时间允许,他将更深入地了解实现细节。

快来听听几位焊接工和几行代码如何为机顶盒开辟丰富的网络测试世界。

链接: 视频幻灯片

公平地比较云服务商面临的挑战以及我们为此采取的措施

Anthony Voellm (Google)

本演讲将介绍从大型主机到 Cloud 的基准测试历史。我们的目标是,让您在基准测试的起步阶段以及基础阶段可以奠定基础。我们将围绕对 Cloud 进行基准化分析的未来以及实际操作方法提出自己的想法。

链接: 视频幻灯片

从不让人工干预机器工作:Facebook 如何使用聊天机器人来管理测试

Roy Williams (Facebook)

Facebook 没有测试组织,从编写代码到测试,再到生产,这一切都归开发者所有。这并不意味着我们不会测试!我们之所以采用这种规模,是因为我们会自动进行测试,以确保信号较高且噪音低。新的测试被视为不可信,很快就会从树中清除不稳定问题。我们将讨论哪些方面行之有效以及哪些需要建立起对测试的信任。

链接: 视频幻灯片

浓缩咖啡、汤匙、韦莫克,噢!(或者说,我是如何学会停止担忧并喜欢 Android 测试的)

Michael Bailey(美国运通)

了解如何创建和执行快速可靠的自动化 Android 界面测试。工具将包括 Espresso、Spoon、Wiremock 和 Jenkins。我们假定您具备基本的 Android 和 Java 开发知识。

链接: 视频幻灯片

Google BigQuery 分析

Brian Vance (Google)

BigQuery 是 Google Cloud 的交互式大数据服务。通过类似 SQL 的查询,用户在数秒内即可分析 TB 级的数据。它基于 Google 测试人员多年来一直在使用的 Dremel。我们将通过几个示例,向您说明如何开始使用 BigQuery。

链接: 视频幻灯片

Selendroid - Selenium for Android

Dominik Dary (Adobe)

Selendroid 是一个开源测试自动化框架,可以驱动 Android 原生应用、混合应用和移动网络的界面。测试是使用 Selenium 2 客户端 API 编写的。对于测试,您无需修改被测应用即可实现自动化。

本演示文稿将向受众群体演示移动测试自动化的难易程度。其中介绍了如何使用 Selendroid 测试原生 Android 应用和混合 Android 应用,以及如何使用 Selenium Grid 在多台设备上进行并行测试。此外,还将介绍一些高级主题,例如在运行时扩展 Selendroid 本身以及进行跨平台测试。

链接: 视频幻灯片

在超媒体环境中保持健全性

Amit Easow(Comcast)

随着 Comcast 从一家有线电视公司发展成为媒体和技术领导者,工程团队也变得更加聪明。Amit 在 2006 年加入 Comcast Interactive Media (CIM) 时,就是一家手动测试工作室。2007 年,他们开设了第一个网站后,他开始为自动化的界面测试基础架构开发原型。他于 2008 年 GTAC 认识了 Selenium,然后回到 Comcast,利用 Selenium Grid、Hudson 和 Subversion 构建自动化测试基础架构。今天,他负责 API 测试,每个工作日都会部署到生产环境。这得益于 Python、Git、Gerrit 和 Anthill。

链接: 视频幻灯片

通过 MSL 更快、更快地发射!

Bryan Robbins (FINRA) 和 Daniel Koo (FINRA)

在不影响质量的前提下,更快地交付软件并非易事。我们都希望尽早开发测试并更快地执行测试,同时尽量减少维护工作量。在 FINRA,我们开发了 MSL(发音为“Missile”),以便让敏捷团队能够利用 MVC 等分层架构更快地单独测试其界面代码。

MSL 支持对界面代码(例如 JavaScript、HTML、CSS)进行集成测试,方法是在 Node.js 服务器上本地部署,并使用我们的某个客户端(Java、JavaScript 或 Node.js)配置来自测试代码的模拟 HTTP 响应。本演讲将通过几个示例介绍 MSL 的主要功能。

链接: 视频幻灯片

测试用户体验

Alex Eagle (Google)

Google 的产品发布比较频繁,需要进行大量的自动化测试和“复制安装”。现在,我们正努力在 Google Cloud Platform 中提供测试基础架构。本演讲将讨论我们利用一些方法确保我们的作品保持绿色和产品无缺陷,并预览我们如何向世界公开这一点。

链接: 视频幻灯片

圆桌会议 1 - 移动跨平台测试

链接: 视频幻灯片

圆桌讲座 2 - 文档自动化覆盖率

链接: 视频幻灯片

社区结构对 SAT 求解器性能的影响

Zack Newsham(滑铁卢大学)

现代 CDCL SAT 求解器通常在相对较短的时间内解决超大型工业 SAT 实例。很明显,这些求解器以某种方式利用了真实实例的结构。然而,到目前为止,很少有结果能够准确描述这种结构。在本文中,我们提供证据表明,现实世界的 SAT 实例存在的社区结构与 CDCL SAT 求解器的运行时间相关。一段时间以来,众所周知,实际的 SAT 实例(以图表形式)中具有自然社区。社区是 SAT 实例的图表的子图,因此该子图的内部边缘比向外延伸到图的其余部分。图表的社区结构通常具有称为 Q 的质量指标。直观地说,具有较高社区结构(高 Q)的图表很容易拆分为较小的社区,而低 Q 的社区则不然。我们根据经验数据得出了三个结果,结果表明,与变量和子句等通常被考虑的因素相比,现实世界工业实例的社区结构比 CDCL 求解器的运行时间更精准。首先,我们展示了在与血糖类似求解器的删除删除政策中使用的冲突条款的质量值和字面量块距离指标之间密切相关。其次,使用回归分析,我们发现,与变量或子句数量等传统指标相比,实际 SAT 实例中社区数量和 Q 值能更好地预测 CDCL 求解器的运行时间。最后,我们得出了随机生成的 SAT 实例,如果 0.05 ≤ Q ≤ 0.13,则 CDCL 求解器要困难得多。

链接: 视频幻灯片

超越覆盖范围:测试套件中有哪些潜能?

帕特里克·拉姆(滑铁卢大学)

我们想要“更好的”测试套件。但怎样才算是优质的测试套件?当然,测试套件应该力求实现良好的覆盖率,至少是位于语句覆盖率一级。为便于使用,测试套件的运行速度应足够快,以便及时提供反馈。

本演讲将探讨许多其他维度来评估测试套件。该演讲称,更好的测试套件更易于维护、更易于使用(例如,它们运行速度更快,或使用的资源更少),而且不合理的故障更少。在本演讲中,我将介绍并合成 10 个开源测试套件(从 8000 到 246000 行代码)的相关信息,并评估其效果。

链接: 视频幻灯片

绿色环保:清理有毒的移动环境

Thomas Knych (Google)、Stefan Ramsauer (Google)、Valera Zakharov (Google) 和 Vishal Sethia (Google)

我们将介绍如何开发相关工具和技术,以打造快速、稳定、封闭的测试环境,以便在交互式开发和持续集成模式下执行 Android 测试。这是基于我们在上次 GTAC 上发表的更高级别的演讲。

链接: 视频幻灯片