【发布时间】:2011-09-19 13:15:31
【问题描述】:
我已经离开学校几年了,最近才开始回去重新阅读我的一些教科书(我想保持新鲜感)。实际上,我发现我的软件工程教科书令人着迷,并计划阅读整本书 - 如果这很有趣,因为当我在学校时,我发现它非常无聊。
所以有一个半章专门介绍集成测试。而且,就像学术界的大多数事情一样,这都是理论,在阅读的任何地方几乎没有实际适用性。但是,这让我开始思考。
我们使用 CruiseControl 进行持续集成测试,但鉴于我们是一个大型开发团队并且我不处理部署/构建/发布,因此我从未亲身体验过它。当我打破夜间构建时,我会时不时地收到一封电子邮件。还有两位技术主管向我解释。
继续我的问题:我的旧教科书将集成测试称为组件相互配对和测试,而不是针对 1 个特定类的单元测试。这可以通过“自上而下”或“自下而上”的方法来完成,其中自上而下意味着将整个事物作为一个系统进行测试,然后递归地将系统分解为更小的子系统并对其进行测试;自下而上意味着相反(从小做起,做大做大)。
我的问题:
以下三个概念如何相互关联:
- 集成测试的学术解释;和
- 所谓的“持续集成服务器”,如 Hudson、Jenkins 或 CruiseControl;和
- “夜间构建”的概念,代码从 SCM 中检出并自动编译
前两者有“整合”二字是巧合吗?执行“夜间构建”是否与运行持续集成服务器(在夜间)相同,还是它们是两个独立的概念?
如果持续集成测试和夜间构建与学术集成测试完全无关,那么集成测试如何在现实世界中真正体现出来?他们的框架是否像 JUnit 一样,但只专注于集成测试?
我知道这些问题很多,但它们实际上只是归结为了解每个问题是什么以及如何使用它们。在线搜索每一个都可以找到非常模糊、抽象的答案。
【问题讨论】:
标签: testing continuous-integration automated-tests integration-testing