我在工作中发现了一个奇怪的情况,我正试图找出从哪里开始解决问题。
我们有一个定制的硬件/软件设备,其中包含多个板,每个板都有自己的功能和软件风格(CPLD、引导加载程序、应用程序等)。此外,该设备还与特定的 Web 应用程序和 PC 应用程序进行交互。
这些组件中的每一个都有一个修订历史记录,单独跟踪。特定设备(当然都是无特色的黑匣子)可能具有任何和所有组件、硬件和软件的不同版本——我们仍处于原型和测试阶段。
我想要的是某种统一的版本跟踪,我可以在其中跟踪针对错误和功能请求的软件构建,有板的历史/原理图,以及 - 最重要的是 - 哪些版本的组件已针对哪些其他版本进行了测试成分。换句话说,我知道引导加载程序版本 1 与板版本 A 一起通过了测试,但不一定针对同一板的版本 B 进行测试,即使它当时还存在。
单独的转速跟踪相对容易;我们有少数开发人员在开发不同的软件组件。它将它们捆绑在一起,并且能够说“产品版本 1.0”由这一袋组件组成,相互测试,仅此而已。这样,当我们更新引导加载程序时,我可以让它针对所有其他组件的当前版本进行回归测试,标记整个“PRODUCT VERSION 1.1”,并知道那个快照是什么,即使有人提出了版本1.4 当天申请代码。
理想情况下,我希望单独跟踪所有组件的修订历史,以及用户能够针对特定组件或整个产品记录错误,之后开发人员可以将错误重新分配给任何合适的子系统。基于网络的东西将是理想的,因为开发人员不是物理上的。
我们目前正在使用 Bugzilla,它远不能胜任这项任务。我在看 Trac,但我不确定它是不是工作中的正确工具。似乎有很多源代码控制系统、很多修订历史系统和一些项目管理系统,但我还没有找到任何可以处理我需要的一切的东西。
听起来可能更复杂,但是当我们陷入困境时,它就相当复杂了。必须有一个解决方案!
有任何想法吗?