代码之家  ›  专栏  ›  技术社区  ›  Artem Barger

基于web的项目的自动测试

  •  8
  • Artem Barger  · 技术社区  · 16 年前

    最近我提出了一个问题,花开发时间为基于web的项目生成自动单元测试是否值得?我的意思是,在某些时候,这似乎是无用的,因为在某些时候这些项目是面向与用户/客户端的交互的,所以你无法预测整个可能的用户行为,从而能够检查所显示内容的正确性。即使是回归测试也很难完成。

    6 回复  |  直到 16 年前
        1
  •  2
  •   Schwern    16 年前
        2
  •  4
  •   Peter    16 年前

    可能的用户操作集,以便您 能够检查以下内容的正确性 内容显示。

    你无法预测代码将要传递的所有可能数据,或者如果它是线程化的,则无法预测所有可能的竞争条件,但你仍然会打扰单元测试。为什么?因为你可以把它缩小很多。你可以预见会发生的各种病理事件。你只需稍作思考,并积累一些经验。

    这通常就像让一个不熟悉软件的人坐下来看着他们使用一样简单。克服纠正它们的冲动,看着它们挣扎。它很有教育意义。Steve Krug将此称为 "Advanced Common Sense" 并且有一本名为《不要让我思考》的好书,涵盖了廉价、简单的用户交互测试。我强烈推荐它。这是一本非常简短、令人大开眼界的读物。

    最后,客户本身,如果他们的期望准备得当,可以成为一个出色的测试套件。确保他们了解这是一项正在进行的工作,它会有错误,他们正在帮助改进他们的产品,而且它绝对不应该用于生产数据,让他们修补你产品的预发布版本。他们会做各种你从未想过的事情!这将是你有史以来最好、最真实的测试,而且是免费的!给他们一种非常简单的方法来报告bug,最好是在应用程序上的一个按钮框,它会自动提交他们的环境和历史记录;上的反馈框 Hiveminder 这是一个很好的例子。快速、礼貌地回应他们的错误(即使只是“谢谢你的信息”),你会发现他们会很高兴你能如此回应他们的需求!

        3
  •  2
  •   Doanair    16 年前

    我遇到了一个非常明显的bug,如果我进行集成测试,这个bug很容易被发现。只有通过集成测试和UI功能测试,您才能发现应用程序不同层之间的交互方式存在问题。

        4
  •  2
  •   Kyberias    16 年前

    这实际上取决于web应用程序的结构和架构。如果它包含一个应用程序逻辑层,那么该层应该很容易使用Visual Studio等自动化工具进行单元测试。此外,使用一个旨在支持单元测试的框架,如ASP。NET MVC,帮助很大。

        5
  •  2
  •   cwash    16 年前

    如果你正在编写大量的Javascript,那么最近有很多JS测试框架已经出现,用于对你的Javascript进行单元测试。

        6
  •  1
  •   Max Kosyakov    16 年前

    Customer Affinity )

    对于web应用程序。

    验收测试的良好框架是:

    • 您好(Sahi.co.in)

    然而

    style="display:none" div 。自动化测试通过是因为 存在于文档中,测试框架可以“看到”它。但用户不能。手动测试将失败。

    因此,所有web应用程序都需要手动测试。自动化测试可以大大减少测试工作量(80%),但手动测试对最终软件的质量也很重要。

    至于单元测试和TDD——它提高了代码质量。这对开发人员和项目的未来(即超过几个月的项目)都是有益的。然而,TDD需要技能。如果你有技能,就使用它。如果你不考虑获得技能,但要注意获得技能所需的时间。通常需要3-6个月的时间才能开始创建一个好的单元测试和代码。如果你的项目将持续一年以上,我建议你学习TDD,并在适当的开发环境中投入时间。

        7
  •  0
  •   GyulaWeber    10 年前