为什么编码的UI测试自动化很重要?

时间:2013-01-13 14:30:59

标签: c#

我是测试应用主题的新手。这是几天开始在互联网上冲浪找到一些有用的教程。老实说,我可以找到一些好的视频 让我大致了解如何使用MS Visual Studio 2010进行编码UI测试自动化,数据库单元测试以及单元测试。 但是我脑子里还有很多问题。例如,CUIT的自动化就是 记录我在运行应用程序和自己测试时所做的事情。所以呢..? 它只记录我的行为。这实际上是我传统上测试应用程序的人。 我知道并且确定必须有一些我不知道的原因! 任何人都可以向我解释一下自动编码UI测试如何帮助我? 另一方面,关于数据库单元测试也存在类似的问题。 我在YouTube上找到了一个视频教程,解释了这方面的一个例子。它只是检查 如果存储过程要正常工作!显然,当我运行我的应用程序(按F5)时,我将简单地理解插入SP是否正常工作! 因此,我无法得到数据库单元测试的作用是什么? 如果有人能给我一个想法或任何有用的链接,我会提前感谢。 谢谢,

3 个答案:

答案 0 :(得分:2)

进行自动化测试的一大优势是,它让您有信心更改和修复内容并添加功能,而无需担心某些内容可能会中断,或者会出现意外的副作用。在每次更改后运行预编码测试都很容易且便宜,因此即使在开发周期的后期,您也可以进行最危险的更改,并且仍然确信您的应用程序仍然很好。

另一个优点是:假设您编写的某些新代码会破坏或更改某些现有功能。然后,您可以通过简单的方法快速发现已更改的列表(只需运行自动化测试并查看结果!),然后您可以推断这些更改,并将其归类为错误,实际需要的副作用/更改等等,否则,开发很快就变成了“前进一步,后退两步”的一塌糊涂 - 每次检查都可能解决一个问题并引入两个新问题。即使开发人员意识到这两个新问题(并非总是如此),尽管有最好的意图,但他们将在以后忘记解决这些新问题。

你说你可以“自己运行SP”或“只运行”UI。但这不会扩展......再次,理想情况下,您希望能够在每次更改后自动运行1000次测试而不需要任何费用,这意味着它们必须自动化。此外,您说您只是通过运行应用程序来了解SP是否正常工作......但随着您的数据库和应用程序变得越来越复杂,您在应用程序中必须执行的实际测试变得越来越不明显你的数据库正确。此外,如果以后需要创建使用相同数据库的第二个应用程序,该怎么办? (例如,您现在有一个网站,后来需要为管理员创建一些命令行工具)。

当有多个人处理同一段代码时,所有这一切变得更加重要,原因很明显。如果没有良好的自动化测试覆盖率,复杂的代码片段很快就会成为一个人的域(“不要在没有与Joe交谈的情况下触摸代码!”)。

当然,这并不意味着您应该盲目地将所有可用的测试技术应用于所有项目,尤其是像CUIT这样相对“昂贵”的过程(它可能很昂贵,因为如果您的UI在项目过程中发生很大变化,这个测试类型可能更难更新)。相反,您应该对项目中的实际风险区域(如果您愿意,“错误农场”)进行适当的评估,并在周期中引入每种类型的测试的正确时间 - 即具有实际的测试计划。最后一段是我的观点,显然有不同的方法来选择测试的内容/方式/时间。

答案 1 :(得分:1)

关于记录您的操作的测试软件的注释,这在尝试复制错误时非常方便,尤其是在您第一次开始编写测试时。

就像尤金指出的那样,当你得到不止一个编码器的东西变得更复杂时,我还想补充一点,当软件必须与其他组件(例如服务器,其他软件包)交互时,它会很快变得非常复杂。假设其他组件是完美的并不总是一个安全的赌注。因此,自动化测试的想法是,在您继续编写软件的同时,您可以测试之前完成的所有操作,而无需您进行任何工作。例如,我编写了一个使用蓝牙连接的程序,但我添加了WiFi,我可以使用大多数(如果不是全部)蓝牙测试用例来对抗Wifi。在UI示例中,假设您添加了一个新按钮,在此过程中您不小心打破了旧按钮,如果您有10个按钮并且它与新按钮无关,那么您不必费心手动测试它,但自动测试套件会马上把它拿起来。

如果您需要更多关于测试的理由,我强烈建议您阅读Continuous Integration,它会说明您应该测试的原因和好处,并举例说明如何进行测试。它还有一些关于数据库测试的例子!

我希望这有帮助,我也是测试新手,但在很短的时间内学到了很多东西。

答案 2 :(得分:0)

我不记得我在哪里看到这个,但它总结了单元测试。

“一个编写良好的单元测试无法找到一个bug ......但它确实可以找到一个回归”