2

我开始在我目前所在的公司担任软件工程师。随着时间的推移,我要么是唯一愿意或能够负责各种系统的人,因此我被“提升”为 IT 经理。现在,在我担任软件工程师期间,我将为我将构建的各种软件模块创建功能测试,因此,即使在今天,我也能够快速测试我所从事的系统的各个部分。但是,这里有一个庞大的代码库,几乎没有覆盖到在这里工作的其他各种开发人员。

现在,作为 IT 经理,我希望能够测试系统的所有部分是否正常工作,但是有:

A) 没有专门用于创建代码测试覆盖率的预算时间

B) “首席软件工程师”不希望开始创建测试套件来帮助我监控软件是否正常运行。

我不希望软件团队放弃他们正在做的所有事情并花费 2 周时间创建测试套件,但如果他们开始随着时间的推移扩大测试套件的覆盖范围会很好,这样我就可以确认系统的各个部分都在工作.

所以归结为,我如何让软件团队开始构建测试套件?

其他注意事项:

A) 除了管理我们的 IT 部门(一名 unix 工程师、桌面支持人员以及相关的办公和生产设备)外,我仍然被要求做软件项目

B) 我的 unix 管理员很难让生产系统运行完整的代码库,而且我们没有从软件团队那里得到很好的帮助。他无法运行任何类型的诊断程序来查看 Web 应用程序在新安装时出现故障的位置。该公司的副总裁一直告诉我进去并在代码中执行 print_r 以查看发生了什么。这糟透了!!!

4

4 回答 4

2

首先,您需要调查测试驱动开发,以便您可以轻松地用开发人员和您的管理人员能够理解的术语来解释它。由于您似乎正在开发 Web 应用程序,并且您具有技术技能,因此我建议您冒险并选择一个开源工具来测试 Web 应用程序,安装它,然后开始为您自己开发的任何东西构建测试。

Twill是您需要的测试工具的一个示例。

然后,作为经理,您需要吸引开发人员效仿您的榜样,并奖励他们这样做。并惩罚他们,当他们不使用测试框架并导致可预防的问题时。一旦你遇到这样的事件,你应该能够让你的老板加入,并获得一些动力。

总体而言,请记住,目标是减少工作量以获得好的结果。偷工减料是一种减少工作量的方法,但会导致产生糟糕或极其糟糕的结果的风险。让管理层了解风险水平和潜在风险成本。

不要仅仅为了测试而强迫人们进行测试。它必须帮助他们提高工作效率,因此请谨慎选择第一个项目。

于 2009-10-20T18:10:10.210 回答
1

我不得不不同意 michaelkebe——这些变化需要执行层的支持,以及一些关键的开发人员,才能完全成功。

如果没有这种支持,您将只是一些看起来像是“在为已经有效的东西编写测试浪费时间”的开发人员。

需要有一个清晰的愿景,并且需要经常大声重复。

我不一定在这里提倡敏捷,但它经常为企业主所用。

如果您可以以此推销它们,那么您所兴奋的事情(快速交付软件、易于维护、自动化测试等)将会落实到位。

于 2009-10-20T18:33:34.993 回答
1

这是个好问题。如果有一个正确的答案,更多的软件项目将会成功并交付高质量。

我不认为,自上而下进行这样的改变是个好主意。它必须由开发人员自己驱动。所以 TDD 方向的培训会很好,但这是一个很长的投资,需要时间。

如果您想要一个更快的解决方案,您应该考虑功能测试、验收测试和系统测试。通过这些测试,您几乎可以通过所有层测试整个应用程序。如果您正在开发 Web 应用程序,您应该考虑使用Selenium来自动化您的测试。用它(Selenium IDE)很容易创建测试。

但是只使用这样的测试(而不是单元测试)并没有给你带来 TDD 的优势。

自动化测试至关重要。

于 2009-10-20T17:59:10.950 回答
1

您有测试或质量保证团队吗?

我首先会开始查看他们是否有用于限定构建的测试用例。如果不是,您将不得不开发这些测试用例来测试您产品的核心功能。

下一步将是自动化测试用例。

如果应用程序在没有任何故障排除工具或调试功能的情况下开发不佳,那么在将这些作为下一个版本的要求添加之前将很难。

我的 2 美分。

于 2009-10-20T18:09:17.210 回答