Asp.net mvc 我如何为MVC4应用程序创建一个黄金大师

Asp.net mvc 我如何为MVC4应用程序创建一个黄金大师,asp.net-mvc,integration-testing,Asp.net Mvc,Integration Testing,我想知道如何创建一个测试来开始为我的MVC4应用程序创建一些测试 “Gold master测试是指捕获流程的结果,以及 然后将未来运行与保存的“黄金大师”(或已知 好的)版本以发现意外更改。“- 这是一个没有测试的大型应用程序,最好从golden master开始开发,以确保我们正在进行的更改能够增加测试覆盖率,并希望在长期内降低复杂性,但不要破坏应用程序 我正在考虑从IIS日志中捕获一天的真实世界流量,并使用它创建golden master,但我不确定最简单或最好的方法。在应用程序中没有什么不

我想知道如何创建一个测试来开始为我的MVC4应用程序创建一些测试

“Gold master测试是指捕获流程的结果,以及 然后将未来运行与保存的“黄金大师”(或已知 好的)版本以发现意外更改。“-

这是一个没有测试的大型应用程序,最好从golden master开始开发,以确保我们正在进行的更改能够增加测试覆盖率,并希望在长期内降低复杂性,但不要破坏应用程序

我正在考虑从IIS日志中捕获一天的真实世界流量,并使用它创建golden master,但我不确定最简单或最好的方法。在应用程序中没有什么不寻常的东西,比如带有post-Back等的控制器

我正在寻找一种方法,为iis7.5中托管的mvc4应用程序创建合适的黄金母版

注释 为了澄清与注释有关的内容,“golden master”是一个可以运行以验证应用程序输出的测试。这就像记录应用程序,并且能够在每次进行更改时运行该日志,以确保您破坏了任何内容

使用遗留代码时,几乎不可能理解 它需要编写肯定会执行所有逻辑路径的代码 通过代码。对于这种测试,我们需要 理解代码,但我们还不了解。所以我们需要再来一次 接近

我们可以测试一切,而不是试图找出要测试的内容, 很多时候,我们最终得到了大量的产出,大约 我们几乎可以肯定地认为它是由 执行遗留代码的所有部分。建议运行 编码至少10000(万)次。我们将编写一个要运行的测试 它可以增加两倍并节省输出

帕特科斯萨巴-

我的问题是如何对MVC应用程序执行此操作


关于

基本上,您希望比较两大组结果并控制变化,实际上是一个集成测试。我相信真正的交通并不能给你我认为你需要的控制权

在更改生产代码之前,应执行以下操作:

  • 创建X个随机输入,始终使用相同的随机种子,因此您可以反复生成相同的集合。您可能需要几千个随机输入。
  • 用这些随机输入轰击被测类或系统。
  • 捕获每个随机输入的输出
  • 第一次运行时,将输出记录在文件(或数据库等)中。从那时起,您可以开始更改代码、运行测试并将执行输出与记录的原始输出数据进行比较。如果它们匹配,继续重构,否则,恢复您的更改,您应该恢复为绿色

    这与您的方法不匹配。设想一个场景,在该场景中,用户购买某个产品,您无法确定交易结果、信用不足、产品不可用,因此您无法信任您的输入

    然而,您现在需要的是一种自动复制该数据的方法,在这种情况下,浏览器的自动化对您帮助不大


    你可以尝试一种不同的方法,比如或其他最适合你的方案的方法

    我不认为这篇文章被否决了——我认为这是一个合理的好问题,但是您应该提供应用程序的一些特定区域,您希望使用这种方法进行测试。golden master的目的是测试整个输出,即针对给定数量的请求,服务器的所有响应。他们永远不会改变响应,他们必须是相同的,以确保golden master测试通过。好的,我将尝试一下,看看我能从这些框架中得到什么。