寻找Python web应用项目的测试/QA想法

1 投票
5 回答
697 浏览
提问于 2025-04-15 12:48

我有“幸运”的机会,已经花了将近两年的时间来开发和改进一个老旧的Python网页应用。对我来说,最大的贡献就是引入了单元测试、nosetests、pychecker和持续集成服务器。没错,确实还有一些项目根本没有单元测试(公平地说,它有几个文档测试,但都坏掉了)。

不过,进展很慢,因为实际上,能写多少单元测试就限制了测试的覆盖范围。

偶尔还是会出现一些尴尬的错误,这在管理报告上看起来不好(比如,即使是pychecker也无法捕捉到某些“缺失属性”的情况,程序在运行时就崩溃了)。

我只是想知道有没有人有什么建议,可以让我进一步改善质量保证(QA)。这个应用使用的是WebWare 0.8.1,但我已经尝试将它移植到cherrypy,这样我就可以利用WSGI来进行集成测试。

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

只要有效,什么方法都可以尝试。

5 个回答

1

因为这是一个网页应用,我想知道浏览器测试对你来说是否有意义。如果有的话,可以看看Selenium,这是一个开源的测试工具套件。以下是一些可能对你有趣的功能:

  • 可以在主要平台(Linux、Windows、macOS)上自动启动和停止浏览器。
  • 通过模拟用户在网页上的操作(比如点击、输入)来进行测试,基于JavaScript。
  • 使用断言来检查行为结果(比如新网页加载了,里面有特定的文字等)。
  • 可以在Firefox中录制交互式测试。
  • 可以通过Python测试脚本来驱动,使用简单的通信接口,并与协调服务器(Selenium RC)一起运行。
  • 可以在同一台机器上或多台机器上同时运行多个浏览器。

虽然有一定的学习难度,但特别是Selenium RC服务器架构在进行自动化浏览器测试时非常有帮助。

1

自动化测试听起来是个很有意思的方法。如果你正在开发一个网页应用,可能会对WebDriver感兴趣,详细信息可以查看这个链接:http://code.google.com/p/webdriver/

2

Feather的这本好书是我总是推荐给处于你这种情况的人的第一本书(真希望我在第一次遇到这个问题之前就能有这本书!)虽然它不是专门讲Python的,但里面有很多非常实用的通用建议。

我还觉得另一个不错的方法是模糊测试——这是一种投入少但能有效发现各种bug和安全漏洞的测试方式;你可以去了解一下!

最后,如果你有足够的人手和预算再雇一个工程师,那就去做吧,但一定要确保他或她是“测试软件工程师”,而不是随便找个会敲键盘的人来做手动“测试”——你需要的是一个热衷于编写和整合各种自动化测试方法的人,而不是每天都在重复(如果运气好的话)同样的手动测试流程的人!!!

我不太确定你认为混合语言开发在质量保证方面能带来什么好处。另一方面,WSGI 确实会给你在即将到来的集成测试基础设施中提供很好的瓶颈/钩子——这方面是很有用的(还有其他很多方面也是;-)。

撰写回答