title: 测试 category: page slug: testing sortorder: 0801 toc: True sidebartitle: 8. 测试 meta: 测试代码是Python开发中的一个重要环节。 快来 Full Stack Python 学习更多关于测试的知识吧。 translators: blog.chriscabin.com updated: 2016-07-05 17:00

测试

测试是一种基于特定的输入来判断软件能否正确地运行的方法,并且可以找到需要修复的软件漏洞。

测试缘何重要?

因为软件是使用代码库来衡量大小的, 所以,无论是个人还是大型团队,都不可能及时跟进软件所有的变动以及变动之间的交互。事实表明, 一旦软件变得比最初简单原型更加复杂后,自动化测试就是唯一一种可以用来构建健壮的软件的方法了。很多重要软件项目开发失败的原因都可追朔为测试不充分或者完全没有测试。

对于我们而言,软件只有通过测试后方可知道它能否正常工作。虽然测试工作可以由用户手动点击按钮或者输入来完成,但是更佳的办法是编写专门的测试工具,从而让软件测试能够自动化完成。

测试有很多种形式,我们应当将它们一同使用起来。当程序中的某个函数被隔离测试时,叫做 单元测试。而当同时测试程序中的多个函数时,就叫所谓的 集成测试用户界面测试 确保了用户能与软件进行正确交互 。大型程序还需要更多形式的测试,比如 负载测试数据库测试以及 浏览器测试 (针对 web 应用)。

在 Python 中测试

Python 软件开发文化就是非常重视软件测试。 相对于静态类型语言而言,Python 是一种动态类型的语言。 为了确保软件的正确性,测试在 Python 开发中占据了至关重要的地位。

测试相关的资源

  • 最小的可行测试套件 使用一个 Flask 例子来为我们展示如何进行单元测试和集成测试。

  • 好的测试,坏的测试 讲解了 “好的” 测试和无用的测试之间的差别。 这篇文章打破了一些关于常见测试主题的误区,例如代码覆盖率、断言和mocking测试。

  • Python 测试 是一个(我想你猜到了)专注于 Python 编程语言测试的网站。

  • 测试驱动开发案例 由 Michael DeHaan 发表,它为我们解释了为何自动化测试是构建大规模软件的唯一方法。

  • 谷歌有一个测试博客 ,他们提供了关于大规模软件测试的各方面信息。

  • 依然对单元、功能和集成测试的区别感到糊涂吗? 来看看关于这个问题的回答吧: Stack Overflow 上排名最前的回答

  • Django 中使用 pytest 展示了如何在 Django 项目设置一个基本的pytest 测试,并且说明了为何作者更喜欢 pytest,而不是标准的 unittest 测试。