【问题标题】:Looking for testing/QA idea for Python Web Application Project寻找 Python Web 应用程序项目的测试/QA 想法
【发布时间】:2009-07-10 05:29:02
【问题描述】:

我有将近 2 年的时间开发和增强旧版 Python Web 应用程序的“运气”。我认为我所做的主要贡献是介绍了单元测试、nosetest、pychecker 和 CI 服务器的使用。是的,没错,仍然有没有单一单元测试的项目(公平地说,它有一些 doctest,但是已经坏了)。

尽管如此,进展缓慢,因为实际上覆盖范围受限于您可以编写多少单元测试。

时不时还会出现令人尴尬的错误,而且在管理报告上也不好看。 (例如,即使是 pychecker 也无法捕捉到某些“缺少属性”的情况,程序在运行时就崩溃了)

我只是想知道是否有人对我可以做哪些额外的事情来改进 QA 有任何建议。该应用程序使用 WebWare 0.8.1,但我已将其移植到cherrypy,因此我可以利用 WSGI 进行集成测试。

混合语言开发和/或雇用额外的测试员也是我正在考虑的选项。

没有什么是太疯狂了,只要它有效。

【问题讨论】:

    标签: python testing integration-testing


    【解决方案1】:

    Feather 的 great book 是我一直向处于您这种情况的任何人推荐的第一个资源(希望我在前四次左右之前就已经掌握了它!-)- 不是特定于 Python,但很多非常有用通用的建议。

    我一直很满意的另一种技术是fuzz testing——在捕获各种错误和漏洞方面省力,回报丰厚;看看吧!

    最后但并非最不重要的一点是,如果您确实有足够的人数和预算再聘请一名工程师,请这样做,但请确保他或她是“测试中的软件工程师”,而不是敲打键盘或鼠标的温暖身体用于手动“测试”——有人急于编写和集成各种自动化测试方法,而不是花费他们的时间无休止地重复(如果他们幸运的话)相同的手动测试序列! !

    我不确定您认为混合语言开发人员不会在 QA 方面为您带来什么。 WSGI OTOH 为您提供很好的瓶颈/钩子,以便在您即将推出的集成测试基础设施中加以利用——这有好处(也适用于其他各种事情;-)。

    【讨论】:

      【解决方案2】:

      自动化测试似乎是一种非常有趣的方法。如果您正在开发 Web 应用程序,您可能对 WebDriver 感兴趣 http://code.google.com/p/webdriver/

      【讨论】:

      • 你应该说 webdriver 现在是 Selenium 的一部分。
      【解决方案3】:

      由于它是一个网络应用程序,我想知道基于浏览器的测试是否对您有意义。如果是这样,请查看Selenium,这是一个开源的测试工具套件。以下是您可能感兴趣的一些项目:

      • 在主要平台(linux、win32、macos)上自动启动和停止浏览器实例
      • 通过模拟网页上的用户操作(点击、打字)进行测试,基于 Javascript
      • 对行为结果使用断言(新网页已加载,包含文本,...)
      • 可以在 Firefox 中记录交互式测试
      • 可以由 Python 测试脚本驱动,使用简单的通信 API 并针对协调服务器 (Selenium RC) 运行。
      • 可以在同一台机器或多台机器上运行多个浏览器

      它有一个学习曲线,但特别是 Selenium RC 服务器架构对于进行自动化浏览器测试非常有帮助。

      【讨论】:

        【解决方案4】:

        看看Twill,它是一个用 Python 编写的无头网络浏览器,专门用于自动化测试。它可以记录和回放动作,也可以直接挂钩到 WSGI 堆栈中。

        【讨论】:

          【解决方案5】:

          没有什么比测试更有帮助了。

          这两句话真的很重要。

          • “你有能力编写多少单元测试。”

          • “时不时还会出现令人尴尬的错误,”

          如果出现错误,说明您没有编写足够的测试。如果您仍然有错误,那么您有能力编写更多的单元测试。就是这么简单。

          每个令人尴尬的错误都是没有编写足够的单元测试的直接结果。

          每份描述令人尴尬的错误的管理报告还应描述需要进行哪些测试以防止该错误再次发生。

          单元测试是对进一步问题的永久预防。

          【讨论】:

            猜你喜欢
            • 2010-10-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-18
            • 1970-01-01
            • 2011-02-17
            • 1970-01-01
            • 2018-09-05
            相关资源
            最近更新 更多