第8章 测试、性能分析和异常处理
在软件世界中,测试代码可以看成是一个良好的习惯,我们不应该因为一段代码是由某个聪明人所编写的或者它已经运行了很长一段时间没有出错就完全信任这段代码。如果代码没有经过测试,就不应该信任它。
测试为什么非常重要?其中一个原因是它提供了可预测性,或者至少它可以帮助我们实现高度的可预测性。遗憾的是,代码中总会时不时地混入一些缺陷。但是,我们肯定希望自己的代码尽可能地做到可以预测。我们不希望遇到意外,或者说不希望自己的代码具有不可预测的行为。如果对飞机的传感性进行检查的软件报告错误从而使我们不得不终止休假,想必不是一件愉快的事情。
因此,我们需要对代码进行测试,我们需要检查它的行为是否正确,需要检查当它在处理边缘情况时,它能不能如预期的那样工作,需要检查与它所通信的组件发生故障或者不可用时,它会不会不知所措。另外,代码的性能也需要在能够接受的范围之内。
本章就是讨论与这些事宜有关的内容,从而确保自己的代码已经做好准备迎接外部世界,并保证它具有足够的速度和能够正确地处理预料之外的事件或异常情况。
在本章中,我们将要探索下面这些主题。
- 测试(将介绍关于它的几个方面,包括对测试驱动的开发的简单介绍)。
- 异常处理。
- 性能分析。
我们先来理解什么是测试。
8.1 对应用程序进行测试
测试有许多不同的类型。由于它的种类众多,因此很多公司会成立一个专门的部门,称为质量保证(QA)部门,这个部门的工作人员的任务就是对公司的开发人员所编写的软件进行测试。
我们可以把测试粗略地分为两大类:白盒测试和黑盒测试。
白盒测试就是对代码的内部细节进行测试,它非常详细地检查代码的每个细节。黑盒测试则是把待测软件看成是一个盒子,软件的内部细节被完全忽略。对于黑盒测试而言,盒子内部所采用的技术甚至所使用的编程语言都是不重要的,它的任务就是在盒子的一端进行输入,并对另一端的输出进行验证。 ...
Get Python编程入门与实战 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.