西部法兰西报
西部法兰西报成立于1944年,是法国第一大日报。它专注于本地和国家新闻,是发行量最高的日报,每天售出超过624,000份。这家领先的法国报纸在法国的12个省份出版了53个不同的本地报纸版本,此外还有两个数字版本。西部法兰西报拥有大约1,400名员工,雇用了大约550名记者,其余员工在技术、问责制和软件工程服务部门工作。该报还与超过2,500名通讯员和超过16,000名发行合作伙伴合作。
然而,与世界上大多数报纸公司一样,西部法兰西报在互联网出现后经历了需求急剧下降。这促使该公司推出网站并将内容发布到网上。西部法兰西报的网站拥有54亿独立访客,每月超过6000万访问量,目前在法国排名第九的国家信息网站。
业务需求与挑战
随着越来越多的客户使用西部法兰西报的数字平台,该公司意识到在2017年彻底改造网站的必要性。这一决定更多地源于技术必要性,而不是仅仅从功能角度出发。一些高级测试是手动执行的,软件团队在旧网站上进行了一些持续集成 (CI) 的实践。然而,缺乏功能文档和共享知识导致网站在质量方面受到影响。这导致需要频繁应用多个热修复,这对于公司来说既昂贵又可能存在风险。
因此,需要以一种能够满足西部法兰西报业务需求的方式解决软件质量问题。该公司确定,只有通过全面的产品文档、共享和设计可执行需求以及测试自动化才能实现质量。此外,所需的信心和产品质量指向了一种可能的解决方案,该解决方案将利用行为驱动开发 (BDD) 的原则。进一步分析表明,BDD 方法可以完美地将其实际优势应用于西部法兰西报的组织目标。
然而,也存在挑战,因为采用BDD意味着彻底改造现有的软件开发流程。大多数产品负责人不习惯BDD理念。因此,确保BDD方法贯穿整个组织结构是需要克服的主要障碍。为了加强这种方法的采用,并积极确保他们的产品负责人开始“敏捷”地思考,西部法兰西报决定使用一种软件工具,该工具将充当粘合剂,以创建他们设想的优质网站。SmartBear Software 的 CucumberStudio 就是这款工具。
目标解决方案
当时,西部法兰西报没有完整的遗留产品文档,这最初是一个问题。CucumberStudio 帮助他们创建了新网站所有功能的完整列表,现在可以按需访问和分析。这使该公司能够每天更新、创建和丰富他们的一套可执行需求。这些以简单测试场景形式存在的需求存储在 CucumberStudio 中,并作为活文档,使任何人都能快速了解每个功能。
这种简化的BDD方法还促进了产品负责人、开发人员和测试人员之间的讨论,从而将设计新的可执行需求所需的时间从数小时缩短到几分钟。设置需求的快速周转时间是可能的,因为西部法兰西报在创建测试场景时开发并利用了标准化的可重用动作词。
“我们面临的一个主要障碍是可执行需求的粒度。”西部法兰西报的质量保证经理 Florent Vaution 说。为了解决这个问题,他们决定将BDD方法分为功能级别和技术级别。前者主要包括用户界面 (UI) 测试,从西部法兰西报的角度来看,这些测试更难自动化和维护,而且成本更高。后者包括直接在嵌入大多数功能的 API 上执行的测试。这些 API 测试创建和执行速度更快,并且维护起来要容易得多,因为它们利用了团队的现有技能。
另一个最初的挑战是与必须实现动作词(即测试步骤)的开发人员的关系。由于他们从头开始,所以在创建动作词词典的初期,成本有点高,因为涉及大量重构。但是,通过构建和增强他们的动作词存储库,创建新的自动化测试的当前成本已微乎其微。
最初,西部法兰西报的质量保证团队只有两个人,他们负责制定编写可执行需求和创建动作词的规则。然后他们又增加了三名测试人员,他们之前没有BDD经验。尽管如此,团队中的每个人都轻松地掌握了BDD理念,并被委派独立添加新功能。
一开始,西部法兰西报的质量保证团队成员是CucumberStudio本身的唯一用户。慢慢地,产品负责人和开发人员被展示了质量保证团队如何使用CucumberStudio的演示,目的是培训他们自己使用该工具来编写新功能。质量保证团队成员是唯一负责功能和需求文档的人员。但是,现在产品负责人和开发人员毫不犹豫地挑战、纠正甚至改变质量保证团队编写的功能。
使用CucumberStudio的另一个优势是,它允许质量保证团队检查某个功能是否已被测试、它是如何被测试的,以及是否存在该测试场景的动作词,以避免重复。这特别节省了西部法兰西报宝贵的时间,因为他们处理着超过400个测试场景和500个动作词。
主要成果与收获
自使用 CucumberStudio 为网站重新设计项目实施 BDD 以来,西部法兰西报在 2017 年上半年从“想法”阶段过渡到“生产”阶段。旧网站和流程只包含一些手动测试,没有测试自动化。新网站和流程包含数百个自动化测试,以及很少的手动测试。
在实施BDD之前,他们平均每天大约进行一次热修复,但现在,他们可以跟上将更改立即迁移到新网站的生产环境中的速度。
- 场景设计期间的自动完成
- 在场景中轻松使用变量
- 测试运行创建的速度
- 活文档
- CucumberStudio 发布器,其中包含指向 SCM 和 Jenkins 的链接