Flowbird
赫尔辛基是芬兰的首都,也是该国政治、金融、教育和研究最主要的中心。根据经济情报局 (EIU) 发布的 2017 年全球宜居性报告,赫尔辛基被评为全球第九大宜居城市,也是芬兰人口最多的城市。该市拥有超过 150 万的城市人口,现代化的交通设施对于满足其通勤人口至关重要。
赫尔辛基致力于为居民提供优质的公共交通服务,因此促使该市对其现有的基于市界划分的票价系统进行全面改革,转而采用新的基于区域划分的票价模式,这将使跨市交通更加便宜。这项重大项目还涉及为所有公共汽车、有轨电车、地铁、郊区铁路和渡轮开发新的和改进的售票、信息、支持和维护系统。
2012 年,Flowbird 被选中与 Tieto Finland OY 和赫尔辛基地区交通管理局 (HSL) 合作,为赫尔辛基的售票系统项目提供和整合多种车辆技术。Flowbird(现在与 Cale 合并后称为 FLOWBIRD)是一家法国公司,专门从事智慧城市售票系统和城市出行解决方案的供应,例如驾驶员控制台、票务验证器、售票机、售票系统、停车计费器和后台解决方案。
问题
Flowbird、Tieto、HSL 和参与该项目的其他所有合作伙伴分布在 6 个不同的国家/地区。他们必须在一个大型售票系统上进行合作,该系统涉及大约 50 个配置和监控模块、300 个销售和服务点作为 Web 服务器,以及 6,000 多个运行在 Android 上的机载和街道级设备。Flowbird 拥有分布在 3 个不同国家的 8 个技术和业务团队,认识到更深层次的协作和沟通是将团队更紧密地团结在一起,以实现成功的必要条件。
第一步将是确保业务和技术团队在所开发的大型售票系统的不同功能方面达成一致。这就是 CucumberStudio 和 BDD 出现的地方。行为驱动开发或 BDD 是一种敏捷的软件开发方法,通过协作定义模仿常见用户行为的简单测试用例,来创建对产品功能的共同理解。CucumberStudio 是一种基于云的敏捷测试管理工具,帮助团队根据验收标准共同设计测试场景、规划测试执行并维护手动和自动测试结果。CucumberStudio 拥有原生 BDD 框架和 Gherkin 支持,可以直接与 CI/CD 管道集成,它支持所有项目干系人之间的实时讨论和协作,并通过 活文档 反映项目的最新状态。
除了使用 CucumberStudio 进行敏捷测试和 BDD 框架外,Flowbird 及其合作伙伴还使用 Jira 进行项目管理、Cucumber 进行测试自动化,以及 Jenkins 进行持续集成。
解决方案
Flowbird 采用三管齐下的方法来解决这个庞大的项目。他们首先与国际团队合作,确定构成这个复杂售票系统的各种单元。然后,他们开始使用 Gherkin 语法定义这些单独单元或“模块”的行为,以创建测试场景。Flowbird 的交付经理 Raphaël Citeau 说:“CucumberStudio 中对 BDD 和 Gherkin 语法的原生支持为测试场景的设计带来了清晰度。”CucumberStudio 使 Flowbird 能够拥有一个智能的测试框架,并大规模地开发 BDD 测试用例场景。
他们还意识到需要一个通用的业务术语,以促进团队和客户之间在开发新功能方面的共同理解。“CucumberStudio 中测试步骤的重用使我们能够标准化术语并提高团队协作,”Raphaël 解释说,因为 Flowbird 正在寻找“一种适用于所有类型团队的方法,无论他们使用何种技术。”BDD 是创建这种通用业务术语的绝佳机会,因为各种模块都被定义了。这种业务术语被用于将来创建和定义更多模块。这样,就可以创建、重用功能单元测试场景,然后迅速将其自动化;从而节省大量时间。
下一步是根据先前定义的功能单元测试创建集成测试。这些集成测试将成为将不同模块组装在一起的基础,并且是自动化的。最后,通过将所有模块组装在一起构建了完整的系统。为此,Flowbird 使用了集成步骤进行端到端测试,以验证所需硬件组件与组装的售票系统模块的集成。
除了使用一致的业务术语来促进共同理解并使用 Gherkin 语法进行 BDD 外,Flowbird 还使用 CucumberStudio 进行测试重构,以创建高质量的软件。通过重构测试,他们能够识别重复项并为这些测试创建一个维护点。还可以自动重构测试场景,这意味着通过更改一个测试步骤,所有具有依赖测试步骤的测试都会自动更新,从而节省时间。
除了使用 BDD 创建测试场景并将其自动化外,CucumberStudio 还为 Flowbird 提供了一个地方来管理所有功能作为测试用例、将它们存储在中央存储库中并在整个组织中共享。这反映了测试用例的最新版本,并帮助业务利益相关者、开发人员和测试人员达成一致,从而简化测试维护。这是活文档的真正价值所在。Flowbird 还实施了一个双周迭代的软件开发框架,称为 Scrum。这使 Flowbird 能够通过协作、适应性和专注于提供客户价值来对项目进行增量改进。
优势和关键成果
Flowbird 使用 CucumberStudio 和 BDD 创建了 1,635 个功能单元测试、990 个模块集成测试、475 个系统测试和 200 个端到端测试。然而,在业务方面,他们只创建了 1,690 个测试步骤。其余的 1,610 个测试步骤不需要手动创建,因为它们可以从以前开发的步骤中重复使用。“由于测试重构和步骤自动完成功能,我们通过实施仅 1,700 个步骤,自动执行了 3,300 多个功能测试!这绝对是大规模加速自动化测试的关键。”,Raphaël 说。重复使用以前创建的测试场景并自动化超过 300 个工时的人工工作,为 Flowbird 及其合作伙伴团队节省了数年的时间。
此外,团队方面从未出现过超过一周的交付延迟。这也归因于 BDD 框架中测试用例或用户故事自动化的节省时间。此外,开发或测试中的任何类型的返工都只占团队所有工作量的不到 3%。
CucumberStudio 的活文档功能还确保了可以更改功能,并且可以无缝更新相应的测试场景。Flowbird 发现,最初的 800 个功能中有 20% 可以更改,而不会对项目产生任何影响。这强化了各个团队努力实现的敏捷思维方式;这种思维方式允许进行小的增量更改,从而为用户提供最大的价值。
当被问及 Flowbird 在 CucumberStudio 中最喜欢的功能时,Raphaël 说:“CucumberStudio 非常易于使用,并与 Jira 以及我们的持续集成流程无缝集成。它非常适合手动测试,但显然面向自动化。”
所以下次您访问赫尔辛基并乘坐当地通勤铁路沿着风景优美的芬兰海岸线行驶时,请知道您的 exp