Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测试ASP.NET webforms应用程序_Asp.net_Testing_Rest_Webforms - Fatal编程技术网

测试ASP.NET webforms应用程序

测试ASP.NET webforms应用程序,asp.net,testing,rest,webforms,Asp.net,Testing,Rest,Webforms,如果你处在我的位置,你有一个大的WebForms应用程序,它已经升级到无法维护的地步。当您添加新功能,并且需要一种廉价的、可维护的方式来进行某种自动化测试时,情况就不一样了 现在,根据我的理解,正确的做法是尝试为ASP.NET WebForms中的页面和用户控制模型构建一个抽象布局,但是,考虑到这将需要对现有应用程序进行大量投资,这不是一个选项 我正在尽可能地尝试和推动REST式的开发,因为它有一些很好的特性。在这样做的同时,我编写了一个简单的蜘蛛机器人,它可以抓取所有它能找到并尝试的URL,只

如果你处在我的位置,你有一个大的WebForms应用程序,它已经升级到无法维护的地步。当您添加新功能,并且需要一种廉价的、可维护的方式来进行某种自动化测试时,情况就不一样了

现在,根据我的理解,正确的做法是尝试为ASP.NET WebForms中的页面和用户控制模型构建一个抽象布局,但是,考虑到这将需要对现有应用程序进行大量投资,这不是一个选项

我正在尽可能地尝试和推动REST式的开发,因为它有一些很好的特性。在这样做的同时,我编写了一个简单的蜘蛛机器人,它可以抓取所有它能找到并尝试的URL,只需获取它们。 这使我能够快速找到导致问题的坏数据,并避免最终用户点击坏的东西,然而,这当然是不够的

我继续研究我的爬虫程序,它被开发成一个简单的REST客户端,尝试不同的输入组合,寻找可能的bug或崩溃。更智能的是,只需进行详尽的搜索(因为它了解ASP.NET WebForms应用程序层),我的目标是从根本上探索web应用程序的状态,希望在我们的用户面前找到所有关键案例

有人做过类似的事情吗

另外,对于你来说,测试大师在那里。这完全是在浪费时间,还是我真的可以谈谈这里的质量?从我的角度来看,它似乎达到了一个最佳点,即它将尝试潜在最终用户通过浏览器所做的事情

正如我之前所说,我们被困在一个不好的地方。我们现在需要一个简单的解决方法


我们已经尝试过像Selenium这样的东西,但是它需要做很多额外的工作,而且我们一直在更改,不可能为50个不同的应用程序维护多个Selenium测试套件。

您的应用程序的哪一部分出现故障?用户界面,还是业务逻辑


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

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

  • 选择一个IOC容器——我个人喜欢这个
  • 找到一个方便的地方,将“服务”类注入到页面中(基本页面类的构造函数或重写加载页面的模块,任何适合您的都可以)
  • 选择一个单元测试框架,如果你没有一个自动构建,那么就设置一个;包括在该构建中运行完整的单元测试套件
  • 每次接近aspx.cs文件中的一段逻辑时,请查看是否无法在服务中隔离它并围绕它进行单元测试
  • 看看这是否对您有好处——我们发现它在提高可测试性的同时降低了生产效率(这两方面都做了很多),但对一些人来说是有效的
  • 了解如何将应用程序缓慢迁移到MVC

  • 记住,你不会在一夜之间解决这个问题,你没有时间。只要不断提高测试覆盖率,随着时间的推移,您就会看到好处。

    如果我觉得合适,您有一个大型web表单,并且希望在每次发布新版本时运行一些标准的最终用户测试

    我可以推荐这本书

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


    对于内部代码测试,请使用NUnit编写一些单元测试是的,但是想象一下,在一个世界中,我们的工作并没有按照书中的要求完成,而且已经很长时间没有完成了。即使是这样,将价值推送到业务层的羽状工作也可能有缺陷。我的测试接口是HTTP/REST,这是唯一可靠的抽象层。这几乎变成了一次打捞行动。谢谢你的回答,你有过MEF的经验吗?你能评论一下这些区别吗?不,对不起,我没有。商业上,我不喜欢接触MS产品[我相信它需要.NET 4?],直到它们发布和测试,修复失败并再次测试:)当前的MEF预览不需要.NET 4。真的吗?你用过吗,达雷尔?你认为这是值得一看的,考虑到我们正处于(约翰的第4和6部分)的过程中,因为上面描述的原因,NIN和MVP模式看起来都很有前途。然而,在我目前工作的公司里,我没有地方介绍这种东西。典型的开发人员对OOP缺乏基本的理解。但我会在不久的将来努力推动这一点。你能再次提供selenium ide adon的链接吗?页面不再存在