本着这个question的精神,我想知道是否有任何关于创建一个有用的“完整”测试套件的提示(测试套件可以“完整”吗?)用于Django webapp
我的情况:我已经淘汰了原型,现在正在努力添加一些回归测试。我个人使用django-webtest进行大多数测试,并使用Django test client进行一些网址测试。
我对我的测试套件感到不舒服。我远非测试专家,所以试图改善这一目标。任何提示 - 无论是否适用于我的情况 - 都将不胜感激。
答案 0 :(得分:14)
我建议阅读Django 1.1 Testing and Debugging by Karen M. Tracey。前五章涵盖了Django的测试。具体来说,您应该查看第5章,其中讨论了集成其他测试工具。以下是第5章的内容摘录:
在本章中,我们:
- 了解Django为添加测试功能提供的钩子
- 看了一个如何使用这些钩子的例子,特别是在添加代码覆盖率报告的情况下
- 还探讨了将
twill
测试工具的使用集成到我们的Django测试用例中时不必使用这些钩子的示例
以下是Karen Tracey在她的书第5章中讨论的一些工具的链接:
您可能还想查看Lettuce。来自网站:
生菜是一种基于黄瓜的非常简单的BDD工具。
The Lettuce文档还有一个关于integrating Lettuce with Django的部分。
答案 1 :(得分:3)
测试提供(至少)4个问题的答案。
我的实施是否正确?该应用程序是否与记录的或至少是心理图像相匹配。
我的最新更改是否破坏了什么?
我的应用是否安全?来自无辜的用户和狡猾的人。
我的应用程序的性能是否足够?
对于#1,每个“功能”至少需要进行一次测试,主要功能可能需要多次测试。 如果您既是开发人员又是测试开发人员,那么很容易在此处做出遗漏错误。
对于#2开始时,学习编写测试套件以及代码(并忠实地运行它)是关键。
对于#3,确保在正常程序引导操作之外访问的URL在权限方面表现正常。您可能不希望一个用户能够修改甚至是其他用户的信息,但是如果他们只能输入../user/505并获得可能存在问题的所有内容。我相信还有很多其他的东西需要在这里测试,所以其他人请来这里。
测试具有大量流量的应用的性能和扩展稳健性 不是我所知道的。
查看Django本身的测试用例,可以了解应该测试的内容的粒度。Django trunk tests
Django docs有一篇关于测试的好文章:搜索文档进行测试。