我有幸在开发和增强遗留python Web应用程序近2年。我认为我做出的主要贡献是引入了单元测试,nosestest,pychecker和CI服务器的使用。是的,没错,还有一个没有单一单元测试的项目(公平地说,它有一些doctest,但是已经坏了)。
尽管如此,进展缓慢,因为从字面上看,覆盖范围受限于您可以负担多少单位测试。
有时会出现令人尴尬的错误,而且管理报告看起来并不好看。 (例如,即使是pychecker也无法捕捉到某些“缺失属性”的情况,并且该程序在运行时才会爆炸)
我只是想知道是否有人建议我可以做些什么来改善质量保证。该应用程序使用WebWare 0.8.1,但我已经将它实际移植到了cherpy,所以我可以利用WSGI进行集成测试。
我正在考虑混合语言开发和/或雇用额外的测试人员。
只要它有效,没有什么是太狂野了。
答案 0 :(得分:2)
羽毛的great book是我总是推荐给你身边任何人的第一个资源(希望我在我面对前4次左右之前掌握它! - ) - 不是特定于Python而是很多非常有用的通用建议。
我很满意的另一项技术是fuzz testing - 在捕捉各种漏洞和漏洞方面的努力程度很高,收益很高;看看吧!
最后但并非最不重要的,如果你确实有人数和请预算雇用一名工程师,但请确保他或她是“测试中的软件工程师”,而不是用键盘或鼠标敲打手工“测试”的温暖的身体 - 有人急于编写和整合各种各样的自动化测试方法,而不是花费他们的时间无休止地重复(如果他们很幸运)相同的手动测试序列!!!
我不确定你认为混合语言在质量保证方面会给你带来什么。 WSGI OTOH 将在您即将推出的集成测试基础架构中为您提供良好的瓶颈/钩子 - 它对此有好处(对于各种其他东西也是如此; - )。
答案 1 :(得分:1)
自动化测试似乎是一种非常有趣的方法。如果您正在开发Web应用程序,您可能对WebDriver http://code.google.com/p/webdriver/
感兴趣答案 2 :(得分:1)
由于它是一个网络应用程序,我想知道基于浏览器的测试是否对您有意义。如果是这样,请查看Selenium,这是一个开源的测试工具套件。以下是您可能感兴趣的一些项目:
它具有学习曲线,但特别是Selenium RC服务器架构在进行自动浏览器测试方面非常有用。
答案 3 :(得分:0)
看看Twill,这是一个用Python编写的无头网络浏览器,专门用于自动化测试。它可以记录和重放动作,也可以直接挂钩到WSGI堆栈。
答案 4 :(得分:0)
很少有事情可以帮助测试。
这两个引号非常重要。
“你可以负担多少单元测试。”
“有时会出现令人尴尬的错误,”
如果出现错误,您没有编写足够的测试。如果你仍然有错误,那么你可以负担得起更多的单元测试。就这么简单。
每个令人尴尬的错误都是没有编写足够的单元测试的直接结果。
描述尴尬错误的每份管理报告还应描述需要进行哪些测试以防止再次发生错误。
单元测试是对进一步问题的永久预防。