测试ASP.NET webforms应用程序

时间:2010-02-20 09:14:24

标签: asp.net testing rest webforms

如果您处于我的位置,那么您将拥有一个大型WebForms应用程序,这些应用程序已经升级到这个不可维护的东西。当您添加新功能时,事情就会中断,您需要一种廉价的可维护方式来进行某种自动化测试。

现在,根据我的理解,正确的做法是尝试构建ASP.NET WebForms中存在的页面和用户控件模型的抽象布局,但是,因为它需要对现有应用程序进行重大投资不是一种选择。

我正在努力并尽可能地推动类似REST的开发,因为它有一些不错的属性。在这样做的过程中,我编写了一个简单的蜘蛛机器人,可以抓取它可以找到并尝试的所有URL,只需获取它们即可。 这使我能够快速找到导致问题的错误数据并避免让我的最终用户点击破碎的东西,但是,这当然是不够的。

我继续处理我的抓取工具,它被开发成一个简单的REST客户端,尝试不同的输入组合,寻找可能的错误或崩溃。它更加智能,只是一次详尽的搜索(因为它了解ASP.NET WebForms应用程序层),我的目标是基本上探索Web应用程序的状态,希望能够在我们的用户面前查看所有的案例。

有没有人有做类似事情的经验?

另外,你在那里测试大师。这是完全浪费时间,还是我能够在这里真正说出质量问题?从我的角度来看,它似乎达到了一个最佳点,因为它将尝试潜在的最终用户通过浏览器。

正如我之前所说,我们陷入了困境。我们现在需要一种简单的方法。

我们已经尝试过像Selenium这样的东西,但它要求进行大量的额外工作,我们一直在改变事物,不可能为50种不同的应用程序维护多个硒测试套装。

3 个答案:

答案 0 :(得分:5)

在所有要实现的测试类型中,就更少的错误和更易维护的代码而言,单元测试既是最简单也最有可能产生结果。在处理自动化集成测试之前解决问题

  1. 选择一个IOC容器 - 我个人喜欢Ninject
  2. 找到一个方便的位置,将“服务”类注入您的页面(基页面类的构造函数或覆盖加载页面的模块,无论什么对您有用)
  3. 选择一个单元测试框架,如果你没有自动构建,那么设置一个;包括在该构建中运行一整套单元测试
  4. 每当你接近aspx.cs文件中的一段逻辑时,看看你是否无法在服务中隔离它并围绕它进行单元测试
  5. 看看MVP Pattern是否对你有好处 - 我们发现它降低了生产力,同时提高了可测试性(它做了很多),但它适用于某些人
  6. 了解如何将您的应用缓慢迁移到MVC,a page at a time if necessary
  7. 请记住,你不会在一夜之间解决这个问题,你没有时间。只要不断提高测试覆盖率,您就会看到长期的好处。

答案 1 :(得分:1)

您申请的哪一部分正在破坏?用户界面或业务逻辑?

业务逻辑应与用户界面完全分离,并应单独测试。特别是,对分离的业务逻辑使用自动化单元测试工具比对UI更容易。

答案 2 :(得分:0)

如果我很严格,那么您需要一个大型Web表单,并希望每次执行新版本时都运行一些标准的最终用户测试。

我可以推荐Selenium IDE adon for firefox

它将允许您记录您的用户操作,例如填写表单,并允许您随时重播这些操作。在具有不同数据的表单上运行某些测试的简单方法。

对于内部代码测试,使用NUnit

编写一些单元测试
相关问题