在3层应用程序上,是否在可视层上进行必要的单元测试?

时间:2012-03-06 18:24:24

标签: unit-testing n-tier-architecture

在我的应用程序中,有数十台PC将运行可视层。业务层将位于服务器上,该服务器还包含数据库。

我的可视层真的需要进行单元测试,基本上会包含对业务层的调用吗?任何特殊情况?

3 个答案:

答案 0 :(得分:1)

为了测试而进行测试绝不是测试的正确理由。

答案 1 :(得分:1)

在部署代码的任何层上都需要进行单元测试。无论层级如何,都应该通过单元测试来维护所有代码的完整性。

答案 2 :(得分:1)

UI测试很少被称为单元测试,因为测试代码单元确实很困难。在过去,我们称它们为集成测试,健全性测试,功能测试或验收测试。基本上,他们在部署之后验证系统(而不是代码单元)是否有效。但根据你想要达到的目标,这是有争议的。

是否自动执行UI测试取决于几个因素。开发人员的小时工资率通常远高于质量保证人员。因此,必须考虑开发人员编写的自动化测试对整个组织提供的价值。开发人员花在编写测试上的时间可能会更好地为系统增加价值。然而,QA很少从单元的角度来看待系统,使它们处于劣势。

然而,开发人员对系统有着极大的了解,因此如果他们编写测试,可以大大提高质量。测试充当其他开发人员的文档并表达意图。更快地发现问题是更便宜的,也是开发人员编写测试的最有说服力的动机。

所以你需要在两者之间取得平衡。开发和维护任何类型的UI测试都非常耗时且复杂,尤其是在分布式环境中。 UI测试通常不可靠并且容易破解。您必须考虑配置环境,为数据库播种等等。您还需要考虑是否有足够的资源来运行自动化测试。它也变得昂贵。

您可以通过外包或手动操作来降低成本。后者每次重复可能比通过创建,维护,运行和诊断自动UI测试的周期更快。

也就是说,如果您的UI稳定,那么进行一些验收测试以验证系统是否正常运行是非常有利的。查看80%的时间使用的20%功能以及UI中的那些功能,如果不起作用将使系统无用。至少你会知道20%的每个人,包括你的老板或客户,在给QA或客户进行测试之前都在工作。