服务组件测试:持续交付充满信心

交货速度是今天的一个关键指标。特征和想法需要更快地向客户提供,以便更快地收集反馈,并且可以更改或调整产品以增加成功的机会。然而,在编写代码和运输代码之间介于关键的测试步骤,这可能是许多工程团队的瓶颈。

为了解决这个问题,团队聘请了测试人员编写了许多自动化测试。大多数测试都被编写了以完整的整体运行,(即将到达客户手的净产品的近似表示),并以类似于客户将如何执行它们的方式执行场景。这些测试称为端到端(E2E)测试。但是,他们很快意识到E2E测试通常会受到不可靠性,片状,缓慢等困扰。这发生是因为对于E2E测试,所测试的系统的边界太大。由于系统的每个部分都有失败的概率,因此在被测系统中存在的距离越多,系统的净失败概率越高,因此对其运行的测试。

因此,团队然后将焦点改为编写单元测试,其中系统的系统是最小的,因此测试失败的可能性是最低的。然而,由于非常微小的系统边界,单位测试在测试特征或产品的增值不是很好。

因此,需要另一种类型的测试,其中系统的系统的边界是中间的某个地方,以便能够测试我们正在运送的软件的主要价值,但在控制下具有失败的可能性。在这篇文章中,我们提供了在Realtor.com上进行的组件测试方法进行案例研究。

继续阅读 “服务组件测试:持续交付充满信心”

与ci管道有趣

持续集成 (CI)每天几次将许多代码变化集成到公共存储库中的实践。然后使用构建和自动测试验证每个更改集。在我们的团队中引入这种做法在维护高质量软件方面一直是一体化的。

一旦到位,这种自动化实践当然可以放心,我们的开发分支机构没有允许不良代码,但是没有大量的可见性进入此CI过程。当一个开发人员完成改变时,他们会发射CI过程,然后有时忘记它甚至正在进行中。这导致验证的变更集堆积起来,因为我们仍然需要手动步骤以在手动代码审查后合并。 CI唯一的沟通将发送电子邮件,有时候人们忽略了电子邮件。每天进入我们的Codebase的大量变化我们需要更好的方法来暴露我们的管道结果。

cibuildstatus.

我们通过添加额外的视觉效果和声音来公开这些结果。

继续阅读 “与ci管道有趣”