乐趣区

关于abap:在-ABAP-技术栈里实施-Continuous-Integration-的一些挑战

继续集成(Continuous Integration)是一个术语,对于向开发人员提供每次更改的反馈,反馈必须牢靠并及时提供。

无论何时保留开发、提交或其余任何货色,都可能产生更改,这齐全取决于开发环境。开发人员须要这些信息来确定是否能够将更改推送给更宽泛的受众,比方将利用交付给 Quality Engineer 进行更高维度的测试。

同样,如何将开发部署到 CI 零碎也是一个部署主题。能够应用 ABAP 经典传输零碎设置以下场景。

CI pipeline 可能蕴含下列元素:

  • Code Inspector / ATC
  • Coverage results
  • Unit tests
  • Integration tests
  • eCATT
  • UI tests
  • Performance tests
  • Metrics

最根底的传输场景

让咱们采纳开发、测试和生产的通用设置。开发人员在开发零碎中进行开发,测试零碎用于手动测试。

假如:所有组织都须要进行手动探索性测试,即便所有测试都是自动化的,QAS 零碎也不能报废。

对于开发人员所做的每项更改,更改都会部署到 QAS 并运行 CI。报告后果后,更改将复原。

对于 ABAP 零碎,很难对对象进行适当的回滚。单元和集成测试可能会更改零碎中的数据(它们不应该),因而须要残缺的数据库回滚能力取得齐全牢靠的后果。

这意味着零碎不能同时用于手动测试,因为开发人员所做的每一次更改都会更改零碎。或者,为 CI 调配特定的时隙,为手动测试调配其余一些时隙。

总而言之,这最终以突破 QAS 零碎的自动化过程完结,而不是通过自动化来防止谬误。

因而,为了不烦扰 QAS 零碎中的手动测试,CI 运行能够挪动到不同的服务器。CI 在 CIS 零碎中运行,在 QAS 中进行手动测试,

要在 ABAP 里施行 CI 不是一件容易的事件,须要在老本、可靠性、速度、复杂性等方面做出理智的抉择。它们对开发过程和基础设施有很大的影响。

齐全反对继续集成不仅仅是让 pipeline 取得一些后果,这情理就像简略地将代码放入 git 进行托管远远不意味着就等于 devops.

ABAP 容器化是齐全反对 CI 所必须的,没有它就不可能齐全反对继续集成。

退出移动版